Faire une bibliographie avec BibTeX

Pourquoi BibTeX ?

Il peut sembler bizarre de devoir recourir à un programme externe pour générer quelques lignes de texte à la fin d'un mémoire. Néanmoins l'intérêt de BibTeX apparaitra très rapidement à l'utilisateur désireux de construire sa bibliographie au fur et à mesure de la rédaction du texte, tout en respectant les conventions, par exemple dans le cas d'une thèse...

De plus, la plupart des bibliographies d'ouvrages scientifiques se doivent d'être au format BibTeX, afin de ne pas voir à taper les entrées bibliographiques, mais de pouvoir utiliser les bases de données existantes.

Le principe

BibTeX va chercher ses références dans une base de données que l'utilisateur crée, de manière très simple, en attribuant une « étiquette » à chaque référence, puis en remplissant un certain nombre de champs (auteurs, titre, revue, année, éditeur, etc.). Cette base de donnée est stockée sous forme de fichier texte, avec comme extension .bib. Elle peut être commune à plusieurs documents LaTeX, comme on le verra plus tard.

Lorsque l'utilisateur veut citer une référence dans le fichier LaTeX, il appelle l'étiquette qui identifie cette référence dans le fichier .bib, par la commande \cite{}. Lors de la compilation du fichier par LaTeX, la liste des références demandées s'inscrit alors dans le fichier .aux correspondant. On peut alors lancer BibTeX, qui fera le lien entre les requêtes du document et la base de données, en générant au passage un fichier .bbl, qui sera, lui, spécifique au document LaTeX tel qu'on vient de le compiler.

Enfin, une nouvelle compilation via LaTeX sera nécessaire pour afficher correctement la bibliographie ainsi que les renvois du texte.

En pratique

Construire la base de données

Voici un extrait de base de données :

@article{Johnson,
        author = {Edgar G. Johnson and Alfred O. Nier},
        title = {Angular Aberrations in Sector Shaped 
        Electromagnetic Lenses for Focusing Beams of Charged Particles},
        journal = {Physical Review},
        volume = {91},
        number = {1},
        month = {jul},
        year = {1953}
}

@phdthesis{Zoran,
        author = {Zoran Racic},
        title = {\'Etude et essais du spectromètre à plasma {DYMIO}
	de la  mission {MARS 96}},
        publisher = {Université Pierre et Marie Curie},
        year = {1996}
}

Toute entrée commence par un @, suivi par un descripteur. Entre accolades, se trouve l'étiquette, puis les champs, composés d'un sous-descripteur et de la valeur de celui ci, entre accolades. Les champs sont séparés par des virgules, l'oubli de celles ci étant vraisemblablement la source d'erreurs la plus courante !

A priori, BibTeX s'occupe des majuscules, et n'hésite pas à en supprimer si tel est son bon plaisir. Il y a moyen de lui faire savoir qui c'est le chef, en enfermant les mots qu'on désire laisser en majuscule entre accolades. Les commandes TeX sont autorisées.

N'hésitez pas à fournir un maximum d'informations, BibTeX s'arrangera pour tout faire rentrer (ou donnera des messages d'avertissement s'il en manque...)

Sauvegardez le fichier sous un nom se terminant par .bib

Afficher la biblio dans le document LaTeX

À l'emplacement prévu dans le fichier .tex, insérez les lignes :

\addcontentsline{toc}{section}{Références}
\bibliographystyle{plain}
\bibliography{stlong}

La commande \addcontentsline n'est pas obligatoire, mais elle permet de référencer la bibliographie dans la table des matières.

\bibliographystyle permet de choisir le style de bibliographie.

\bibliography permet d'indiquer quelle base de données doit être utilisée. On indique le nom du fichier, sans l'extension .bib

Citer une référence dans le texte

LaTeX n'affiche pas toutes les références contenues dans la base de données, seulement celle qui sont citées dans le texte. Par conséquent il est normal à ce stade de ne rien voir s'afficher... La commande à utiliser pour citer une référence est tout simplement

\cite{label}

label est l'étiquette attribuée lors de la construction de la base de données. Dans le style plain, cette commande apparaît alors dans le fichier .dvi sous la forme [X], où X est le numéro utilisé dans la bibliographie, ou un ? si l'étiquette est erronée, ou qu'il manque une compilation de LaTeX et/ou de BibTeX.

On peut néanmoins faire apparaître une référence dans la bibliographie sans la citer explicitement dans le texte, à l'aide de la commande :

\nocite{label}

Compilation(s)

Il ne reste plus qu'à compiler le tout :

latex mon_fichier.tex
bibtex mon_fichier.tex
latex mon_fichier.tex
Ce n'est pas le fichier .bib qu'on indique à BibTeX, mais le fichier .tex !
Auteurs : Frédéric Meynadier (2001). Dernière modification le 2002-11-13 par François-Xavier Coudert.