Cuando falla una compilación, LaTeX imprime un mensaje críptico ! … y un número de línea l.NN, y luego se detiene en el prompt ?. Aprender a leerlo — junto con el .log y algunos comandos de depuración — convierte “se rompió” en “aquí está la corrección”. Esta página cubre lectura de errores, el registro y depuración.
Cómo leer errores
Los errores tienen una forma fija: ! seguido del mensaje (por ejemplo ! Undefined control sequence), luego l.NN con la línea donde TeX tropezó, partida en el punto hasta el que había leído. Importante: l.NN es donde LaTeX *notó* el problema, no necesariamente donde está la causa; una } faltante puede aparecer varias líneas después, así que si esa línea parece correcta, sospecha también de lo anterior. En el prompt ?: Return = intentar continuar, h = ayuda, x = salir, q = ejecutar en silencio hasta el final (recoger todos los errores), r = ejecutar sin detenerse. (En la práctica latexmk y similares ejecutan sin parar, así que normalmente lees los errores después en .log.)
- Undefined control sequence — un error tipográfico o un
\usepackageolvidado. - Missing $ inserted — símbolo matemático usado fuera del modo matemático.
- File
x.stynot found — paquete no instalado (añádelo contlmgr). - Runaway argument —
{ }desequilibrados (normalmente falta}).
Leer el registro — .log / texfot
El archivo .log registra toda la ejecución: cada error y advertencia (Overfull/Underfull \hbox, referencias no definidas, sustituciones de fuentes). Como el registro es ruidoso, texfot lo reduce a las líneas “interesantes” (ver “texdoc / texfot …”). Incluso cuando una compilación “tiene éxito”, revisa aquí las advertencias.
Comandos de depuración
\show\foo imprime el significado/definición de \foo (y se detiene en ?); \showthe\textwidth imprime el valor de un registro o longitud. \typeout{...} (LaTeX) y \message{...} (TeX) imprimen tus propios mensajes en el registro/terminal, útiles para depuración estilo printf. La artillería pesada, \tracingall, vuelca todo lo que hace TeX en el registro (muy verboso; el paquete trace ordena la salida). Úsalo para encontrar dónde falla una expansión.
\show\section % \section の定義を表示 / show its meaning
\showthe\textwidth % 長さの値を表示 / show a length’s value
\typeout{ここまで来た} % 自分のメッセージ / your own message
\tracingall % すべてをログへ(非常に冗長)/ trace everything (very verbose)