How to Switch from natbib to biblatex Without Breaking Your Document
Switching from natbib to biblatex unlocks modern citation features like footnote citations, multiple bibliographies, and full Unicode support. The migration is straightforward if you follow a systematic approach. This guide walks you through each step so nothing breaks. Bibby AI can assist with this migration by highlighting incompatible commands as you convert.
Replace Package Loading and Bibliography Commands
Swap out the natbib package declaration for biblatex, and replace the bibliography commands at the end of your document:
% BEFORE (natbib):
% \usepackage[authoryear, round]{natbib}
% ... document content ...
% \bibliographystyle{plainnat}
% \bibliography{references}
% AFTER (biblatex):
\usepackage[
backend=biber,
style=authoryear, % Replaces .bst style
natbib=true % KEY: enables \citet and \citep compatibility!
]{biblatex}
\addbibresource{references.bib} % Note: must include .bib extension
\begin{document}
% ... your document content (citations can stay the same!) ...
% BEFORE: \bibliography{references}
% AFTER:
\printbibliography
\end{document}
% COMPILE CHAIN CHANGES:
% Before: pdflatex → bibtex → pdflatex → pdflatex
% After: pdflatex → biber → pdflatex → pdflatex
% (Replace 'bibtex' with 'biber' in your build process)Map Citation Commands (or Use natbib Compatibility)
With natbib=true, most commands work automatically. If you prefer native biblatex commands, here's the mapping:
% With natbib=true in biblatex options, these KEEP WORKING:
% \citet{key} → works (mapped to \textcite)
% \citep{key} → works (mapped to \parencite)
% \citet*{key} → works (mapped to \textcite with full names)
% \citep*{key} → works (mapped to \parencite with full names)
% \citeauthor{key} → works
% \citeyear{key} → works
% OPTIONAL: Convert to native biblatex commands for new features:
% natbib → biblatex native
% \citet{key} → \textcite{key}
% \citep{key} → \parencite{key}
% \citealt{key} → \cite{key}
% \citealp{key} → \cite*{key}
% \citeauthor{key} → \citeauthor{key} (same!)
% \citeyear{key} → \citeyear{key} (same!)
% NEW commands available only in biblatex:
\autocite{key} % Automatically formats based on chosen style
\footcite{key} % Citation in a footnote
\fullcite{key} % Full bibliography entry inline
\citetitle{key} % Just the title
\smartcite{key} % Adapts to context (footnote vs inline)Map Common Bibliography Styles
Replace your .bst file with the equivalent biblatex style option. Delete the \bibliographystyle command entirely:
% Common .bst to biblatex style mappings:
%
% natbib .bst → biblatex style=
% plain → numeric
% plainnat → authoryear
% unsrt → numeric (with sorting=none)
% abbrv → numeric (with abbreviate=true)
% apalike → apa (requires biblatex-apa)
% IEEEtran → ieee
% ACM-Reference-Format → acm (requires biblatex-acm)
% abbrvnat → authoryear (with abbreviate=true)
% Example conversions:
% BEFORE:
% \bibliographystyle{plainnat}
% AFTER:
% style=authoryear
% BEFORE:
% \bibliographystyle{IEEEtran}
% AFTER:
% style=ieee
% BEFORE:
% \bibliographystyle{unsrt}
% AFTER:
\usepackage[
backend=biber,
style=numeric,
sorting=none % Preserves citation order like unsrt
]{biblatex}
% IMPORTANT: Delete the \bibliographystyle{} line entirely!
% biblatex does not use .bst files.💡 Tips
- •The natbib=true option in biblatex is the easiest migration path — it lets you keep \citet and \citep without changes.
- •After switching, delete all auxiliary files (.aux, .bbl, .bcf, .blg) and recompile from scratch to avoid stale cache issues.
- •If your journal requires natbib, don't switch — stick with what the template provides.
- •Bibby AI handles the biber compilation automatically, so you don't need to change any build settings when switching.
Try This in Bibby AI
Write LaTeX faster with AI auto-complete and instant compilation.
Start Writing Free