Skip to main content
โšก Calmops

LaTeX Bibliography Management: BibTeX, Biber, and Natbib

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 most
  • title: Required
  • year: Required
  • journal / booktitle: For articles/chapters
  • publisher: 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:

  • authoryear or numbers: Citation style
  • round, square, angle: Bracket style
  • comma: Separate multiple citations with commas
  • semicolon: 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

  1. Use consistent formatting in .bib files
  2. Include all relevant fields for each entry
  3. Use key names you’ll remember (authorYear)
  4. Group related references with keywords
  5. 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.

Resources

Comments