Escritura de texto occidental

Escribe texto simple en escritura latina y TeX lo configura con sorprendente cuidado: fusiona fi y ff en ligaduras, pares de kerns como AV automáticamente, escanea todo el párrafo para elegir saltos de línea y separación de palabras, y justifica los bordes. Esta página recorre los cuatro mecanismos detrás de esto (ligaduras, interletraje, salto de línea con separación de palabras y microtype) con las cosas que un autor debe saber y los raros casos en los que desea intervenir. Todo esto concierne al texto occidental; El japonés tiene su propio modelo de composición.

Ligaduras

Una ligadura fusiona varias letras adyacentes en un solo glifo. Debido a que el saliente en la parte superior derecha de un f choca con el punto del siguiente i o el ascendente de un l, las ligaduras f se han utilizado desde los días del tipo de metal. TeX los forma automáticamente. Los cinco que crea de forma predeterminada son ff, fi, fl, ffi y ffl: simplemente escriba office o fluffier y las letras relevantes se reemplazan por un glifo.

La misma maquinaria también construye ligaduras de puntuación. Una serie de guiones -- se convierte en un guión (–, para rangos numéricos y similares), y tres seguidos --- en un guión (—, para saltos entre paréntesis). Dos comillas invertidas ` y dos apóstrofes ''` se convierten en comillas dobles de apertura y cierre adecuadas. Estas conversiones se basan en las métricas de fuentes occidentales; no se necesita ningún comando especial.

Pero cuando una ligadura se extiende a ambos lados del límite de un morfema (la costura donde se construyó una palabra a partir de partes) puede perjudicar la legibilidad. El ejemplo clásico es shelfful (shelf + ful): fusionar ff oculta la unión entre shelf y ful. Knuth cita esta misma palabra en *The TeXbook* y dice que debería establecerse como shelf\/ful. halflife, offhand y wolffish son del mismo tipo. El japonés no tiene ese problema, pero es un problema que vale la pena conocer al tomar en serio el texto occidental.

Hay tres formas tradicionales de romper una ligadura no deseada. f\/f inserta una corrección en cursiva \/ (un pequeño espacio del tamaño del saliente de la letra) entre los dos fs (esto es lo que usó Knuth). f{}f inserta un grupo vacío {}. f\kern0pt f inserta un kern de ancho cero. Los tres eliminan la ligadura, pero tenga en cuenta un problema clásico: poner tal separación dentro de una palabra puede desactivar la separación de palabras para esa palabra. Para palabras cortas, el daño práctico es insignificante.

latex
shelf\/ful      % italic correction — Knuth's example
shelf{}ful      % empty group
shelf\kern0pt ful  % zero-width kern

Si usa LuaLaTeX, el paquete selnolig es la mejor solución. Lleva la morfología inglesa como patrones y suprime las ligaduras no deseadas automáticamente en palabras como shelfful o wolffish, sin ningún tipo de marcado en el texto y manteniendo intacta la separación de palabras. Por el contrario, para desactivar *todas* las ligaduras, microtype (a continuación) puede desactivarlas por fuente en un solo lugar.

Kerning

Un kern ajusta el espacio entre un par específico de letras adyacentes, cerrándolo o abriéndolo para que el espacio parezca uniforme. Los ejemplos comunes son pares como AV, To, Wa y LT, que sin ayuda se ven entreabiertos debido a las inclinaciones y los lados de las letras. TeX hace esto automáticamente también. Cada fuente occidental incluye una tabla de pares de interletraje (“cierra este par tanto, abre aquel”) en sus métricas de fuente (un archivo .tfm en el mundo pdfLaTeX, o una tabla dentro de la fuente para caras OpenType), y TeX la lee para establecer el espaciado.

El punto clave: ambas ligaduras y kerning son invisibles en tu fuente y se aplican automáticamente desde las métricas de fuente. Normalmente no necesitas pensar en ellas en absoluto. Solo cuando desee empujar un espacio con la mano, agregue un espacio pequeño (o uno negativo para ajustar) con \kern y una longitud explícita. Y para rastrear o espaciar una palabra completa de manera uniforme, no disperses tus propios \kerns: usa el \textls de microtype (a continuación), que mantiene la separación de palabras funcionando.

Espaciado, justificación y separación de palabras entre palabras

Lo que hace que la configuración de TeX sea especialmente hermosa es que elige saltos de línea mirando todo el párrafo a la vez. Mientras que muchos procesadores de texto corrigen una línea a la vez, TeX usa el algoritmo Knuth-Plass para evaluar combinaciones completas de puntos de interrupción y elegir la división que minimice cuánto deben estirarse o reducirse los espacios entre palabras a lo largo del párrafo. La justificación se logra en ese proceso estirando y encogiendo el pegamento entre palabras para que las líneas alcancen el mismo ancho.

Para empaquetar bien las líneas, TeX divide las palabras automáticamente en los límites de las sílabas usando patrones de separación de palabras específicos del idioma. El hecho crucial es que los patrones dependen del idioma: romper el alemán o el francés con las reglas inglesas da resultados incorrectos. Entonces declaras el idioma del documento con babel (o polyglossia para LuaLaTeX/XeLaTeX), que carga los patrones correctos para él. Este es un requisito previo para configurar el texto correctamente, no una decoración.

La separación de palabras automática es inteligente, pero puede juzgar mal los nombres propios y los términos técnicos. Los remedios vienen en tres niveles. (1) Para hacer que una palabra en particular siempre se rompa solo en los puntos elegidos, indíquela en el preámbulo en \hyphenation{...}, marcando los puntos permitidos con - (palabras separadas por espacios). (2) Para un punto de interrupción único, coloque \- (un guión discrecional) dentro de la palabra, pero tenga en cuenta que agregar \- significa la palabra solo puede dividirse allí. (3) Para prohibir la división de una palabra, envuélvala en \mbox{...}.

latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}  % load English hyphenation patterns
\hyphenation{FORTRAN manu-script data-base}  % global exceptions
\begin{document}
We rewrote the man\-u\-script in \mbox{FORTRAN} overnight.
\end{document}

Puede ajustar la precisión con la que un párrafo contiene dos declaraciones. \sloppy tolera espacios entre palabras más amplios para evitar que las líneas sobrepasen el margen (cuadros demasiado llenos), mientras que \fussy (el valor predeterminado) mantiene el espaciado estricto a costa de más sobrepasos (la advertencia “Overfull \hbox”). Para aflojar solo un párrafo, envuélvalo en el entorno sloppypar. Pero \sloppy tiende a dejar líneas entrecortadas, por lo que volver a trabajar la redacción o agregar un solo \- generalmente da un resultado más hermoso.

Pulido con microtype

Finalmente, el paquete que levanta visiblemente la tipografía occidental es microtype. Una sola línea, \usepackage{microtype}, activa por defecto los dos refinamientos microtipográficos que proporciona pdfTeX. Una es la protrusión de caracteres (interletraje de margen): la puntuación al final de la línea y las letras redondas o inclinadas como o y A se empujan un poco más allá del margen derecho para que el borde se vea ópticamente uniforme. La otra es la expansión de fuente: los glifos de cada línea se estiran o comprimen en una pequeña cantidad (una fracción de un porcentaje), asumiendo parte del trabajo del pegamento entre palabras y dando un párrafo más uniforme y ajustado.

Más allá de eso, el paquete también ofrece ajuste de espacio entre palabras, interletraje adicional, espacio entre letras con guiones (\textls{...}) y desactivación de ligaduras. Las funciones que están disponibles dependen del motor. Protrusion funciona con pdfTeX, LuaTeX y XeTeX; la expansión funciona solo con pdfTeX y LuaTeX (no con XeTeX); La desactivación de ligaduras funciona con pdfTeX y LuaTeX. El paquete habilita de forma predeterminada sólo lo que puede ejecutarse de forma segura en su motor, por lo que cargarlo sin opciones es suficiente para comenzar.

latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{microtype}  % protrusion + expansion, on by default
\begin{document}
Long justified paragraphs look noticeably more even with microtype:
fewer rivers of white space, tidier right margins, and \textls{LETTERSPACED}
small caps when you ask for them.
\end{document}

Los ajustes son sutiles, no obvios a simple vista, pero en una página se muestran como menos ríos de espacios en blanco, finales de línea más uniformes y menos separación de palabras. Para una tipografía occidental seria, agregar microtype es efectivamente un movimiento estándar: una mejora de calidad casi obligatoria. Y nuevamente, estos efectos se aplican al texto occidental (latín). El japonés tiene su propio modelo de composición tipográfica, distinto de la protrusión y la expansión, manejado por herramientas como luatexja.

Haz un pase de prueba de texto occidental

Incluso en manuscritos centrados en japonés, un pase de prueba dedicado para títulos, entradas de bibliografía, URL, nombres y nombres de paquetes occidentales hace que el acabado sea más estable. En ese pase de texto occidental, verifique los nombres propios donde se deben suprimir las ligaduras, los términos técnicos que pueden dividirse con guiones y las líneas demasiado completas que quedan después de microtype. A diferencia de la planificación de párrafos, este trabajo es más eficaz cerca del final, una vez que el texto está prácticamente asentado.

  • Nombres propios: decide si ligaduras como ff y fi deben suprimirse en logotipos o nombres personales, y divídelas localmente con {} o \kern0pt solo cuando sea necesario.
  • Términos técnicos: agregue \hyphenation{...} o \- para palabras largas recurrentes para no parchear cada línea a mano.
  • Calidad del cuerpo: juzga el párrafo después de cargar \usepackage{microtype}. Saltar primero a \sloppy a menudo afloja el espaciado.
  • Composición tipográfica japonesa: sintonícela a través del motor y el modelo de paquete japonés, no a través de microtype.