---
myst:
html_meta:
keywords: LaTeX,bibliographie,références bibliographique,compiler une bibliographie,fichier bib"
---
# Comment générer une bibliographie ?
Il existe ici deux possibilités pour placer une bibliographie dans un document :
- soit en la saisissant directement dans le document ;
- soit en créant un fichier contenant les références bibliographiques (un fichier d'extension « `.bib` ») qui sera traité par une chaîne de compilation dédiée utilisant `BibTeX`.
Dans les deux cas, la commande `\cite` permet de citer une référence de la bibliographie dans le corps document. Toutefois, dans le cas particulier de la chaîne avec `BibTeX`, cette commande indique qu'il faut afficher la référence souhaitée dans la bibliographie, si elle existe. Toujours dans le cas de la chaîne avec `BibTeX`, pour inclure une référence dans la bibliographie sans y faire référence explicitement dans le corps du document, il faut utiliser la commande `\nocite`.
## Avec les commandes de base
La méthode « directe » consiste à utiliser l'environnement `thebibliography`. C'est un environnement semblable à `itemize`, chaque entrée étant précédée d'un `\bibitem`. En voici un exemple :
```
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\begin{document}
Les livres~\cite{Lamport} et~\cite{Companion} sont deux bons bouquins sur \LaTeX.
\begin{thebibliography}{MMM99}
\bibitem[Lam99]{Lamport}
L. Lamport,
\textit{\LaTeX : A Document Preparation System},
Addison-Wesley, 1994.
\bibitem[GMS94]{Companion}
M. Goossens, F. Mittelbach et A. Samarin,
\textit{The \LaTeX{} Companion},
Addison-Wesley, 1994.
\end{thebibliography}
\end{document}
```
La commande `\bibitem` a, en général, un argument obligatoire et un argument optionnel. L'argument obligatoire est la *clef interne*, c'est-à-dire le « nom » à utiliser dans le document pour faire référence à cette entrée. L'argument optionnel est la clé que LaTeX utilisera dans le document. Ce qui suit le `\bibitem` est le contenu de la référence bibliographique. C'est du code LaTeX normal.
L'environnement `thebibliography` a un argument obligatoire, qui indique la taille du retrait à prévoir dans la liste. L'argument devra donc être, pour des raisons esthétiques, la plus longue clé apparaissant dans la bibliographie.
## Avec le programme BibTeX
La méthode précédente a l'inconvénient de ne pas être automatique : il faut recréer la liste des références pour chaque document. [BibTeX](ctanpkg:bibtex) permet de créer une fois pour toutes une liste de références bibliographiques et de lister, automatiquement et de manière configurable, les références utilisées dans le document.
### Le fichier des références bibliographiques
L'automatisation passe par la constitution d'un fichier (ou de plusieurs fichiers) d'extension « `.bib` » contenant les références bibliographiques mises sous une forme cadrée, chaque référence étant composée d'une liste de données sous la forme « `champ = "valeur"` » séparées par des virgules. Pour notre exemple de début de page, ce fichier aurait la forme suivante :
```bibtex
@book{Lamport,
title = "\LaTeX : A Document Preparation System",
author = "Lamport, Leslie",
publisher = "Addison-Wesley",
year = 1994
}
@book{Companion,
title = "\LaTeX{} Companion",
author = "Goossens, Michel and Mittelbach, Frank and Samarin, Alexander",
publisher = "Addison-Wesley,
year = 1994
}
```
La question « [](/3_composition/annexes/bibliographie/construire_un_fichier_bibtex) » développe ce sujet.
### Le fichier de style bibliographique
Afin de pouvoir simplement passer d'un style bibliographique à un autre, ces styles sont contenus dans un fichier d'extension « `.bst` ». Il existe de nombreux fichiers de ce type, les plus courants étant `abbrv`, `alpha`, `apalike`, `plain` et `unsrt` (qui existent aussi en version francisée : `alpha-fr`, `plain-fr`, etc.).
Les principales caractéristiques de ces styles sont présentées à la question « [](/3_composition/annexes/bibliographie/choisir_un_style_de_bibliographie) ».
### Les commandes à placer dans le document principal
Pour inclure une bibliographie dans un document, il faut utiliser la commande
`\bibliography` qui indique également à LaTeX qu'il doit placer la bibliographie
à l'endroit du texte où se trouve cette commande. Mais, comme vu ci-dessus, on
doit donc définir le style voulu et le(s) fichier(s) contenant les références
bibliographiques. Cela se fait respectivement avec les commandes
`\bibliographystyle` et `\bibliography` (encore elle). Par exemple :
:::{noedit}
\bibliographystyle{alpha}
\bibliography{mabiblio,bibliofac,commun}
:::
Notez ici l'absence d'espaces après les virgules dans la commande `\bibliography` (qui permet dans le cas présent d'aller chercher les données des fichiers `mabiblio.bib`,`bibliofac.bib` et `commun.bib`).
### La chaîne de compilation et d'utilisation de BibTeX
À la compilation, plusieurs passes sont nécessaires. Les voici toutes détaillés, sachant que certaines pourront être à répéter, par exemple si la bibliographie elle-même contient des références (dans ce cas, les deux premières étapes ci-dessous seront répétées autant de fois que nécessaire).
#### Première compilation
Lors de la première compilation de votre document par LaTeX, les différentes commandes ajoutent de l'information au fichier auxiliaire (« `.aux` ») à destination de `BibTeX` :
- la commande `\bibliographystyle` place une note indiquant le style de la bibliographie ;
- chaque commande `\cite` place une note indiquant quelle référence bibliographique est appelée ;
- la commande `\bibliography` écrit une note indiquant quel est le fichier « `.bib` » qui doit être utilisé.
Notez qu'à ce stade, LaTeX ne « résout » aucune des références : à chaque
commande `\cite`, il vous avertit de la présence d'une référence non définie, et
lorsque le document sera terminé, il indique la présence générale de références
indéfinies.
#### Utilisation de BibTeX
Il faut alors appeler `BibTeX` et le faire traiter votre fichier auxiliaire :
```bash
bibtex monfichier
```
Vous n'avez pas à préciser ici l'extension du fichier (« `.aux` »). Si vous indiquez `bibtex monfichier.aux`, `BibTeX` tentera aveuglément de traiter `monfichier.aux.aux`.
`BibTeX` scanne alors le fichier auxiliaire :
- il cherche le style de bibliographie qu'il doit utiliser et « compile » ce style ;
- il note les références souhaitées ;
- il cherche les fichiers bibliographiques dont il a besoin et les parcourt en faisant correspondre les références aux entrées de la bibliographie ;
- il trie les entrées qui ont été citées (si le style de bibliographie spécifie qu'elles doivent être triées) ;
- il constitue un fichier « `.bbl` » contenant le résultat de ces travaux, à savoir un environnement `thebibliography` et la liste des `\bibitem` demandés.
#### Deuxième compilation
Cette deuxième compilation de votre document par LaTeX va permettre d'inclure le contenu du fichier « `.bbl` » à l'endroit où se trouve la commande `\bibliography`.
Une nouvelle fois, LaTeX vous avertit que chaque référence bibliographique est indéfinie. Cependant, lorsqu'il rencontre chaque commande `\bibitem` dans le fichier, il note la définition de ces références.
#### Troisième compilation
Cette dernière compilation permet à LaTeX de pouvoir faire proprement toutes les références croisées à la bibliographie.
Si, lors de l'édition, vous modifiez l'une des références ou en ajoutez de nouvelles, vous devez suivre tout le processus de compilation décrit ci-dessus pour que le document se stabilise à nouveau. Ces quatre exécutions obligatoires de LaTeX rendent le traitement d'un document avec une bibliographie plus fastidieux que dans le cas où vous traitez des [références croisées](/3_composition/texte/renvois/start) ou dans celui où vous insérez une [table des matières](/3_composition/annexes/tables/generer_une_table_des_matieres). Cependant, nombre de programmes d'édition de document LaTeX propose des raccourcis pour exécuter la totalité de cette chaîne de compilation.
:::{sources}
[Normal use of BibTeX from LaTeX](faquk:FAQ-usebibtex)
:::