Setup and Installation
BibLaTeX comes with modern LaTeX distributions. You'll need the BibLaTeX package and the Biber backend processor.
Basic Setup
\documentclass{article}
\usepackage[backend=biber, style=authoryear]{biblatex}
\addbibresource{references.bib} % Your .bib file
\begin{document}
\section{Introduction}
According to \textcite{einstein1905}, the theory states...
This is supported by recent research \parencite{hawking1988}.
\printbibliography
\end{document}
Compilation Workflow
BibLaTeX requires a specific compilation sequence:
# Standard compilation sequence
pdflatex document.tex
biber document # Run Biber (not bibtex!)
pdflatex document.tex
pdflatex document.tex
# Or use latexmk for automatic compilation
latexmk -pdf -pdflatex="pdflatex -interaction=nonstopmode" document.tex
⚠️ Important: Use biber, not bibtex! The Biber backend is essential for BibLaTeX's modern features. Most LaTeX editors can be configured to use Biber automatically.
Package Options
% Basic options
\usepackage[
backend=biber, % Use Biber backend
style=authoryear, % Citation style
sorting=nyt, % Sort by name, year, title
maxbibnames=99, % Show all authors
maxcitenames=2, % Max 2 authors in citations
giveninits=true, % Use initials for first names
uniquename=init, % Disambiguate with initials
uniquelist=true, % Unique author lists
doi=true, % Print DOIs
isbn=false, % Don't print ISBNs
url=true, % Print URLs
eprint=false % Don't print arXiv IDs
]{biblatex}
% For numeric citations
\usepackage[backend=biber, style=numeric, sorting=none]{biblatex}
% For alphabetic citations
\usepackage[backend=biber, style=alphabetic]{biblatex}
Basic Usage
Citation Commands
BibLaTeX provides a rich set of citation commands for different contexts:
% In-text citations
\textcite{key} % Einstein (1905)
\textcites{key1}{key2} % Einstein (1905) and Bohr (1913)
% Parenthetical citations
\parencite{key} % (Einstein, 1905)
\parencite[see][p. 5]{key} % (see Einstein, 1905, p. 5)
% Author only
\citeauthor{key} % Einstein
% Year only
\citeyear{key} % 1905
% Title
\citetitle{key} % On the Electrodynamics...
% Full citation in text
\fullcite{key} % Einstein, A. (1905). On the...
% Footnote citation
\footcite{key} % Adds citation in footnote
Multiple Citations
% Multiple citations in one command
\parencite{einstein1905, bohr1913, heisenberg1927}
% Output: (Einstein, 1905; Bohr, 1913; Heisenberg, 1927)
% With individual pre/post notes
\parencites[see][]{einstein1905}[cf.][p. 10]{bohr1913}
% Output: (see Einstein, 1905; cf. Bohr, 1913, p. 10)
% Suppress author
\parencite*{key} % (1905) - author suppressed
\textcite*{key} % Einstein 1905 - no parentheses
Printing the Bibliography
% Basic bibliography
\printbibliography
% With custom title
\printbibliography[title={References}]
% Filter by entry type
\printbibliography[type=article, title={Journal Articles}]
\printbibliography[type=book, title={Books}]
% Filter by keyword
\printbibliography[keyword=primary, title={Primary Sources}]
\printbibliography[notkeyword=primary, title={Secondary Sources}]
% Not cited entries (all entries in .bib file)
\nocite{*} % Include all entries
\printbibliography
Advanced Citation Features
Prenotes and Postnotes
% Postnote (after citation)
\parencite[p. 25]{key} % (Einstein, 1905, p. 25)
\parencite[pp. 25-30]{key} % (Einstein, 1905, pp. 25-30)
\parencite[Chapter 3]{key} % (Einstein, 1905, Chapter 3)
% Prenote and postnote
\parencite[see][p. 25]{key} % (see Einstein, 1905, p. 25)
\parencite[cf.][]{key} % (cf. Einstein, 1905)
% Empty postnote to add prenote only
\textcite[see][]{key} % see Einstein (1905)
Smart Citations
% Automatic capitalization
\Textcite{key} % Einstein (1905) - capital E
\Parencite{key} % (Einstein, 1905)
% Automatic punctuation
\autocite{key} % Adapts to context
% In footnote style: adds footnote
% In author-year: uses \parencite
% In numeric: uses \cite
% Smart cite (adds punctuation tracker)
As shown by \smartcite{key}, the theory...
% Properly handles: As shown by (Einstein, 1905), the...
Cross-references
% In .bib file
@incollection{chapter1,
author = {Smith, John},
title = {Introduction},
crossref = {book1}
}
@book{book1,
editor = {Doe, Jane},
title = {Collection of Papers},
year = {2020},
publisher = {Academic Press}
}
% Automatically inherits book information
\cite{chapter1}
% Output: Smith (2020, in Doe 2020)
Custom Citation Commands
% Define custom citation style
\DeclareCiteCommand{\customcite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\printnames{labelname} (\printfield{year})}
{\multicitedelim}
{\usebibmacro{postnote}}
% Use it
\customcite{key} % Uses your custom format
% Shorthand citation
\newcommand{\scite}[1]{\parencite[see][]{#1}}
\scite{key} % (see Einstein, 1905)
Customization Options
Formatting Options
% Name formatting
\DeclareNameAlias{author}{family-given} % Lastname, Firstname
\DeclareNameAlias{author}{given-family} % Firstname Lastname
% Title formatting
\DeclareFieldFormat[article]{title}{#1} % No quotes
\DeclareFieldFormat[book]{title}{\mkbibemph{#1}} % Italic
% URL formatting
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{doi}{DOI: \url{https://doi.org/#1}}
% Date format
\DefineBibliographyStrings{english}{
january = {Jan.},
february = {Feb.},
% ... abbreviate months
}
% Punctuation
\renewcommand{\newunitpunct}{\addcomma\space} % Use commas
\renewcommand{\finentrypunct}{} % No period at end
Sorting Options
% Load with sorting option
\usepackage[sorting=nyt]{biblatex} % name, year, title
\usepackage[sorting=nty]{biblatex} % name, title, year
\usepackage[sorting=ynt]{biblatex} % year, name, title
\usepackage[sorting=none]{biblatex} % citation order
\usepackage[sorting=debug]{biblatex} % entry order (debug)
% Custom sort scheme
\DeclareSortingScheme{custom}{
\sort{\field{author}}
\sort{\field{year}}
\sort{\field{title}}
}
\usepackage[sorting=custom]{biblatex}
Language Support
% Load babel for language support
\usepackage[english, french, german]{babel}
\usepackage[autolang=other]{biblatex}
% Entries switch language automatically
@book{german-book,
author = {Müller, Hans},
title = {Deutsche Titel},
language = {german},
year = {2020}
}
% Custom strings per language
\DefineBibliographyStrings{german}{
andothers = {et al.},
references = {Literaturverzeichnis}
}
Entry Types and Fields
Common Entry Types
| Entry Type |
Required Fields |
Use Case |
@article |
author, title, journal, year |
Journal articles |
@book |
author/editor, title, year, publisher |
Books |
@inproceedings |
author, title, booktitle, year |
Conference papers |
@phdthesis |
author, title, school, year |
PhD dissertations |
@online |
author/editor, title, year, url |
Websites, online resources |
@inbook |
author, title, chapter/pages, publisher, year |
Book chapters |
Complete Entry Example
@article{einstein1905,
author = {Einstein, Albert},
title = {On the Electrodynamics of Moving Bodies},
journal = {Annalen der Physik},
year = {1905},
volume = {17},
number = {10},
pages = {891--921},
doi = {10.1002/andp.19053221004},
language = {english},
keywords = {relativity, physics}
}
@book{hawking1988,
author = {Hawking, Stephen W.},
title = {A Brief History of Time},
subtitle = {From the Big Bang to Black Holes},
year = {1988},
publisher = {Bantam Books},
location = {New York},
isbn = {0-553-38016-8},
keywords = {cosmology}
}
@online{wiki2024,
author = {{Wikipedia contributors}},
title = {Quantum Mechanics},
year = {2024},
url = {https://en.wikipedia.org/wiki/Quantum_mechanics},
urldate = {2024-01-15},
organization = {Wikipedia, The Free Encyclopedia}
}
Special Fields
@article{advanced,
author = {Smith, John and Doe, Jane},
title = {Advanced Research},
journal = {Journal Name},
year = {2024},
% Additional identifiers
doi = {10.1234/example},
eprint = {2401.12345}, % arXiv ID
eprinttype = {arxiv},
% Additional information
annotation = {Important paper on topic X},
abstract = {This paper discusses...},
keywords = {primary, experimental},
% Version and revision
version = {2},
% URLs and dates
url = {https://example.com/paper.pdf},
urldate = {2024-01-15}
}
Multiple Bibliographies
Separate Bibliographies by Type
\documentclass{article}
\usepackage[defernumbers=true]{biblatex}
\addbibresource{references.bib}
\begin{document}
\section{Content}
Some citations here...
% Print separate bibliographies
\printbibliography[type=book, title={Books}]
\printbibliography[type=article, title={Journal Articles}]
\printbibliography[type=online, title={Online Sources}]
\end{document}
Bibliography Categories
% Define categories
\DeclareBibliographyCategory{primary}
\DeclareBibliographyCategory{secondary}
% Assign entries to categories
\addtocategory{primary}{einstein1905, bohr1913}
\addtocategory{secondary}{hawking1988}
% Print by category
\printbibliography[category=primary, title={Primary Sources}]
\printbibliography[category=secondary, title={Secondary Sources}]
Per-Chapter Bibliographies
\documentclass{book}
\usepackage[refsection=chapter]{biblatex}
\addbibresource{references.bib}
\begin{document}
\chapter{First Chapter}
\begin{refsection}
Content and citations...
\printbibliography[heading=subbibliography]
\end{refsection}
\chapter{Second Chapter}
\begin{refsection}
More content and citations...
\printbibliography[heading=subbibliography]
\end{refsection}
\end{document}
Frequently Asked Questions
Should I use BibLaTeX or BibTeX?
For new documents, use BibLaTeX. It offers better Unicode support, modern features, and active development. Use BibTeX only if required by a journal or for compatibility with legacy documents. BibLaTeX is the recommended solution for theses, dissertations, and modern academic writing.
Can I use my existing .bib files with BibLaTeX?
Yes! Your BibTeX .bib files work with BibLaTeX without modification. Simply update your LaTeX document to use BibLaTeX package commands and compile with Biber.
How do I configure my editor to use Biber?
TeXstudio: Options → Configure → Build → Default Bibliography Tool → Select "Biber"
Overleaf: Automatically detects BibLaTeX and uses Biber
TeXworks: Edit → Preferences → Typesetting → Add custom tool with biber
VS Code (LaTeX Workshop): Extension uses Biber automatically when it detects BibLaTeX
What's the difference between \cite, \parencite, and \textcite?
\cite{key} is the basic command (output depends on style). \parencite{key} always produces parenthetical citations like (Einstein, 1905). \textcite{key} produces in-text citations like "Einstein (1905)". Use \textcite when the author is part of the sentence.
How do I customize the bibliography appearance?
BibLaTeX uses LaTeX commands for customization, unlike BibTeX's .bst files. Use \DeclareFieldFormat, \renewbibmacro, and similar commands in your preamble. See the BibLaTeX documentation for extensive customization examples.
Can I have multiple bibliographies in one document?
Yes! Use filters like \printbibliography[type=article], categories, or refsections for per-chapter bibliographies. This is much easier in BibLaTeX than traditional BibTeX.
Why isn't Biber working?
Common causes: (1) Version mismatch between BibLaTeX and Biber - update both, (2) Corrupted cache - delete with biber --cache, (3) Wrong working directory - run from same folder as .tex file, (4) File encoding issues - ensure UTF-8 encoding for .bib files.