biblatex
biblatex + biber — Modern Bibliography Management
CTAN: https://ctan.org/pkg/biblatex
Manual: texdoc biblatex
Setup
\usepackage[
backend=biber, % modern backend (not bibtex)
style=authoryear, % citation + bibliography style
sorting=nyt, % name-year-title
maxbibnames=99, % show all authors in bibliography
maxcitenames=2, % truncate in citations
]{biblatex}
\addbibresource{references.bib} % .bib file (include extension!)
% At end of document:
\printbibliography
Compilation Workflow
pdflatex main.tex # 1. Generate .bcf file
biber main # 2. Process bibliography (no extension!)
pdflatex main.tex # 3. Resolve references
pdflatex main.tex # 4. Final pass (page numbers, back-refs)
Or with latexmk: latexmk -pdf main.tex (handles everything automatically).
.bib File Format
@article{einstein1905,
author = {Einstein, Albert},
title = {On the Electrodynamics of Moving Bodies},
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},
isbn = {0-201-13447-0},
}
@inproceedings{smith2023,
author = {Smith, John and Doe, Jane},
title = {Deep Learning for Everything},
booktitle = {Proceedings of ICML},
year = {2023},
pages = {100--110},
doi = {10.1234/icml.2023.100},
}
@online{wiki2024,
author = {{Wikipedia contributors}},
title = {LaTeX},
url = {https://en.wikipedia.org/wiki/LaTeX},
urldate = {2024-01-15},
year = {2024},
}
@thesis{jones2020,
author = {Jones, Alice},
title = {Quantum Computing Applications},
type = {phdthesis},
institution = {MIT},
year = {2020},
}
@manual{pgfmanual,
author = {Tantau, Till},
title = {The TikZ and PGF Packages},
year = {2023},
url = {https://ctan.org/pkg/pgf},
}
Common Entry Types
| Type | Use for |
|---|---|
@article |
Journal articles |
@book |
Books |
@inproceedings |
Conference papers |
@incollection |
Chapter in edited book |
@thesis |
PhD/Master's thesis (use type field) |
@online |
Websites, web resources |
@manual |
Technical documentation |
@techreport |
Technical reports |
@misc |
Anything else |
@unpublished |
Unpublished manuscripts |
@patent |
Patents |
@software |
Software packages |
Common Fields
| Field | Description |
|---|---|
author |
Author(s) — {Last, First and Last, First} |
title |
Title — protect caps with {NASA} |
year/date |
Publication year or full date (2023-06-15) |
journal |
Journal name |
booktitle |
Conference/collection title |
publisher |
Publisher |
volume/number |
Volume and issue |
pages |
Page range (10--20) |
doi |
Digital Object Identifier |
url |
Web URL |
urldate |
Access date for online sources |
isbn/issn |
Identifiers |
editor |
Editor(s) |
edition |
Edition ({2nd}) |
note |
Additional notes |
abstract |
Abstract (not printed by default) |
keywords |
Keywords for filtering |
langid |
Language (english, german) — for hyphenation |
Author Name Formats
author = {Last, First}, % single
author = {Last, First and Last, First}, % multiple
author = {Last, Jr., First}, % suffix
author = {{World Health Organization}}, % corporate (double braces)
author = {da Silva, João}, % name particles
Citation Commands
| Command | Output (authoryear) | Output (numeric) |
|---|---|---|
\cite{key} |
Einstein 1905 | [1] |
\parencite{key} |
(Einstein 1905) | [1] |
\textcite{key} |
Einstein (1905) | Einstein [1] |
\autocite{key} |
Style-dependent | Style-dependent |
\fullcite{key} |
Full bibliography entry inline | — |
\footcite{key} |
Footnote citation | — |
\citeauthor{key} |
Einstein | Einstein |
\citeyear{key} |
1905 | 1905 |
\citetitle{key} |
On the Electro... | — |
With Options
\parencite[see][p.~42]{einstein1905}
% Output: (see Einstein 1905, p. 42)
\parencite[p.~42]{einstein1905}
% Output: (Einstein 1905, p. 42)
% Multiple citations
\parencite{einstein1905, knuth1984}
% Output: (Einstein 1905; Knuth 1984)
Bibliography Styles
| Style | Citation | Bibliography | Use for |
|---|---|---|---|
authoryear |
Einstein (1905) | Alphabetical by author | Humanities, social sciences |
numeric |
[1] | Numbered by citation order | Sciences, engineering |
alphabetic |
[Ein05] | Alphabetical labels | Math, CS |
authortitle |
Einstein, "On the..." | Author-title | Humanities |
verbose |
Full cite in footnotes | Detailed | Law, history |
ieee |
[1] | IEEE format | Engineering (needs biblatex-ieee) |
apa |
(Einstein, 1905) | APA 7th ed | Psychology (needs biblatex-apa) |
chicago-authordate |
(Einstein 1905) | Chicago | Humanities (needs biblatex-chicago) |
nature |
¹ | Nature format | Natural sciences (biblatex-nature) |
% For IEEE:
\usepackage[style=ieee, backend=biber]{biblatex}
% For APA:
\usepackage[style=apa, backend=biber]{biblatex}
% Also needs: \DeclareLanguageMapping{english}{english-apa}
Sorting Options
| Value | Sorting order |
|---|---|
nty |
Name, title, year (default for authoryear) |
nyt |
Name, year, title |
none |
Citation order (for numeric) |
ynt |
Year, name, title |
anyt |
Alphabetic label, name, year, title |
Printing the Bibliography
% Simple
\printbibliography
% With title
\printbibliography[title={References}]
% As section (not chapter)
\printbibliography[heading=subbibliography]
% Filtered
\printbibliography[type=article, title={Journal Articles}]
\printbibliography[keyword=primary, title={Primary Sources}]
\printbibliography[notkeyword=primary, title={Secondary Sources}]
Multiple Bibliographies
% By type
\printbibliography[type=book, heading=subbibliography, title={Books}]
\printbibliography[type=article, heading=subbibliography, title={Articles}]
% By keyword
% In .bib: keywords = {primary}
\printbibliography[keyword=primary, title={Primary Sources}]
\printbibliography[notkeyword=primary, title={Other Sources}]
% Per chapter (refsection)
\begin{refsection}
\chapter{First Chapter}
Text \cite{something}.
\printbibliography[heading=subbibliography]
\end{refsection}
Useful Options
\usepackage[
backend=biber,
style=authoryear,
sorting=nyt,
maxbibnames=99, % all authors in bibliography
maxcitenames=2, % "Smith et al." after 2 authors
mincitenames=1, % show at least 1 before "et al."
uniquelist=false, % don't disambiguate with more names
uniquename=false, % don't disambiguate with initials
dashed=false, % repeat author name (vs dash for same author)
doi=true, % print DOIs
isbn=false, % hide ISBNs
url=false, % hide URLs (except @online)
eprint=false, % hide eprint info
date=year, % show only year
]{biblatex}
Comparison: biblatex vs natbib/BibTeX
| Feature | biblatex + biber | natbib + BibTeX |
|---|---|---|
| Unicode | ✅ Full support | ❌ Limited |
| Styles | Flexible (LaTeX macros) | .bst files (hard to edit) |
| Entry types | More (@online, @software) |
Fewer |
| Filtering | keyword, type filters |
Manual |
| Multiple bibliographies | Built-in | Needs multibib/etc |
| Fine-grained citations | \textcite, \parencite, etc |
\citet, \citep |
| Date handling | Full dates, ranges | Year only |
| Name handling | Sophisticated | Basic |
| Compilation | pdflatex → biber → pdflatex² | pdflatex → bibtex → pdflatex² |
| Journal requirement | Some require BibTeX | ✅ Traditional |
Recommendation: Use biblatex for new documents. Use natbib only if a journal template requires it.
Common Pitfalls
| Problem | Cause | Fix |
|---|---|---|
| "I found no \citation commands" | biber not run | Run biber after first pdflatex |
| "I found no \bibstyle command" | Mixing bibtex with biblatex | Use biber, not bibtex |
| Citation shows [key] | biber hasn't run / error | Check biber log, re-run |
.bib file not found |
Missing extension in \addbibresource |
Include .bib extension |
| Unicode in .bib fails | Using BibTeX backend | Use backend=biber |
| Author "et al." wrong | maxcitenames too low | Adjust maxcitenames |
| Style not found | Missing package | Install biblatex-ieee, biblatex-apa, etc. |
| Refsection empty | Citations outside refsection | Each refsection is independent |
| Name sorting wrong | Particles (van, de) | Use \DeclareNameAlias or check useprefix |
| "Runaway argument" | Missing comma in .bib | Check .bib syntax (commas between fields) |
More from igbuend/grimbard
tikz
LaTeX TikZ/PGF package for programmatic vector graphics and diagrams. Use when helping users draw flowcharts, trees, graphs, automata, circuits, geometric figures, or any custom diagram in LaTeX.
91latex
Comprehensive LaTeX reference for document creation, formatting, mathematics, tables, figures, bibliographies, and compilation. Use when helping users write, edit, debug, or compile LaTeX documents.
37pgfplots
LaTeX pgfplots package for data visualization and plotting. Use when helping users create line plots, bar charts, scatter plots, histograms, 3D surfaces, or any scientific/data plot in LaTeX.
31ethical-hacking-ethics
Legal and ethical guidelines for bug bounties, pentesting, and security research. Use when conducting authorized security testing.
12codebase-discovery
Generate security-focused DISCOVERY.md for code review and threat modeling. Use when assessing unfamiliar codebases.
11weak-encryption-anti-pattern
Security anti-pattern for weak encryption (CWE-326, CWE-327). Use when generating or reviewing code that encrypts data, handles encryption keys, or uses cryptographic modes. Detects DES, ECB mode, static IVs, and custom crypto implementations.
11