FormaTeX

\bibliography{references}

LaTeX Bibliography

A complete guide to managing references in LaTeX — from a simple BibTeX .bib file to the modern BibLaTeX + Biber workflow. Includes entry types, cite commands, bibliography styles, and the correct compilation order.

BibTeX— legacy, widely supportedBibLaTeX— modern, recommended

Which should you use?

Use BibLaTeX + Biber for new projects. It supports more entry types, flexible citation styles, per-chapter bibliographies, and active maintenance. BibTeX is legacy but still widely supported — required for arXiv submissions and older journal templates.

\section{Quick start}

Quick Start with BibTeX

Two files: a .bib database and your .tex document.

Step 1 — Create references.bib

% references.bib
@article{einstein1905,
  author  = {Einstein, Albert},
  title   = {On the Electrodynamics of Moving Bodies},
  journal = {Annalen der Physik},
  year    = {1905},
  volume  = {17},
  pages   = {891--921}
}

@book{knuth1984,
  author    = {Knuth, Donald E.},
  title     = {The \TeX{}book},
  publisher = {Addison-Wesley},
  year      = {1984}
}

Step 2 — Reference in your document

\documentclass{article}
\usepackage{natbib}

\begin{document}

Einstein's theory of special relativity \citep{einstein1905} revolutionized physics.
The \TeX{}book by \citet{knuth1984} is the definitive reference.

\bibliographystyle{plain}
\bibliography{references}

\end{document}

\section{Entry types}

BibTeX Entry Types

Common entry types and their required fields.

TypeDescription
@articleJournal article
@bookPublished book
@inproceedingsConference paper
@thesisThesis or dissertation
@onlineWeb resource (BibLaTeX)
@miscMiscellaneous source

\section{Cite commands}

Cite Commands

natbib commands for BibTeX; biblatex commands for the modern workflow.

PackageCommand
natbib\cite{key}
natbib\citep{key}
natbib\citet{key}
natbib\citealp{key}
biblatex\autocite{key}
biblatex\textcite{key}
biblatex\parencite{key}

\section{Modern approach}

The Modern Approach: BibLaTeX

BibLaTeX with the Biber backend replaces BibTeX's legacy toolchain. It supports UTF-8 natively, more entry types, and flexible citation style configuration through package options.

\documentclass{article}
\usepackage[
  backend=biber,
  style=authoryear,
  sorting=nyt
]{biblatex}

\addbibresource{references.bib}

\begin{document}

This result was shown by \textcite{einstein1905}.
For LaTeX fundamentals, see \autocite{knuth1984}.

\printbibliography

\end{document}

style=authoryear

Author-year citations (Smith, 2024). Default for humanities.

style=numeric

Numbered citations [1], [2]. Common in sciences and engineering.

style=alphabetic

Alphanumeric labels [Ein05]. Middle ground between named and numbered.

\section{Bibliography styles}

Bibliography Styles

StylePackageDescription
plainBibTeXNumbered, alphabetical order
alphaBibTeXLabel-based (e.g. [Ein05])
abbrvBibTeXAbbreviated author names
IEEEtranBibTeXIEEE journal style
authoryearBibLaTeXAuthor-year citations (Chicago-like)
numericBibLaTeXNumbered citations
alphabeticBibLaTeXAlphanumeric labels

\section{Compilation order}

Compilation Order

LaTeX + BibTeX requires multiple passes to resolve citations and build the bibliography.

step 1
pdflatex

writes .aux

step 2
bibtex

reads .aux → .bbl

step 3
pdflatex

reads .bbl

step 4
pdflatex

resolves refs

Or automate with latexmk -pdf — see the latexmk guide for details.

\section{Common mistakes}

Common Mistakes

Missing \bibliography command

BibTeX only generates the bibliography where \bibliography{filename} appears. Without it, no reference list is printed, even if \cite commands are present.

Fix: Add \bibliographystyle{plain} and \bibliography{references} before \end{document}.

Wrong .bib filename

\bibliography{references} expects a file named references.bib in the same directory. A mismatch produces a "I found no \bibstyle command" or similar error.

Fix: Ensure the filename in \bibliography{} exactly matches your .bib file, without the .bib extension.

Not running BibTeX

LaTeX alone does not process .bib files. Skipping the bibtex run leaves citations as [?] and omits the bibliography — a very common beginner mistake.

Fix: Run: pdflatex → bibtex → pdflatex → pdflatex. Or use latexmk -pdf to automate this.

\begin{document}

Compile your bibliography online

FormaTeX runs pdfLaTeX with BibTeX automatically. Paste your .tex source and get a PDF — no local install required.

One quick thing

We track anonymous usage — page views, feature usage, compilation events — to understand what works and what doesn't. No ads, no personal data, no third-party sharing.

Cookie policy