Capitulares (lettrine)

La letra inicial de gran tamaño que se hunde en las primeras líneas al abrir un capítulo se llama drop cap en inglés y lettrine en francés. En LaTeX el trabajo corresponde al paquete que lleva justamente ese nombre: lettrine, de Daniel Flipo (v2.60, con fecha 2024-01-20, en TeX Live 2024). El adorno parece un asunto puramente visual, pero la implementación es obsesivamente precisa: lettrine compone de verdad una cadena de referencia de cuatro letras, EFTZ, mide su altura y calcula el factor de escala con \fpeval, de xfp. Medido: frente a un objetivo de 28,98666 pt, la letra salió de 28,98679 pt — una desviación de 0,00013 pt. Esta página cubre los dos argumentos obligatorios de \lettrine, las opciones lines=, lhang=, loversize= y findent=, el \parshape y el \llap subyacentes, y lo que ocurre realmente en listas, a dos columnas y en japonés.

Cómo usar \lettrine: dos argumentos y ningún espacio entre ellos

Ponga \usepackage{lettrine} en el preámbulo y empiece el párrafo con \lettrine[opciones]{T}{he rest}. Hay dos argumentos obligatorios. El primero, {T}, es la propia capitular; el segundo, {he rest}, es el texto que sigue, compuesto por defecto en versalitas. El resto del párrafo se ciñe automáticamente al costado derecho de la capitular. No debe haber espacio entre {T} y {he rest}: el resto de la primera palabra pasa directamente al segundo argumento. Ese argumento puede ir vacío: \lettrine{T}{} baja la inicial y comienza la palabra siguiente en la letra corriente.

latex
\documentclass{article}
\usepackage{lettrine}
\usepackage{lmodern}      % a fully scalable font — see below
\begin{document}
\lettrine{L}{orem} ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua.
\end{document}

Aquí acecha una trampa. Como lettrine escala la inicial a un tamaño arbitrario, necesita una tipografía disponible en cualquier cuerpo. Computer Modern (CM) y las fuentes EC traen de serie solo una escalera fija de cuerpos, así que un tamaño pedido fuera de esa escalera se sustituye por el más próximo y la capitular deja de llenar el número de líneas solicitado. Lo seguro es añadir \usepackage{lmodern} (Latin Modern) o usar una tipografía PostScript/OpenType como Palatino o Times. Si debe quedarse en CM, cargue \usepackage{type1cm}; para EC, \usepackage{type1ec}. El registro avisa cuando ha habido sustitución: una línea como LaTeX Font Warning: Font shape ... in size <31.53638> not available (Font) size <24.88> substituted significa que la inicial salió más pequeña de lo previsto.

Qué ocurre por debajo: no \hangindent, sino \parshape y \llap

lettrine no usa \hangindent. La descripción habitual de una capitular hecha a mano —«sangre las primeras líneas con \hangindent y \hangafter y ponga una letra grande en el hueco»— no es lo que hace lettrine.sty. Encaja la inicial en una caja con \sbox, construye después un \parshape: una lista de pares (sangría, longitud de línea), uno por línea, anula la sangría de párrafo con \noindent y empuja la caja de la inicial hacia el margen izquierdo con \llap. Mientras que \hangindent solo puede expresar «una sangría fija para las n primeras líneas», \parshape permite una sangría distinta en cada línea. Por eso mismo la opción slope= puede inclinar el borde izquierdo del texto siguiendo el contorno diagonal de una A o una V.

Saber cómo se obtiene la altura cambia lo que significa lines=. lines=n no es «n veces \baselineskip». La altura objetivo es (n − 1) interlíneas más la altura de x de la tipografía del texto que sigue (\LettrineTextFont, \scshape por defecto). Medido en un article de 10pt: \baselineskip vale 12,0 pt y la altura de \scshape x es 4,98666 pt; con lines=3 el objetivo que aparece en el registro es 28,98666 pt, exactamente 12 × 2 + 4,98666. La letra realmente producida midió 28,98679 pt. Esas dos líneas se escriben en el .log en cada compilación, así que cuando una inicial salga del tamaño equivocado, léalas primero: una sustitución de fuente se manifiesta como una diferencia grande entre objetivo y resultado.

latex
% lettrine reports both numbers in the .log on every run:
%   Package lettrine.sty Info: Targeted height = 28.98666pt
%   (lettrine.sty)             (for loversize=0, accent excluded),
%   (lettrine.sty)             Lettrine height = 28.98679pt (L);
%
% Read them when an initial comes out the wrong size:
%   pdflatex doc.tex && grep -A3 "Targeted height" doc.log

Las opciones que importan: lines=, lhang=, loversize=, findent=

El aspecto se regula con opciones separadas por comas dentro de los corchetes. Cuatro hacen casi todo el trabajo: lines= fija cuántas líneas de alto tiene la inicial, lhang= cuánto sobresale hacia el margen izquierdo, loversize= cuánto se agranda más allá de ese número de líneas, y findent= el hueco entre la capitular y la primera línea de texto. La que compensa cuidar en la práctica es lhang=: las letras redondas como la O o la C quedan mejor alineadas ópticamente si se les permite volar un poco (0,1 a 0,2 es lo habitual), y lo mismo vale para una T, cuyo travesaño sobresale arriba a la izquierda. Las letras de borde izquierdo vertical, como H o N, piden 0. Todos estos valores son fracciones del ancho o el alto de la propia letra, de modo que la relación visual sobrevive a un cambio de tipografía.

OpciónSignificadoPor defecto
linesAltura de la inicial: (n−1) interlíneas más la altura de x del texto que sigue2
lhangFracción del ancho de la capitular que vuela al margen izquierdo (0–1); útil en O, C, T0
loversizeFracción en que se agranda la altura objetivo (−1 a 1); 0,1 significa un 10 % más alta0
lraiseEleva la capitular esta fracción de su propia altura0
findentHueco entre la capitular y la primera línea de texto0pt
nindentSangría de la segunda línea y siguientes0.5em
slopeInclinación del borde izquierdo del texto, para letras oblicuas como A y V0pt
depthCuántas líneas extra se hunde la inicial por debajo de lo normal0
anteMaterial colocado justo antes de la capitular, como una comilla angular francesaninguno
imageUsar una imagen como inicial; requiere graphicx, y viewport= puede recortarlafalse
refstringCambia la cadena de referencia que fija la altura, cuando EFTZ no encaja en una fuente decorativaEFTZ

Las mismas claves pueden darse al cargar el paquete, donde pasan a ser valores por defecto de todo el documento. Escriba \usepackage[lines=3]{lettrine} y tres líneas será lo predeterminado, mientras que las opciones de un \lettrine[...] concreto lo sobrescriben localmente. Si una letra determinada quiere siempre el mismo trato, puede registrar un valor por defecto por letra con \LettrineOptionsFor{O}{lhang=0.2}. Así, «que las redondas vuelen» pasa a ser una tarea única en lugar de recurrente.

La tipografía y el color de la capitular: uso de \LettrineFontHook

Fije la letra de la inicial redefiniendo \LettrineFontHook con \renewcommand. El cuerpo se calcula a partir del número de líneas, así que no hace falta tocar \LettrineFont directamente. El gancho aloja comandos de fuente de bajo nivel: escriba \fontfamily{ppl}\fontseries{bx}\fontshape{sl} y solo la capitular saldrá en Palatino negrita inclinada. Con LuaLaTeX o XeLaTeX puede ir por fontspec: \renewcommand{\LettrineFontHook}{\fontspec{LinLibertine_I.otf}} cambia a las iniciales decorativas de Linux Libertine. El texto que sigue (el segundo argumento) tiene su propio gancho, \LettrineTextFont, cuyo valor por defecto es \scshape. Para prescindir de las versalitas, escriba \renewcommand{\LettrineTextFont}{\rmfamily}.

Al cambiar el color, atienda al tipo de corchete. Para gris es \renewcommand{\LettrineFontHook}{\color[gray]{0.5}}. El habitual \color{gray}{0.5} da un resultado erróneo sin lanzar ningún error: al componerlo, \color{gray} elige el color con nombre gray y el {0.5} sobrante se compone como texto, de modo que se imprime un pequeño «0.5» abajo a la izquierda de la inicial. El contenido del gancho se ejecuta dentro del \sbox, así que todo lo que produzca caracteres producirá caracteres. Use \color{gray} para un color con nombre o \color[gray]{0.5} para un valor de grises: uno u otro, nunca mezclados.

latex
% Palatino, bold, slanted — for the dropped capital only
\renewcommand{\LettrineFontHook}{\fontfamily{ppl}\fontseries{bx}\fontshape{sl}}

% Grey. NOT \color{gray}{0.5} — that silently prints "0.5" beside the cap.
\renewcommand{\LettrineFontHook}{\color[gray]{0.5}}

% Drop the small capitals on the run-on text
\renewcommand{\LettrineTextFont}{\rmfamily}

% Three lines tall, hanging 20% of its width into the margin
\lettrine[lines=3, lhang=0.2]{T}{his is} the opening paragraph of a chapter.
% A slanted letter wants its own contour:
\lettrine[lines=4, lraise=0.1, nindent=0em, slope=-.5em]{V}{oici} le texte.

Dónde falla: a mitad de párrafo, en listas, a dos columnas

\lettrine debe abrir el párrafo; ponga algo imprimible delante y se rompe en silencio. Compile Some words come first. \lettrine{L}{orem} … y no habrá ni error ni aviso, pero «Some words come first.» queda sola en una línea corta y sangrada, con la capitular y el ceñido empezando por debajo. \lettrine establece un \parshape para el párrafo entero, de modo que lo que la precede queda sencillamente fuera de ese diseño. Un \noindent previo no la rompe: lettrine.sty emite su propio \noindent, así que uno más es inocuo. Lo que la rompe no es el espacio en blanco, sino el contenido imprimible.

No puede usarse dentro de una lista. El manual del paquete lo dice sin rodeos, y la medición muestra el síntoma con claridad. Escriba \lettrine{I}{nlist} justo después de un \item en itemize y compila, no avisa de nada y el ceñido hasta parece razonable; pero amplíe la salida y verá que la viñeta del elemento se imprime encima de la esquina superior izquierda de la capitular. La causa es sencilla: tanto la etiqueta del \item como la inicial de \lettrine se colocan con \llap, en el mismo lugar junto al margen izquierdo. Dentro de quote, quotation y abstract funciona bien; dentro de center, solo con [lines=1]. Si una lista debe aparecer dentro de un párrafo iniciado con \lettrine, el manual pide un \parshape=0 inmediatamente después de que termine la lista (también sirve empezar un párrafo nuevo antes o después).

A dos columnas, el mismo valor de lines= produce una impresión completamente distinta. Medido: un article estándar con twocolumn mantiene \textwidth en 469,0 pt pero da a \columnwidth 229,5 pt, con \columnsep de 10,0 pt. La medida es menos de la mitad de ancha, pero la altura de la inicial se deriva de \baselineskip y no cambia. La proporción de la medida que ocupa la capitular se duplica, pues, aproximadamente, y con lines=4 las cuatro primeras líneas quedan tan cortas que se componen con huecos entre palabras muy visibles. A dos columnas, quédese en lines=2, deje loversize en 0 y mantenga lhang discreto. Además, en la columna derecha lhang no vuela hacia el margen de la página sino hacia el corondel (\columnsep), así que compruebe a ojo que la capitular no se arrima al texto de la columna vecina.

Agrandar el primer carácter de un texto japonés: qué pasa en realidad

Pásele un kanji a \lettrine y compila, y la inicial se compone realmente grande, pero las medidas se calculan del lado latino. Componer \lettrine{吾}{輩は猫である。} con upLaTeX y jsarticle no produjo error alguno, pero el registro llevaba LaTeX Font Warning: Font shape OT1/cmr/m/n in size <31.53638> not available (Font) size <24.88> substituted. lettrine deduce la altura de \LettrineTestString (por defecto EFTZ) en la fuente latina vigente, no en la japonesa. Añadir \usepackage{lmodern} acalla el aviso, pero las sangrías del ceñido siguen sin casar con el cuerpo cuadrado de los glifos japoneses. Además, el \scshape por defecto del segundo argumento no hace absolutamente nada con kana ni kanji: el relevo visual de inicial grande a versalitas, tan natural en texto latino, sencillamente no existe.

De ahí se sigue el juicio práctico. Si solo se busca destacar el primer carácter al abrir un capítulo en japonés, resolverlo con el cuerpo del título, el reparto de líneas, la sangría y el blanco es mucho más fiable que forzar el paso de \lettrine. Si de verdad quiere la forma capitular, tendrá que poner un comando de fuente japonesa dentro de \LettrineFontHook, cambiar la referencia de altura con refstring= para que mida el carácter que realmente usa, y ajustar después nindent y findent a mano. En cualquier caso, el cuerpo cuadrado de los glifos japoneses se presta mucho menos a una capitular hundida que una mayúscula latina. Saque una prueba y mírela antes de decidir adoptarla.

Cuándo añadirla: no decore antes de que el texto esté fijado

Una capitular no es una ayuda a la comprensión; es un adorno que fija el ánimo al abrir un capítulo. Por eso va la última. Los valores adecuados de lines y lhang dependen de la longitud del párrafo y de cómo caen sus líneas, así que cada párrafo añadido obliga a revisarlos. No la use en artículos, informes ni especificaciones, donde el formato viene dado. Su sitio son los ensayos, los folletos y las aperturas de capítulo de libros cuyo diseño de página acoge el ornamento. Y una vez decidido usarla, mantenga una sola regla en todo el documento: dos líneas en un capítulo y tres en otro es la forma clásica de que un adorno deje de funcionar como adorno.

  • Úsela solo en el primer párrafo de la apertura de un capítulo. Evite las listas, center (salvo con [lines=1]) y los párrafos más cortos que la altura de la capitular.
  • No la inserte hasta que el texto esté fijado. lines y lhang dependen de la longitud del párrafo y de cómo caen sus líneas.
  • Use siempre una tipografía escalable. Cargue lmodern o similar y compruebe en el .log que Targeted height y Lettrine height coinciden.
  • Prefiera una inicial textual a una inicial de imagen. Así el lector puede buscar y copiar el texto.
  • En una apertura de capítulo en japonés, decida primero si una capitular occidental encaja en la página. Si no, resuélvalo con el cuerpo del título y el blanco.