Introduction
Professional academic and technical documents require properly formatted bibliographies. LaTeX provides powerful bibliography management through BibTeX and Biber systems, supporting various citation styles and automated formatting.
This guide covers bibliography management from basic citations to advanced customization, helping you create perfectly formatted reference sections.
Bibliography Systems Overview
BibTeX vs Biber
| Feature | BibTeX | Biber |
|---|---|---|
| Encoding | 7-bit ASCII | UTF-8 full support |
| Sorting | Limited | Advanced |
| Styles | Traditional | UTF-8 aware |
| Complex fields | Basic | Full support |
For modern documents with non-ASCII characters, Biber is recommended.
Package Selection
% Traditional BibTeX
\usepackage{natbib}
\bibliographystyle{plainnat}
% Modern Biber (recommended)
\usepackage[backend=biber]{biblatex}
\addbibresource{references.bib}
BibTeX Database Structure
Database File Format
Create a .bib file with reference entries:
@article{smith2024,
author = {John Smith and Jane Doe},
title = {Understanding Machine Learning},
journal = {Journal of AI Research},
year = {2024},
volume = {45},
pages = {123--145},
doi = {10.1234/jair.2024.001}
}
@book{doe2023,
author = {Jane Doe},
title = {Deep Learning Fundamentals},
publisher = {Academic Press},
year = {2023},
edition = {2nd},
address = {Cambridge, MA}
}
@incollection{brown2022,
author = {Bob Brown},
title = {Neural Networks},
booktitle = {Handbook of AI},
publisher = {Springer},
year = {2022},
editor = {Alice Green},
pages = {100--150}
}
@online{latex2026,
author = {LaTeX Project},
title = {LaTeX Documentation},
url = {https://www.latex-project.org},
year = {2026},
urldate = {2026-01-15}
}
@phdthesis{white2021,
author = {White, Sarah},
title = {Advanced Optimization Methods},
school = {MIT},
year = {2021},
type = {PhD thesis}
}
Entry Types
Common entry types:
@article: Journal articles@book: Complete books@incollection: Book chapters@inproceedings: Conference papers@techreport: Technical reports@mastersthesis/@phdthesis: Theses@online: Web resources
Field Types
Required fields vary by type, but commonly:
author: Required for mosttitle: Requiredyear: Requiredjournal/booktitle: For articles/chapterspublisher: For books
Using Natbib with BibTeX
Basic Citations
\usepackage{natbib}
\bibliographystyle{plainnat}
\begin{document}
According to \cite{smith2024}, machine learning is evolving rapidly.
Multiple studies \citep{smith2024,doe2023,brown2022} confirm this.
As shown in earlier work \citealt{smith2024}...
See \citetext{smith2024} for details.
\end{document}
\bibliography{references}
Citation Styles
% Author-year (default)
\citep{key} % (Smith, 2024)
\cite{key} % Smith (2024)
% Numbered
\setcitestyle{numbers}
\citep{key} % [1]
% Superscript
\setcitestyle{super}
\citep{key} %ยน
Customizing Natbib
\usepackage[authoryear,square]{natbib}
\setcitestyle{authoryear,round,comma,semicolon}
Options:
authoryearornumbers: Citation styleround,square,angle: Bracket stylecomma: Separate multiple citations with commassemicolon: Separate with semicolons
Using Biber with biblatex
Basic Setup
\usepackage[backend=biber, style=authoryear]{biblatex}
\addbibresource{references.bib}
\begin{document}
\printbibliography
\end{document}
Compilation
pdflatex document
biber document
pdflatex document
pdflatex document
Citation Commands
% Basic citations
\Cite{smith2024} % Capitalized if needed
\textcite{smith2024} % In-text citation
\author{smith2024}Cite % Author name only
\Citeyear{smith2024} % Year only
\footcite{smith2024} % Footnote citation
Bibliography Styles
Author-Year Styles
\usepackage[backend=biber, style=authoryear]{biblatex}
\usepackage[authoryear]{natbib}
Creates: (Smith, 2024) or Smith (2024)
Numbered Styles
\usepackage[backend=biber, style=numeric]{biblatex}
\bibliographystyle{plain}
Creates: [1], [2], [3]
IEEE Style
\usepackage[backend=biber, style=ieee]{biblatex}
Creates: [1], suitable for engineering papers.
APA Style
\usepackage[backend=biber, style=apa]{biblatex}
Creates: American Psychological Association format.
Bibliography Customization
Custom Entries
% Add to preamble
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{author/editor}%
\newunit
\usebibmacro{title}%
\newunit
\usebibmacro{booktitle}%
\newunit
\printfield{edition}%
\newunit
\usebibmacro{publisher+location+date}%
\newunit
\usebibmacro{pages}%
\finentry
}
Sorting
\usepackage[backend=biber, sorting=nyt]{biblatex}
% nyt: name, year, title
% ynt: year, name, title
% anyt: alphabetical, year, title
Bibliography Sections
\printbibliography[heading=bibintoc]
\printbibliography[type=article, title={Journal Articles}]
\printbibliography[type=book, title={Books}]
\printbibliography[keyword=ai, title={AI References}]
Multiple Bibliographies
By Type
\printbibliography[type=article]
\printbibliography[type=book]
\printbibliography[type=inproceedings]
By Category
% In .bib file
@article{key,
...,
keywords = {methodology}
}
% In document
\printbibliography[keyword=methodology, title={Methodology References}]
By Chapter
% In preamble
\defbibheading{chapter}[\bibname]{%
\chapter{#1}%
}
% In document
\chapter{Theory}
\printbibliography[heading=chapter]
\chapter{Applications}
\printbibliography[heading=chapter]
Handling Special Cases
Multiple Authors
@book{key,
author = {Smith, John and Doe, Jane and Brown, Bob},
}
Corporate Authors
@online{key,
author = {{LaTeX Project}},
title = {LaTeX Documentation},
}
Missing Fields
@book{key,
author = {Smith, John},
title = {Book Title},
year = {2024},
note = { Forthcoming},
}
Citation Styles
Custom Bibliography Labels
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{labelname}
}
\labelelement{
\field{year}
}
}
URL and DOI Handling
\usepackage[backend=biber, style=authoryear, url=false]{biblatex}
\ExecuteBibliographyOptions{doi=false, url=false}
% For specific entries
@online{key,
...,
url = {https://example.com},
urldate = {2026-01-15}
}
Best Practices
Database Organization
- Use consistent formatting in .bib files
- Include all relevant fields for each entry
- Use key names you’ll remember (authorYear)
- Group related references with keywords
- Export from reference managers (Zotero, Mendeley)
Citation Consistency
- Use same citation style throughout
- Check all citations appear in bibliography
- Verify formatting matches style guide
Troubleshooting
Missing Citations
# Ensure proper build sequence
pdflatex document
biber document
pdflatex document
pdflatex document
Encoding Issues
% Ensure UTF-8
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% In .bib file, use:
@string{jan = {January}}
Sorting Problems
% Force sorting
\usepackage[backend=biber, sorting=nyt]{biblatex}
Conclusion
LaTeX’s bibliography systems provide powerful, flexible reference management. Whether using traditional BibTeX with natbib or modern biblatex with Biber, you can achieve perfectly formatted bibliographies automatically.
The key is organizing your .bib database consistently and selecting appropriate citation styles. With these tools, managing hundreds of references becomes straightforward.
Comments