The TeX FAQ

Frequently Asked Question List for TeX

Bibliographies

Multiple bibliographies?

If you’re thinking of multiple bibliographies tied to some part of your document (such as the chapters within the document), please see bibliographies per chapter.

For more than one bibliography, there are three options.

The multibbl package offers a very simple interface: you use a command \newbibliography to define a bibliography “tag”. The package redefines the other bibliography commands so that each time you use any one of them, you give it the tag for the bibliography where you want the citations to appear. The \bibliography command itself also takes a further extra argument that says what title to use for the resulting section or chapter (i.e., it patches \refname and \bibname in a babel-safe way). So one might write:

\usepackage{multibbl}
\newbibliography{bk}
\bibliographystyle{bk}{alpha}
\newbibliography{art}
\bibliographystyle{art}{plain}
...
\cite[pp.~23--25]{bk}{milne:pooh-corner}
...
\cite{art}{einstein:1905}
...
\bibliography{bk}{book-bib}{References to books}
\bibliography{art}{art-bib}{References to articles}

(Note that the optional argument of \cite appears before the new tag argument, and that the \bibliography commands may list more than one bib file — indeed all \bibliography commands may list the same set of files.)

The \bibliography data goes into files whose names are ‹tag-name.aux, so you will need to run

bibtex bk
bibtex art

after the first run of LaTeX, to get the citations in the correct place.

The multibib package allows you to define a series of “additional topics”, each of which comes with its own series of bibliography commands. So one might write:

\usepackage{multibib}
\newcites{bk,art}%
         {References from books,%
          References from articles}
\bibliographystylebk{alpha}
\bibliographystyleart{plain}
...
\citebk[pp.~23--25]{milne:pooh-corner}
...
\citeart{einstein:1905}
...
\bibliographybk{book-bib}
\bibliographyart{art-bib}

Again, as for multibbl, any \bibliography... command may scan any list of bib files.

BibTeX processing with multibib is much like that with multibbl; with the above example, one needs:

bibtex bk
bibtex art

Note that, unlike multibbl, multibib allows a simple, unmodified bibliography (as well as the “topic” ones).

The bibtopic package allows you separately to cite several different bibliographies. At the appropriate place in your document, you put a sequence of btSect environments (each of which specifies a bibliography database to scan) to typeset the separate bibliographies. Thus, one might have a file diss.tex containing:

\usepackage{bibtopic}
\bibliographystyle{alpha}
...
\cite[pp.~23--25]{milne:pooh-corner}
...
\cite{einstein:1905}
...
\begin{btSect}{book-bib}
\section{References from books}
\btPrintCited
\end{btSect}
\begin{btSect}[plain]{art-bib}
\section{References from articles}
\btPrintCited
\end{btSect}

Note the different way of specifying a bibliographystyle: if you want a different style for a particular bibliography, you may give it as an optional argument to the btSect environment.

Processing with BibTeX, in this case, uses aux files whose names are derived from the name of the base document. So in this example you need to say:

bibtex diss1
bibtex diss2

There is also a command \btPrintNotCited, which gives the rest of the content of the database (if nothing has been cited from the database, this is equivalent to LaTeX standard \nocite{*}).

However, the real difference from multibbl and multibib is that selection of what appears in each bibliography section is determined in bibtopic by what’s in the bib files.

An entirely different approach is taken by the splitbib package. You provide a category environment, in the preamble of your document, for each category you want a separate citation list for. In each environment, you list the \cite keys that you want listed in each category. The \bibliography command (or, more precisely, the thebibliography environment it uses) will sort the keys as requested. (Keys not mentioned in a category appear in a “misc” category created in the sorting process.) A code example appears in the package documentation (a PDF file in the CTAN directory, which you can browse to, from the link, below).

FAQ ID: Q-multbib
Tags: citations