Microtipografía (microtype)

microtype es el paquete que hace que los párrafos justificados sean visiblemente más hermosos. Lo escribió R. Schlicht. Lo que hace no es llamativo: empuja la puntuación un poco más allá del margen y estira o comprime los anchos de los glifos en fracciones de porcentaje. Son ajustes casi invisibles de cerca, pero en una página alinean mejor el borde derecho, igualan los espacios entre palabras y reducen tanto ríos blancos como líneas desbordadas. Normalmente basta una línea: \usepackage{microtype}. Esta página recorre protrusion, expansion, tracking y las demás funciones, junto con el punto clave: las funciones disponibles dependen del motor.

Qué es microtype

TeX ya compone bien, pero microtype añade una capa de microtipografía: refinamientos que actúan al nivel de cada carácter y de los espacios entre ellos. Estas funciones se introdujeron originalmente en pdfTeX y más tarde pasaron, en parte, a LuaTeX y XeTeX. microtype es la interfaz LaTeX unificada para ellas y mejora el aspecto del texto occidental en alfabeto latino.

Sus funciones principales son las siguientes. Las dos primeras — protrusion y font expansion — son el núcleo y se activan por defecto cuando puede suponerse que funcionan con seguridad. Las demás se activan con opciones cuando hacen falta.

  • Protrusion de caracteres (margin kerning): empuja puntuación y algunas letras un poco más allá del margen para que el borde del texto parezca ópticamente recto.
  • Font expansion: estira o comprime mínimamente los anchos de los glifos de cada línea, reduciendo la variación de espacios entre palabras y uniformando el “color” del párrafo.
  • Tracking / letterspacing (\textls): separa uniformemente las letras de una palabra o tramo; adecuado para mayúsculas y versalitas.
  • Desactivar ligaduras (\DisableLigatures): apaga ligaduras por fuente; útil para familias de máquina de escribir y similares.
  • Ajuste de espacio entre palabras y kerning adicional: las opciones spacing / kerning (solo pdfTeX).

Ten en cuenta que estos refinamientos son para texto occidental (latino). El japonés tiene su propio modelo de composición — restricciones de salto de línea, espacio entre caracteres japoneses y occidentales, etc. — distinto de protrusion y expansion, y gestionado por herramientas como luatexja. El procesamiento occidental automático más básico, como ligaduras y kerning, se trata en la página hermana “Writing Western text”.

Protrusion de caracteres

La protrusion (también llamada margin kerning) permite que caracteres al inicio o al final de una línea cuelguen apenas fuera del margen. La razón es una ilusión óptica. Si alineas un punto, una coma o un guion — o una letra de contorno redondo u oblicuo como o, A o v — exactamente al borde del texto, el espacio lateral del glifo hace que el borde parezca hundirse hacia dentro. Dejar que esos caracteres sobresalgan un poco hace que el borde del bloque se vea ópticamente recto.

Empujar por completo la puntuación final de línea hacia el margen es la idea conocida como hanging punctuation. Conviene pensar en la protrusion de microtype como la misma operación, pero por carácter, en la cantidad justa y con más sutileza. El efecto es más claro en la puntuación y en letras de poca área o contorno no plano. La protrusion funciona en los tres motores principales: pdfTeX, LuaTeX y XeTeX.

La protrusion actúa de forma natural en párrafos corridos, pero no donde TeX no ve un margen, como dentro de itemize o tabular. Para hacer sobresalir el primer o último glifo en esos lugares, microtype ofrece \leftprotrusion y \rightprotrusion (este control más fino requiere las extensiones e-TeX).

Expansión de fuente

La font expansion estira o comprime los glifos de cada línea horizontalmente en una cantidad mínima (normalmente desde fracciones de porcentaje hasta unos pocos porcentajes) para que las líneas encajen en la medida. En la justificación, la anchura de línea se alcanza normalmente estirando y encogiendo el interword glue; si un pequeño ajuste de los anchos de glifo asume parte de esa tarea, los espacios entre palabras tienen que variar menos. El resultado es menos variación de línea a línea y un “color” de párrafo más uniforme.

Una ventaja práctica es que hay menos cajas overfull y underfull (avisos de líneas que se salen o quedan demasiado abiertas): la composición sale un poco más suave. Puedes ajustar los límites con stretch y shrink, y la granularidad con step, pero los valores predeterminados son adecuados para empezar.

Lo crucial es que la expansion solo está disponible en pdfTeX y LuaTeX, no en XeTeX. Si cargas microtype con XeTeX, sigues teniendo protrusion y tracking, pero la expansion se desactiva automáticamente (sin error, porque el paquete solo activa lo que puede ejecutarse con seguridad). Si quieres el tratamiento completo con expansion, lo correcto es pasar a LuaTeX.

Tracking y letterspacing

El tracking (letterspacing) abre de forma uniforme el espacio entre letras. El tracking de microtype se realiza expandiendo el espaciado propio de los glifos de la fuente, no insertando espacios entre caracteres, por lo que no rompe la partición de palabras. Así se evita la debilidad del método clásico de repartir \kerns manuales dentro de una palabra, que impide que se parta.

Para letterspacing puntual, usa \textls{...}. Funciona esté o no activada la opción tracking, incluso en modo matemático. La cantidad se expresa en milésimas (el valor predeterminado es aproximadamente 100/1000) y puede darse en el argumento opcional, como \textls[200]{...}. Para aplicarlo a una secuencia de caracteres siguientes, \lsstyle activa el letterspacing hasta el final del grupo. En títulos, donde no quieres kerning extra antes y después, resulta útil la forma con estrella \textls*{...}.

Para configurarlo para todo un conjunto de fuentes, escribe algo como \SetTracking{encoding=*, shape=sc}{40} en el preámbulo (este ejemplo espacia las versalitas en 40/1000). Una advertencia: el letterspacing de minúsculas se ha considerado tradicionalmente feo. El propio manual de microtype dice que, por regla general, solo deberían espaciarse mayúsculas o versalitas. El tracking funciona en pdfTeX, LuaTeX y XeTeX.

document.tex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{microtype}
% space out small caps by 40/1000 wherever they appear
\SetTracking{encoding = *, shape = sc}{40}
\begin{document}
\textsc{Small Caps}, and ad-hoc \textls[200]{LETTERSPACED} capitals.
\end{document}

Otras funciones y configuración

Además, microtype puede controlar ligaduras, kerning adicional y espacio entre palabras. Para desactivar ligaduras, usa \DisableLigatures. Por ejemplo, \DisableLigatures{encoding = T1, family = tt*} desactiva las ligaduras de la familia de máquina de escribir en codificación T1, útil al mostrar código donde no quieres que -- se fusione en un guion en dash. Ten en cuenta, sin embargo, que desactivar todas las ligaduras de una fuente también desactiva su kerning. Si enumeras los caracteres iniciales de ligadura en el argumento opcional, como [?,!], solo se desactivan las ligaduras elegidas. El comando puede usarse solo en el preámbulo y una sola vez.

Las opciones kerning y spacing activan respectivamente kerning adicional y ajuste del espacio entre palabras, pero son solo para pdfTeX (no hacen nada en LuaTeX o XeTeX). Ambas están desactivadas por defecto; actívalas explícitamente solo cuando hagan falta, como en \usepackage[kerning=true,spacing=true]{microtype}.

Para cambiar ajustes después de cargarlo, usa \microtypesetup{...}. Por ejemplo, para desactivar protrusion solo mientras se construye la tabla de contenidos, rodea esa parte con \microtypesetup{protrusion=false} y \microtypesetup{protrusion=true}. Para dar otra configuración a una parte del documento, cambia el contexto con \microtypecontext{...} (o el entorno microtypecontext). La opción draft desactiva toda la microtipografía, útil para comparar antes y después.

Soporte por motor

Las funciones disponibles dependen del motor TeX. microtype activa automáticamente solo lo que puede ejecutarse con seguridad en tu motor, así que cargarlo sin opciones no da error. Aun así conviene saber qué surte efecto y qué no. Dos cosas que recordar: la expansion no está disponible en XeTeX y el espacio entre palabras y el kerning adicional son exclusivos de pdfTeX.

FunciónpdfTeXLuaTeXXeTeX
protrusionProtrusion
expansionExpansión de fuenteNo
trackingTracking (letterspacing)
ligaturesDesactivar ligadurasNo
kerningKerning adicionalNoNo
spacingEspacio entre palabrasNoNo

En resumen, el más capaz es pdfTeX (protrusion + expansion + tracking + kerning + spacing); le sigue LuaTeX (protrusion + expansion + tracking, pero sin kerning ni spacing); y XeTeX ofrece solo protrusion y tracking (sin expansion).

Uso

El caso básico es solo una línea, \usepackage{microtype}. Eso activa por defecto protrusion y expansion (donde el motor las soporte), y la mayoría de documentos mejora de forma apreciable. microtype es estable y casi no tiene efectos secundarios: rara vez hace daño añadirlo. Para composición occidental seria es, en la práctica, un movimiento estándar, casi una mejora obligatoria de calidad. Suele combinarse con fontenc ([T1] en los motores pdfTeX).

Este es un preámbulo algo más elaborado. Activa explícitamente protrusion y expansion (activate), aplica un tracking ligero a las versalitas con \SetTracking y desactiva ligaduras solo para la familia de máquina de escribir usada para mostrar código. Sigue los comentarios para ver qué hace cada opción.

document.tex
\documentclass{article}
\usepackage[T1]{fontenc}
% protrusion + expansion explicitly on; "final" forces them in draft mode too
\usepackage[activate={true,nocompatibility},final]{microtype}
% letterspace small caps a little (40/1000)
\SetTracking{encoding = *, shape = sc}{40}
% in code, keep "--" as two hyphens (also turns off kerning for this font)
\DisableLigatures{encoding = T1, family = tt*}
\begin{document}
Justified paragraphs look more even, \textsc{small caps} are gently
letterspaced, and \texttt{a--b} stays as two hyphens in code.
\end{document}

Los ajustes son sutiles y quizá no se noten a primera vista. Pero al pasar páginas verás que el borde derecho se asienta, los espacios entre palabras se calman y hay menos partición y desbordamiento. Como toque final, vale mucho la pena tener microtype en tu caja de herramientas.