Lo que he aprendido: archivos auxiliares de Latex

Os habréis fijado como yo en que cuando compilamos Latex desde un IDE se generan miles y miles de archivos auxiliares al darle ahí a que genere el documento. Tenía una ligera idea de la relación entre esos archivos y las referencias cruzadas y tal pero he decidido enterarme de una vez por todas qué hace cada uno de ellos. Y luego contarlo aquí, claro.

Bien, aquí tenéis una lista de los archivos auxiliares que nos aparecen. Lo mejor de todo es que todos ellos son texto plano así que podemos abrirlos y mirar qué contienen:

  • aux: sirve para gestionar las referencias cruzadas (\ref) y las citas bibliográficas (\cite), entre otras cosas. En general, guarda la información que ha de pasarse de un proceso de compilación a otro.

  • log: aquí se guarda la información sobre el proceso de compilado, las advertencias, los errores y tal. Especialmente útil si falla el tema y no sabemos por qué.

  • synctex: sincroniza nuestro código fuente con el documento de salida en el IDE, es decir, al movernos por el código fuente vemos al lado la parte correspondiente del pdf. Podemos borrarlo alegremente, simplemente se creará otro.

  • toc, lof, lot … : sirven para crear el índice, la lista de figuras, la lista de tablas …

  • out: lo genera hyperref y vale para crear los enlaces que nos llevan de un lado a otro en el pdf.

  • bbl: es el archivo de bibliografía creado por BibTeX. Gracias a él pude subir mi artículo científico a la plataforma del maldito Elsevier.

  • Otros: otros paquetes crean archivos auxiliares para gestionar sus cosas, por ejemplo, el paquete listofsymbols crea un sub y un sym para gestionar la lista de subíndices y de símbolos respectivamente. Otro ejemplo son los archivos idx que sirven para hacer el índice por palabras con makeindex

Para el caso de Beamer se crean además estos otros:

  • snm: ayuda en el proceso de meter imágenes en el tipo article
  • nav: sirve para crear la barra de navegación en la presentación

Todos estos archivos aparecen porque cuando nosotros le damos al botoncillo para que nos cree el documento por dentro en realidad se invocan un montonaco de procesos. Tomando como ejemplo un caso en el que usemos pdflatex y tengamos referencias1 se haría algo así:

pdflatex fuente.tex # primera compilación
bibtex fuente.aux # la bibliografía
pdflatex fuente.tex # para referencias 
pdflatex fuente.tex # para referencias 

Como veis, necesitamos compilar tres veces para tener las referencias correctamente2. A este proceso se le pueden añadir otros pasos como makeindex, para el índice por palabras, o makeglossaries, para crear el glosario. Es por esta ristra de procesos que nosotros no vemos que se escriben todos los archivos auxiliares, pero de esto hablaremos otro día (cuando yo me entere bien de cómo funciona).

Os preguntaréis: ¿estas mierdas para que las va dejando por ahí? ¿no las puede crear y luego borrarlas? Podría hacerlo, sí, Pandoc lo hace, de hecho, crea una carpeta temporal con las basuras y luego la borra. Esto como todo en la vida tiene sus ventajas y sus inconvenientes. Tener esos archivos auxiliares nos permite hurgar y trucar cosas y es útil para ver dónde falla al compilar. Pero si no os gusta que os deje cosas por ahí tenéis varias opciones:

  • Si usáis un IDE tipo Kile, tendréis un botón para eliminar los archivos auxiliares.
  • Si el documento no tiene referencias cruzadas, ni citas bibliográficas, ni ninguna cosa que necesite archivos auxiliares podemos usar \nofiles en el preámbulo y solo nos creará el pdfy el log. También se creará el synctex si compilamos desde un IDE.

  • Añadir --aux-directory=CARPETA a la orden de compilar. Así meterá todos los archivos auxiliares en la carpeta que le hemos dicho y buscará también ahí cuando los necesite. Lo podemos cambiar fácilmente en el IDE donde aparecen las órdenes3. Esta es la opción que yo uso (ahora que la he descubierto 😀 ).

  • Usar Pandoc. Esto nos hace cambiar nuestra forma de trabajar radicalmente, pero es una opción 😉

Aquí lo dejamos por hoy señores míos, me contáis a ver qué tal 🙂

PD. ¿Cómo encajo esto en el curso de Latex? No lo sé, pero lo pensaré 😀

Referencias

Auxiliary Files en Dickimaw Books

Prevent pdflatex from writing a bunch of files en Stack Exchange

I don’t want the .aux, .log and .synctex.gz files when using pdflatex en StackOverflow

latex-mk


  1. Uso bibtex como ejemplo, pero hay más maneras de hacer la bibliografía
  2. No estoy segura de si con esas tres veces se genera también el índice o hacen falta más, no está especialmente bien explicado esto. 
  3. En TeXstudio, por ejemplo, se cambian en Opciones > Configurar TeXstudio > Órdenes. Habría que añadir --aux-directory=CARPETA a pdflatex, xelatex o lo que sea que uséis. 
Anuncios

8 pensamientos en “Lo que he aprendido: archivos auxiliares de Latex

  1. Pingback: Curso no convencional de LaTeX: un documento básico | Onda Hostil

  2. Pingback: Curso no convencional de LaTeX: un documento científico | Onda Hostil

  3. Pingback: Curso no convencional de LaTeX: un documento científico | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s