bibtex vs. biber and biblatex vs. natbib
(The following is an expansion of the biblatex tag entry, which I helped to write).
Some terminology
It's first off important to realize that the term BibTeX is often used to refer to various distinct things, and this can lead to some confusion. For example we typically tell new users to "use bibtex for your bibliography" which usually just means don't do it by hand, but instead store your references in a .bib
file and use some automatic method of formatting citations and bibliography. Additionally, we also talk about a "bibtex file" (i.e. a .bib
file). Both of these uses are in reality quite vague, and part of the reason for this question is to distinguish among them more carefully.
So in this question we will use the following terms:
bibtex
andbiber
are external programs that process bibliography information and act (roughly) as the interface between your.bib
file and your LaTeX document.natbib
andbiblatex
are LaTeX packages that format citations and bibliographies;natbib
works only withbibtex
, whilebiblatex
(at the moment) works with bothbibtex
andbiber
.)
For those users who already use natbib
, and are contemplating a switch, the following question will also be useful: What to do to switch to biblatex?.
natbib
The natbib
package has been around for quite a long time, and although still maintained, it is fair to say that it isn't being further developed. It is still widely used, and very reliable.
Advantages
- It has a wide range of already developed
.bst
files which conform to many journals and publishers in the sciences. - The author of the
natbib
package has written a package calledcustom-bib
, which provides a utility calledmakebst
. This utility is menu-driven and allows you to interactively generate custom bibliography style files. Bibliography style files generated withmakebst
are very stable and (unsurprisingly, given the authorship) work very well withnatbib
's citation commands. - The resulting bibliography code can be pasted directly into a document (often required for journal submissions). See Biblatex: submitting to a journal.
Disadvantages
- Because it depends on
bibtex
, its interface requires.bst
files, which use a postfix language that is difficult to program in for most people. This means that making even minor modifications to an existing style to meet particular formatting requirements can be quite difficult. - It is designed especially for Author-Year and (to a lesser extent) numeric citation styles that are common in the natural and social sciences. It is not able to do traditional humanities style citation styles such as Author/Title or footnote style citations and bibliographies (including various sorts of ibid tracking).
- Multiple bibliographies in a single document or categorized bibliographies require extra packages.
- By depending on
bibtex
as a backend, it inherits all of its disadvantages (see below).
You might want to use natbib
if:
- there is a
.bst
file already created for the specific journal you submitting a paper to; - a journal accepts
latex
submissions and requires or expectsnatbib
. Such journal may not acceptbiblatex
for the bibliography.
biblatex
The biblatex
package is being actively developed in conjunction with the biber
backend.
Advantages
Humanities style citations
biblatex
is almost required if you need any of the following:- humanities style citations (author-title type schemes; citations using ibid etc.)
- a much wider array of BibTeX database fields (again, especially suited for the humanities).
- Unicode encoded
.bib
files (usable with thebiber
replacement forbibtex
). - fine control over your own bibliography styles using regular
latex
methods.
Author-year and numeric citations
biblatex
provides the same functionality asnatbib
for author-year and numeric citations common in the natural and social sciences. It can therefore be used as a replacement fornatbib
.
General considerations
All formatting of citations and bibliography entries is done using regular LaTeX macros. As a consequence, regular LaTeX users are able to make modifications to existing styles quite easily.
biblatex
also has built in hooks for most kinds of modifications.Even though
biblatex
can usebibtex
as a backend, it does no formatting with.bst
files, but only usesbibtex
for sorting.Multiple bibliographies and categorized bibliographies are supported directly.
Available biblatex styles
In addition to the standard styles that are documented in the biblatex
manual, CTAN currently lists the following extra style packages for biblatex
:
biblatex-abnt
ABNT (Brazilian Association of Technical Norms) style for biblatex.biblatex-apa
APA style for biblatex.biblatex-chem
Chemistry styles for biblatex.biblatex-chicago
Chicago style files for biblatex.biblatex-dw
Humanities styles for biblatex.biblatex-historian
A Biblatex style based on Turabian.biblatex-ieee
IEEE style files for biblatex.biblatex-jura
Biblatex stylefiles for German legal literature.biblatex-mla
MLA style files for biblatex.biblatex-nature
Biblatex support for the journal Nature.biblatex-philosophy
Styles for using biblatex for work in philosophy.biblatex-science
Biblatex support for the journal Science.
Many new journal styles are being created for biblatex
. Given the flexibility of adapting biblatex
styles, in many cases it may be quite easy to modify an existing style to accommodate a particular journal's style.
Disadvantages
- Journals and publishers may not accept documents that use
biblatex
if they have a house style with its ownnatbib
compatible.bst
file. - It is not trivial to include the bibliographies created by
biblatex
into a document (as many publishers require.) See Biblatex: submitting to a journal.
bibtex vs. biber
Many of the disadvantages of natbib
are a consequence of its reliance on bibtex
for formatting. This is the main (huge) distinction between the natbib
and biblatex
, as the latter, even when it uses bibtex
as the backend, doesn't use it for formatting, only for sorting. However, biblatex
is also designed to use biber
, a new backend that adds further functionality to biblatex
.
bibtex
Advantages
- very stable and widely used
Disadvantages
- very hard to modify bibliography styles without learning a different language (if using
natbib
; not an issue if usingbiblatex
) - very poor cross-language support and non-European script support. Non-ASCII characters are best avoided. See How to write "ä" and other umlauts and accented letters in bibliography for guidance on how to write characters with accents and diacritics.
biber
Advantages
- able to deal with many more entry and field types in the
.bib
file. - able to deal with UTF-8 encoded
.bib
files. - better sorting control.
Disadvantages
- Only works with
biblatex
, not withnatbib
.
Differences between .bib
files
As noted at the beginning of this answer, we tend to use the term bibtex
file to refer to the .bib
file itself, which leads to the assumption that tools that manipulate .bib
files are only available to bibtex
users and not biber
users. This is simply not the case: tools designed for manipulating .bib
files such as reference managers and various .bib
file generation/manipulation tools can be used.
It is the case, however, that as you transition to using all the features of biber
/biblatex
you may find certain differences in the .bib
files become more relevant.
A separate question Compatibility of bibtex and biblatex bibliography files? explores some of the differences between traditional bibtex
.bib
files and .bib
files that have been adapted for use with biber
and biblatex
.
Here is a more visual approach based on Alan's great answer. This might complete his explanations with a more visual (and "for dummies") approach.
To use your database (i.e. your .bib
file) within your LaTeX document, you need an external program to process it — that is, to transform your .bib
file into a .tex
understandable one.
Therefor, you can use either biber
or BibTeX
. They both use your .bib
file as input, even if some of its features/fields might be available for biber
only (e.g. utf8
encoding, the fields crossref
, urldate
, ...).
To display your bibliography and use citing commands, you need to use a LaTeX package. You can use either biblatex
, or natbib
. With the latter, your .bib
file need to be processed with BibTeX
. But if you use biblatex
, you can process your .bib
file either with biber
, or with BibTeX
.
Note that, as mentioned by PLK in Compatibility of bibtex and biblatex bibliography files?, biber
supports other database file format than .bib
(e.g. native integration of Zotero, Mendeley, etc.).
Instead of pdflatex
one can use lulatex
or xelatex
: