Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
3_composition:annexes:bibliographie:gerer_plusieurs_bibliographies [2021/11/06 11:30] – Début de la fusion/traduction de la page française et de la page anglaise. yannick.tanguy | 3_composition:annexes:bibliographie:gerer_plusieurs_bibliographies [2022/11/30 21:31] (Version actuelle) – Nom de fichier en ttfamily dbitouze |
---|
===== Avec l'extension “multibbl” ===== | ===== Avec l'extension “multibbl” ===== |
| |
FIXME //Traduire.// | 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 : |
| |
The [[ctanpkg>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 [[3_composition/langues/traduire_le_titre_de_table_des_matieres_ou_bibliographie|\refname and \bibname]] in a [[ctanpkg>babel]]-safe way). So one might write: | |
| |
<code latex> | <code latex> |
\usepackage{multibbl} | \usepackage{multibbl} |
\newbibliography{bk} | \newbibliography{liv} |
\bibliographystyle{bk}{alpha} | \bibliographystyle{liv}{alpha} |
\newbibliography{art} | \newbibliography{art} |
\bibliographystyle{art}{plain} | \bibliographystyle{art}{plain} |
... | (...) |
\cite[pp.~23--25]{bk}{milne:pooh-corner} | \cite[p.~23--25]{liv}{milne:test} |
... | (...) |
\cite{art}{einstein:1905} | \cite{art}{einstein:1905} |
... | (...) |
\bibliography{bk}{book-bib}{References to books} | \bibliography{liv}{livre-bib}{Livres de référence} |
\bibliography{art}{art-bib}{References to articles} | \bibliography{art}{art-bib}{Articles de référence} |
</code> | </code> |
| |
(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.) | Notez que : |
| * l'argument optionnel de la commande ''\cite'' apparaît //avant// le nouvel argument contenant la balise ; |
| * les commandes ''\bibliography'' peuvent lister plus d'un fichier ''bib''. De fait, les commandes ''\bibliography'' peuvent lister le même ensemble de fichiers. |
| |
The ''\bibliography'' data goes into files whose names are <//tag-name//>//.aux//, so you will need to run | 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 : |
| |
<code latex> | <code latex> |
bibtex bk | bibtex liv |
bibtex art | bibtex art |
</code> | </code> |
| |
after the first run of LaTeX, to get the citations in the correct place. | |
| |
| |
===== Avec l'extension “multibib” ===== | ===== Avec l'extension “multibib” ===== |
| |
L'extension [[ctanpkg>multibib]] est quelque peu complémentaire aux précédents : il permet de découper « la » 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 : | L'extension [[ctanpkg>multibib]] permet de découper « la » bibliographie en plusieurs bibliographies différentes. Pour reprendre l'exemple ci-dessus, cela donnerait : |
| |
<code latex> | <code latex> |
\documentclass{report} | |
\usepackage[latin1]{inputenc} | |
\usepackage[T1]{fontenc} | |
\usepackage{multibib} | \usepackage{multibib} |
| \newcites{liv,art}% |
\begin{document} | {Livres de référence,% |
\newcites{alg}{Bibliographies "algorithmes"} | Articles de référence} |
\newcites{geo}{Bibliographie "géométrie"} | \bibliographystyleliv{alpha} |
| |
\chapter{Algorithmes.} | |
Présentation d'algorithmes. | |
\citealg{toto} \nocitealg{*} | |
| |
\chapter{Géométrie.} | |
Texte sur la géométrie. | |
\citegeo{titi} | |
| |
\bibliographystylealg{plain} | |
\bibliographyalg{algo} %% charge algo.bib | |
| |
\bibliographystylegeo{alpha} | |
\bibliographygeo{geometrie} %% charge geometrie.bib | |
\end{document} | |
</code> | |
| |
FIXME //Traduire.// | |
| |
The [[ctanpkg>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: | |
| |
<code latex> | |
\usepackage{multibib} | |
\newcites{bk,art}% | |
{References from books,% | |
References from articles} | |
\bibliographystylebk{alpha} | |
\bibliographystyleart{plain} | \bibliographystyleart{plain} |
... | (...) |
\citebk[pp.~23--25]{milne:pooh-corner} | \citeliv[p.~23--25]{milne:test} |
... | (...) |
\citeart{einstein:1905} | \citeart{einstein:1905} |
... | (...) |
\bibliographybk{book-bib} | \bibliographyliv{liv-bib} |
\bibliographyart{art-bib} | \bibliographyart{art-bib} |
</code> | </code> |
| |
Again, as for [[ctanpkg>multibbl]], any ''\bibliography...'' command may scan any list of ''bib'' files. | 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 : |
| |
BibTeX processing with [[ctanpkg>multibib]] is much like that with [[ctanpkg>multibbl]]; with the above example, one needs: | |
| |
<code latex> | <code latex> |
bibtex bk | bibtex liv |
bibtex art | bibtex art |
</code> | </code> |
| |
Note that, unlike [[ctanpkg>multibbl]], [[ctanpkg>multibib]] allows a simple, unmodified bibliography (as well as the "topic" ones). | 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” ===== | ===== 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'exemple qui suit montre la séparation entre une bibliographie papier et une bibliographie \emph{Web}. La commande ''btPrintAll'' est l'équivalent de ''nocite*'', elle permet de citer toutes les références du fichier ''bib''. | 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> | |
\documentclass{report} | |
\usepackage[latin1]{inputenc} | |
\usepackage[T1]{fontenc} | |
\usepackage[above,section]{placeins} | |
\usepackage{bibtopic} | |
| |
\begin{document} | |
\chapter{Bibliographie} | |
| |
\begin{btSect}[plain]{biblio} | |
\section{Références bibliographiques} | |
\btPrintAll | |
\end{btSect} | |
| |
\begin{btSect}[plain]{webiblio} | |
\section{Références Internet} | |
\btPrintAll | |
\end{btSect} | |
\end{document} | |
</code> | |
| |
FIXME //Traduire.// | |
| |
The [[ctanpkg>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: | |
| |
<code latex> | <code latex> |
| \usepackage[above,section]{placeins} |
\usepackage{bibtopic} | \usepackage{bibtopic} |
\bibliographystyle{alpha} | \bibliographystyle{alpha} |
... | (...) |
\cite[pp.~23--25]{milne:pooh-corner} | \cite[p.~23--25]{milne:test} |
... | (...) |
\cite{einstein:1905} | \cite{einstein:1905} |
... | (...) |
\begin{btSect}{book-bib} | \begin{btSect}{liv-bib} |
\section{References from books} | \section{Livres de référence} |
\btPrintCited | \btPrintCited |
\end{btSect} | \end{btSect} |
| |
\begin{btSect}[plain]{art-bib} | \begin{btSect}[plain]{art-bib} |
\section{References from articles} | \section{Articles de référence} |
\btPrintCited | \btPrintAll |
\end{btSect} | \end{btSect} |
</code> | </code> |
| |
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. | Notez ici deux choses : |
| * 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{*}'' ; |
| * 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''. |
| |
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: | 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 : |
| |
<code latex> | <code latex> |
bibtex diss1 | bibtex fichier1 |
bibtex diss2 | bibtex fichier2 |
</code> | </code> |
| |
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{*}''). | 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''. |
| |
However, the //real// difference from [[ctanpkg>multibbl]] and [[ctanpkg>multibib]] is that selection of what appears in each bibliography section is determined in [[ctanpkg>bibtopic]] by what's in the ''bib'' files. | |
| |
| |
| |
===== Avec l'extension “splitbib” ===== | ===== Avec l'extension “splitbib” ===== |