Escribir mejores documentos en LaTeX

Mejorar la calidad de un documento en LaTeX es una tarea sencilla. Basta con disponer de un preámbulo de LaTeX que realice pequeñas configuraciones para obtener un documento con mucha mejor presencia y simplificar la labor de edición.

Esta lista parte de la idea los cuatro pasos para mejores documentos LaTeX de William C. Benton, ampliándola con un listado de paquetes que completan un preámbulo “todoterreno” útil para casi cada ocasión.


Usar pdflatex

En la actualidad el formato PDF es el estándar de facto para el intercambio e impresión de documentos. Aunque existen varias formas de transformar un documento LaTeX a PDF, los mejores resultados se obtienen con pdflatex. Su uso permite a los diferentes paquetes adaptarse lo mejor posible a dicho formato (está disponible la sentencia \ifpdf para ello) permitiendo una mayor calidad e, incluso, algunos paquetes sólo pueden usarse con este driver.

Su uso introduce un pequeño cambio: las imágenes en formato eps no son válidas. Sin embargo, es muy sencillo convertirlas a PDF por lo que es un problema menor.

Usar un sistema de control de versiones

Los sistemas de control de versiones permiten almacenar el histórico de cambios realizados en un proyecto. En el caso de escritura de LaTeX, almacenarían los distintos estados, diferentes redacciones…

Entre las mejoras que aportan está la posibilidad de deshacer errores, conocer quién y cuándo se ha realizado cada cambio y, aunque no es su cometido principal, puede servir de copia de respaldo (backup) para cuando ocurra un desastre.

Además de emplear el gestor, es muy interesante incluir la información (identificador interno, autor, fecha y hora del cambio) que proporciona el gestor en el propio documento. Esta información puede añadirse al documento generado para identificar qué versión fue enviada a revisión y aplicar las correcciones recibidas.

Dependiendo del gestor de control de versiones existen varios paquetes encargados de esta misión. Los más avanzados son vc (válido para casi todos los gestores) y svnmulti (válido sólo para subversion y precisa añadir un par de líneas en cada fichero). El uso específico de cada uno de ellos está descrito en sus correspondientes manuales (y se tratará en breve).

Precargar opciones condicionales

En muchos casos, aunque contradice el primer consejo, es necesario poder generar la versión DVI como la PDF. En estos casos se hace un uso intensivo de la carga o configuración condicional según el modo de ejecución (\ifpdf). Este uso redunda en un código complejo y duplicado para cada caso.

Existe una forma de evitarlo mediante el uso de \PassOptionsToPackage. Esta sentencia está diseñada para el desarrollo de paquetes pero es muy útil en el preámbulo ya que permite indicar el conjunto de opciones según el modo de ejecución, de forma independiente a la carga real del paquete que contiene las opciones comunes e independientes del modo de ejecución.

%% Pass conditional options to packages
\ifpdf
	\PassOptionsToPackage{pdftex}{graphicx}
	\PassOptionsToPackage{pdftex}{hyperref}
	\PassOptionsToPackage{pdftex}{xcolor}
\else
	\PassOptionsToPackage{hypertex}{hyperref}
\fi

Evidentemente, tras estas definiciones es necesario cargar los paquetes con el correspondientes \usepackage.

Configurar adecuadamente el idioma y codificación

Cada idioma es único, tiene sus características, formatos numéricos, formato de fecha… En muchos de ellos, existen caracteres especiales que no pueden introducirse directamente con el teclado. En esos casos, el documento final no permite extraer contenido ya que la codificación no es correcta.

Todas estos problemas pueden solucionarse añadiendo tres paquetes al inicio del preámbulo: babel, fontenc y inputenc:

\usepackage[spanish]{babel}   % Normas tipográficas y opciones del español
\usepackage[T1]{fontenc}      % Codificación de salida
\usepackage[latin1]{inputenc} % Codificación de entrada

A partir de ese momento, todo el sistema se adaptará al lenguaje y es posible escribir normalmente cualquier carácter. Además, se podrá extraer cualquier texto del PDF resultante sin problemas.

Elegir el tipo de letra

Tipo de letra Computer Modern

Computer Modern (con serifas)

El tipo utilizado por defecto en LaTeX se denomina Computer Modern, un tipo de letra muy ligero creada por Donald Knuth que permanece inmutable desde 1992.

Desde entonces, el catálogo de tipos de LaTeX se ha incrementado y no existe ningún motivo para descartar el uso de tipos más modernas. En la elección hay que considerar el uso de tipos con soporte matemático para mejorar la integración de la fórmulas en el documento (si las hay), o si dispone de ligaduras o soporte de ajustes micro-tipográficos.

Y para nostálgicos, siempre se puede elegir el tipo Latin Modern, la versión actualizada del Computer Modern y con soporte matemático.

Activar los ajustes micro-tipográficos

Utilizando pdflatex es posible activar ajustes microtipográficos que mejoran el aspecto del margen derecho justificado. Estos ajustes están disponibles en el paquete microtype (su propio manual es una demostración en la que se pueden activar y desactivar los efectos) que puede cargarse en el preámbulo con:

\ifpdf
	\usepackage[protrusion=true,expansion=true]{microtype}
\fi

Los ajustes microtipográficos sólo están disponibles en pdflatex (por eso es necesaria la carga condicional). Además, el tipo de letra utilizado puede incorporar características (ligaduras) que mejoren el resultado final lo que puede influir en la decisión de los tipos.

Hiperreferencias y metainformación

Los documentos generados con LaTeX pueden imprimirse o visualizarse en pantalla. En este segundo caso, pueden disponer de características avanzadas como enlaces, metainformación sobre el documento, autoría, licencia…

Para habilitar estas funcionalidades es necesario cargar hyperref. Por lo general, éste debe ser el último paquete en cargarse y debe revisarse su manual para seleccionar las opciones deseadas.

Existen dos añadidos al paquete hyperref: backref, que permite realizar referencias inversas en la bibliografía (en qué páginas se cita cada entrada), y hyperxmp, que permite añadir metainformación XMP (identificación del documento, autores, copyright, palabras clave…) en un fichero PDF.

Aunque no está directamente relacionado, el paquete url permite definir enlaces (útiles en la versión electrónica) con un formato especial y soportando la división de los mismos en varias líneas cuando sea necesario.

Tablas más legibles

LaTeX proporciona tablas básicas de forma nativa. Aunque parezca extraño, es posible mejorar el aspecto de las tablas utilizando el diseño propuesto en el paquete booktabs. Este paquete, que sólo necesita ser incluido en el preámbulo, define nuevas macros (\toprule, \midrule y \bottomrule, principalmente) que mejoran las legibilidad y presentación de las tablas.

Una de las carencias de las tablas básicas es la imposibilidad de dividirla entre páginas. Pero para suplir esta necesidad es posible utilizar el paquete longtable. Este paquete permite definir cabeceras y pies para las tablas y gestiona su maquetado aplicando dichos encabezados cuando corresponda.

Una imagen vale más que mil palabras

Para la inclusión de imágenes en un fichero es necesario incluir el paquete graphicx. Las particularidades del uso de imágenes ya fueron descritos en la entrada imágenes en LaTeX. Este paquete proporciona un soporte básico para la inclusión de imágenes que, en algunos casos, pueden no resultar suficientes.

Un posible uso avanzado es la inclusión de dos imágenes en la misma figura (en paralelo para comparar) con la posibilidad de referenciar cada una de ellas por separado. Este efecto lo proporciona el paquete subfig. Este paquete no sólo sirve para imágenes sino también para tablas o una mezcla de ellos.

Otro ejemplo es la inclusión de una imagen en el lateral del texto (las imágenes usualmente ocupan todo el ancho disponible). En este caso, el paquete adecuado es floatflt.

No, nunca escribas formato

Está terminantemente prohibido utilizar las macros de formato \textbf, \textit

No se deben escribir formatos en la escritura de texto salvo que tengan cierto sentido semántico. Por ejemplo, para destacar un texto importante, se debe utilizar la macro \emph (no \textbf para ponerlo en negrita). Esta macro mostrará el formato de resaltado adecuado al idioma configurado en babel (en castellano, es cursiva redonda) e, incluso, será capaz de poner énfasis en el énfasis.

La única excepción es si se desea marcar texto escrito en un idioma diferente al principal del documento. En ese caso debe mostrarse en cursiva oblicua (\textit). Como consejo, es muy conveniente definir una macro de “cambio de idioma” que ponga el formato adecuado para mantener la semántica.

About these ads

4 pensamientos en “Escribir mejores documentos en LaTeX

  1. buenas!

    dejo la pregunta aunque no estoy muy segura de que sea el articulo adecuado…

    Hay algun motivo por el cual el mismo documento .tex de resultados dferentes (pdf) si se compila en ordenadores diferentes? por ejemplo en temas de paginación, etc.

    Gracias!

    • En principio no debiera ocurrir. Lo más probable es que existan diferencias de versión entre los paquetes usados en cada equipo o que un equipo no tenga instalados los patrones de guionado del idioma.

Los comentarios están cerrados.