biblatex
SKILL.md
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) |
Weekly Installs
6
Repository
igbuend/grimbardGitHub Stars
4
First Seen
Feb 19, 2026
Security Audits
Installed on
codex6
kimi-cli6
openclaw6
cursor6
opencode6
gemini-cli5