LaTeX/Gestion de la bibliographie
En dehors des œuvres de fiction, tous les ouvrages devraient donner des références bibliographiques afin que le lecteur puisse vérifier les sources et prolonger sa recherche ; c'est notamment le cas des rapports de recherche ou publications académiques. La réalisation « à la main » de cette tâche est vite pénible et source d'erreur, notamment si l'on change la disposition de l'ouvrage : il faut faire attention à la numérotation, des "op. cit." peuvent se retrouver avant la première mention de l'ouvrage, …
Heureusement, LaTeX dispose d'outils auxiliaires, dont un appelé BibTeX qui gère automatiquement la bibliographie. Cependant, il en existe un autre beaucoup plus performant qui est le package biblatex. Dans ce chapitre, nous n'aborderons que le premier.
La description des ouvrages — auteurs, titre, année de parution, éditeur, … — est contenue dans un fichier extérieur ; vous avez alors un fichier unique contenant toute votre bibliographie, et auquel se réfèrent vos différents documents LaTeX. Ainsi, si un ouvrage est mentionné dans plusieurs documents, il n'est rentré qu'une seule fois (écrire une fois, et lire beaucoup), ce qui limite les erreurs.
Vous pouvez également avoir plusieurs fichiers de bibliographie, et un document peut faire référence à plusieurs fichiers à la fois, « unifiant » ainsi les bibliographies.
L'inclusion des référence bibliographiques dans le document LaTeX nécessite l'utilisation du programme codice_1 sur le document LaTeX.
Aperçu.
"Voir Structuration du texte > Bibliographie."
BibTeX.
Le chapitre précédent a donné l'idée d'inclure les références à la fin du document, et d'employer la commande codice_2 afin de s'y rapporter dans le texte. Ici est présentée l'utilisation de BibTeX, plus flexible.
Une base de données de BibTeX est emmagasinée dans un fichier d'extension codice_3. Il s'agit d'un fichier de type texte, qui peut ainsi être lu et modifié facilement. La structure d'un fichier est tout à fait simple. Voici un exemple d'une entrée de BibTeX:
 @article{greenwade93,
 author = "Greenwade, George D.",
 title = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
 year = "1993",
 journal = "TUGBoat",
 volume = "14",
 number = "3",
 pages = "342--351"
Chaque entrée commence par la déclaration du type de référence, sous la forme codice_4. BibTeX connaît pratiquement tous les types auxquels vous pouvez penser, notamment les plus courants comme "book" pour les livres, "article" pour les articles, "inproceedings" pour les notes de conférences, etc. Dans cet exemple, je me suis référé à un article publié dans un journal.
Après le type, vous devez ouvrir une accolade codice_5 pour signaler le début de la zone destinée aux attributs de référence. Le premier qui suit immédiatement l'accolade, correspond à une marque de citation. Cette marque doit être unique pour toutes les entrées de votre bibliographie. C'est avec ce repère que vous pourrez établir des renvois à cette entrée dans votre document. La façon de dénommer chaque référence vous appartient, mais il y a une convention très répandue qui consiste à employer le nom de famille de l'auteur, suivi de l'année de la publication. C'est cette règle que j'emploie dans ce guide.
Ensuite, il devrait vous sembler clair que les champs et les données qui suivent se rapportent à cette référence particulière. Les noms de champ à gauche sont des marques de BibTeX. Ils sont suivis par un signe d'égalité codice_6 et la valeur pour ce champ est alors placée juste après. BibTeX s'attend à ce que vous marquiez explicitement le début et la fin de chaque valeur. Il est possible d'employer les guillemets anglais codice_7, ou les accolades codice_5, codice_9. Mais signalons que les accolades ont d'autres fonctions, dans des attributs en particulier, ainsi j'ai préféré ne pas les employer ici pour des raisons de clarté.
Rappelez-vous que chaque attribut doit être suivi d'une virgule pour qu'ils soient séparés les uns des autres. Vous n'avez pas besoin d'ajouter de virgule au dernier attribut, puisque l'accolade fermante indiquera à BibTeX qu'il n'y a plus d'attribut pour cette entrée, bien que vous n'obtiendriez aucune erreur si vous en placiez une.
Cela peut prendre un peu de temps pour apprendre ce que sont les types de référence, et quels champs sont disponibles pour chaque type (et quels sont ceux qui sont obligatoires ou facultatifs, etc.). Vous pouvez jeter un œil à la page entry type reference ou à la page field reference pour la description de tous les champs. Il peut être intéressant pour vous de les garder dans vos pages favorites de votre navigateur internet ou de les imprimer, de sorte qu'elles soient sous votre main quand vous en avez besoin. 
Les auteurs.
BibTeX gère avec souplesse les noms d'auteurs. Il peut accepter les formats de noms « codice_10 » ou « codice_11 ». Le premier format est à préférer lorsque l'on a affaire à des prénoms multiples ou des noms composés : la virgule permet de distinguer ce qui est prénom de ce qui est nom, par exemple « codice_12 ». C'est de fait le format recommandé. Si vous préférez utilisez le format « codice_11 », alors vous devez préciser vous-même à BibTeX de garder « von » et « Neumann » ensemble, en utilisant les accolades : « codice_14 ».
Ensuite, il est possible de demander à "Bibtex" de faire référence à plus d'un auteur. Pour cela, il suffit simplement de placer le mot-clé and entre chaque auteur, comme le montre l'exemple suivant:
 @book{goossens93,
 author = "Goossens, Michel and Mittlebach, Frank and Samarin, Alexander",
 title = "The Latex Companion",
 year = "1993",
 publisher = "Addison-Wesley",
 address = "Reading, Massachusetts"
Cette entrée spécifie que le livre a trois auteurs, et leurs noms sont séparés par des codice_15. Naturellement, quand BibTeX sera exécuté il placera uniquement un « et » entre le pénultième auteur et le dernier, mais dans le fichier codice_3, il a besoin des codice_15 pour différentier les auteurs.
Conservation des lettres majuscules.
Par défaut, BibTeX gère lui-même les majuscules : il ne tient pas compte des majuscules et minuscules utilisées, il met des minuscules partout sauf à la première lettre du titre. Pour forcer BibTeX à préserver les majuscules, entourez la lettre concernée avec des accolades, (ou les lettres, s'il s'agit d'acronymes).
Préparer un document LaTeX afin d'utiliser votre fichier codice_3.
Cette préparation n'est pas très difficile. À la fin de votre fichier LaTeX (c'est-à-dire après le contenu, mais avant codice_19), vous devez placer les commandes suivantes:
Les modèles de bibliographie sont des fichiers reconnus par BibTeX qui indiquent la façon dont les informations, emmagasinées dans le fichier codice_3, doivent être traitées à l'exécution. Et ainsi la première commande utilisée ci-dessus déclare le nom du fichier de modèle qui doit être employé. Le fichier de modèle dans cet exemple est codice_21 (qui est un fichier faisant partie intégrante de BibTeX). Vous n'avez pas besoin d'ajouter l'extension codice_22 après le nom du fichier lorsque vous utilisez cette commande, car l'extension est implicite. En dépit de son nom, le modèle "plain" remplit parfaitement sa fonction (regardez le résultat figurant dans cette page pour vous rendre compte de ce que je veux dire).
La deuxième commande est celle qui indique réellement le fichier codice_3 que vous souhaitez employer. Celui que j'ai créé pour ce cours a été nommé codice_24, mais de nouveau, vous n'avez pas besoin d'ajouter l'extension du fichier. Il est supposé pour l'instant que le fichier codice_3 se trouve dans le même répertoire que le document LaTeX. Cependant, si votre fichier codice_3 se trouvait ailleurs (ce qui peut être envisagé si vous avez l'intention de mettre en place une base de données centralisée contenant toutes les références utiles pour tout votre travail), vous devriez préciser le chemin d'accès à votre fichier, par exemple
Maintenant que le LaTeX et BibTeX savent où trouver les fichiers appropriés, il est assez simple de citer des références. La commande codice_27 peut être appelée en vous assurant que l'entrée "clef_de_référence" figure bien dans le fichier codice_3.
Si vous souhaitez citer plus d'une référence à la fois, faites comme suit :
codice_29.
Pourquoi LaTeX ne génère-t-il aucun fichier ?
L'utilisation de BibTeX introduit des complications supplémentaires dans le traitement du fichier source. En effet, le fichier source - écrit en LaTeX - renferme des références à des citations contenues dans la base de données figurant dans un autre fichier.
Ces complications sont en grande partie dissimulées à l'utilisateur, mais en raison de toute la complexité de la gestion des références, il est nécessaire à LaTeX d'effectuer plusieurs passages pour accomplir cette charge. Cela signifie que vous devez exécuter LaTeX un certain nombre de fois, et à chaque passage, il effectuera une tâche particulière jusqu'à ce qu'il soit parvenu à résoudre toutes les références de citation. Voici ce que vous devez taper au clavier :
Après avoir exécuté LaTeX une première fois, vous pourrez voir s'afficher des avertissements tels que :
 LaTeX Warning: Citation `lamport94' on page 1 undefined on input line 21.
 LaTeX Warning: There were undefined references.
L'étape suivante est l'exécution de BibTeX sur ce même fichier source en LaTeX (et non pas sur le fichier codice_3 actuel) pour définir alors toutes les références figurant dans le document. Vous devriez voir s'afficher des messages de la forme :
 This is BibTeX, Version 0.99c (Web2C 7.3.1)
 The top-level auxiliary file: fichier_principal.aux
 The style file: plain.bst
 Database file #1: sample.bib
La troisième étape, est l'exécution de LaTeX pour la deuxième fois, ce qui aura pour effet d'afficher encore plus de messages d'avertissements comme « codice_37 ». Ne vous inquiétez pas, l'opération est pratiquement terminée. Comme vous pouvez le deviner, tout ce qu'il vous reste à faire est de suivre ses instructions, et d'exécuter LaTeX pour la troisième fois, et le document sera produit comme prévu, sans aucun autre problème.
Personnalisation de l'aspect de la bibliographie.
Un des principaux avantages de BibTeX, et particulièrement pour des personnes qui écrivent beaucoup de rapports de recherche, est la possibilité d'adapter la bibliographie afin de satisfaire aux exigences d'un éditeur donné. Vous noterez que différents éditeurs tendent à avoir leur propre modèle de mise en page des références, auquel les auteurs doivent se conformer s'ils veulent que leur manuscrit soit publié. En fait, les revues importantes et souvent les organisateurs de conférence ont créé leur propre modèle de bibliographie (fichier d'extension .bst) destiné aux utilisateurs de BibTeX, afin de libérer l'auteur de ce dur travail.
Il est possible de réaliser cela en raison de la nature de la base de données du fichier d'extension .bib, dans lequel toutes les informations sur vos références sont emmagasinées dans un format structuré, mais rien concernant le style. C'est un thème récurrent dans le système LaTeX en général, qui essaye autant que possible de maintenir le contenu et la présentation séparés, comme il se doit !
Un fichier de modèle de bibliographie (codice_22) indiquera à LaTeX comment composer chaque attribut, dans quel ordre les placer, quelle ponctuation employer entre chaque attributs particuliers etc.
Malheureusement, créer un tel modèle à la main n'est pas une tâche évidente. C'est la raison pour laquelle l'outil codice_39 (aussi appelé "custom-bib") va vous être d'un grand secours.
codice_39 peut être employé pour générer automatiquement un fichier .bst en respectant vos besoins. Il est très simple d'utilisation et vous posera une série de questions sur vos préférences. Ensuite, il produira le fichier modèle approprié que vous pourrez employer.
Il devrait être déjà installé avec la distribution de LaTeX (sinon, il ne vous reste plus qu'à le télécharger) et il est très facile ensuite de l'exécuter. À l'invite de commande, tapez 
 latex makebst
LaTeX trouvera le fichier approprié et l'interrogatoire débutera. Vous devrez répondre à un certain nombre de questions (en remarquant que les réponses par défaut sont assez cohérentes), mais il serait compliqué de donner un exemple dans ce guide. Son utilisation est assez simple, mais si vous avez besoin d'aide, vous pouvez consulter le manuel complet disponible en ligne (en anglais). Je recommanderais d'expérimenter le logiciel sur un document LaTeX et de voir en fonction des résultats obtenus.
Si vous employez un fichier personnalisé .bst, il est important que LaTeX puisse le trouver ! Ainsi, assurez-vous qu'il est dans le même répertoire que le fichier source en LaTeX, à moins que vous utilisiez l'un des fichiers de modèle standard tels que "plain" ou "plainnat" qui accompagnent LaTeX, auquel cas ils seront automatiquement trouvés dans les répertoires où ils sont installés.
En outre, assurez-vous que le nom du fichier codice_22 que vous voulez employer figure bien dans la commande codice_42 (mais pas avec l'extension codice_22!).
On peut aussi fractionner la bibliographie en plusieurs parties selon le type de document référencé ou en utilisant des mots-clés, en jouant sur les paramètres de codice_44 :
 \printbibliography[type=article,title={Articles seulement}]
Cette commande permet de lister uniquement les articles, en intégrant le titre de sous-section "Articles seulement".
Quelques exemples supplémentaires.
Ci-dessous, vous trouverez quelques exemples supplémentaires d'entrées de bibliographie. Le premier couvre le cas d'auteurs multiples en employant le format nom de famille, Prénom et le deuxième illustre le cas de « incollection ».
@article{AbedonHymanThomas2003,
 author = "Abedon, S. T. and Hyman, P. and Thomas, C.",
 year = "2003",
 title = "Experimental examination of bacteriophage latent-period evolution as a response to bacterial availability",
 journal = "Applied and Environmental Microbiology",
 volume = "69",
 pages = "7499-7506"
@incollection{Abedon1994,
 author = "Abedon, S. T.",
 title = "Lysis and the interaction between free phages and infected cells",
 pages = "397-405",
 booktitle = "Molecular biology of bacteriophage T4",
 editor = "Karam, Jim D. Karam and Drake, John W. and Kreuzer, Kenneth N. and Mosig, Gisela
 and Hall, Dwight and Eiserling, Frederick A. and Black, Lindsay W. and Kutter, Elizabeth
 and Carlson, Karin and Miller, Eric S. and Spicer, Eleanor",
 publisher = "ASM Press, Washington DC",
 year = "1994"
Obtenir des données bibliographiques.
Plusieurs bases de données en ligne fournissent des données bibliographiques au format BibTeX, facilitant la construction de votre propre base de données.
Par exemple, Google Scholar dispose d'une option permettant de renvoyer les données dans un format approprié, mais vous devez changer les préférences dans Preferences.
Voici un exemple d'une telle entrée BibTeX: http://scholar.google.de/scholar.bib?hl=en&lr=&q=info:qg-r7UNl9tYJ:scholar.google.com/&output=citation&oe=ASCII&oi=citation
Outils utiles.
Zotero est un plugiciel Firefox (il existe également sous forme d'application) permettant la création ou l'import de données bibliographiques (à partir de la BNF par exemple). Il permet également l'export dans différents format dont BibTex.
JabRef est un petit programme en Java qui vous permet de modifier facilement vos fichiers BibTeX et d'autres bases de données bibliographiques, vous laissant (la plupart du temps) oublier les détails.
BibDesk est un gestionnaire de bibliographie très complet pour MacOSX.
bibliographer Le bibliographe est un rédacteur de base de données de bibliographie au format BibTeX qui vise à être facile d'emploi. Il permet de lier des fichiers à vos enregistrements au moyen d'un moteur d'indexation et de recherche. L'interface est conçue pour un parcours aisé de votre bibliographie, et le double cliquètement sur un enregistrement ouvrira le fichier lié.
cb2Bib Le cb2Bib est un outil pour extraire rapidement des références bibliographiques sans format particulier et non normalisées de messages électroniques d'alerte, de pages d'un journal internet et de fichiers au format pdf.
KBibTeX KBibTeX est un rédacteur, sous KDE, de fichiers de bibliographie au format BibTeX, utilisés avec LaTeX. Il dispose de masques d'entrée confortables, permet des requêtes de recherche sur internet (par exemple avec Google Scholar ou PubMed) et exporte vers différents formats PDF, PostScript, RTF et XML/HTML. Comme KBibTeX utilise la technologie KParts de KDE, il peut s'intégrer dans Kile ou Konqueror. 
Bibwiki Bibwiki est une SpecialPage pour MediaWiki dans laquelle vous pouvez gérer vos fichiers BibTeX. Il offre un moyen simple d'importer et exporter des enregistrements bibliographiques.
Bibliographie sans BibTeX.
Même sans BibTeX, LaTeX a une approche légèrement plus intelligente du contrôle de vos références que propose une unité de traitement de texte habituelle, où tout doit être entré manuellement (à moins que vous n'achetiez une extension).
Il y a deux étapes pour installer vos bibliographie et références dans un document. La première chose est d'installer un environnement de bibliographie, qui doit se trouver à l'endroit où vous fournissez à LaTeX les détails des références. La seconde chose est de citer vos références dans votre document.
Le code suivant a été utilisé à l'origine pour créer l'environnement de bibliographie du document, dans ce cours d'instruction. Il est situé juste après la dernière ligne du contenu de document, mais avant la commande de codice_19.
 Leslie Lamport,
 \emph{\LaTeX: A Document Preparation System}.
 Addison Wesley, Massachusetts,
 2nd Edition,
 1994.
Bon, qu'allons-nous voir maintenant ? La première chose à remarquer est que dans l'ouverture d'un environnement de bibliographie avec le mot-clé codice_46, LaTeX considère tout ce qui se trouve entre le début et la fin des balises comme des données pour la bibliographie.
Le deuxième paramètre de l'environnement codice_46 (ici {9}) détermine la largeur maximale des étiquettes, et ainsi la largeur de la colonne des étiquettes. Ce qui compte ici n'est pas le chiffre 9 (on peut mettre 7 à la place par exemple), mais le fait qu'il n'y a qu'un seul chiffre. Ainsi on annonce à LaTeX qu'il ne va pas y avoir des étiquettes à deux ou plusieurs chiffres. Ainsi, si on a entre 10 et 99 entrées avec numérotation automatique, à la place de 9 il va falloir indiquer un nombre à deux chiffres (par exemple 99). Si l'on n'utilise pas une numérotation automatique des entrées, mais des étiquettes personnalisées, comme [Lamp94] par exemple, dans ce cas à cet endroit-là il va falloir mettre l'étiquette la plus large. 
Vient ensuite la saisie de la référence proprement dite. Elle est précédée aussi de la commande codice_48. "clé_de_citation" devrait être un identificateur unique pour cette référence particulière, et est souvent une sorte d'intitulé mnémonique se composant d'une suite de lettres, de chiffres et de symboles de ponctuation (mais pas de virgule). J'emploie souvent le nom de famille du premier auteur, suivi des deux derniers chiffres de l'année (par conséquent "lamport94"). Si cet auteur a produit plus d'une référence pendant une année donnée, alors j'ajoute des lettres juste après, « a », « b », etc. Mais, vous devriez savoir mieux que moi ce qui vous convient le mieux. Tout ce qui suit la clef est la référence elle-même. Vous devez la dactylographier exactement comme vous voulez qu'elle soit présentée. J'y ai mis les différentes parties de la référence, telles que l'auteur, le titre, etc., sur différentes lignes pour la lisibilité. Ces marques de fin de ligne sont ignorées par LaTeX. J'ai voulu que le titre soit en italiques, ainsi j'ai employé la commande codice_49 afin d'obtenir ce résultat.
Si on ne souhaite pas une numérotation automatique des entrées, on peut ajouter un paramètre optionnel à codice_50, par exemple codice_51, qui sera utilisé à la place du nombre.
Il est très facile de citer un ouvrage donné. Il suffit de vous positionner à l'endroit où vous voulez que la citation apparaisse, et d'y placer : codice_52, où "clé_de_citation" est la clef de l'entrée de la référence de l'ouvrage que vous souhaitez citer. Quand LaTeX traite le document, la citation sera liée aux entrées dans la bibliographie par des références croisées et remplacée par la citation correspondant à ce nombre. De nouveau, l'avantage ici, est que LaTeX s'occupe de la numérotation pour vous. Si tout était à faire manuellement, alors ajouter ou enlever une référence serait une vraie corvée, puisque vous devriez renuméroter toutes les citations à la main.
Naturellement, vous préféreriez peut-être utiliser un système de mise en référence différent, tel que Harvard, au lieu du système numérique par défaut. Ceci sera traité dans ces pages plus tard, à moyen terme. Pourquoi n'essayeriez-vous pas de découvrir paquet Natbib.
Résumé.
Bien qu'il y ait besoin d'un peu de temps pour maîtriser BibTeX, à long terme il est un outil efficace permettant de manipuler vos références bibliographiques. Il n'est pas rare de trouver des fichiers codice_3 sur les sites internet que les gens utilisent pour leur propres publications, ou des aperçus de travaux personnels dans un domaine particulier, etc. Dans ces énormes bases de données de bibliographie en ligne, vous trouverez souvent des versions BibTeX de publications, ainsi il est facile d'effectuer un rapide copier-coller de ces données dans votre propre fichier codice_3, et pas de soucis !
Avoir toutes vos références dans un seul endroit peut être un grand avantage, et les avoir alors toutes sous une forme structurée permettant la personnalisation du résultat final, en est un autre. Il existe une variété d'utilitaires libres qui peuvent ouvrir vos fichiers codice_3, et vous permettent de les visualiser d'une façon plus efficace, et aussi de les trier, ou chercher les erreurs.