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 and biber are external programs that process bibliography information and act (roughly) as the interface between your .bib file and your LaTeX document.

  • natbib and biblatex are LaTeX packages that format citations and bibliographies; natbib works only with bibtex, while biblatex (at the moment) works with both bibtex and biber.)

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 called custom-bib, which provides a utility called makebst. This utility is menu-driven and allows you to interactively generate custom bibliography style files. Bibliography style files generated with makebst are very stable and (unsurprisingly, given the authorship) work very well with natbib'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 expects natbib. Such journal may not accept biblatex 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 the biber replacement for bibtex).
    • fine control over your own bibliography styles using regular latex methods.

Author-year and numeric citations

  • biblatex provides the same functionality as natbib for author-year and numeric citations common in the natural and social sciences. It can therefore be used as a replacement for natbib.

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 use bibtex as a backend, it does no formatting with .bst files, but only uses bibtex 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 (Brazil­ian As­so­ci­a­tion of Tech­ni­cal 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 own natbib 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 using biblatex)
  • 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 with natbib.

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.

enter image description here

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:

enter image description here enter image description here