miércoles, abril 26, 2006

LaTeX Makefile

Llevo dos días haciendo un Makefile que me permita mejorar mi eficiencia a la hora de realizar trabajos en LaTeX. Algunos se entretienen haciendo Sudokus y yo me emociono con los makefiles. Bueno creo que realmente me emociono con cualquier cosa que me cueste resolver... pero no viene al caso.

No soy muy bueno haciendo Makefiles, de hecho lo tenía completamente olvidado. Sin embargo, la solución, aunque probablemente no sea la más elegante, realiza lo que buscaba:
  • Limpieza a la hora de trabajar. Cuando compilas LaTeX se generan un montón de archivos temporales que se mezclan con las fuentes de LaTeX y las imágenes. Alguna vez me ha pasado que al intentar borrar estos archivos temporales me he llegado a cargar el fichero fuente de LaTeX perdiendo todo el trabajo realizado. El Makefile está implementado para separarlo todo (a mi gusto):
    • Directorio src. En el que se hallan los ficheros fuentes de LaTeX. En mi caso los *.tex y *.bib.
    • Directorio img. Donde ubico las imágenes/gráficas utilizadas en el documento.
    • Directorio build. Donde se compila y se quedan los ficheros temporales sin mezclarlos con los ficheros fuentes de LaTeX ni con las imágenes.
  • Mejorar la eficiencia con los gráficos. En el directorio img ahora sólo tengo ficheros originales de gráficos (*.dia, *.fig, *.png y *.jgp) y el makefile genera automatica los *.eps correspondientes en el directorio build para la compilación cuando es necesario.
  • Por último, se corre el comando latex el número de veces mínimo necesario para garantizar que las dependencias cruzadas se cumplen.
Para realizar el Makefile me he basado en otros que hay disponibles por Internet y si a alguien le resulta de interés lo tenéis a vuestra disposición. Estoy abierto a recibir mejoras ;-):

Makefile