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
andlocation
are list fields: you could still use, for example,address = {Berlin, New York}
(withaddress
being an alias forlocation
), but then you cannot make use of the optionmaxitems
(maxitems=1
would still give you “Berlin, New York”); in order to make use of this option, you would have to change toaddress = {Berlin and New York}
(orlocation
instead ofaddress
), which would then give “Berlin et al.” withmaxitems=1
.A similar case are some options regarding the appearance of date specifications: instead of using the fields
year
,month
andday
, you should use thedate
field with an ISO formatted date, e.g.date = {2010}
orurldate = {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.