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.
Enfin, BibTeX c'est la possibilité de changer l'ordre utilisé dans la bibliographie (alphabétique, chronologique, thématique, ordre de citation dans le texte) sans tout retaper. Il est également possible de changer l'apparence (le titre en italique ou entre guillements ?), l'ordre des éléments dans une référence (le prénom avant ou après le nom ?, le titre avant ou après la revue ?), là encore sans grand effort.
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
(imposé par le type de document article
, book
,
inproceedings
, etc.). 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. Cependant, la meilleure solution est de ne pas placer ces accolades et de modifier le style de bibliographie ou d'en changer s'il ne vous convient pas. 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...), et les champs inconnus seront ignorés si nécessaire.
Sauvegardez le fichier sous un nom se terminant par
.bib
La table suivante résume les types et les champs couramment connus.
Types de documents | Champs |
article | address |
book | annote |
booklet | author |
conference | booktitle |
inbook | chapter |
incollection | crossref |
inproceedings | edition |
manual | editor |
mastersthesis | howpublished |
misc | institution |
phdthesis | journal |
proceedings | month |
techreport | note |
unpublished | number |
organization | |
pages | |
publisher | |
school | |
series | |
title | |
type | |
volume | |
year |
author
est le champ utilisé pour saisir la liste des
auteurs sous la forme prénom nom
ou
nom, prénom
.
and
et surtout pas
une virgule.
Pour les articles (type article
), les champs importants
sont author
, title
, journal
,
year
, pages
(les champs volume
et
number
peuvent eux aussi servir). Pour les livres (type
book
) on prendra garde à donner la maison d'édition à
l'aide du champ publisher
et non editor
(les
éditeurs d'un ouvrage collectif) ou edition
(le numéro de
réédition). L'adresse de la maison d'édition est donnée par
address
. Le type misc
sert de fourre-tout
quand aucune catégorie ne semble correspondre à un document (un
manuscrit par exemple), tous les champs peuvent être utilisés, mais
pensez à ajouter soit howpublished
soit une
note
explicative. inbook
et les autres types
dont le nom commence par in
désignent des chapitres (le
numéro du chapitre sera précisé via le champ chapter
et les
pages concernées par pages
) ou des paragraphes dans un
livre (le titre pourra être précisé avec booktitle
), etc.
Le champ crossref
permet de faire référence audit livre
s'il est présent lui aussi dans la bibliographie. Les documents
académiques (mastersthesis
et phdthesis
)
pourront intégrer school
ou institution
pour
renseigner l'université.
À l'emplacement prévu dans le fichier .tex, insérez les lignes :
\bibliographystyle{plain} \bibliography{stlong}
\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
Utilisez le package tocbibind
, capable de créer des entrées
pour la bibliographie, l'index et aussi la table des matières (!), les
listes des figures et des tables. Ces trois derniers éléments
n'étant pas du meilleur effet, on lui pourra passer les options
nottoc
, notlof
et notlot
.
\usepackage[nottoc, notlof, notlot]{tocbibind}
LaTeX n'affiche pas toutes les références contenues dans la base de données, seulement celles 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 fichier .bib. 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 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}
Un cas particulier est \nocite{*}
qui dit à BibTeX
d'inclure dans la bibliographie toutes les références, citées dans le
corps du texte ou non.
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.