Mi esquema de trabajo
Hemos aprendido a crear documentos y presentaciones en LaTeX, sabemos escribir macros propias y convertir archivos de un tipo a otro. Os podría contar cómo cambiar la fuente del texto o hablar de diferentes paquetes para modificar la apariencia de nuestro documento, pero creo con lo que ya sabéis sois muy capaces de entender por vosotros mismos cualquier paquete leyendo el manual. Así que en este último capítulo voy a hablar de algo que desde mi punto de vista no se trata lo suficiente: cómo trabajo con LaTeX en, por llamarlo de algún modo, un entorno de producción. Veremos cómo organizo los archivos, qué software y paquetes utilizo y algunas cosillas sobre compilación y colaboración.
¿Cómo me organizo?
Como he dicho montones de veces la organización es fundamental,
aunque no igual para todo el mundo. Cuando el documento es corto solo
separo las imágenes en una carpeta propia y escribo el contenido en el
mismo archivo en el que defino el estilo. Si, por el contrario, se
trata de un documento más extenso, como un libro, creo un archivo de
LaTeX principal desde el que llamo a las diferentes secciones o
capítulos con \include{}
o \input{}
.
A la hora de separar los archivos, tiendo a separarlos por tipo, lo que me facilita aplicarles a todos ellos una misma acciónPensad en cambiar el formato de todas las imágenes o buscar una palabra en el contenido.. En ocasiones hago una segunda clasificación por capítulos si tengo muchas figuras o extractos de código, por ejemplo.
├── principal.tex
├── estilo.bst
├── referencias.bib
│
├── Contenido
│ ├── 1.Intro.tex
│ ├── 2.Segundo.tex
│ └── ...
│
├── Código
│ ├── listing.py
│ └── ...
│
└── Figuras
├── fig.eps
└── ...
Si la definición del estilo es muy larga o estoy usando una clase que he descargado por ahí, añado una carpeta extra para meter todo eso y no volverme loca.
En cuanto al software, suelo escribir en Kile con el corrector
ortográfico activado, el ancho de línea fijado a 80 caracteresReducir el ancho de línea resulta útil a la hora de
ver los cambios que hemos llevado a cabo en determinado archivo, git
nos pinta la línea modificada entera, si es gigante será más difícil
encontrar la palabra exacta que hemos cambiado. y una orden
personalizada para compilar que genera el documento con referencias
cruzadas y bibliográficas en un solo click. Además, uso Jabref
para
gestionar la bibliografía y git
para tener todo bajo control de
versiones.
Cuando escribo en Markdown para posteriormente compilar con Pandoc
uso el modo Markdown de Emacs junto con unos atajos de teclado que
ejecutan make
que tengo definidos. Si añadimos además una línea al
Makefile para que nos abra directamente el pdfxdg-open
PDF
en escritorios que cumplan con Freedesktop y
explorer.exe PDF
en Windows. tenemos un entorno de
edición que no tiene nada que envidiarle a ningún IDE.
¿Qué paquetes uso?
Aparte de los típicos paquetes de idioma (babel
o polyglossia
) o
de matemática (amsmath
, amsthm
, amssymb
) de los que ya hemos
hablado y los básicos como xcolor
y graphicx
, habitualmente
utilizo los siguientes paquetes:
-
parskip
para separar los párrafos mediante una línea blanca en lugar de sangrarlos. -
listings
para resaltar la sintaxis de los extractos de código. -
blindtext
para generar documentos de prueba y testar el formato. -
hyperref
para producir hipervínculos para las referencias cruzadas y bibliográficas así como incluir enlaces en el documento. Suele ser preferible cargarlo el último. -
fontspec
para establecer la fuente del documento (paraxelatex
). -
fancyhdr
para personalizar los encabezados y pies de página. -
titlesec
para modificar el estilo de los título de secciones y capítulos. -
booktabs
para tener más opciones para personalizar las tablas y que en general queden mejor. -
microtype
para ajustar las opciones microtipográficas y que el documento tenga mejor aspecto.
¿Cómo compilo?
Suelo compilar con xelatex
porque, aunque es más pesado y lento, me
evita tener que configurar la codificación y es mucho más sencillo
cambiar de fuente. Si me temo que es posible que un documento vaya a
ser compilado con xelatex
y pdflatex
me curo en salud, uso el
paquete ifxetex
y defino las cosas problemáticas, principalmente el
idioma y la fuente, para ambos compiladores:
\usepackage{ifxetex}
\ifxetex
% Si se usa xelatex
\usepackage{polyglossia}
\setmainlanguage{spanish}
% Fuente
\usepackage{fontspec}
\setmainfont{DejaVu Serif}
% Tabla en lugar de cuadro
\gappto\captionsspanish{
\renewcommand{\tablename}{Tabla}%
\renewcommand{\listtablename}{Índice de tablas}%
}
\else
% Si se usa pdflatex
\usepackage[spanish,es-tabla]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{DejaVuSerif}
\fi
¿Y para colaborar?
Usando git
, evidentemente. Los que no sepan git
que aprendan y los
que no quieran aprender que se vayan a vivir a una torre en el medio
de la nada. El hecho de tener bajo control todos los cambios, trabajar
en paralelo sin pisarnos los unos a los otros y poder probar cosas
nuevas sin destruir lo que ya tenemos bien merece el esfuerzo. Si
además tenemos una copia de seguridad de nuestro trabajo en un
repositorio en la red y podemos comentar los cambios de los demás con
facilidad ni os cuento.
A los tengáis a alguien que os exige que cambiéis cosas y que luego
se lo demostréis os vendrá bien latexdiff
, que genera un documento
legible para los no iniciados y no nos cuesta un trabajo adicional.
Conclusión final
¡Hemos llegado al final! ¿Os dais cuenta de todo lo que sabemos ya? Somos capaces de crear un documento profesional con sus referencias y su código colorinesco que no haga que le sangren los ojos a las personas con cierta educación tipográfica. Y todo usando un par de programas, unos paquetes exquisitamente escogidos y nuestras manitas. Cómo molamos.
En definitiva, LaTeX no es tan fiero como lo pintan y cualquiera (¡hasta yo!) puede aprender a usarlo si le dedica un poco de tiempo y ganas. Así que ¡ahora mismo todos a generar documentos elegantes!
Referencias
git
+ LaTeX workflow en StackOverflow
El formato de una publicación: cuello de botella en la edición
Tips on Writing a Thesis in LaTeX
Anterior: La opción Pandoc, [Contenido]