Si trabajas habitualmente con LaTeX, estás acostumbrado a ver múltiples ficheros generados automáticamente al compilar el proyecto. Pueden llegar a molestar bastante, ya que ensucian el directorio de trabajo. Hoy explicaré dos alternativas para mover todos esos ficheros a un directorio separado para mantener un directorio de trabaja limpio.

Índice

Estructura del directorio



La idea sería tener el directorio de trabajo organizado del siguiente modo:

Directorio del proyecto/
|__ main.tex
|__ main.bib
|__ main.pdf
|__ chapter1.tex
|__ chapter2.tex
|__ …
|__ metafiles/
|     |__ main.aux
|     |__ main.bcf
|     |__ main.blg
|     |__ main.glo
|     |__ main.ist
|     |__ main.log
|     |__ main.toc
|     |__ …
|__ figures/
     |__ figure1.pdf
     |__ …

Mediante un script

Este script lo encontré en el blog de Tom, en su artículo Hiding LaTeX metafiles from project directory:

#!/bin/bash

# Create directory if it doesn't exist
if [ ! -d "metafiles" ]; then
  mkdir metafiles
fi

# Run pdflatex and biber with metafiles as in-/output directories
pdflatex -output-directory=metafiles main
biber --input-directory=metafiles --output-directory=metafiles main
pdflatex -output-directory=metafiles main
pdflatex -output-directory=metafiles main
makeglossaries -d metafiles main
pdflatex -output-directory=metafiles main

# Create a softlink to the output PDF
ln -s metafiles/main.pdf

Usando latexmk

Para aportar algo al artículo de Tom, miré la documentación de LatexMK, comando que ya hemos visto en este blog, y tiene la opción -output-directory que permite especificar donde se guardaran todos los metaficheros, su uso es simple:

latexmk -shell-escape -pdf -pvc -output-directory=metafiles main.tex

Esto tendrá un efecto parecido al script de Tom, sin embargo el pdf también queda generado dentro de esta carpeta, podemos solucionarlo con un soft link:

ln -s metafiles/main.pdf

Espero que os haya sido de utilidad, yo ya lo uso de forma habitual.