Utilisation simplifiée de BibTeX

ou BibTeX pour les nuls


Anne Buttighoffer, Alain Coulais et Eric Lefèvre

Septembre 1995

Ce document en version LaTeX2e

Bonne nouvelle !!

BibTeX permet d'utiliser des fichiers contenant un ensemble de références bibliographiques entrées ``une fois pour toutes'' sous forme standardisée et de pouvoir les présenter dans un document LaTeX selon les différents formats requis par les nombreux journaux ou bases bibliographiques existants. Autrement dit, fini la corvée ininterressante et longue qui consiste à ``rentrer à la main'' les références bibliographiques souvent les mêmes en faisant attention à les adapter aux exigences du format de publication bref de faire le travail de l'éditeur. L'idée de génie consiste en fait à séparer le fond (ici les références bibliographique) écrites dans un fichier  bidule.bib  de la forme (titres en italiques, volumes en gras ou soulignés...) codée dans un fichier  machin.bst : il suffit alors d'utiliser  truc_muche.bst  à la place de  machin.bst  pour changer la forme ``Formidable ! ''.

Fonctionnement

Voici comment ça marche ( enfin d'après ce que j'en ai compris hé oh moi pas TeXperte !! ):
  1. Le fichier  Mon_fichier.tex  est lu par LaTeX, il doit contenir la séquence:
    \bibliography{bidule}
    \bibliographystyle{machin}
    et des \cite{ clef } dans le texte.
    Ces appels sont notés dans le fichier  Mon_fichier.aux  qui est créé. ``Ah bien, je le note ! ''  
     
  2. Il faut alors faire tourner BibTeX sur  Mon_fichier , les fichiers  bidule.bib  et  machin.bst  sont alors lus pour produire une bibliographie extraite de  bidule.bib  avec le format bibliographique définit dans  machin.bst . Le résultat  Mon_fichier.bbl  de cette compilation contient la séquence de commandes bibliographiques habituelles de LaTeX (c'est ce que l'on aurait dû ``entrer à la main'': les \bibitem).  
     
  3. Au passage suivant de LaTeX sur  Mon_fichier.tex  le miracle devrait se produire...

Ok ok ben comment ?

les bases bibliographiques

Voici quelques examples de ce que l'on peut faire. Tout d'abord, comme avec l'environement  bibliography  normal de LaTeX, on peut faire des citations avec \cite{ clef } comme celle-ci BibTeXer (qui est rédigé en français bien sûr). Par défaut, seules les références appelées par leur clef dans un \cite seront classées et reportées dans la biblio (on extrait de la base bibliographique uniquement ce dont on a besoin). Pour citer tout le contenu du fichier biblio, il faut utiliser \nocite{*} avant \bibliography{bidule} ou bien \nocite{ clef } pour ajouter une référence non citée dans le texte . Les références sont séparées en plusieurs catégories ( Article Book PhDThesis  ...) et comprennent différent champs ( author title year  ...) entrées dans le format suivant:


@ARTICLE{Ess1-etal,
author = "Tom Toto and others",
title = "Exemple d'article avec 1 auteur et un et~al.",
journal = jito,
volume = 92,
pages = 207,
year = 1999,
}

@ARTICLE{Ess2-etal,
author = "Tim Titi and Tom Toto and others",
title = "Voyez la différence~!",
journal = jiti,
volume = 308,
pages = "954--965",
year = 2001,
}

@ARTICLE{Ess6,
author = "Relax Max and Alaise Blaise and Raoul Cool and
Fo Pa\c{c}anfer and Ya Padlézard and Va Sferviré",
title = "Et \c{c}a c'est pas beau~?",
journal = "Revue des Miracles",
volume = 1,
pages = "1954--1965",
year = 2010,
}

 Ess1-eta ,  Ess2-etal  et  Ess6  sont les clefs. Les auteurs sont séparés par des  and  ce qui permet d'utiliser les  ,  sans ambiguité ( Tom Toto, Jr. and Tim Titi and ... ). Les  and others  produisent des  et al.  automatiquement.  jito  et  jiti  ont étées prédéfinies pour 'Journal Interne des Totos' et 'Journal Internationnal des Titis' en plaçant en tête du  .bib :
@STRING{jito = "Journal Interne des Totos"}
@STRING{jiti = "Journal Internationnal des Titis"}
Remarques pratiques
Il est possible d'utiliser des commeandes LaTeX dans les champs. Par exemple pour les signes > $>$, {M}ajuscule pour imposer à BibTeX de garder une majuscule,  --  pour les tirets longs etc. comme définis dans LaTeX a Document Préparation System de L. Lamport. Tous les carateres accentués peuvent être écrits comme dans un fichier LaTeX normal sauf les " qui doivent être écrits {\"a} (pour ne pas provoquer de confusion avec les guillemets délimitant les champs).

Si l'on ignore des informations sur certains champs (volume du journal, mois de publication ...) rien de plus simple: on ne les écrit pas. L'ordre des différents champs n'a pas d'importance (BibTeX ne s'en occupe pas). Il est à noter que les fichiers de format  .bst  sont prévus pour supporter certains oublis mais pas tous: ne pas mettre d'auteur à un article ou un livre produit une erreur et BibTeX refusera de citer cette référence ce qui, en y réfléchissant bien, semble tout à fait normal ``Ben oui Mais pourquoi ? ''.

Dernier point, si des erreurs se produisent lors de la compilation, elles peuvent provenir du fait que des symboles supposés prédéfinis ne le sont pas en réalité (ex.  \BibTeX  pour BibTeX n'est pas toujours défini).

En ce qui concerne les .bst alors moi je dis:

Le format des fichiers  .bst  est nettement moins clair ( pour moi !! ), le plus simple est de prendre un fichier déjà existant et de le modifier. On peut alors mettre les titres en italique, les volumes en gras, choisir de mettre les initiales des auteurs ou le prénom en entier... Mais quelques essais sont nécessaires avant que ça marche ``pile poil''.

Le langage est à notation polonaise inverse (ordre1, ordre2, test). Les commentaires sont les % comme en TeX. La liste des champs utils est déclarée en début de fichier pour plus de détails voir BibTeXing et Designing BibTeX Styles de Oren Patashnik.

Voici quelques exemples pour s'attaquer aux titres ou aux noms des auteurs. Tout d'abord voici le style standard ( plain.bst ):


.... plein de trcs ...

INTEGERS { nameptr namesleft numnames}

FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}

FUNCTION {format.authors}
{ author empty$
{ "" }
{ author format.names }
if$
}

... ``Et ca continue encore et encore
C'est que le debut d'accord d'accord''....



Il produit des noms d'auteurs comme ceux-ci:  Tom Toto, Tim Titi, ... il met  et al. pour les  and others  rencontrés et  , et al.  si il y au moins deux auteurs cités avant.

On peut bricoler pour avoir les noms des auteurs de la façon suivante:  Toto T., T. Titi, ... et mettre automatiquement un  et al.  après 5 auteurs. Grâce à ces quelques lignes:


INTEGERS { nameptr namesleft numnames limaut}

FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
#5 'limaut :=

numnames 'namesleft :=
{ namesleft #0 > }
{ nameptr #1 >
{s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=}
{s nameptr "{vv~}{ll~}{f.}{, jj}" format.name$ 't :=}

if$
nameptr #1 >
nameptr limaut >
{ "others" 't :=
#0 'namesleft :=}
'skip$
if$

{ namesleft #1 >
{ ", " * t * }
{
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}



Ah que cool non ? Remarquez l'effet de ces ordres sur l'auteur Va Sferviré dans Et ça c'est pas beau ? (en voila un qui porte bien son nom).
Bon courage !!
En cas de problème, il est toujours possible de faire tourner un des fichiers  .bst  de défaut ( plain.bst  par exemple) puis d'éditer le fichier  .bbl  produit pour le corriger.

Bibliographie

Buttighoffer A., A. Coulais, et E. Lefèvre.
BibTeXer, Cette documentation simple sur BibTeX en français, Septembre 1995.

Knuth D. E.
The TeXbook, Addison-Wesley, 1984.

Lamport L.
LaTeX A Document Preparation System, Addison-Wesley, 1986.

Max R., A. Blaise, R. Cool, F. Paçanfer, Y. Padlézard, et al.
Et ça c'est pas beau ?, Revue des Miracles, 1, 1954--1965, 2010.

Patashnik O.
BibTeXing, Documentation for general BibTeX users (btxdoc.tex BibTeX distrib.), 8 Février 1988.

Patashnik O.
Designing BibTeX styles, The part of BibTeX's documentation that's not meant for general users (btxhak.tex BibTeX distrib.), 8 Février 1988.

Toto T. et al.
Exemple d'article avec 1 auteur et un et al., Journal Interne des Totos, 92, 207, 1999.

Titi T., T. Toto, et al.
Voyez la différence !, Journal Internationnal des Titis, 308, 954--965, 2001.


© 1995-98 Buttighoffer, Coulais, Lefèvre