TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've heard of many different bibliography-related packages/platforms/?. What's the difference between the following, which is good for what tasks, advantages/disadvantages, which one is the most modern, etc.:

  • BibTeX
  • biblatex
  • natbib
  • Biber
  • (If I missed anything important, please just add it here or answer about it)


So far I've just typed in my citations (i.e. their sources) and lists of references manually (as regular footnotes/text) whichever way I needed them, but I'm considering switching to something more TeX-y. I usually use different literature for each paper, and I often have to switch between radically different styles for citations and the list of references, so flexibility is necessary. I'm trying to find out which platform would be the best for me, a hint at good introductory reading for whatever you recommend would be more than welcome.

share|improve this question
@Joseph: I'm not sure if I agree with your edit. The markup and links imply that I (as OP) knew that biblatex and natbib are packages etc., which, honestly, wasn't the case. I just had these terms floating around in my head. Then again, you might argue that I could've found out about that at least by Googling. – doncherry Dec 13 '11 at 17:54
I think it's less important what you knew, and more important that the question, as now phrased, is a good resource. – Seamus Dec 13 '11 at 17:56
@doncherry I've taken the approach as Seamus outline, broadly, in that there is a wiki-like nature to the questions. In particular, as you mentioned things like biblatex it seemed reasonable that you'd heard of them somewhere, so a link to one possible place seemed reasonable. I hope I've not implied you'd read the linked material. Of course, if you're not happy then feel free to revert. – Joseph Wright Dec 13 '11 at 17:59
up vote 298 down vote accepted

(The following is an expansion of the 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?.


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.


  • 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.


  • 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.


The biblatex package is being actively developed in conjunction with the biber backend.


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:

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.


  • 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.



  • very stable and widely used


  • 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.



  • 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.


  • 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.

share|improve this answer
There is also my historische-zeitschrift, though I think it is not used that often. (I know, it‘s a shameless self-promotion …) – domwass Sep 4 '11 at 15:30
One thing you didn't address in your question: Are the .bib file formats compatible? There exists a huge infrastructure for bibtex .bib files. Journals usually provide references in bibtex format. There's software to manage bibtex bibliographies. There is emacs support. And of course there are existing bibliographies in bibtex format. The important question is: How much of this do you lose if you use biber instead? – celtschk Dec 4 '11 at 16:11
@celtschk This is a very good question. I could add some points about this to my answer, but it would actually be good if you asked the question separately, so that the resident biblatex experts could all have a chance to weigh in on the issue. – Alan Munn Dec 4 '11 at 16:25
OK, I'll do so. – celtschk Dec 4 '11 at 17:33
@naught101 I don't think so. And there's a lot more to most styles than can be shown with a simple example or two, so I don't know how useful such a resource would be. – Alan Munn Apr 29 '12 at 11:58

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.).

share|improve this answer
This picture is based on my current understanding - do not hesitate to suggest improvements ! – ebo Mar 16 at 10:45

Instead of pdflatex one can use lulatex or xelatex:

enter image description here enter image description here

share|improve this answer
Is there any modification of your first picture if one use natbib instead of biblatex? – ebo Mar 17 at 8:38
not really: "biblatex+Style"->natbib and biblatex.bst->natbib style, eg. plainnat.bst – Herbert Mar 17 at 12:26

In my view there are still a few huge disadvantages to biber. Mostly these are related to debugging. Let me list a few of them here:

  1. I have a *.bib file that was working fine for 15 years with biblatex and suddenly stopped working under biber. In fact, it worked for awhile under biber then suddenly stopped.

  2. Finding the error was painful for several reasons. First, there was no error message when I ran biber, yet the problem was really there. It did not show up until I ran PDFLaTeX a second time.

  3. I had to find the error by an 80s style debugging procedure where I kept commenting out cittions. Until everything compiled because the error message was nowhere near the actual error.

  4. Moreover, I had to manually delete a bunch of auxiliary files in between compilation. Why? Because once the compilation error showed up, it would not go away, EVEN AFTER the error was fixed. The only way to get it to compile again was to find the invisible error, fix the invisible error, delete all the auxiliary files, compile with pdflatex, run biber, compile again with pdflatex, and open the pdf file and examine it. All of these steps are required after making some change to the file without really knowing beforehand whether that is really the problem.

It was a good way to waste half of a day to find out that the abstract in one of my bibtex references should have had "\%" instead of "%".

share|improve this answer
Mhhh, wouldn't it be the same with BibTeX though? Fact is that % instead of \% is wrong in that it will cause LaTeX to choke badly if it is processed. The issue with auxiliary files also applies to BibTeX. If you had an error in the .bib file one re-run of Biber/BibTeX should make sure the resulting .bbl file is then correct and the subsequent LaTeX run should be sufficient to check that. – moewe Mar 4 '15 at 17:07
What strikes me as odd though is that you claim your document used to work (even with Biber) and the suddenly stopped doing so. I would expect this only to happen if the file was changed. (Plus, I think you are being a little unfair saying there are "a few" disadvantages, then using a list with four points, but when it comes down to it, you really have only one complaint.) I have to admit that BibTeX does not choke on a badly formatted abstract while Biber does (but it really is a badly-formatted field, so BibTeX's behaviour is just "courtesy"). – moewe Mar 4 '15 at 17:18

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.