Saltar al contenido
Topos Uranos

Resumen

Esta clase enseña a compilar con seguridad y a corregir lo que falla. Explica que una compilación se hace en pasadas, por qué las referencias y el índice necesitan una segunda, y cómo latexmk repite las pasadas por sí solo, en Texmaker y en la terminal. Enseña a leer el registro: dónde está, cómo se lee un error con su línea de exclamación, su número de línea y su contexto partido en dos, y qué distingue un error de una advertencia y de un aviso de caja desbordada. Recorre los errores más frecuentes con sus mensajes reales, los modos de interacción del motor y una estrategia de depuración: leer primero el primer error, dividir la fuente por mitades, reducir el problema a un ejemplo mínimo, limpiar los auxiliares y buscar el texto del mensaje. Termina con las advertencias que conviene atender.

Objetivos de aprendizaje

  1. Explicar por qué un documento con referencias o índice necesita más de una pasada, y compilarlo con latexmk.
  2. Leer un error del registro e identificar su mensaje, la línea en que el motor lo detectó y el punto exacto de esa línea.
  3. Reconocer los errores más frecuentes por su mensaje y relacionar cada uno con sus causas probables.
  4. Localizar la causa real de un error cuando no está en la línea señalada, leyendo primero el primer error y dividiendo la fuente por mitades.
  5. Distinguir las advertencias que exigen una corrección de las que pueden ignorarse.

Qué hace una compilación

El motor lee la fuente una sola vez, de principio a fin, y compone cada página a medida que avanza. Esa lectura única tiene una consecuencia: cuando en la segunda página aparece una referencia a la sección cinco, o cuando el índice de la primera página debe listar secciones que aún no se han leído, el motor no puede saber todavía qué número o qué página les corresponde. La solución de LaTeX es trabajar en pasadas. En cada una, anota en el archivo .aux el número y la página de cada etiqueta (las que se ponen con \label), y en el archivo .toc los títulos de las secciones; en la pasada siguiente, lee esos archivos al comienzo y usa lo anotado. De ello se sigue que, en la primera compilación, las referencias aparecen como dos signos de interrogación y el índice sale vacío, y que basta compilar otra vez para que se completen. Si un cambio desplaza los números, puede hacer falta una tercera pasada; la bibliografía, como se verá en su unidad, añade un programa más, Biber, entre pasadas.

Contar pasadas a mano es tedioso y propenso a olvidos. Para eso existe latexmk, un programa que viene con las distribuciones: ejecuta el motor, examina el registro y los auxiliares, y repite las pasadas, o llama a Biber, hasta que nada cambie. Su opción -lualatex le indica que use LuaLaTeX, y su opción -c borra los archivos auxiliares, conservando el PDF.

Ejemplolatexmk en la terminal

La primera orden compila tesis.tex con LuaLaTeX tantas veces como haga falta; la segunda limpia los auxiliares.

Terminal
$ latexmk -lualatex tesis.tex$ latexmk -c tesis.tex

En Texmaker, una de las secuencias predefinidas de la compilación rápida usa latexmk (LatexMk + View PDF); en la lista de órdenes del diálogo de configuración, la orden de latexmk se cambia por latexmk -lualatex -synctex=1 -interaction=nonstopmode %.tex, para que use LuaLaTeX y conserve la sincronización con el PDF.