Terminar un documento real suele exigir ejecutar latex dos veces, con biber (bibliografía) o makeindex (índice) entre medias, y varias órdenes en el orden y el número de veces correctos. Repetirlo a mano es tedioso y propenso a errores. Para automatizarlo están las herramientas de construcción. Tres son habituales: latexmk, que decide automáticamente las pasadas necesarias; llmk, configurado en TOML; y arara, donde se escriben los pasos explícitamente en la fuente.
Por qué necesitas una herramienta de construcción
Resolver referencias cruzadas y la tabla de contenidos requiere al menos dos compilaciones: la primera escribe los números en .aux, la segunda los lee de vuelta. Si hay bibliografía, toca insertar biber o bibtex; si hay índice, makeindex; un glosario añade otra orden más. Equivocarse en el orden o el número de pasadas deja los números desincronizados. Una herramienta de construcción ejecuta las órdenes necesarias en el orden correcto y tantas veces como haga falta, repitiendo hasta que todo se estabilice. Para el papel de cada orden, consulta “Compile commands”.
latexmk: el estándar automático
latexmk (un script Perl de John Collins) es el estándar de facto; Overleaf lo usa por defecto. Vigila archivos como .aux para decidir por sí mismo si hace falta otra pasada, y llama a biber/bibtex y makeindex en el momento adecuado. Sigue hasta que la salida se estabiliza, así que en la práctica basta con decir “construye”.
| Opción | Qué hace |
|---|---|
-pdf | Crear un PDF con pdflatex |
-pdflua | Crear un PDF con lualatex |
-pdfxe / -xelatex | Crear un PDF con xelatex |
-pvc | Vigilar archivos y reconstruir + refrescar el visor en cada guardado |
-c | Limpiar archivos auxiliares aux/log; conservar el PDF |
-C | Limpiarlo todo, incluido el PDF |
Lo más cómodo es -pvc (preview continuously): cada vez que guardas, reconstruye solo lo necesario y refresca el visor.
latexmk -pdf -pvc document.tex # 保存のたび自動ビルド / rebuild on every save
latexmk -c # 補助ファイルを掃除 / clean aux filesSu comportamiento se configura en un archivo .latexmkrc (un latexmkrc/.latexmkrc local, o ~/.latexmkrc). $pdf_mode elige la ruta de salida; en latexmk actual, 1 significa pdfLaTeX, 2 DVI → dvips → ps2pdf, 3 DVI → dvipdf, 4 LuaLaTeX y 5 XeLaTeX. Para japonés, la configuración típica apunta $latex a uplatex, $dvipdf a dvipdfmx, y usa $pdf_mode = 3 para producir el PDF mediante conversión DVI.
# .latexmkrc
$pdf_mode = 1; # 1 = pdflatex
$pdflatex = 'pdflatex -synctex=1 -interaction=nonstopmode %O %S';llmk: configuración que viaja con el documento
llmk (Light LaTeX Make, de Takuto Asakura) permite declarar la construcción en TOML. Puedes escribir un llmk.toml con source y las órdenes que se usarán, o incrustar esos ajustes como comentarios mágicos dentro del .tex. El objetivo es la reproducibilidad independiente del entorno: el mismo resultado para cualquiera, en cualquier máquina. Como la configuración viaja con el documento, encaja bien con colaboración y distribución.
# llmk.toml
latex = "lualatex"
source = "main.tex"En la forma de comentarios mágicos, se escribe TOML entre líneas de tres o más caracteres + (también lee directivas de estilo % !TEX y YaTeX, pero el bloque TOML tiene prioridad):
% +++
% latex = "uplatex"
% dvipdf = "dvipdfmx"
% +++
\documentclass{ujarticle}arara: escribir los pasos en la fuente
arara (Island of TeX, de Paulo Cereda y otros) toma el camino opuesto a adivinar desde los logs: el autor declara explícitamente qué hacer. Se listan directivas como comentarios al comienzo del .tex, se ejecuta arara document.tex, y arara las procesa de arriba abajo; cada paso debe tener éxito antes del siguiente. Basta mirar la fuente para saber qué se va a ejecutar.
% arara: pdflatex
% arara: biber
% arara: pdflatex
% arara: pdflatex: { synctex: yes }
\documentclass{article}Cada directiva corresponde a una regla, un archivo YAML que describe cómo llamar a una orden. La directiva pdflatex se asigna a la regla pdflatex, y se pueden pasar opciones como { synctex: yes }. Es útil cuando quieres control total de los pasos o necesitas reproducir con precisión un flujo especial.
Cuál elegir
- latexmk — determina automáticamente las pasadas; el más difundido, con vista previa continua cómoda mediante
-pvc. La elección por defecto. - llmk — TOML declarativo que acompaña al documento; reproducible entre máquinas. Bueno para colaboración y distribución.
- arara — pasos explícitos en la fuente; transparente, para cuando quieres controlar estrictamente el flujo.
Los tres son más seguros y rápidos que teclear (u)platex → dvipdfmx a mano. Si dudas, empieza con latexmk -pdf -pvc; usa llmk o arara cuando necesites configuración portable o pasos plenamente explícitos.
El contrato de proyecto para herramientas de construcción
Una herramienta de construcción no es solo un nombre de comando cómodo; es un contrato de proyecto con colaboradores y CI. Elijas .latexmkrc, llmk.toml o directivas arara, deja en archivos qué motor usa el manuscrito, qué herramienta procesa la bibliografía, si se crea un índice y dónde se escribe el PDF. Escribir primero este contrato permite reproducir el mismo procedimiento antes de entregar el PDF, aunque cambie el editor.
En el uso diario, los botones del editor y CI deben llamar al mismo contrato. Si las personas usan latexmk -pdf main.tex pero CI ejecuta aparte un lualatex crudo, los fallos de fuentes o bibliografía pueden quedar ocultos hasta la entrega. Decide primero una orden que funcione en la línea de comandos y distribúyela al editor, al build vigilado y a CI.