Written and maintained by CASRAI Editorial Board
Last updated
A LaTeX bibliography style is set in two very different ways depending on which citation engine your document uses: a classic .bst file with plain BibTeX, or a named style option with BibLaTeX and its modern backend, biber. Mixing the two up — or inheriting a journal template without knowing which one it uses — is the most common source of “wrong-looking” citations and desk-reject formatting notes. This guide covers both systems, the standard style files you’ll actually encounter, and how to pick or customize a style when a journal hands you a template.
BibTeX vs. BibLaTeX/biber: two different engines, not two settings
Both systems start from the same idea: your citations live in a plain-text .bib file as structured entries (@article, @book, and so on), and a separate program turns that data plus a chosen style into formatted in-text citations and a reference list. Where they differ is the program and the styling mechanism.
- Classic BibTeX. You declare a style file and your data file in the document, then compile with an extra pass through the
bibtexprogram:bibliographystyle{plain} bibliography{references}The compile sequence is
pdflatex → bibtex → pdflatex → pdflatex(the two extra LaTeX passes resolve citation numbers and cross-references). The style itself — the.bstfile — is written in a compact, stack-based postfix language purpose-built for BibTeX; it is not ordinary LaTeX code, which is why customizing one by hand is rare and error-prone. - BibLaTeX with biber. You load biblatex as a package, choose a style as an option, and point it at your data file with a different command:
usepackage[backend=biber,style=authoryear]{biblatex} addbibresource{references.bib}The compile sequence swaps
bibtexforbiber:pdflatex → biber → pdflatex → pdflatex. Biblatex separates the citation data from the formatting logic more cleanly than classic BibTeX, and its styles are built from ordinary LaTeX macros (things likeDeclareFieldFormat) rather than a separate language, which is the main reason customizing a biblatex style is realistic for most authors and customizing a raw.bstfile generally isn’t.
Biber is biblatex’s default and recommended backend. It handles Unicode natively (accented names, non-Latin scripts, and non-ASCII punctuation round-trip correctly), supports proper multilingual sorting and localization, and understands entry types biblatex added beyond classic BibTeX’s original set, such as @online and @dataset — useful for citing software, datasets, and web resources that a 1980s-era style file was never designed to describe. Classic bibtex can technically still run as biblatex’s backend in a compatibility mode, but it then acts only as a sorting tool and cannot use biblatex-specific styles, so in practice “biblatex” and “biber” go together.
The single most common failure in either system is forgetting the extra intermediate pass: skip the bibtex/biber step (or skip a re-run after editing the .bib file) and citations compile as [?] or the bibliography section renders empty, even though the LaTeX source is correct.
Common BibTeX .bst style files
A handful of style files ship with every standard LaTeX/BibTeX installation and cover most non-journal-specific needs:
| Style | Citation form | Ordering | Typical use |
|---|---|---|---|
plain |
Numeric, e.g. [3] |
Alphabetical by author | General-purpose default; the most common starting point |
unsrt |
Numeric | Order of first citation in the text | Preprints and templates that want reference numbers to match reading order |
abbrv |
Numeric, abbreviated (first names and journal names shortened) | Alphabetical | Space-constrained reference lists |
alpha |
Alphanumeric labels, e.g. [Ein05] |
Alphabetical | Documents where a mnemonic label is more useful than a bare number (theses, technical reports) |
apalike |
Author-year, APA-like | Alphabetical | Social-science manuscripts without a dedicated APA package |
ieeetr |
Numeric, IEEE Transactions formatting | Order of citation | Engineering/IEEE-adjacent submissions without the full IEEEtran class |
acm |
Numeric, ACM conventions | Alphabetical | Older ACM-formatted documents (current ACM templates use their own style, see below) |
siam |
Numeric, SIAM conventions | Alphabetical | SIAM journal submissions |
If you need author-year citation commands (citep, citet) rather than the raw numeric labels these styles produce by default, the natbib package sits on top of classic BibTeX and pairs with companion styles such as plainnat and unsrtnat to add that flexibility without switching to biblatex.
BibLaTeX style options
Biblatex replaces the “pick a .bst file” decision with a style package option, and ships several built in:
numeric(the default) — bracketed numbers, functionally similar toplain/unsrt.authoryear— author-year in-text citations, the biblatex analogue ofapalike/natbib author-year mode.alphabetic— mnemonic labels, the biblatex analogue ofalpha.verboseand its variants (e.g.verbose-trad2) — full citation in a footnote on first use, short form afterward; common in humanities and law-adjacent writing.
Beyond the built-in set, discipline-specific style packages plug into biblatex the same way: biblatex-ieee for IEEE formatting, biblatex-apa for full APA 7th-edition rules, and biblatex-chicago for Chicago author-date or notes-and-bibliography style. These exist specifically because the built-in numeric/authoryear/alphabetic styles approximate a convention rather than reproduce every rule a style guide specifies.
Picking or customizing a style for a specific journal template
- Check whether the journal already dictates it. Most journal LaTeX templates bundle their own document class and either a matching
.bstfile or a preconfigured biblatex style, and the submission system typically checks formatting against that template. A few recognizable examples of what ships together:- IEEE journals:
IEEEtran.clswithIEEEtran.bst - Elsevier journals:
elsarticle.clswithelsarticle-num.bst(numeric) orelsarticle-harv.bst(author-year, via natbib) - ACM:
acmart.clswith the bundledACM-Reference-Format.bst - American Physical Society / AIP journals:
revtex4-2.clswithapsrev4-2.bst - Springer (LNCS and many Springer journals):
llncs.cls/svjour3.clswithsplncs04.bstorspbasic.bst
If the template already loads a style — either via
bibliographystyle{...}or a preconfiguredusepackage[...]{biblatex}line — leave it as provided. Overriding a journal-supplied style is one of the more common sources of a formatting-correction request from an editorial office, since reference formatting is often checked against house style before peer review. - IEEE journals:
- If no template is supplied (a thesis chapter, working paper, or preprint with no house style), match the convention your field actually expects rather than defaulting to whatever style you last used:
- Numeric-citation fields (engineering, physics, computer science) —
plain/unsrt, or biblatexstyle=numeric. - Author-year fields (much of the social sciences) —
apalikeor natbib author-year mode with classic BibTeX, or biblatexstyle=authoryear(orbiblatex-apafor strict APA compliance). - Footnote-citation conventions (some humanities and law-adjacent writing) — biblatex
verbose/notes styles; classic BibTeX has no clean equivalent, which is itself a reason to reach for biblatex in these fields. - An editor or supervisor asking for “numbers in the order they’re cited” specifically —
unsrt,ieeetr, or biblatexnumeric-comp, notplain(which sorts alphabetically instead).
- Numeric-citation fields (engineering, physics, computer science) —
- Customizing beyond the closest built-in style. With classic BibTeX, real customization means editing the
.bstfile’s postfix logic directly — realistic mainly for people already comfortable with that language, so most authors instead pick the closest existing.bstand accept small deviations, or move to natbib for citation-command flexibility without touching the style file itself. With biblatex, customization happens in ordinary LaTeX in your preamble — redefining a field’s format withDeclareFieldFormat, or a name’s format withDeclareNameFormat— which is why journals and thesis offices with unusual house rules increasingly supply a biblatex style rather than a bespoke.bstfile. - Switching an existing document between engines. Your
.bibdata file is broadly reusable either way, since both systems read the same field-based entry format; biblatex simply recognizes more entry types and fields than classic BibTeX defines. Converting a document means replacingbibliographystyle{...}andbibliography{...}withusepackage[backend=biber,style=...]{biblatex}andaddbibresource{...}, then re-running withbiberin place ofbibtex. Overleaf and other current LaTeX distributions support both engines and detect which one a document needs from these commands, so no separate configuration is usually required.
Frequently asked questions
Is BibLaTeX replacing BibTeX?
For new documents where you control the template, biblatex plus biber is generally the more capable and more maintainable choice — better Unicode handling, easier customization, and built-in support for more entry types. Classic BibTeX with a .bst file remains extremely common in practice because so many journal and conference templates are still built on it, so “which one you use” is frequently decided by the template rather than by preference.
Do I need to install biber separately?
No on any current, complete LaTeX distribution (TeX Live, MiKTeX) or on Overleaf — biber ships alongside biblatex. Editors that auto-detect the build sequence from your usepackage{biblatex} line will run biber automatically; if you’re compiling manually, you need to add the biber pass to your build sequence yourself.
Can I use natbib and biblatex together?
Not directly — they’re two different mechanisms for the same job. Biblatex includes a natbib=true package option that emulates natbib’s citep/citet command names for documents being migrated over, but you should not load both packages at once.
Why does my bibliography say “[?]” instead of a number?
Almost always a missing or skipped compile pass: run bibtex (or biber) after the first LaTeX pass, then compile with LaTeX/pdfLaTeX twice more so citation numbers and the reference list both resolve. The same symptom shows up after editing the .bib file if you forget to re-run bibtex/biber before the next LaTeX pass.
Which style should I use if my journal doesn’t specify one?
Default to the numeric convention most common in your field (plain or biblatex numeric) unless the journal’s own author guidelines mention author-year or a named style guide — check the guidelines before the template, since some journals specify a citation style in prose without shipping a preconfigured .bst file for it.
For getting clean data into your .bib file in the first place, see Getting Clean BibTeX from a DOI. For the broader authoring environment these styles compile inside, see LaTeX and Overleaf for Collaborative Research Writing. If your reference manager exports a different format entirely, see the RIS file format guide for how it compares to BibTeX’s field-based structure.








