Comment obtenir plusieurs bibliographies ?#

Si vous envisagez des bibliographies multiples liées à une partie de votre document (comme les chapitres du document), vous devriez consulter la question « Comment obtenir des bibliographies séparées par chapitre ? ».

Sinon, vous disposez de trois options.

1.  Avec l’extension multibbl#

L’extension multibbl offre une interface très simple : vous utilisez une commande \newbibliography{⟨étiquette⟩} pour définir une bibliographie associée à une ⟨étiquette⟩. L’extension redéfinit les autres commandes de bibliographie de sorte qu’à chaque fois que vous utilisez l’une d’entre elles, vous lui donnez l’étiquette de la bibliographie dans laquelle vous voulez que les citations apparaissent. La commande \bibliography elle-même prend également un argument supplémentaire qui indique le titre à utiliser pour la section ou le chapitre résultant (c’est-à-dire qu’elle corrige \refname et \bibname d’une manière adéquate pour babel). Vous pouvez donc écrire :

\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}{Références des livres}
\bibliography{art}{art-bib}{Références des articles}

Notez ici que l’argument optionnel de \cite apparaît avant le nouvel argument d’étiquette et que les commandes \bibliography peuvent lister plus d’un fichier bib. En fait, toutes les commandes \bibliography peuvent lister le même ensemble de fichiers.

Les données de \bibliography vont dans un fichier dont le nom est ⟨étiquette⟩.aux. Pour obtenir les bibliographies bien ordonnées, vous devrez donc lancer, après votre première compilation avec :

bibtex bk
bibtex art

2.  Avec l’extension multibib#

L’extension multibib permet de définir une série de « sujets supplémentaires », chacun d’entre eux étant accompagné de sa propre série de commandes de bibliographie. Vous pouvez ainsi écrire :

\usepackage{multibib}
\newcites{bk,art}%
         {Références des livres, Références des articles}
\bibliographystylebk{alpha}
\bibliographystyleart{plain}
...
\citebk[pp.~23--25]{milne:pooh-corner}
...
\citeart{einstein:1905}
...
\bibliographybk{book-bib}
\bibliographyart{art-bib}

Comme pour multibbl, toute commande \bibliography peut balayer n’importe quelle liste de fichiers de style bib.

Le traitement de avec multibib est très similaire à celui avec multibbl. Avec l’exemple ci-dessus, vous devrez lancer les deux commandes suivantes :

bibtex bk
bibtex art

Notez que, contrairement à multibbl, multibib permet une bibliographie simple, non modifiée.

3.  Avec l’extension bibtopic#

L’extension bibtopic permet de citer séparément plusieurs bibliographies différentes. À l’endroit approprié dans votre document, vous placez une séquence d’environnements btSect (chacun d’entre eux spécifiant une base de données bibliographique à charger) pour composer les bibliographies séparées. Ainsi, on peut avoir un fichier diss.tex contenant :

\usepackage{bibtopic}
\bibliographystyle{alpha}
...
\cite[pp.~23--25]{milne:pooh-corner}
...
\cite{einstein:1905}
...
\begin{btSect}{book-bib}
\section{Références des livres}
\btPrintCited
\end{btSect}
\begin{btSect}[plain]{art-bib}
\section{Références des articles}
\btPrintCited
\end{btSect}

Notez la façon particulière de spécifier un style de bibliographie : si vous voulez un style différent pour une bibliographie particulière, vous pouvez le donner comme argument optionnel à l’environnement btSect.

Le traitement avec dans ce cas, utilise des fichiers aux dont les noms sont dérivés du nom du document de base. Ainsi, dans cet exemple, vous devez exécuter les deux commandes suivantes :

bibtex diss1
bibtex diss2

Il existe également une commande \btPrintNotCited, qui donne le reste du contenu de la base de données (si rien n’a été cité à partir de la base de données, cela équivaut à la commande \nocite{*}).

Cependant, la vraie différence avec multibbl et multibib est que la sélection de ce qui apparaît dans chaque section de la bibliographie est déterminée dans bibtopic par ce qui se trouve dans les fichiers bib.

4.  Avec l’extension splitbib#

Une approche totalement différente est adoptée par l’extension splitbib. Vous décrivez un environnement category, dans le préambule de votre document, pour chaque catégorie pour laquelle vous voulez une liste de citations séparée. Dans chaque environnement, vous listez les clés \cite que vous voulez voir listées dans chaque catégorie. La commande \bibliography (ou, plus précisément, l’environnement ``bibliography` qu’elle utilise) triera les clés comme demandé.

Les clés qui ne sont pas mentionnées dans une catégorie apparaissent dans une « catégorie diverse » créée lors du processus de tri. Un exemple de code figure dans la documentation de l’extension.