Fiche logiciel validé
  • Création ou MAJ importante : 14/03/08
  • Correction mineure : 20/06/08
Auteur :
Relecteur(s) :
Responsable thématique :
Mots-clés

BibTeX : outil de préparation des citations et de gestion de la bibliographie des articles

Description
Fonctionnalités générales : 

Pour l’utilisateur final, typiquement un scientifique rédigeant un article en LaTeX, BibTeX est un outil logiciel transparent permettant d’oublier les détails de la gestion effective des citations et de la bibliographie du document en cours de création. Finies les bibliographies incomplètes ou contenant des entrées non citées, ou de style approximatif. Lors de la compilation du document LaTeX, l’outil BibTeX cherche dans la base bibliographique (une liste de fichiers ASCII contenant des fiches bibliographiques au format BibTeX) les références citées et les ajoute, en les adaptant au style associé à l’article, à la bibliographie. De la même manière que LaTeX calcule et met à jour les valeurs des champs des références croisées, des numéros de pages, de figures, de sections et établit éventuellement la table des matières …, BibTeX gère aussi la substitution des champs de citation bibliographique dans le corps du texte. Les citations manquantes sont évidemment indiquées. Le seul effort de l’auteur est de se souvenir des clefs des articles qu’il cite dans son document via la simple commande \cite{clef}.

BibTeX est aussi un format ouvert et extensible de fiches bibliographiques et un outil de gestion de base bibliographique (une collection de fiches dans un ou plusieurs fichiers).

Interopérabilité : 

Les fichiers BibTeX contenant les fiches bibliographiques sont en ASCII, modifiables par tout éditeur de texte (par exemple: Vim] - http://www.projet-plume.org/fiche/vim (X)Emacs, Kedit, …).

Il existe de nombreux filtres d’entrée et de sortie (conversion) entre le format BibTeX et d’autres formats bibliographiques, dont EndNote, CiteMed, DublinCore XML, …

Il faut cependant voir que la conversion peut être sérieusement limitée par la non-bijectivité entre les formats (des champs dans certains formats n’existent pas dans d’autres, ou bien sont distribués dans plusieurs champs).

Contexte d'utilisation : 

Pour compiler complètement un document en LaTeX avec calcul de toutes les valeurs variables, il faut trois passes du compilateur. BibTeX s’insère simplement entre la première et la seconde passe, tout comme le générateur d’index makeindex, d’ailleurs. Bien évidemment, il faut indiquer dans le document maître en LaTeX que l’on va faire générer automatiquement la bibliographie via BibTeX en donnant la liste des fichiers bibliographiques et le nom du fichier de style bibliographique.

BibTeX est un outil logiciel très largement utilisé pour la préparation automatique de la bibliographie pour des articles, des thèses, des notes scientifiques. Il permet d’extraire un sous-ensemble de références bibliographiques d’une ou de plusieurs bases (qui sont en fait de simples fichiers ASCII dans un format trivial) pour faire deux actions simultanées dans un fichier LaTeX en cours de compilation :

  • remplir toutes les occurrences “\cite{}” par la bonne référence bibliographique dans le bon format du style de l’article ou du livre [i.e. quelque chose du genre : [1], (Bose & Einstein), (Bose & Einstein 1928), …)]
  • rassembler les références dans le bon format correspondant au style de l’article, livre, … pour générer un fichier *bbl qui, soit sera inséré automatiquement dans la version camera ready du papier (sortie DVI, PDF ou PS …), soit pourra être inséré à la main dans le fichier LaTeX.

La plupart des journaux scientifiques travaillant avec LaTeX, soit indiquent un style bibliographique générique (une poignée est présente dans une distribution LaTeX de base), soit proposent un style bibliographique adapté (il en existe des centaines).

BibTeX est hautement recommandé pour les étudiants de thèse qui gèrent plusieurs centaines de références, corollairement, ils pourront recycler trivialement ces références pour les articles associés à cette thèse. L’idéal est de commencer à collecter les fiches bibliographiques au fur et à mesure de la recherche bibliographique, en n’hésitant pas à ajouter des commentaires, des liens Web, … dans les fiches.

Via la commande \nocite{*}, il est trivial de générer, pour l’ensemble des entrées d’une base ou de plusieurs bases, une sortie de l’ensemble formatée (dvi, ps, pdf, HTML, …) avec un style donné. Les doublons peuvent être gérés. Ceci peut être utile dans plusieurs contextes, dont la mise en ligne de bases, la préparation de liste de publication d’un chercheur ou d’un laboratoire …

Limitations, difficultés, fonctionnalités importantes non couvertes : 

La principale limitation pour les utilisateurs occasionnels de BibTeX semble être de bien comprendre le mécanisme de génération du fichier “bbl” et, dans le cadre de la rédaction d’un article à plusieurs, d’utiliser les bons moyens pour échanger avec les collègues sans forcer à l’usage de BibTeX …
Il s’agit là non pas d’une limitation de BibTex en lui-même mais des efforts acceptables par un ensemble de personnes, le maillon le moins curieux limitant l’usage de l’ensemble.

En mode avancé, une des carences de BibTeX semble bien être le choix de la dizaine de type de fiches pré-existants (dont le traitement est connu par la plupart des styles des grands journaux scientifiques). On citera : @article, @proceeding, @book, @inproceeding … Autant ceci convient très bien pour la plupart des utilisateurs, autant cela peut être bloquant pour certains usages. Par exemple, il sera délicat de gérer une base bibliographique d’un laboratoire avec les catégories nécessaires pour un quadriennal CNRS ou Université sans certaines précautions : BibTeX n’a aucun moyen pour séparer les articles des journaux à referee des autres articles, ni les articles en Français de ceux en Anglais. Quelques “clefs” supplémentaires et quelques filtres à l’aide d’outils connexes (bibtool …) permettent de contourner ceci sans trop de problème.

On peut mettre en commun certains champs (plusieurs articles d’une même conférence) via un mécanisme de références croisées (cross-ref). Quoique intellectuellement judicieux, je ne recommande pas l’usage extensif de ces cross-references pour des grosses bases à fichiers multiples et qui seraient scriptées.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré : 

BibTeX est intégré dans toutes les version LaTeX que je connaisse. Il semble être figé dans une très vieille mouture (0.99c), sans déficience connue. Dans les système Unix et BSD (dont Linux et MacOS-X), son arborescence est généralement sous: /usr/share/texmf/bibtex/ qui doit contenir les fichiers de style bibliographique ainsi que l’outil de génération de nouveaux fichiers de style (makebst).

Les fichiers de style bibliographique ont un suffixe en .bst. Les plus fréquents, généralement présent dans les installations LaTeX actuelles, sont : acm.bst, apalike.bst, ieeetr.bst, alpha.bst …

Par contre, il est fréquent que les styles des journaux “métier” (Nature, Science, A&A, Spie, …) ne soient pas mis dans les arborescences communes. Les administrateurs système et réseau ne savent pas nécessairement que cela existe, ni les besoins concrets des utilisateurs. Le résultat est souvent que des co-auteurs d’un article, travaillant sur le même ordinateur d’équipe, ont des fichiers de style d’un journal dans des versions différentes …

Plates-formes : 

À ma connaissance, BibTeX est présent dans toutes les versions LaTeX récentes (moins de 20 ans d’âge). Et LaTeX est disponible sur presque toutes les plateformes !

Logiciels connexes : 

Il existe des dizaines d’outils plus ou moins intéressants, récents, maintenus, pertinents, couvrant des manques de BibTeX, comme de disposer d’un mode de test simple des champs des fiches (il est fréquent d’oublier une accolade ou une virgule, et ça peut faire mal, comme toujours dans l’univers LaTeX !)

  • JabRef - http://www.framasoft.net/article3111.html , interface graphique en Java permettant de gérer des bases bibliographique au format BibTeX, pour ceux qui aiment les clickodromes. JabRef présente l’avantage de proposer plusieurs filtres vers d’autres formats, tant en entrée qu’en sortie. Attention aux limites déjà mentionnées.
  • Bibtool - http://www.gerd-neugebauer.de/software/TeX/BibTool... , outil de tri et d’extraction en mode commande. Autant son apprentissage initial peut être délicat, d’autant qu’une typo très gênante a trainé pendant des années dans son fichier PDF d’aide et que sa documentation en ligne est trop succincte en exemples élémentaires, autant son usage pour gérer de grosses bases (plusieurs milliers d’entrées, plusieurs fichiers) en mode script est très efficace (extraction par clef, année, auteur, type …)
  • (X)Emacs - http://www.gnu.org/software/emacs/, qui vient désormais le plus souvent avec des modes pré-intégrés pour LaTeX et BibTeX (syntax enligthning), propose un mode BibTeX avec de nombreuses options, la plus utilisée étant probablement le template pour les différentes fiches possibles (@author …). Ces templates indiquent les champs obligatoires et optionnels.
  • BibDesk - http://bibdesk.sourceforge.net/ est un gestionnaire graphique de bases bibliographiques écrit spécifiquement pour MacOS.
  • PyBliographer - http://www.pybliographer.org/ est un gestionnaire graphique de bases bibliographiques écrit en Python qui propose également un accès facile aux bases bibliographiques aux programmeurs Python.
  • CMFBibliographyAT - http://plone.org/products/cmfbibliographyat et ATBiblioList - http://plone.org/products/atbibliolist permettent d’intégrer des bases bibliographiques en format BibTeX dans un serveur Plone, ce qui est une bonne façon de gérer et en même temps publier la liste de publications d’une équipe ou d’un laboratoire.
Autres logiciels aux fonctionnalités équivalentes : 

Il existe des logiciels payants et non libres dans le monde Microsoft qui ont des usages proches et qui utilisent d’autres formats bibliographiques comparables (EndNote, CiteMed, DublinCore XML, …).

En astronomie et les domaines connexes, toutes les revues de rang A proposent un style LaTeX et un style bibliographique (*.bst) associé. Je ne connais pas de collègues qui utilisent autre chose que BibTeX pour leurs bases bibliographiques en vue de publication.

Environnement de développement
Type de structure associée au développement : 

BibTeX semble être figé en 1985, en version 0.99c, mais son code source est disponible, et il est très simple.

Venant avec BibTeX, il existe un outil (makebst) qui permet de créer un nouveau fichier de style bibliographique (*.bst) en précisant, une à une, les règles voulues (nombre d’auteurs cités avant le et al., quel champ en gras, titre ou pas, tri alphabétique ou autre, …). Des règles de typographie associées aux langues (de, fr, …) sont incluses. Il faut bien voir que cette véritable usine à gaz ne doit pas être utilisée pour espérer contourner les choix stylistiques ou les supposées déficiences et limitations du style du journal dans lequel vous espérer publier ! Mais ceci peut être utilisé pour créer son style bibliographique pour sa thèse.

Eléments de pérennité : 

BibTeX est très largement utilisé, sans déficience connue. C’est le format proposé par plusieurs bases bibliographiques en ligne, ouvertes ou fermées, dont ADS - http://cdsads.u-strasbg.fr/abstract_service.html
La vitalité dans les extensions (packages permettant de citer l’année au lieu de l’auteur et autres subtilités) et les outils périphériques doivent rassurer par rapport au côté figé de l’outil initial. Malheureusement, la plupart des grands journaux de rang A sont frileux sur les évolutions des outils périphériques.

Références d'utilisateurs institutionnels : 

La situation est très contrastée. Alors que dans certains domaines tels l’Astronomie seuls les templates LaTeX sont disponibles, et des styles BibTeX associés, d’autres domaines, tel la Biologie, à l’inverse, fournissent plutôt des templates en MS-Word même si les exceptions sont nombreuses - http://www.ccrnp.ncifcrf.gov/~toms/latex.html#tex-....
En Mathématique et en Physique, la situation est plus ouverte, de très nombreux journaux proposant des styles LaTeX/BibTeX.

Environnement utilisateur
Documentation utilisateur : 

On se reportera aussi avec profit à l’annexe consacrée à BibTeX dans le livre de Leslie Lamport.

Divers (astuces, actualités, sécurité) : 

Dans de nombreux domaines scientifiques, des bases bibliographiques en ligne permettent de rechercher des articles à partir de mot-clefs. Dans certains cas, les fiches bibliographiques peuvent être exportées dans divers formats, dont BibTeX. Ceci permet un peuplement rapide d’une base locale et un ré-usage personnel rapide, sous réserve de bien s’assurer que le format généré est standard et que les fichiers connexes (par exemple contenant les alias des journaux) sont bien présents … Dans certains cas, il existe même des scripts de requête sur des bases distantes pour extraire automatiquement les fiches bibliographiques à partir de mots clef (nom des auteurs, filtre sur les années, journaux, …). À part le problème des homonymes, ceci peut aider à générer des bibliographies de laboratoires, à faire des statistiques, des taux de citation …

Contributions : 

À titre personnel, je pense que le meilleur service à rendre à BibTeX est d’aider avec abnégation les collègues qui utilisent LaTeX, par exemple en posant les fichiers de style là ou il faut et en le faisant savoir, en étant disponible pour répondre aux questions, en glissant tel ou tel conseil, avec espoir du côté des étudiants et des thésitifs, sans réel espoir de convaincre les chercheurs confirmés qui ne voient pas le gain de temps global et la démarche qualité mais surtout la petite perte de temps initiale … Bien maîtriser l’inclusion du fichier bbl dans le document source (*tex) aide à encourager les plus téméraires des collègues dans leurs premiers essais, le grief fréquent étant de ne pas savoir comment transmettre le tout aux co-auteurs distants ou à l’éditeur -qui ne veut bien sûr qu’un seul fichier !-.

Commentaires

Autres fiches/documents dans PLUME