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.
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.
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
À 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
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}
où 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}
Il ne reste plus qu'à compiler le tout :
latex mon_fichier.tex bibtex mon_fichier latex mon_fichier.tex
.bib
ni
le fichier .tex
qu'on indique à BibTeX, mais le fichier
.aux
produit dans la première compilation du fichier
.tex
. Cependant, comme l'indique la commande ci-dessus,
cela fonctionne quand même si on ne précise pas l'extension.