Go to page:

Search:   Help

Navigation

Groups

LyX documentation

Edit

Shared groups

Links

Background

<< | Page list | >>

Background of BibTeX and some citation styles

The difference between "normal" BibTeX, Natbib, biblatex et al.

If you want to produce citations/a bibliography with LaTeX/LyX, you have the choice between several (mutually exclusive) approaches. Here is some clarification about the differences of the most popular ones.

The Bibliography Environment

LaTeX itself comes with a dedicated bibliography environment. With this approach, the document itself holds the bibliographic data, and you define labels you can refer to via citations. The disadvantage of this approach is obvious: You have to write down the data manually for every single document, you have to handle the sorting, you remove yourself entries that are not cited anymore and you have to check for the consistency of the item formatting.

However, there are situation where this is just the right thing (and some journals insist on this approach, since all data is then enclosed in one single document). In LyX, you can use this approach via the "Bibliography" layout in the paragraph layout combo. The User Guide elaborates the details.

BibTeX

BibTeX is an extension to LaTeX consisting of several things: a compiler program (bibtex in lowercase) and a collection of so called BibTeX style files (or bst files) that determine the look and output details of the bibliography and the citations.

BibTeX does the job of writing a bibliography environment for you, reading citation entries from a database (*.bib) and some layout information from a style file (*.bst). BibTeX automatically extracts all cited entries from the database and writes them into an external file (in the form of the bibliography environment), which is then included in the actual document. Apart from the reference extraction, BibTeX also sorts the entries (either alphabetically or by citation order) and handles the layout in a consistent way.

The program and the style files were written by Oren Patashnik back in the 1980s. The advantage over the bibliography environment is that the bibliography data is centralized and thus can be re-used for multiple documents (and shared between users). Furthermore, BibTeX assures that the formatting is consistent, the sorting is correct and that really only the cited items are included to the bibliography.

However, BibTeX has been designed mainly for natural scientist's citation uses (i.e., numerical citation format), and for the American (or English writing) market (thus it can only deal properly with 7-bit ASCII encoding). Also, it is quite limited in terms of (processing) capacity.

The latter problem has been addressed by a rewrite of the compiler program: the newer bibtex8 is able to handle 8-bit encodings (hence the name) and can use more (processor) capacity. This program is part of all recent LaTeX distributions and can be used with traditional BibTeX style files as well as with the other approaches listed below. Although this is a major progress, bibtex8 still can not deal with multibyte (particularly unicode) encoding, and the processing capacity is still limited.

The former problem was tentatively addressed as well: Patashnik provided a rudimentary extension package for author-year citations (that is apacite.sty). Other contributors have provided other style files for different tasks or specific journals (so there are now countless bst files for diverse tasks available).

However, as far as author-year citations were concerned, the limitations were still grave due to the design of BibTeX itself.

Natbib

In order to overcome these limitations, Patrick W. Daly developed an extension package: natbib. This package basically extends the bibliography environment itself (it adds an optional argument to the \bibitem command and introduces some markup that allows to extract author and year from the label). Natbib thus does not need to be used with bibtex (the compiler). It can also be used with the classic bibliography environment approach: If you use the new syntax, you can produce author-year citations with the bibliography environment and the natbib package. However, the full strength of the package is expanded in conjunction with bibtex.

Natbib comes with its own style files and cannot deal with the style files that were developed for traditional BibTeX (due to the mentioned bibliography environment changes). In addition to the styles provided by the natbib package itself, however, several people have designed alternative style files specifically for natbib. Also, Daly developed "custom-bib", an interactive command line tool which lets you quite comfortably create a style file interactively without having to know the quite complex bibtex language (instead, you need to answer some questions on the terminal).

Natbib aims at people who want to follow the Harvard system (author-year) and extends its strengths in this area. But it also provides some other goodies. Since these might be interesting for a wider range of users, natbib also provides a "numerical" mode for users who want to participate the numerous benefits of the package and still use numerical citation format.

Jurabib

Some years later, Jens Berger came to the conclusion that all the existing packages (including natbib) do not match the requirements of law studies. So he developed the jurabib package, another extension package. The difference in concept is that you don't have lots of different static bst files, but only a few bst files which can be very much tweaked via package options and commands.

Jurabib follows the way prepared by natbib: it extends the bibliography environment. But it goes several steps further. Therefore, just like natbib, jurabib is a system of its own: it can neither handle traditional BibTeX style files nor the natbib styles. If you use jurabib, you have to use the style files provided by the package.

During the years, jurabib became very popular and extremely flexible, and it used to be particularly popular amongst LyX users from the humanities. However, on 19/04/2007, Jens Berger announced that he will not develop the package any longer. So unless a new maintainer steps up (which is unlikely now), jurabib's future is open to question.

In his announcement, Jens Berger himself recommended to use another (back then brandnew) package, namely biblatex.

Biblatex

Biblatex is the newest kid on the block, initially developed by Philipp Lehman (and now by a team of developers). It follows a completely new approach insofar as biblatex uses bibtex only as a sorting tool (if at all) and reimplements everything else on the LaTeX side. This means that you don't have to deal with the (rather crude) language of the bst files, since the design of the bibliographies and citations is completely controlled by LaTeX macros. This of course has the consequence that biblatex cannot deal with any existing bst file. Instead, it introduces a new, LaTeX-based style file format, or more precisely, a system of task-differentiated style files: "biblatex bibliography styles" (bbx files) controlling the layout of the bibliography, "biblatex citation styles" (cbx file), controlling the layout of the citations, and "language definition files" (lbx files) controlling the localization. The biblatex package itself ships a number of these files that cover the most common purposes, but in the meantime, others contributed additional biblatex styles for specific purposes or journals that can be used as well.

Biblatex overcomes several limitations of BibTeX, and it is much easier to use, at least if you are familiar with LaTeX. Customizing a bibliography style can be as easy as adding a LaTeX line in your preamble. Furthermore, it is much more powerful than any other existing approach, providing things like citation filtering, sectionated bibliographies, chapter bibliographies, full cites, ibidem, gender differentiation, full localization, on the fly modification etc. Really, there's hardly a requirement biblatex cannot fulfil. In terms of LaTeX bibliography management, it is a huge step forward.

In the wake of biblatex, François Charette and Philipp Kime (the latter being now also one of the core biblatex developers) developed biber, an alternative, Perl-based processor aiming to replace the dated bibtex and bibtex8 programs. Biber meanwhile is the default processor of biblatex, and although you still can use bibtex or bibtex8, you need to use biber to get biblatex running at full steam. Biber has no capacity limitations whatsoever, it is fully unicode aware (but also supports many other encodings), it can modify bibliography data on the fly (thus allowing biblatex to perform many fancy tricks) and much more. Biber is closely tied to biblatex, which means that you can only use it with biblatex (not with any of the other approaches), and you have to use specific versions of biber with specific versions of biblatex (a thing you usually do not need to care about, since both packages are included in and automatically updated by all modern LaTeX distributions).

Due to its completely different interface and its complexity, biblatex is not fully integrated in LyX yet, which means you need some TeX code and some tricks to use it. However, it is nonetheless fully usable. Please refer to this page for instructions.

Conclusion

Which of those packages you chose depends on your needs and personal preferences. Note again that all approaches need their own style files, they are in general not inter-chargeable.

Documentation of the approaches

The natbib documentation: http://mirrors.ctan.org/macros/latex/contrib/natbib/natbib.pdf

The jurabib documentation: http://mirrors.ctan.org/macros/latex/contrib/jurabib/docs/english/jbendoc.pdf

The biblatex documentation: http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf

A comprehensive documentation about BibTeX: http://www.ctan.org/tex-archive/info/bibtex/tamethebeast/ttb_en.pdf

A quick and easy introduction to BibTeX and an online converter: http://www.bibtex.org

BibTeX styles survey


Description initially taken from a post in the user's list by Jürgen Spitzmüller, see LyxUsersPost:22044

Bibliography Natbib Jurabib Biblatex biber

Edit - History - Print - Recent Changes - All Recent Changes - Search
Page last modified on 2013-10-05 13:18 CEST