Guide développeur

Pourquoi une référence .bib n'apparaît pas dans la bibliographie LaTeX compilée

Une entrée présente dans le fichier .bib mais absente du PDF final, ou une bibliographie qui ne se génère pas du tout : le cycle de compilation en plusieurs passes propre à LaTeX et BibTeX explique la plupart de ces cas.

Un fichier .bib contient une liste de références bibliographiques au format BibTeX, destinée à être combinée à un document LaTeX (.tex) pour générer automatiquement citations et bibliographie. Le problème le plus fréquent chez qui découvre LaTeX n’est pas une erreur de syntaxe dans le .bib, mais une incompréhension du cycle de compilation en plusieurs passes qu’exige ce mécanisme.

Le cycle de compilation en quatre étapes

Contrairement à un traitement de texte classique où la mise à jour est immédiate, produire un document LaTeX avec bibliographie exige une séquence précise :

  1. Première compilation LaTeX du fichier .tex : le moteur repère les commandes \cite{clé} présentes dans le texte et note quelles références sont réellement utilisées, sans encore produire de bibliographie.
  2. Exécution de BibTeX (ou Biber, pour les documents utilisant BibLaTeX) : l’outil lit le fichier .bib, sélectionne uniquement les entrées citées à l’étape précédente, et génère un fichier .bbl contenant la bibliographie mise en forme selon le style demandé.
  3. Deuxième compilation LaTeX : le document intègre le contenu du fichier .bbl généré, faisant apparaître la bibliographie dans le PDF.
  4. Une troisième compilation est parfois nécessaire pour que les numéros de citation dans le texte (« [3] », par exemple) se stabilisent définitivement, une fois que la longueur totale de la bibliographie est connue.

Sauter l’une de ces étapes (republier le PDF juste après avoir modifié le .bib sans relancer BibTeX, par exemple) laisse la bibliographie affichée obsolète ou incomplète, sans qu’aucune erreur bloquante n’apparaisse forcément à l’écran. La plupart des éditeurs LaTeX modernes (Overleaf, TeXstudio) automatisent ce cycle complet à chaque clic sur « Compiler », ce qui masque le problème à l’utilisateur tant qu’il travaille dans cet environnement, mais le fait réapparaître dès qu’une compilation manuelle en ligne de commande est nécessaire.

Une référence citée mais absente malgré tout

Si une clé de citation ne correspond à aucune entrée du fichier .bib (faute de frappe, clé mal recopiée depuis un gestionnaire de références comme Zotero ou JabRef), BibTeX consigne un avertissement « I didn’t find a database entry for [clé] » dans son fichier .blg, et LaTeX affiche généralement « ? » à la place du numéro de citation dans le PDF plutôt que de faire échouer la compilation : un échec silencieux qui passe facilement inaperçu sans consulter les journaux de compilation.

Forcer l’affichage de références non citées

Une entrée présente dans le .bib mais jamais appelée par \cite{} dans le texte est ignorée par défaut, un comportement voulu plutôt qu’un bug : BibTeX ne construit une bibliographie qu’à partir de ce qui est réellement référencé. La commande \nocite{*}, placée dans le corps du document (après \begin{document}), force l’inclusion de toutes les entrées du fichier .bib, citées ou non, pour les cas où une bibliographie complète est requise indépendamment des citations effectives.

Voir la fiche technique du fichier .tex →

Formats concernés

Catégories concernées

Questions fréquentes

Pourquoi une référence de mon fichier .bib n'apparaît-elle pas dans le document final ?

BibTeX n'inclut dans la bibliographie que les références réellement citées dans le document via une commande comme \cite{clé} : une entrée présente dans le fichier .bib mais jamais citée est ignorée par défaut, sauf à utiliser explicitement \nocite{*} pour forcer l'inclusion de toutes les entrées, citées ou non.

Pourquoi la bibliographie reste-t-elle vide après une seule compilation ?

LaTeX doit d'abord compiler le document une première fois pour savoir quelles références sont citées, puis BibTeX (ou Biber pour BibLaTeX) génère la bibliographie à partir de cette liste dans un fichier .bbl séparé, avant qu'une seconde compilation LaTeX n'intègre ce résultat dans le document final. Sauter l'une de ces étapes laisse la bibliographie vide ou obsolète.

Pourquoi LaTeX signale-t-il une citation « undefined » alors que la clé existe bien dans le .bib ?

L'avertissement « Citation `clé' on page N undefined », visible dans le fichier .log, indique le plus souvent que BibTeX n'a pas été relancé après une modification récente du fichier .bib ou du document, ou qu'une clé de citation contient une faute de frappe qui ne correspond à aucune entrée réelle du fichier .bib.

Sources

Dernière mise à jour :