[Tex/LaTex] What citation package to use


As far as I can tell the three major citation packages are:

  • natbib
  • cite
  • biblatex

There already is a discussion on the relation between natbib and biblatex here: bibtex vs. biber and biblatex vs. natbib However, the cite package is left out, and I'm having a hard time finding anything on this stack exchange about the matter.

The linked question has me wanting to use biblatex, however I don't know if cite would be better.

So my question is:

What are the pros and cons of cite compared to natbib and biblatex and are there other packages in the jungle of citation packages? If there are other packages then; when (if ever) should I consider using them?

Best Answer

Most of what is said about natbib in bibtex vs. biber and biblatex vs. natbib also applies to cite. They play a similar role and both use the same underlying workflow to produce bibliographies: Compilation with BibTeX and .bst files (this is what I called "the BibTeX way of creating bibliographies" elsewhere). In fact both packages are mainly concerned with the output of citations and not so much with the bibliography output, which is controlled by the .bst files.

The difference between natbib and cite is 'only' in their specific set of features, while the difference to biblatex is conceptional.

natbib and cite are incompatible and natbib emulates some key features of the cite package (see p. 1 of the natbib documentation). I haven't actually checked if you can recreate everything that cite can do with natbib, but I'm fairly confident that you can get quite far.

natbib offers many features that cite does not have, mainly support for author-year citations (.bst file permitting) and new citation commands like \citep, \citet, ...

There are more BibTeX-based citation packages: apacite, harvard, ... There is also jurabib, but jurabib takes the idea of BibTeX bibliographies to the next level and is in some ways much closer to biblatex's approach than to the other packages.

For what it is worth you might not need a package like cite or natbib at all if you are only after simple numeric citations. LaTeX's built-in \cite might already be enough for you. See What bibliography is used if no package is loaded? and What is the default bibliography package and backend in LaTeX?.

If you have already decided that you want to use biblatex instead of natbib, I don't really think you would want to use cite instead.

That said, while I am very happy to recommend to use biblatex there is at least one area where biblatex is clearly inferior to BibTeX-based bibliography solutions: Submissions to publishers and journals as well as preprint services with on-server compilation like the arXiv (see Biblatex: submitting to a journal and Making the arXiv accept a BibTeX BBL (May 2018) as well as many other questions about this topic). Additionally, biblatex is still being developed, so there is a risk of changes (some of which might not be fully backwards compatible, take the notorious Biblatex 3.3 name formatting). Most BibTeX-based solutions have been stable for many moons and are therefore usually not very sensitive to version issues.