Lire les erreurs et déboguer

Quand la compilation échoue, LaTeX affiche un message cryptique ! … et un numéro de ligne l.NN, puis s’arrête à l’invite ?. Apprendre à lire cela — avec le fichier .log et quelques commandes de débogage — transforme « ça casse » en « voici quoi corriger ». Cette page couvre la lecture des erreurs, le journal et le débogage.

Lire les erreurs

Les erreurs ont une forme fixe : ! puis le message (par exemple ! Undefined control sequence), puis l.NN indiquant la ligne où TeX a trébuché, coupée au point déjà lu. Important : l.NN est l’endroit où LaTeX a *remarqué* le problème, pas forcément sa cause ; une accolade } manquante peut apparaître plusieurs lignes plus loin. Si la ligne indiquée semble correcte, regardez aussi au-dessus. À l’invite ? : Return = essayer de continuer, h = aide, x = quitter, q = aller silencieusement jusqu’au bout (collecter toutes les erreurs), r = exécuter sans s’arrêter. (En pratique, latexmk et équivalents lancent souvent en nonstop, et l’on lit ensuite le .log.)

  • Undefined control sequence — faute de frappe, ou \usepackage oublié.
  • Missing $ inserted — symbole mathématique utilisé hors du mode mathématique.
  • File x.sty not found — paquet non installé (à ajouter avec tlmgr).
  • Runaway argument{ } non équilibrés (souvent un } manquant).

Lire le journal — .log / texfot

Le fichier .log enregistre toute l’exécution : chaque erreur et avertissement (Overfull/Underfull \hbox, références non définies, substitutions de polices). Comme le journal est verbeux, texfot le réduit aux lignes « intéressantes » (voir « texdoc / texfot … »). Même quand une compilation « réussit », vérifiez les avertissements ici.

Commandes de débogage

\show\foo affiche le sens/la définition de \foo (et s’arrête à ?) ; \showthe\textwidth affiche la valeur d’un registre ou d’une longueur. \typeout{...} (LaTeX) et \message{...} (TeX) écrivent vos propres messages dans le journal/terminal : pratique pour un débogage façon printf. L’artillerie lourde, \tracingall, déverse tout ce que fait TeX dans le journal (très verbeux ; le paquet trace range la sortie). Utilisez-le pour trouver où une expansion déraille.

latex
\show\section          % \section の定義を表示 / show its meaning
\showthe\textwidth      % 長さの値を表示 / show a length’s value
\typeout{ここまで来た}    % 自分のメッセージ / your own message
\tracingall             % すべてをログへ(非常に冗長)/ trace everything (very verbose)