Ceci est la mise à jour d'un dernier article de Fabien Conus relié à LaTeX, consacré à la création de bibliographies par LaTeX et son inséparable compagnon, BibTeX. L'original de cet article se trouve ici. Comme pour les articles précédents sur LaTeX, j'en ai profité pour y ajouter certaines choses que je trouvais personnellement intéressantes, comme des considérations sur la syntaxe de BibTeX ou sur sa francisation.
Bien des utilisateurs de LaTeX y viennent et y restent en particulier pour ses capacités en matière de composition de bibliographies, paraît-il. J'espère que vous comprendrez pourquoi à l'issue de cet article :-)
Bonne lecture !
Franck Pastor
Vous vous rappelez sans doute la série d'articles de ce site destinée à vous introduire au monde magnifique de LaTeX.
Un des points forts de LaTeX dont je ne vous ai pas encore parlé, et pourtant c'est peut-être pour certains le plus important, est sa gestion des bibliographies, à la fois simple et remarquablement puissante. Il faut simplement connaître quelques principes de base, que je vais exposer maintenant.
L'appel à une référence bibliographique se fait très simplement avec la commande \cite{motcle}. Chaque ouvrage ou article de référence est ainsi repéré par un mot-clé, sans accent ni cédille, que vous lui attribuez. Si par exemple je désire citer en référence un article d'Einstein publié en 1935 dans « Physical Review », je lui associerai par exemple le mot-clé EinsteinPR1935. Dans mon document LaTeX, j'écrirai alors:
| \cite{EinsteinPR1935} |
Il y a deux méthodes distinctes pour indiquer à LaTeX les détails d'une référence bibliographique. La première se fait en interne dans votre document grâce à l'environnement thebibliography.
L'environnement thebibliography
Si votre bibliographie est peu fournie, vous pouvez entrez vos ouvrages directement dans le fichier .tex. Là où vous désirez faire apparaître votre bibliographie (typiquement à la fin du document), vous allez indiquer à LaTeX les détails de chacune des références en spécifiant une commande \bibitem. Tout ceci se fait dans l'environnement thebibliography. Par exemple, pour l'article d'Einstein j'entrerai ceci:
|
\begin{thebibliography}{99} \bibitem{EinsteinPR1935}A.~Einstein and N.~Rosen, Phys. Rev. \textbf{48}, 73 (1935) \end{thebibliography} |
J'ai utilisé là le style de bibliographie communément utilisé en physique, mais libre à vous d'en changer, par exemple en ajoutant le titre de la publication, son numéro, etc.
Le {99} qui suit la déclaration de l'environnement donne une prédiction en largeur du nombre d'éléments que contiendra votre bibliographie. Il vous est demandé de manière à pouvoir gérer la mise en page. Par exemple, si vous votre bibliographie comporte un nombre d'ouvrages inférieur à 10, vous pouvez indiquer « 9 » ou « 3 » ou « 7 », en fait n'importe quel nombre unitaire. Si elle en contient entre 10 et 99, vous pouvez indiquer « 99 » ou « 35 » ou… Bref, peu importe la valeur de cet argument pourvu qu'il ait la même quantité de chiffres constitutifs que le nombre d'ouvrages que vous listez.
Une fois l'appel à la référence introduite, il faut procéder à deux compilations du document. À la première compilation, LaTeX aura créé la bibliographie, et aura stocké dans le fichier .aux les informations nécessaire à la constitution des citations dans le cours du texte. À la seconde compilation, LaTeX aura lu ces informations et remplacé l'appel à \cite{motcle} par le numéro correspondant. Par exemple, si j'entre le code suivant:
|
\begin{document} Comme le proposaient Einstein et Rosen dans leur article~\cite{EinsteinPR1935}, la théorie générale de la relativité... \begin{thebibliography}{99} \bibitem{EinsteinPR1935}A.~Einstein et N.~Rosen, Phys. Rev. \textbf{48}, 73 (1935) \end{thebibliography} \end{document} |
j'obtiendrai ceci:
Cette méthode très simple a deux inconvénients : le premier est que vous devez écrire chaque entrée à la main et que cela devient très pénible lorsque le nombre de références augmente de manière importante. Le deuxième est que lorsque vous rédigerez un nouveau document vous devrez réécrire tous les éléments bibliographiques, alors qu'il a fort à parier que vous allez réutiliser des éléments existants.
Pour pallier cela, nous allons utiliser un programme externe à LaTeX, mais qui lui est indissociable : il s'appelle BibTeX.
BibTeX
Présentation
Avec BibTeX, toute la gestion des références se fait à partir d'un fichier portant l'extension .bib.
Ce fichier .bib contient alors les différents éléments de votre bibliographie, chacun d'eux étant associé à un mot-clé. Dans votre fichier LaTeX (extension .tex), l'appel à une référence se fera exactement de la même manière que précédemment, en utilisant ce mot-clé et la commande \cite :
| \cite{EinsteinPR1935} |
La différence essentielle réside dans le fait que vous préciserez les détails des références bibliographiques dans le fichier externe .bib, et non plus dans le fichier .tex lui-même. Dans le cas de l'article d'Einstein par exemple, vous écrirez dans ce fichier .bib :
@article{EinsteinPR1935,
Author = {A. Einstein and N. Rosen},
Journal = {Phys. Rev.},
Number = {1},
Pages = {73-77},
Title = {The Particle Problem in the General
Theory of Relativity},
Volume = {48},
Year = {1935}}
Comme vous le voyez, la syntaxe n'a plus grand'chose à voir avec celle de LaTeX !
Le @article spécifie une entrée de la bibliographie et indique que nous avons affaire à un article. Pour citer un livre, on utilisera l'entrée @book. Il ne vous reste plus qu'a remplir certains champs comme l'auteur, le titre, etc. Dans le cas d'un livre, on indiquera l'éditeur (publisher), l'adresse de publication (address), etc. Par exemple :
@book{rayner1999,
Address = {Berlin},
Author = {D. Rayner and K. Athanassenas and B. Collings
and S. Mitchell and P. Hackett},
Publisher = {Springer},
Series = {Springer Series in Cluster Physics},
Title = {Theory of Atomic and Molecular Clusters},
Year = {1999}}
Il y a bien d'autres types d'entrées possible dans un fichier .bib, toujours précédées d'une arobase @. Par exemple, @booklet (livret), @conference, @phdthesis (doctorat), etc. Selon le type d'entrée, certains champs devront obligatoirement être remplis, d'autres seront optionnels ou bien ignorés.
Je reviendrai plus loin sur les particularités de la syntaxe d'une entrée et de ses champs. Dans l'immédiat, examinons les modalités d'utilisation de BibTeX.
Comment utiliser BibTeX
Supposons que votre fichier .bib (appelons-le bibliographie.bib) est terminé, et contienne les deux entrées définies précédemment, comme ceci :
Vous placez alors ce fichier dans le même dossier que votre fichier .tex, ou bien, si vous comptez l'utiliser très souvent, dans le dossier
Le dossier Library est la « Bibliothèque » de votre dossier-maison. Les autres éléments de cette arborescence (texmf, bibtex, bib) sont à créer si besoin est par vous-même. Au final, cela doit donner ceci :
Après cette petite manip, cette bibliographie sera disponible pour chacun de vos fichiers LaTeX.
Pour l'appeler depuis votre document LaTeX, vous placerez la commande
| \bibliography{bibliographie} |
à l'endroit du document où vous désirez faire apparaître les références (biliographie représente le nom du fichier .bib).
Mentionnons au passage que la commande bibliography peut prendre plusieurs arguments. Si vos références bibliographiques étaient réparties sur plusieurs fichiers, genre bibliographie1.bib, bibliographie2.bib, etc. il suffirait d'y faire appel ainsi :
| \bibliography{bibliographie1,bibliographie2,…} |
Vous aurez remarqué que je n'ai donné aucune instruction de mise en forme dans notre fichier bibliographie.bib, j'ai juste rempli des champs. Pour indiquer à BibTeX le type de présentation que vous voulez donner à votre bibliographie, vous allez spécifier dans votre fichier LaTeX un style de bibliographie grâce à la commande
| \bibliographystyle{style} |
L'argument style peut prendre différentes valeurs, selon la forme que vous désirez ou qui vous est imposée par l'éditeur. BibTeX dispose déjà de quatre styles standards, qui sont les styles
- plain (« ordinaire », « normal ») ;
- unsrt (unsorted, non trié) ;
- alpha (alphabétique) ;
- abbrv (abbreviated, abrégé).
Le style plain est le style classique dans lequel les références sont classées par ordre alphabétique. Le style unsrt classe les références par ordre d'apparition. Le style alpha utilise les premières lettres de chaque auteur comme étiquettes de références dans le texte (plutôt que [1], [2], etc.) et enfin abbrv abrège les noms des auteurs.
De nombreux styles sont toutefois mis à disposition par d'autres organismes et sont aussi installés par défaut. Parmi les plus utilisés on nommera par exemple amsplain (de l'American Mathematical Society) ou achemsol (de l'American Chemical Society).
Choisissez pour notre exemple le style plain. Votre document LaTeX à compiler ressemblera à ceci :
|
\begin{document} Si on se réfère à \cite{rayner1999} et~\cite{EinsteinPR1935}, blablabla, etc. \bibliographystyle{plain} \bibliography{bibliographie} \end{document} |
Pour compiler votre document LaTeX et obtenir votre bibliographie, vous devrez procéder en quatre étapes.
Tout d'abord, vous compilez de la façon habituelle, avec LaTeX, par un clic sur le bouton « Typeset » de TeXShop ou son raccourci « commande-t », ou bien en choisissant l'option « LaTeX » dans le menu « Composition », dont le raccourci est « commande-majuscule-L » :
La bibliographie n'apparaîtra pas et les citations figurant au sein de votre fichier LaTex ne sont pas encore établies : à la place, apparaissent des ??. C'est normal. Il fallait d'abord transmettre les données de citation au fichier .aux, et c'est ce que cette étape a permis de faire.
Ensuite, vous devez faire appel au programme BibTeX. Pour cela, choisissez « BibTeX » dans le menu « Composition » de TeXShop, ou utilisez le raccourci « command-shift-b » :
Ce processus ira très vite, il va juste rassembler les références dont il a besoin, en « scannant » automatiquement le fichier .aux précédemment créé. Il en résultera un fichier .bbl contenant un environnement thebibliography tel qu'étudié dans la section précédente, et également un fichier .blg qui est le fichier « log » de la compilation par BibTeX.
Compilez maintenant votre document normalement avec LaTeX, deux fois. À la première de ces deux compilations, la bibliographie contenue dans le fichier .bbl sera incorporée au document PDF de sortie, mais les ?? demeurent encore à la place des citations. À la seconde ces citations seront enfin correctement établies. Voici ce qu'on obtient comme document PDF dans le cas de notre exemple :
Pour accélérer encore ce processus à quatre compilations, vous pouvez les lancer toutes ensemble en un seul clic de souris. Il suffit d'aller dans le menu « Macros » de TeXShop, option « Applescript » et là sélectionner l'option « Bibliography » :
Je vous suggère de compiler ce même exemple en utilisant les autres styles standards de bibliographie (unsrt, abbrv et alpha), et de constater ainsi les éventuelles différences.
Une fois la bibliographie et les citations établies, il ne sera nécessaire de procéder à ces quatre compilations que lorsque vous modifierez votre fichier .bib. Sinon, compilez comme d'habitude votre document LaTeX.
Quelques points de syntaxe BibTeX
On l'a vu, un fichier .bib est constitué de différentes entrées, chacune étant associée à un mot-clé et contenant des champs que vous devez remplir. Nous allons voir bientôt comment connaître les différentes entrées possibles et les champs associés. Pour le moment, je vous propose de détailler quelque peu la syntaxe générale d'une entrée.
Au début est indiqué le type de l'entrée, précédée d'une arobase, et suivie d'une paire d'accolades entre lesquelles se trouveront le mot-clé et les champs :
@Book{}
Le nom de l'entrée (ici Book) est insensible à la casse : on aurait pu tout aussi bien écrire BOOK ou book, BibTeX n'aurait pas fait la différence.
Puis on indique le mot-clé, suivi d'une virgule :
@Book{rayner1999,}
Ce mot-clé sera censé être l'argument d'une commande \cite, il concerne donc aussi LaTeX ; en tant que tel il est sensible, lui, à la casse.
Juste après la virgule suivant le mot-clé, on entre les champs. Ici les champs title, author, publisher, year, les champs obligatoires pour une entrée @book. Les noms de champs sont insensibles à la casse. Chaque champ est suivie d'un signe = et d'une paire d'accolades (ou de double-quotes droits), suivie d'une virgule (sauf le dernier champ). Les accolades encadrent le contenu du champ :
@book{rayner1999,
Address = {Berlin},
Author = {D. Rayner and K. Athanassenas and B. Collings
and S. Mitchell and P. Hackett},
Publisher = {Springer},
Series = {Springer Series in Cluster Physics},
Title = {Theory of {Atomic} and {Molecular} {Clusters}},
Year = {1999}}
Voilà, l'entrée est complète. Vous aurez sans doute remarqué que dans le champ author, chaque patronyme d'auteur est séparé par le mot and. Dans ce champ, on entre la plupart du temps les patronymes de façon ordinaire (il n'est pas nécessaire a priori de les abréger nous-même, comme nous l'avons fait ici, le style abbrv peut d'ailleurs s'en charger tout seul). BibTeX distingue automatiquement les noms des prénoms dans la plupart des cas, même les particules :
…
Author = {Richard Wagner and Ludwig van Beethoven},
…
En cas d'ambiguïté, vous pouvez aider BibTeX à distinguer noms et prénoms en entrant le nom complet d'abord, puis une virgule et le(s) prénom(s) ensuite :
…
Author = {Elie de Beaumont, Jean Baptiste},
…
Sans doute avez-vous noté aussi que dans le champ title, on a entouré les mots Atomic, Molecular et Clusters d'accolades.
Pourquoi ? Hé bien, parce que sans cela les styles standards de BibTeX suppriment par défaut toute majuscule initiale dans le champ title d'une entrée de type @book (sauf pour le premier mot) ! C'est ce qui s'était passé dans l'exemple qu'on avait précédemment compilé : on avait négligé les accolades dans le champ title, et en conséquence les majuscules avaient disparu dans le fichier PDF. Vérifiez !
En entourant un mot d'accolades, on préserve sa capitalisation, quel que soit le style choisi. Modifiez l'exemple que nous avions compilé en y mettant les accolades dans le champ title, et vous les verrez apparaître après nouvelle passe de compilations dans le fichier PDF.
Ce comportement dépend du style choisi, et du champ. Il vise à faire respecter les canons de la typographie en matière bibliographique. Ne le modifiez que lorsque vous êtes sûr de vous dans ce domaine.
Ainsi, il est traditionnel en langue anglaise (la langue des styles standards de BibTeX) de capitaliser les initiales des mots d'un titre pour un article, mais pas pour un livre. Les styles standards suppriment donc ces majuscules initiales pour le titre d'une entrée @book, mais il ne le fera pas pour celui d'une entrée @article. Par exemple, dans notre exemple compilé, les majuscules du titre de l'article d'Einstein ont elles été conservées.
C'est donc une feature de BibTeX, pas un bug. En revanche, pour le non-anglophone, BibTeX souffre d'une véritable et sérieuse limitation : il faut entrer chaque caractère accentué de la même manière que l'« ancienne façon » de LaTeX et de plus il faut l'entourer d'accolades pour qu'il puisse être reconnu et trié correctement. Par exemple :
…
title = {M{\’e}thodes num{\’e}riques pour
le calcul scientifique},
…
En effet BibTeX, contrairement à LaTeX, en est resté au standard ASCII. J'ai connaissance de certaines de ses évolutions qui contourneraient cette limitation, mais elles ne sont hélas accessibles qu'en ligne de commande. C'est le seul véritable défaut que j'ai trouvé à BibTeX jusqu'à présent.
Intérêt de BibTeX : portabilité, styles et interfaces
L'emploi de BibTeX présente cependant plusieurs gros avantages.
Premièrement, vous pouvez utiliser un gros fichier .bib pour tous vos articles ou ouvrages, BibTeX se chargera de ne prendre que ceux dont vous avez besoin et de les placer dans votre document, les autres seront ignorés. Il sera également aisé de partager des fichiers .bib avec des collègues. On a vu cependant qu'il est parfaitement possible d'utiliser plusieurs fichiers .bib, ce qui peut être utile pour une classification précise de vos données.
Deuxièmement, changer la forme des références se fait très simplement en changeant la ligne \bibliographystyle{style}.
Enfin, l'édition d'un fichier .bib est très facile, particulièrement si on utilise un éditeur adéquat, comme Texmaker, qui fournit une interface remarquement simple et complète à la réalisation de ces fichiers. En effet, il met à votre disposition un menu « Bibliographie » très complet, proposant tous les types d'entrée que peut traiter BibTeX :
Une fois un type d'entrée sélectionné, Texmaker vous affiche dans votre fichier tout le canevas de l'entrée en question (ici @Book), vous épargnant ainsi de vous soucier de la syntaxe :
Il ne vous reste donc plus qu'à fournir le mot-clé et à compléter les champs ! Ceux qui sont marqués « OPT » sont optionnels, vous pouvez ne pas les remplir (dans ce cas vous les enlèverez complètement). Ceux marqués « ALT » vont par paires : il faut remplir l'un des deux champs, mais pas les deux. Les autres champs mentionnés sont à remplir obligatoirement.
N'oubliez pas de supprimer ces mots « ALT » et « OPT » avec la commande « Nettoyer » du menu « Bibliographie » une fois les champs corrrespondants remplis : ce ne sont que des ajouts de Texmaker destinés à vous aider et non des éléments reconnus par BibTeX.
Pour la constitution d'un fichier .bib, vous pouvez donc, en utilisant Texmaker, faire une petite infidélité à TeXShop qui ne propose rien de particulier dans ce domaine, et se contente de gérer l'exécution du programme BibTeX.
Vous pouvez également confier la gestion des fichiers .bib à un programme dédié comme BibDesk, qui a fait l'objet de son propre test sur cuk.ch.
Styles francisés pour BibTeX
La francisation d'une bibliographie n'est pas seulement l'apanage de paquets LaTeX comme babel (cf. la troisième partie de l'introduction à LaTeX). Elle relève également du style utilisé par BibTeX. Or tous les styles standards de BibTeX respectent les conventions anglo-saxonnes en la matière. Par exemple, si une référence a plusieurs auteurs, BibTeX emploiera dans le PDF la conjonction « and » et non « et » pour séparer l'avant-dernier auteur du dernier, et les noms propres des auteurs sont en caractères romains tandis que la tradition francophone les préfèrent en petites capitales. Vous pouvez le vérifier dans l'exemple compilé précédemment. De même, si le mois de la publication figure dans la référence, il sera en anglais. Et ainsi de suite.
Pour avoir une bibliographie respectant complètement les canons francophones, il faut donc utiliser un style « francisé ».
La Société Mathématique de France (SMF) a mis à disposition du public deux styles BibTeX francisés : smfplain et smfalpha, respectivement les équivalents des styles plain et alpha. Ces deux styles sont heureusement livrés avec TeX Live. Voici ce que donne notre exemple avec le style smfplain, utilisé bien sûr avec la commande \bibliographystyle{smfplain} :
Vous pensez peut-être que l'usage d'un style francisé ne s'impose pas si la majeure partie de la bibliographie est constituée d'ouvrages non francophones (comme dans notre exemple d'ailleurs). Mais il semble raisonnable de penser que si l'ouvrage où figure la biblographie est dans une langue donnée, alors celle-ci doit respecter les conventions en vigueur dans cette langue. Et ce même si elle est essentiellement constituée de références écrites dans une autre langue.
Nicolas Markey, de l'École Normale Supérieure de Cachan, propose au téléchargement d'autres styles francisés, sur cette page ou sur CTAN. On y trouve notamment un équivalent francisé de chacun des styles standards : plain-fr, abbrv-fr, unsrt-fr et alpha-fr. Malheureusement, ces styles ne sont pas repris dans TeX Live, il faut donc les installer soi-même, en utilisant le TeX Live Manager (cf. cet article), ou bien plus simplement « à la main ». Dans ce cas, soit vous les sauvegardez dans le même répertoire que votre fichier LaTeX courant, soit, si vous comptez les utiliser souvent, vous l'installez dans votre dossier « texmf » personnel.
Par exemple, si vous voulez disposer du style plain-fr, téléchargez-le sur les liens déjà mentionnés, c.-à-d. sur la page personnelle de N. Markey ou sur CTAN, et sauvegardez-le, sous le nom plain-fr.bst, dans le dossier
Là aussi, les éléments de cette arborescence (texmf, bibtex, bst) sont à créer par vous-même dans votre dossier « Bibliothèque » personnel (Library), si ce n'était pas déjà fait. Ce qui devra donner, dans ce cas :
Veillez bien à ce que votre fichier de style ait l'extension .bst, sinon ça ne marchera pas.
Voici ce que donnera notre exemple compilé avec le style plain-fr :
Vous pouvez jouer au jeu des différences avec le style précédent :-) Pour ma part, j'avoue préférer ce style-là, n'aimant pas trop les guillemets dans une bibliographie.
Avant de terminer, j'aimerais encore ajouter quelques détails sur les bibliographies en LaTeX.
Le paquet cite
Comme je l'ai déjà mentionné, les références sont automatiquement numérotées par LaTeX. De plus, on peut faire référence à plusieurs articles en une seule fois, en plaçant plusieurs mots-clés, séparés par des virgules, en argument de la commande \cite, comme ceci :
| \cite{motcle1,motcle2,…,motclen} |
Cela produira dans le cours du document des citations du type suivant :
Grâce à l'utilisation du paquet cite, vous pouvez « compresser » les numéros des articles qui sont numérotés consécutivement. En ajoutant ceci à votre préambule :
| \usepackage{cite} |
vous obtiendrez ça :
Le paquet natbib
Le paquet natbib, utilisé conjointement avec BibTeX, impose par défaut l'utilisation pour la bibliographie d'étiquettes alphabétiques (avec mention abrégée de l'auteur et de l'année), à la façon du style standard alpha, et non plus numériques.
Mais natbib est bien plus élégant que l'emploi du simple style alpha, car il s'intègre beaucoup mieux au texte courant. Il nécessite cependant lui-même l'usage de styles qui lui sont spécifiques. Les équivalents « natbib » des styles standards (le style alpha étant naturellement exclu) sont plainnat, unsrtnat, abbrvnat. Ci-dessous le résultat de notre exemple compilé avec le paquet natbib chargé en préambule, et utilisé en conjonction avec le style plainnat :
Natbib peut être également configuré pour produire des citations numériques compressées, et ainsi fournir une alternative à cite, avec lequel il est du reste incompatible.
Le site de Nicolas Markey cité plus haut et son relais sur CTAN fournissent également des styles francisés pour utilisation avec natbib : plainnat-fr, abbrvnat-fr et unsrtnat-fr. Ils sont à installer sur votre ordinateur de la même manière que précédemment. Voici le résultat de l'exemple précédent avec le style plainnat-fr cette fois-ci :
Je n'irai pas plus loin dans la description des possibilités qu'offre natbib, qui propose bon nombre d'options et de commandes pour personnaliser au mieux votre bibliographie selon vos desiderata. Je vous renvoie à sa documentation (en anglais) ou bien à sa description dans le LaTeX Companion, de Franck Mittelbach et Michel Goossens, deuxième édition, version française.
Mentionnons pour conclure que si vous utilisez le paquet hyperref dont il était également question dans le dernier article de la série sur LaTeX, les étiquettes des références (numériques ou alphabétiques) seront « cliquables » et vous mèneront directement à la page correspondant à la référence en question.
Pour en savoir plus
Pour une documentation complète sur BibTeX, vous pouvez vous plonger dans cet article (en anglais) de Nicolas Markey ou bien dans l'article dédié sur le Wikipedia anglophone, raisonnablement bien écrit. Vous pouvez également consulter une des documentations écrites que j'avais référencées dans le dernier article de la série sur LaTeX, comme le livre de Bernard Desgraupes, LaTeX, apprentissage, guide et référence, le LaTeX Manual de Leslie Lamport ou le LaTeX Companion, déjà cité.












