BibTeX: The Complete Guide to Academic Bibliography Format
Every academic paper has a bibliography. Managing that bibliography — keeping track of dozens or hundreds of sources, formatting them consistently in the required citation style, updating numbered references when you add a paper in the middle — is one of the most tedious tasks in academic writing. BibTeX, developed in 1985 by Oren Patashnik and Leslie Lamport, solved this problem for the LaTeX ecosystem, and its influence has spread far beyond: nearly every reference manager, citation tool, and academic database uses BibTeX as an export format.
What Is BibTeX?
BibTeX is a reference management format stored in plain text .bib files. Each entry in a .bib file describes one bibliography item — a journal article, book, conference paper, thesis, website, etc. — using a structured key-value syntax:
@article{einstein1905,
author = {Einstein, Albert},
title = {Zur Elektrodynamik bewegter K{\"o}rper},
journal = {Annalen der Physik},
year = {1905},
volume = {322},
number = {10},
pages = {891--921},
doi = {10.1002/andp.19053221004}
}
@book{knuth1984,
author = {Knuth, Donald E.},
title = {The {TeX}book},
publisher = {Addison-Wesley},
year = {1984},
address = {Reading, Massachusetts},
edition = {1st}
}
@inproceedings{lecun1989,
author = {LeCun, Yann and Boser, Bernhard and Denker, John S. and
Henderson, Donna and Howard, Richard E. and Hubbard, Wayne and
Jackel, Lawrence D.},
title = {Backpropagation Applied to Handwritten Zip Code Recognition},
booktitle = {Neural Computation},
year = {1989},
volume = {1},
pages = {541--551}
}
BibTeX Entry Types
BibTeX defines entry types for every common academic source:
| Entry Type | Used For | Required Fields |
|---|---|---|
@article |
Journal or magazine article | author, title, journal, year |
@book |
Published book | author/editor, title, publisher, year |
@inproceedings |
Conference paper | author, title, booktitle, year |
@proceedings |
Conference proceedings | title, year |
@incollection |
Chapter in a book | author, title, booktitle, publisher, year |
@phdthesis |
PhD dissertation | author, title, school, year |
@mastersthesis |
Master's thesis | author, title, school, year |
@techreport |
Technical report | author, title, institution, year |
@misc |
Miscellaneous (websites, software) | author, title, year, howpublished |
@online |
Web page (BibLaTeX) | author, title, url, urldate |
@unpublished |
Unpublished work | author, title, note |
The Citation Key
Every BibTeX entry starts with a citation key — the identifier you use in your LaTeX document:
@article{einstein1905, ...}
The key einstein1905 is used in LaTeX as \cite{einstein1905}. Choose keys that are:
- Memorable:
author+yearis the most common convention (lecun1989,vaswani2017) - Unique: no two entries in your .bib file should share a key
- Stable: if you use the same .bib file across projects, changing keys breaks existing documents
Common key conventions:
authorYEAR:knuth1984,turing1950author:year:knuth:1984AuthorYear:Knuth1984authorYEARkeyword:lecun1989backprop
BibTeX Fields
Universal Fields
| Field | Meaning | Notes |
|---|---|---|
author |
Author(s) | Names separated by and; Surname, Firstname format |
title |
Title | Use {} around words to preserve capitalization |
year |
Publication year | Four digits |
doi |
Digital Object Identifier | 10.1000/xyz123 |
url |
Web URL | |
note |
Additional info | Free-form text |
Author and Editor Names
BibTeX parses names in specific ways. The safe format is Lastname, Firstname:
author = {Turing, Alan M.}
For multiple authors, separate with and:
author = {Einstein, Albert and Podolsky, Boris and Rosen, Nathan}
For "et al." situations with more than a certain number of authors, BibTeX handles this automatically based on the citation style — do not write et al. in the .bib file.
For corporate authors:
author = {{World Health Organization}}
The double braces tell BibTeX to treat this as a single name token, not parse it as Firstname Lastname.
Title Capitalization
BibTeX's default processing lowercases everything except the first word unless you protect individual words with braces:
title = {On the Theory of {B}rownian Motion}
title = {A {N}ew {E}ra in {A}rtificial {I}ntelligence}
title = {{TensorFlow}: Large-Scale Machine Learning on Heterogeneous Systems}
The surrounding {} prevent case conversion for the enclosed text.
BibTeX vs BibLaTeX
BibTeX (1985, classic): processes .bib files using separate .bst style files (bibliography style programs, written in a Reverse Polish notation language). The standard styles are plain, abbrv, alpha, unsrt, and hundreds of journal-specific .bst files. Widely supported everywhere LaTeX is supported.
BibLaTeX (2006, modern): a complete reimplementation that uses LaTeX macros instead of .bst programs, making styles much easier to customize. Uses biber as the backend processor (instead of bibtex). Supports unicode natively, has better international support, and has more built-in citation styles.
For new projects, use BibLaTeX + biber — it is more powerful and actively maintained. For legacy compatibility or when a journal provides a .bst file, use classic BibTeX.
% Classic BibTeX
\bibliographystyle{plain}
\bibliography{references}
% BibLaTeX + biber
\usepackage[style=apa]{biblatex}
\addbibresource{references.bib}
...
\printbibliography
Citation Styles
BibTeX/BibLaTeX can format citations in any style:
- Numerical:
[1],[2],[3]— common in computer science, physics (IEEE, AIP, LNCS) - Author-year:
(Einstein, 1905),(Knuth, 1984)— common in social sciences, biology (APA, Chicago Author-Date) - Footnote:
¹,²— common in humanities (Chicago, Turabian) - Alpha:
[Ein05],[Knu84]— author abbreviation + year
A single .bib file can be used with any citation style by changing one line (\bibliographystyle{ieee} vs \bibliographystyle{apa}).
Reference Managers That Export BibTeX
Every major reference manager can export BibTeX:
| Manager | Export Path |
|---|---|
| Zotero | Select items → File → Export Library → BibTeX |
| Mendeley | File → Export → BibTeX (or sync with Better BibTeX plugin) |
| EndNote | File → Export → BibTeX |
| JabRef | Native BibTeX manager — .bib files are its primary format |
| Papers | File → Export → BibTeX |
| ReadCube Papers | Export → BibTeX |
JabRef is the only reference manager built specifically for BibTeX — it stores your library directly as a .bib file, making it ideal for LaTeX users who want their bibliography under version control.
Databases That Export BibTeX
Most academic databases provide BibTeX exports directly:
- Google Scholar: below each result, click "Cite" → "BibTeX"
- ACM Digital Library: Export → BibTeX
- IEEE Xplore: Export → Citation (BibTeX)
- arXiv: "Export BibTeX citation" link on every paper page
- DBLP: every paper has a "cite" button with BibTeX format
- DOI.org:
https://doi.org/10.xxxx/xxx→ AddAccept: application/x-bibtexheader to get BibTeX via API
Converting BibTeX
BibTeX → CSV/Excel: JabRef → File → Export → CSV format; or use bib2csv Python tool
BibTeX → RIS (for Mendeley/Zotero import): JabRef → File → Export → RIS format; or use Pandoc: pandoc input.bib -o output.ris
BibTeX → HTML bibliography: Pandoc: pandoc input.bib --citeproc -o bibliography.html
BibTeX → APA/MLA text: Pandoc + a Markdown file with [@key] citations: pandoc paper.md --bibliography=refs.bib --csl=apa.csl -o paper.html
BibTeX in the Age of DOIs and APIs
The modern workflow for bibliography management:
- Find a paper on Google Scholar, arXiv, or a database
- Export its BibTeX entry directly
- Add to your
.bibfile in JabRef or Zotero's Better BibTeX export - Cite in LaTeX using the citation key
For importing from DOI directly:
# Using the doi2bib service
curl https://doi2bib.org/bib/10.1145/12345.67890
BibTeX's 40-year legacy is a testament to the power of a simple, well-designed plain text format. Every bibliography a scientist has ever produced with LaTeX, every reference list in every Computer Science paper, every DOI resolution to an academic record — they all trace back to the humble .bib file.
Related conversions
Frequent conversions across the catalogue: