Listes d’erreurs et d’avertissements

Les messages d'erreur de LaTeX sont conçus pour que les premiers mots après le ! indiquent qui se plaint. Un ! Missing $ inserted. sans préfixe vient du moteur TeX lui-même, ! LaTeX Error: du noyau LaTeX, et ! Package hyperref Error: du package qu'il nomme. Savoir lire cette distinction fait que la toute première ligne détermine si la correction relève du manuscrit, de l'ordre de chargement du préambule, ou du gestionnaire d'anomalies de quelqu'un d'autre. Cette page est un index des messages réellement rencontrés, cités tels quels, avec ce qu'ils signifient vraiment et un renvoi vers la page qui les traite en détail. Chaque message listé ici a été reproduit sur TeX Live 2024.

Les mots après ! désignent l'émetteur : TeX, LaTeX, un package, ou un avertissement

Une ligne commençant par ! est une erreur et peut arrêter la compilation ; une ligne sans ! est un avertissement ou une note, et la compilation continue. Les erreurs se répartissent ensuite en trois couches, que les mots suivant immédiatement le ! permettent d'identifier. La couche la plus basse est le moteur TeX, dont les messages ne portent aucun préfixe : ! Missing $ inserted. se lit mot pour mot de la même façon depuis quarante ans, et TeX brut, sans LaTeX, imprime la même phrase. La couche intermédiaire est le noyau LaTeX, ! LaTeX Error: …, et la couche supérieure les packages et les classes, ! Package X Error: … et ! Class X Error: …. Plus la couche est haute, plus la formulation est aimable ; plus elle est basse, plus on approche de ce qui bloque vraiment TeX. Un message sans préfixe signale d'ordinaire que la syntaxe du manuscrit lui-même est cassée.

Forme de la ligneQui parle, et effet sur la compilation
! Missing $ inserted.le moteur TeX lui-même ; l'absence de préfixe est le signe, la syntaxe du manuscrit est cassée
! LaTeX Error: ...le noyau LaTeX ; une entorse aux règles de LaTeX sur les environnements, les références ou le préambule
! Package X Error: ...le package X, nommément ; lire son manuel avec texdoc X est en général l'étape suivante la plus rapide
! Class X Error: ...la classe de document X ; dans les classes de revues, souvent l'annonce d'une règle éditoriale enfreinte
LaTeX Warning: ...un avertissement du noyau ; la compilation réussit et le code de retour reste 0, d'où les références périmées
Package X Warning: ...un avertissement de package ; certains se terminent par on input line N, d'autres non
Overfull \hbox (...)directement du constructeur de paragraphes ; ni ! ni le mot Warning
Package X Info: ...simple information ; reste dans le .log sans atteindre le terminal, mais éclaire souvent une panne ultérieure

Erreurs du moteur TeX : les messages sans préfixe

Ce groupe signale que TeX ne peut plus avancer dans l'entrée, et la cause tient presque toujours à l'appariement des accolades, des $ ou des &, ou à l'écriture d'un nombre. La formulation est sèche parce qu'elle a été rédigée avant l'existence de LaTeX. En contrepartie, ces chaînes sont identiques sur toutes les distributions et dans les documents de toutes les époques, ce qui les rend faciles à rechercher. Ce qui suit a été reproduit sur TeX Live 2024.

MessageCe que cela signifie vraiment, et le premier geste
! Undefined control sequence.la commande à l'extrémité droite de la ligne du haut n'est pas définie : faute de frappe, package oublié ou définition trop tardive
! Missing $ inserted.un symbole réservé aux mathématiques figure dans le texte ; _, ^ et \alpha en sont les déclencheurs habituels
! Missing } inserted.quelque chose s'est terminé alors qu'une { restait ouverte ; la cause est en amont du point signalé
! Too many }'s.une } de trop ; le plus souvent une { manque sur une ligne antérieure
! Extra alignment tab has been changed to \cr.une ligne de tableau a plus de & que la spécification de colonnes n'autorise ; les compter
! Misplaced alignment tab character &.un & hors de tout tableau ; pour le caractère lui-même, écrire \&
! Double subscript.deux _ sur un même atome, comme x_1_2 ; les regrouper en x_{12}
! Missing number, treated as zero.une longueur ou un compte était attendu sans être trouvé ; un argument vide comme \hspace{} est typique
! Illegal unit of measure (pt inserted).un nombre sans unité, comme dans \rule{1}{2pt} ; ajouter cm, pt ou em
! Paragraph ended before \x was complete.une ligne vide s'est glissée dans un argument ; le Runaway argument? juste au-dessus le trahit
! File ended while scanning use of \x.le fichier s'est achevé avant la fermeture d'un argument — stade terminal d'une } manquante
! Missing \endcsname inserted.un élément non expansible s'est glissé dans \csname … \endcsname ; suspecter un nom de macro construit
! TeX capacity exceeded, sorry [...]les crochets nomment la ressource épuisée ; [grouping levels=255] désigne une récursion emballée
! Emergency stop.TeX a demandé une saisie impossible à fournir — typiquement un fichier manquant en mode non interactif

Erreurs du noyau LaTeX : celles qui commencent par ! LaTeX Error:

Il s'agit ici d'entorses aux conventions de LaTeX plutôt qu'à la syntaxe de TeX, et comme la formulation est bien plus précise, la correction est généralement unique. Environnements mal appariés, \usepackage mal placé, commande réservée au préambule, fichier absent : chacun de ces cas relève d'une règle que LaTeX s'est donnée. À noter : dans le .log, chacun de ces messages est suivi d'un paragraphe d'aide plus explicite que la ligne unique du terminal ; en cas de doute, ouvrir le journal.

MessageCe que cela signifie vraiment, et le premier geste
! LaTeX Error: File `x.sty' not found.le package n'est pas installé, ou est mal orthographié ; vérifier avec kpsewhich x.sty, installer avec tlmgr install x
! LaTeX Error: Environment x undefined.le package qui définit l'environnement n'a jamais été chargé ; vérifier aussi l'orthographe du nom
! LaTeX Error: \begin{x} on input line N ended by \end{y}.les environnements se croisent au lieu de s'imbriquer ; N est la ligne d'ouverture, lire vers le bas à partir de là
! LaTeX Error: Command \x already defined.\newcommand a été employé sur un nom existant ; utiliser \renewcommand si l'écrasement est voulu
! LaTeX Error: Missing \begin{document}.un caractère imprimable figure dans le préambule ; un seul caractère non blanc suffit
! LaTeX Error: Option clash for package x.un second chargement a réclamé une option absente du premier ; \PassOptionsToPackage corrige cela
! LaTeX Error: Something's wrong--perhaps a missing \item.la liste est vide, ou du texte précède le premier \item
! LaTeX Error: There's no line here to end.\\ a été employé alors qu'aucune ligne n'a commencé, typiquement en début de paragraphe ou de center
! LaTeX Error: Not in outer par mode.un flottant a été placé dans un autre flottant ou dans une boîte ; une figure ne peut pas tenir dans une figure ni dans un minipage
! LaTeX Error: \caption outside float.\caption figure hors d'une figure ou d'une table ; l'y placer, ou employer \captionof
! LaTeX Error: Can be used only in preamble.une commande réservée au préambule, comme \usepackage, a été employée dans le corps
! LaTeX Error: \usepackage before \documentclass.\usepackage a été employé avant \documentclass ; seul \RequirePackage fonctionne à cet endroit
! LaTeX Error: Unknown option `x' for package `y'.le package n'a jamais déclaré cette option ; vérifier l'orthographe et la version
! LaTeX Error: Unicode character X (U+NNNN)le caractère n'a pas de définition ; sous pdfLaTeX cela vise le CJK et les émojis, alors que XeLaTeX et LuaLaTeX les acceptent

Erreurs de package : ! Package X Error: est la voix de X

Les messages de cette couche ont été rédigés par le package nommé lui-même : les mêmes formules figurent donc dans son manuel — ouvrir texdoc X et y chercher le message est le chemin le plus court. Ils sont aussi concrets : cet environnement n'est pas utilisable ici, cette couleur n'est pas définie, ce package ne peut pas coexister avec cet autre. La correction y est souvent énoncée telle quelle. Ce qui suit a été produit sur TeX Live 2024.

MessageCe que cela signifie vraiment, et le premier geste
! Package biblatex Error: Incompatible package 'natbib'.biblatex et natbib ne peuvent coexister ; remplacer par \usepackage[natbib=true]{biblatex}
! Package cleveref Error: cleveref must be loaded after hyperref!.une exigence d'ordre de chargement : cleveref vient après hyperref, et après varioref aussi
! Package amsmath Error: \begin{split} won't work here.split ne s'emploie pas seul ; il doit être à l'intérieur d'equation ou d'align
! Package xcolor Error: Undefined color `x'.le nom de couleur n'est pas défini ; charger un jeu comme dvipsnames, ou le déclarer avec \definecolor
! Package babel Error: Unknown option 'x'.le nom de langue est mal orthographié, ou ses fichiers ne sont pas installés
! Package pdftex.def Error: File `x.png' not found: using draft setting.l'image est absente ; un cadre est composé à la place et la compilation continue — vérifier le chemin et l'extension
! Package inputenc Error: ...pratiquement absent sur TeX Live 2024 : la gestion de l'UTF-8 est passée dans le noyau et inputenc n'a plus grand-chose à faire

Avertissements : ils n'arrêtent jamais la compilation, mais les ignorer livre un PDF faux

Les avertissements n'arrêtent jamais la compilation et ne font jamais passer le code de retour au-dessus de 0 : un job d'intégration continue conclut donc au succès. C'est précisément ce qui les rend dangereux : un PDF dont les références affichent encore ??, ou dont les numéros ont une révision de retard, naît ici. Deux d'entre eux sont des instructions et non des avertissements tolérables : LaTeX Warning: There were undefined references. et Label(s) may have changed. Rerun to get cross-references right. signifient qu'il faut recompiler. Un script de compilation doit détecter ces deux lignes et relancer — ou confier l'affaire à latexmk.

MessageCe que cela signifie vraiment, et le premier geste
Overfull \hbox (12.3pt too wide) in paragraph at lines 4--5une ligne déborde du bloc de texte ; le nombre indique de combien, et sous 1 pt environ cela ne mérite pas d'effort
Underfull \hbox (badness 10000) in paragraph at lines 4--5une ligne a été trop étirée ; badness 10000 est la pire valeur, souvent due à un \linebreak ou \\ superflu
Overfull \vbox (26.3pt too high) detected at line 4le débordement est vertical : une boîte n'a pas pu tenir dans la page
LaTeX Warning: Reference `x' on page 1 undefined on input line 3.l'étiquette n'est pas encore dans le .aux : soit c'est la première compilation, soit le \label est mal orthographié
LaTeX Warning: Citation `x' on page 1 undefined on input line 3.bibtex ou biber n'a pas encore été lancé, ou la clé est absente du .bib
LaTeX Warning: Label `x' multiply defined.la même étiquette existe deux fois ; chaque \ref ne peut viser que l'une des deux
LaTeX Warning: There were undefined references.le résumé de fin de compilation ; livrer avec cette ligne, c'est livrer un PDF contenant encore ??
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.la numérotation diffère de la compilation précédente ; une passe de plus suffit
LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefinedune combinaison comme gras et petites capitales n'existe pas ; une substitution a lieu, seul l'aspect change
Package hyperref Warning: Token not allowed in a PDF string (Unicode):les mathématiques d'un titre ne peuvent entrer dans un signet PDF ; séparer avec \texorpdfstring{formule}{texte}

Messages qui n'apparaissent plus et ne survivent que dans des conseils périmés

Les vieilles réponses trouvées par recherche citent encore des messages que TeX Live 2024 ne produit plus ; ne pas voir la même chaîne ne signifie pas que l'installation est cassée. Le cas le plus net est l'erreur Unicode. Elle s'écrivait ! Package inputenc Error: Unicode character … ; maintenant que la gestion de l'UTF-8 réside dans le noyau, elle s'écrit ! LaTeX Error: Unicode character 日 (U+65E5), suivie de not set up for use with LaTeX. à la ligne suivante. Et ou ne provoquent plus rien du tout — à la mesure, les caractères se répartissent entre ceux que pdfLaTeX accepte désormais et ceux qu'il refuse encore, comme le CJK, les émojis et . Le conflit d'options de xcolor a suivi le même chemin, pour une raison qu'explique la page sur les conflits de packages.

  • Caractères Unicode — le message est désormais ! LaTeX Error: Unicode character 日 (U+65E5) et non ! Package inputenc Error:. Sous pdfLaTeX, et passent, tandis que le CJK, les émojis et échouent encore.
  • Le conflit d'options de xcolor\usepackage[dvipsnames]{xcolor} suivi de \usepackage[table]{xcolor} ne provoque aucune erreur, xcolor étant passé aux options clé-valeur.
  • caption avec subfigure — l'ancienne erreur « ne peut pas être utilisé conjointement » a disparu ; le .log note seulement Package caption Info: subfigure package is loaded.
  • subfigure avec subcaption — charger les deux ne produit aucune erreur. En revanche, \begin{subfigure} est absorbé par l'ancienne commande \subfigure, d'où des erreurs sans rapport apparent comme ! Missing number, treated as zero.