Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
composition:annexes:bibliographie:gerer_plusieurs_bibliographies [2002/08/10 09:51] – markey | 3_composition:annexes:bibliographie:gerer_plusieurs_bibliographies [2022/11/30 21:31] (Version actuelle) – Nom de fichier en ttfamily dbitouze |
---|
\question{Comment gérer plusieurs bibliographies ?} %15.2 | ====== Comment obtenir plusieurs bibliographies dans un document? ====== |
%============================================================ | |
| |
\reponse Il est possible d'avoir plusieurs environnement | Plusieurs extensions traitent ce sujet. Certaines d'entre elles utilisent la structure du document pour générer les bibliographies, ce qui permet par exemple d'obtenir une bibliographie par chapitre, par section... Ces cas de liaison à la structure du document sont traités dans la question « [[3_composition/annexes/bibliographie/bibliographies_par_chapitre|Comment obtenir des bibliographies séparées par chapitre ?]] ». |
\env{thebibliography} dans un document. La méthode \og sans | |
\BibTeX \fg{} fonctionne donc sans aucun problème. | |
| |
Par contre, lorsqu'on utilise \BibTeX, on ne peut, par défaut, utiliser qu'une | ===== Avec les commandes de base ===== |
seule fois la commande \cmd{bibliography}, puisqu'il n'y a qu'un fichier | |
\fichier{.aux}. Il existe cependant des | |
packages permettant de contourner cette limitation, qui vont donc s'efforcer | |
de cr\'eer diff\'erents fichiers \fichier{.aux}. | |
| |
\reponse\label{chapterbib} Le package \pack{chapterbib} permet | Il est possible d'avoir plusieurs environnements ''thebibliography'' dans un document. La méthode « sans ''BibTeX'' » fonctionne donc sans aucun problème. |
d'avoir une bibliographie pour chaque fichier inclus (par la commande | |
\cmd{include}). Il est possible d'avoir, en plus, une bibliographie | |
globale pour le document. | |
| |
La documentation de ce package est donnée à la fin du package lui-même. | Par contre, avec ''BibTeX'', seule une unique commande ''bibliography'' peut être utilisée puisqu'il n'y a qu'un fichier ''.aux'' généré par la compilation. Il existe cependant des extensions permettant de contourner cette limitation, qui vont donc s'efforcer de créer différents fichiers ''.aux''. |
| |
\reponse\label{bibunits} Le package \pack{bibunits} permet également | ===== Avec l'extension “multibbl” ===== |
de créer plusieurs petites bibliographies séparées. Lesdites | |
bibliographies peuvent être faites par chapitre, par section, ou plus | |
généralement, dans un environnement \env{bibunit}. | |
| |
\begin{noexemple} | L'extension [[ctanpkg>multibbl]] propose une interface très simple en mettant à disposition la commande ''\newbibliography'' pour définir une balise bibliographique. L'extension redéfinit les autres commandes de bibliographie de sorte que chaque fois que vous utilisez l'une d'entre elles, vous lui attribuez la balise de la bibliographie où vous souhaitez que les références citées apparaissent. La commande ''\bibliography'' elle-même prend également un autre argument supplémentaire qui indique quel titre donner à la section ou au chapitre résultant (elle patche donc les commandes [[3_composition/langues/traduire_le_titre_de_table_des_matieres_ou_bibliographie|\refname et \bibname]] en respectant l'extension [[ctanpkg>babel]]). On pourrait donc écrire : |
\documentclass{report} | |
\usepackage[latin1]{inputenc} | |
\usepackage[T1]{fontenc} | |
\usepackage{bibunits} | |
| |
\begin{document} | <code latex> |
| \usepackage{multibbl} |
| \newbibliography{liv} |
| \bibliographystyle{liv}{alpha} |
| \newbibliography{art} |
| \bibliographystyle{art}{plain} |
| (...) |
| \cite[p.~23--25]{liv}{milne:test} |
| (...) |
| \cite{art}{einstein:1905} |
| (...) |
| \bibliography{liv}{livre-bib}{Livres de référence} |
| \bibliography{art}{art-bib}{Articles de référence} |
| </code> |
| |
\bibliographyunit[\chapter] | Notez que : |
\bibliographystyle{plain} | * l'argument optionnel de la commande ''\cite'' apparaît //avant// le nouvel argument contenant la balise ; |
\bibliography{geometrie,algorithmes} | * les commandes ''\bibliography'' peuvent lister plus d'un fichier ''bib''. De fait, les commandes ''\bibliography'' peuvent lister le même ensemble de fichiers. |
| |
\chapter{Algorithmes.} | Les données utiles à ''BibTeX'' seront stockées dans des fichiers dont les noms sont ''⟨nom-de-balise⟩.aux''. Aussi, pour le cas ci-dessus, pour bien préparer vos bibliographies, vous devrez exécuter les commandes suivantes : |
Présentation d'algorithmes. \nocite{*} | |
\putbib[algorithmes] | |
| |
\chapter{Géométrie.} | <code latex> |
Texte sur la géométrie. \nocite{*} | bibtex liv |
\putbib[geometrie] | bibtex art |
| </code> |
| |
\end{document} | ===== Avec l'extension “multibib” ===== |
\end{noexemple} | |
| |
| L'extension [[ctanpkg>multibib]] permet de découper « la » bibliographie en plusieurs bibliographies différentes. Pour reprendre l'exemple ci-dessus, cela donnerait : |
| |
La compilation de cet exemple va entraîner la création de plusieurs | <code latex> |
fichiers \fichier{.aux}, qu'il faudra ensuite passer à \BibTeX. | \usepackage{multibib} |
| \newcites{liv,art}% |
| {Livres de référence,% |
| Articles de référence} |
| \bibliographystyleliv{alpha} |
| \bibliographystyleart{plain} |
| (...) |
| \citeliv[p.~23--25]{milne:test} |
| (...) |
| \citeart{einstein:1905} |
| (...) |
| \bibliographyliv{liv-bib} |
| \bibliographyart{art-bib} |
| </code> |
| |
\reponse\label{multibib} Le package \pack{multibib} est quelque peu | Encore une fois, comme pour [[ctanpkg>multibbl]], toute commande ''\bibliography...'' peut recevoir n'importe quelle liste de fichiers ''.bib''. Par ailleurs, le traitement ''BibTeX'' de fichiers utilisant [[ctanpkg>multibib]] ressemble beaucoup à celui de fichiers utilisant [[ctanpkg>multibbl]]. Pour l'exemple présent, il faudrait utiliser les commandes : |
complémentaire aux précédents : il permet de découper \og la \fg{} | |
bibliographie en plusieurs bibliographies différentes. Si par exemple, | |
dans un document, on veut séparer les livres cités des articles cités, | |
et créer deux listes distinctes, ce package est notre ami. Voici un | |
exemple rapide : | |
| |
\begin{noexemple} | <code latex> |
\documentclass{report} | bibtex liv |
\usepackage[latin1]{inputenc} | bibtex art |
\usepackage[T1]{fontenc} | </code> |
\usepackage{multibib} | |
| Cependant, contrairement à [[ctanpkg>multibbl]], [[ctanpkg>multibib]] permet de générer une bibliographie simple et non modifiée (en plus des bibliographies par thème). |
| |
| ===== Avec les extensions “bibtopic” et “placeins” ===== |
| |
| Les extensions [[ctanpkg>bibtopic]] et [[ctanpkg>placeins]] permettent aussi de découper la bibliographie en différentes sections. À l'endroit approprié dans votre document, vous placez une séquence d'environnements ''btSect'' (dont chacun indique une base de données bibliographiques à analyser) pour composer les bibliographies séparées. Avec notre exemple, cela donnerait : |
| |
| <code latex> |
| \usepackage[above,section]{placeins} |
| \usepackage{bibtopic} |
| \bibliographystyle{alpha} |
| (...) |
| \cite[p.~23--25]{milne:test} |
| (...) |
| \cite{einstein:1905} |
| (...) |
| \begin{btSect}{liv-bib} |
| \section{Livres de référence} |
| \btPrintCited |
| \end{btSect} |
| |
\begin{document} | \begin{btSect}[plain]{art-bib} |
\newcites{alg}{Bibliographies "algorithmes"} | \section{Articles de référence} |
\newcites{geo}{Bibliographie "géométrie"} | \btPrintAll |
| \end{btSect} |
| </code> |
| |
\chapter{Algorithmes.} | Notez ici deux choses : |
Présentation d'algorithmes. | * la commande ''btPrintAll'' est l'équivalent de ''\nocite{*}'' dans la mesure où elle permet de citer toutes les références du fichier ''bib''. La commande ''\btPrintNotCited'' donne, pour sa part, le reste du contenu du fichier ''.bib'' : si aucune entrée de la base de données n'est citée, cela équivaut à ''\nocite{*}'' ; |
\citealg{toto} \nocitealg{*} | * la manière de spécifier un style de bibliographie change : si vous voulez un style différent pour une bibliographie, il faut le donner comme argument facultatif à l'environnement ''btSect''. |
| |
\chapter{Géométrie.} | Le traitement avec ''BibTeX'' utilise des fichiers ''.aux'' dont les noms sont dérivés de celui du document de base. En supposant que votre fichier principal s'appelle ''fichier.tex'', il faudra ici saisir les commandes : |
Texte sur la géométrie. | |
\citegeo{titi} | |
| |
\bibliographystylealg{plain} | <code latex> |
\bibliographyalg{algo} %% charge algo.bib | bibtex fichier1 |
| bibtex fichier2 |
| </code> |
| |
\bibliographystylegeo{alpha} | Cependant, la //grande// différence de cette extension avec [[ctanpkg>multibbl]] et [[ctanpkg>multibib]] est que la sélection de ce qui apparaît dans chaque section bibliographique est déterminée dans [[ctanpkg>bibtopic]] par ce qui est dans les fichiers ''bib''. |
\bibliographygeo{geometrie} %% charge geometrie.bib | |
\end{document} | |
\end{noexemple} | |
| |
| ===== Avec l'extension “splitbib” ===== |
| |
| L'extension [[ctanpkg>splitbib]] adopte une approche totalement différente. Un environnement ''category'' placé dans le préambule de votre document vous permet de définir une catégorie de références pour lesquelles vous souhaitez une bibliographie distincte. Dans chaque environnement, vous listez les clés mises dans la commande ''\cite'' que vous voulez voir listées dans cette catégorie. La commande ''\bibliography'' (ou, plus précisément, l'environnement ''thebibliography'' qu'elle utilise) va trier les clés comme demandé et les clés non mentionnées dans un environnement ''category'' apparaissent dans une catégorie « divers » créée lors de ce tri. |
| |
| Un exemple de code apparaît dans la [[texdoc>splitbib|documentation]] de l'extension. |
| |
| ----- |
| //Source:// [[faquk>FAQ-multbib|Multiple bibliographies?]] |
| |
| {{htmlmetatags>metatag-keywords=(LaTeX,bibliographie,bibliographies,plusieurs bibliographies,bibliographies multiples) |
| metatag-og:title=(Comment obtenir plusieurs bibliographies dans un document) |
| metatag-og:site_name=(FAQ LaTeX francophone) |
| }} |