650

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)

Background

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.

6
  • 6
    @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, 2011 at 17:54
  • 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, 2011 at 17:56
  • 10
    @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, 2011 at 17:59
  • 5
    I wish arXiv would fix their building system rather than directing everybody here. biblatex is so much nicer to use, the whole "it is not portable" claim by arXiv is utter nonsense. Oct 12, 2018 at 19:04
  • 1
    @EduardoReis Original poster, as google.com/search?q=OP%20meaning explains.
    – doncherry
    Aug 6, 2021 at 22:05

7 Answers 7

693

(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?.

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:

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.
  • Because it does much more than bibtex it is a lot slower. See Why is biber so slow? for discussion.

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.

10
  • 7
    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, 2011 at 15:30
  • 20
    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, 2011 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, 2011 at 16:25
  • 2
    @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, 2012 at 11:58
  • 1
    @Johannes_B yes they are. My point was that there are multiple ways biblatex can have a negative performance impact: both because biber is slower than bibtex, and because using biblatex can actually make the latex compilation phase slower too
    – McDuffin
    Sep 19, 2017 at 20:51
183

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

1
  • 1
    FWIW, using neither natbib nor biblatex is an option if \cite is enough for you—probably you need more but that should be mentioned for completeness. Jul 26, 2017 at 21:14
51

Instead of pdflatex one can use lualatex or xelatex:

enter image description here enter image description here

3
  • Is there any modification of your first picture if one use natbib instead of biblatex?
    – ebosi
    Mar 17, 2016 at 8:38
  • not really: "biblatex+Style"->natbib and biblatex.bst->natbib style, eg. plainnat.bst
    – user2478
    Mar 17, 2016 at 12:26
  • 3
    Wow, very nice picture! Is its code available somewhere? May 25, 2018 at 14:41
31

In his answer, Alan Munn listed the available extra style packages for biblatex on CTAN, as of 2011. As of today, the list has expanded to:

  1. biblatex-abnt: biblatex style for Brazil's ABNT rules
  2. biblatex-anonymous: A tool to manage anonymous work with biblatex
  3. biblatex-apa: biblatex citation and reference style for APA
  4. biblatex-authoryear-icomp-tt: Author-year style with compact multiple-reference-citations and ibidem mechanism for biblatex
  5. biblatex-bookinarticle: Manage book edited in article
  6. biblatex-bookinother: Manage book edited in other entry type
  7. biblatex-bwl: biblatex citations for FU Berlin
  8. biblatex-caspervector: A simple citation style for Chinese users
  9. biblatex-chem: A set of biblatex implementations of chemistry-related bibliography styles
  10. biblatex-chicago: Chicago style files for biblatex
  11. biblatex-dw: Humanities styles for biblatex
  12. biblatex-fiwi: biblatex styles for use in German humanities
  13. biblatex-gost: biblatex support for GOST standard bibliographies
  14. biblatex-historian: A biblatex style
  15. biblatex-ieee: Ieee style files for biblatex
  16. biblatex-ijsra: biblatex style for the International Journal of Student Research in Archaeology
  17. biblatex-iso690: biblatex style for ISO 690 standard
  18. biblatex-jura: biblatex stylefiles for German legal literature
  19. biblatex-juradiss: biblatex stylefiles for German law thesis
  20. biblatex-luh-ipw: biblatex styles for social sciences
  21. biblatex-manuscripts-philology: Manage classical manuscripts with biblatex
  22. biblatex-mla: MLA style files for biblatex
  23. biblatex-morenames: New names for standard biblatex entry type
  24. biblatex-multiple-dm: Load multiple datamodels in biblatex
  25. biblatex-musuos: A biblatex style for citations in musuos.cls
  26. biblatex-nature: Prepare papers for the journal Nature
  27. biblatex-nejm: biblatex style for the New England Journal of Medicine (NEJM)
  28. biblatex-nottsclassic: Citation style for the University of Nottingham
  29. biblatex-opcit-booktitle: Use op. cit. for the booktitle of a subentry
  30. biblatex-philosophy: Styles for using biblatex for work in philosophy
  31. biblatex-phys: A biblatex implementation of the AIP and APS bibliography style
  32. biblatex-publist: biblatex bibliography support for publication lists
  33. biblatex-realauthor: Indicate the real author of a work
  34. biblatex-science: biblatex implementation of the Science bibliography style
  35. biblatex-source-division: References by “division” in classical sources
  36. biblatex-subseries: Manages subseries with biblatex
  37. biblatex-swiss-legal: Bibliography and citation styles following Swiss legal practice
  38. biblatex-trad: “Traditional” BibTEX styles with biblatex
  39. biblatex-true-citepages-omit: Correction of some limitation of the citepages=omit option of biblatex styles
  40. citeall: Cite all entries of a bbl created with biblatex
  41. ecobiblatex: Global Ecology and Biogeography biblatex styles for the Biber backend
  42. historische-zeitschrift: biblatex style for the journal 'Historische Zeitschrift'
1
  • Thanks for adding this here, exactly what I needed reading the other answers but didn't make the effort to look it up.
    – Cedric H.
    Feb 15, 2022 at 16:00
16

Other disadvantages of the BibLatex (Biber) vs Bibtex

I recently moved to biblatex because of some weakness of the bibtex in relation to crossref. Unfortunately, BibLatex has its own.

  1. Only the year will have the link (Why only the year is as a link in \cite reference(biblatex-apa and hyperref: right parenthesis not part of link for \textcite ; Why only the year is as a link in \cite reference )

  2. some of the favorite style, the Harvard styles for example, are not natively available for BibLatex (Harvard Reference using Biblatex. You need to do a lot of manual work if you want get format like agsm.

  3. Biber, the backend processor for biblatex is much slower (Why is biber so slow?)

  4. Biblatex is not supported by many journals.

  5. I have to use more extended texts like \textcitet in place of \citet. The same extensions are made on other default commands. The shorter the text, the better. In addition, spell checkers, even the latex aware ones, pick these extra commands as misspellings. That is another annoyance.

My final conclusion is, if your problem with bibtex (natbib)is minimal, stick with it. It is faster; and standard for submission.

I am now back to bibtex.

7
  • Please have a look at en.wikibooks.org/wiki/LaTeX/Creating_a_Bibliography in general and en.wikibooks.org/wiki/LaTeX/…. Any feedback would be appreciated.
    – Johannes_B
    Feb 5, 2017 at 7:39
  • I find the linking capabilities in biblatex limiting: tex.stackexchange.com/questions/212495/… There are ways around it: but, with their own associated risks (and, I don't like my preamble messed up with some fix for BibLatex).
    – Dellu
    Feb 5, 2017 at 13:57
  • 2
    1) Is addressed in hyperlink name with biblatex authoryear (biblatex 1.4b) and that is more or less the best we can do since other factors might cause problems when linking more than the year. Ad 2) Indeed, biblatex does not come with as many ready-made styles as biblatex, one reason is your point (4), another is that many small modifications are easily done and don't warrant a new style package. You might want to keep in mind that 'Harvard style' is more a lose description than a style like APA style or CMS (both of which have are implemented)
    – moewe
    Feb 5, 2017 at 14:22
  • 1
    Ad 4) see Biblatex: submitting to a journal. Ad 5): you could use natbib=true to enable natbib compatibility mode that allows you to use \citet and \citep, but of course you could also \let\citet\textcite or just use the auto-complete feature of your editor. Your editor should also be able to exclude certain commands from spell-checking.
    – moewe
    Feb 5, 2017 at 14:24
  • 6
    But while I don't agree with all your grievances, I more or less agree with your conclusion. If there is nothing wrong with good ol' BibTeX for you, you don't have to switch. But if you need the additional flexibility and capabilities that biblatex offers, do by all means go for biblatex. (I find that those in mathematics or the natural sciences will probably not need biblatex and will get on with BibTeX just fine; but in the humanities biblatex comes in really handy.)
    – moewe
    Feb 5, 2017 at 14:27
11

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 "%".

4
  • 9
    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, 2015 at 17:07
  • 15
    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, 2015 at 17:18
  • 7
    Just in case it happens to somebody else, in absence of environment like texmaker, a fast debug may be possible printing the whole bibliography (\cite{*}) from the corrupted bib file, then looking where it stops in the final pdf. Where it stops it is near to the corrupting record...
    – Hastur
    Oct 25, 2016 at 12:00
  • 1
    in case this should happen to you again, it helps to open the bibliography in Emacs and glance over it. An error like using % in the file will show up in the highlighting. Apr 6, 2017 at 13:06
3

The .bib files can be read by both BibTeX and Biber engines, but the commands in the documents are not the same. The file .bib is common called as a "bibtex" file, but it's an inherited name and should be perceived as having no relation to the BibTeX engine now. Thanks to the biblatex package for supporting both engines, commands intended to be used by BibTeX can be used by Biber now.

To sum up, BibTeX and Biber are engines to read bibtex files, biblatex is a package for LaTeX documents.

How to do it properly

  1. Making sure the TeX editor running Biber, not BibTeX
    Detailed post

  2. Running LaTeX → Biber → LaTeX
    The code should be \usepackage{biblatex}, \addbibresource{filename.bib} and \printbibliography. Don't use \bibliography or \bibliographystyle as they belong to BibTeX.

Read more: Getting Started with Biblatex

3
  • 2
    This answer would be more apt in tex.stackexchange.com/q/154751/35864. The top-voted answer already explains the difference between Biber and BibTeX.
    – moewe
    Dec 15, 2017 at 11:41
  • well, I did read it first, but it wasn't enough for me to really understand how to successfully make bibliography in LaTeX. That question is more about how to compile it, with an assumption that the readers have already understood the concepts, hence it doesn't stress enough on the convolution. My first two paragraphs address this (the rest are just bonus), so it's more apt in here I think.
    – Ooker
    Dec 15, 2017 at 12:40
  • en.wikibooks.org/wiki/LaTeX/…
    – Johannes_B
    Dec 26, 2017 at 9:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .