What to do to switch to biblatex?

I've made the switch from natbib to biblatex two years ago, so I should be able to answer this. That said, Seamus, Simon Byrne, and domwass have already made lots of good points.

(For anyone still asking "Why should I use biblatex?": See this answer [shameless plug].)

LaTeX document

With natbib, a model LaTeX document would look as follows:

\documentclass{<someclass>}

\usepackage[<options>]{natbib}

\begin{document}

A bare citation command: \citep{<key>}.

A citation command for use in the flow of text: As \citet{<key>} said \dots

\bibliographystyle{<somestyle>}
\bibliography{<mybibfile>}% Selects .bib file AND prints bibliography

\end{document}

With biblatex and its built-in styles, this changes to:

\documentclass{<someclass>}

\usepackage[<language options>]{babel}% Recommended
\usepackage{csquotes}% Recommended

\usepackage[style=<somebiblatexstyle>,<other options>]{biblatex}

% \bibliography{<mybibfile>}% ONLY selects .bib file; syntax for version <= 1.1b
\addbibresource[<options for bib resources>]{<mybibfile>.bib}% Syntax for version >= 1.2

\begin{document}

A bare citation command: \autocite{<key>}.

A citation command for use in the flow of text: As \textcite{<key>} said \dots

\printbibliography[<options for printing>]

\end{document}

Note that I used \autocite instead of \parencite which is the actual counterpart of natbib's \citep. \autocite is a high-level citation command that will be translated into the low-level bare citation command appropriate for the chosen style - e.g. it will enclose a citation in parentheses in authoryear styles, but produce a footnote citation in authortitle styles. Even more, it will automatically move trailing punctuation.

For some of the custom (not already built-in) biblatex styles, additional preamble adjustments may be advisable - see the example provided by Seamus for biblatex-apa.

As Simon Byrne has mentioned: If you don't want to change every instance of \citep and \citet in every document to its biblatex counterpart, use the natbib=true compatibility option.

Typically, you'll select one or several local .bib files as your bibliographic database; however, \addbibresource also allows to load remote resources and other data types (e.g., ris).

.bib file

domwass has already mentioned that changes to your .bib files are not mandatory, but you'll miss some of the goodies offered by biblatex. When I switched to biblatex, I changed my address fields to location and my journal fields to journaltitle. I also added hyphenation fields in order to be able to switch languages on a per-entry basis in the bibliography.

Biber

biblatex will work for the most part with traditional BibTeX and its 8-bit version bibtex8, but I recommend the use of Biber (the default backend since biblatex v2.0) for the following reasons:

  • Full unicode support.

  • No capacity issues. (In contrast, when using BibTeX with bibliographies of about one hundred entries, I've run into errors disguised as obscure warnings - see section 2.4.2 of the biblatex manual for details.)

  • Multiple or subdivided bibliographies will always be processed in a single pass.

  • Many biblatex features introduced since v1.1 (e.g., advanced name disambiguation, smart crossref data inheritance, configurable sorting schemes, dynamic datasource modification) are "Biber only".

Biber is included in TeXLive and MiKTeX; latexmk also supports the use of Biber.


Converting from natbib is pretty straightforward: the minimal requirements are in the header:

\usepackage[natbib=true]{biblatex}
\bibliography{dotbibfile}

and where you want the bibliography:

\printbibliography

The natbib option will automatically create the relevant aliases for the \citep and \citet commands, so you can use them as before. If your file has previously been compiled using natbib, you may need to delete some of the auxiliary files created by LaTeX and BibTeX (.aux, .bbl, .blg) for it to work properly.

Regarding coauthors, the main issue is that everyone uses the same version (as the package is still being developed, some of the options have changed between versions). Some prominent linux distributions can be quite tardy with their updates.


Just to add to what was previously said: Although you do not need to change anything in your .bib file in order to use biblatex, you will have to make some changes if you would like to benefit from some features that biblatex provides. For example (this is not meant to be a complete list):

  • publisher and location are list fields: you could still use, for example, address = {Berlin, New York} (with address being an alias for location), but then you cannot make use of the option maxitems (maxitems=1 would still give you “Berlin, New York”); in order to make use of this option, you would have to change to address = {Berlin and New York} (or location instead of address), which would then give “Berlin et al.” with maxitems=1.

  • A similar case are some options regarding the appearance of date specifications: instead of using the fields year, month and day, you should use the date field with an ISO formatted date, e.g. date = {2010} or urldate = {2010-08-11}. Then, biblatex can make use of some options like “date=short” etc.

  • biblatex offers some additional fields that other packages do not provide, e.g. subtitle, titleaddon, maintitle for multi-volume works, editortype, and many more.

Tags:

Biblatex