Comandos de estilo de fuente

Romano, negrita, cursiva: los comandos que cambian las fuentes en LaTeX parecen una caja de sorpresas al principio, pero en realidad se asientan ordenadamente en tres ejes independientes. Una vez que el modelo hace clic, combinaciones como “negrita sans-serif” y cambiar un párrafo completo a la vez se vuelven obvias en lugar de complicadas. Esta página cubre ese modelo y la elección entre el formulario de comando \textbf{...} y el formulario de declaración {\bfseries ...}.

Una fuente tiene tres ejes independientes.

En NFSS (New Font Selection Scheme) de LaTeX2e, la fuente del texto actual es la combinación de tres atributos independientes. Familia es la forma de la letra subyacente, serie es el peso y forma es la inclinación o forma de las letras. El punto clave es que cada uno se puede cambiar por sí solo y componen: configura la familia en sans-serif y la serie en negrita, y obtendrás negrita sans-serif.

  • Familia — roman (serif) \textrm / \rmfamily, sans-serif \textsf / \sffamily, máquina de escribir (monoespaciada) \texttt / \ttfamily.
  • Serie — medio (el peso predeterminado) \textmd / \mdseries, negrita \textbf / \bfseries.
  • Forma — vertical (valor predeterminado) \textup / \upshape, cursiva \textit / \itshape, inclinada \textsl / \slshape, versalitas \textsc / \scshape.

Cambiar un eje deja los otros dos intactos; esta es la ortogonalidad en el corazón de NFSS. Entonces, si activas sans-serif con \textsf y luego usas \textbf dentro, obtendrás negrita *y seguirás siendo sans-serif*. Tenga en cuenta que la serie realmente combina “peso” y “ancho” en un eje, por lo que también cubre caras condensadas y extendidas. Desde 2020, LaTeX2e fusiona la serie actual y solicitada de manera inteligente: si la fuente está actualmente condensada (c) y solicita negrita (b), intentará usar negrita condensada (bc) cuando esa cara exista.

Formulario de comando versus formulario de declaración

Cada interruptor viene en dos formas. La forma de comando, que comienza con \text…, toma un argumento y afecta solo lo que está dentro de las llaves. El formulario de declaración, que termina en …family / …series / …shape, no acepta argumentos y permanece en vigor desde ese punto hasta el final del grupo adjunto ({ }) o entorno.

latex
% 命令形:短い範囲に / Command form: for short spans
ここは \textbf{太字} で、ここは \textit{イタリック} です。

% 宣言形:グループで範囲を区切る / Declaration form: a group limits the scope
ここは普通。{\bfseries ここから先はずっと太字。} ここで元に戻る。

% 環境全体に効かせる / Apply to a whole environment
\begin{quote}
  \itshape この引用は段落全体がイタリックになります。
\end{quote}

Una buena regla general: para un lapso breve de unas pocas palabras, utilice el formulario de comando \textbf{...}; para un párrafo o entorno completo, utilice el formulario de declaración \bfseries. Cuando desee que una declaración se aplique solo localmente, recuerde envolverla en un grupo{\bfseries ...}; de lo contrario, continuará durante el resto del documento.

La forma de comando también tiene una ventaja silenciosa pero real: inserta corrección en cursiva (consulte la siguiente sección). El formulario de declaración, al no agregar nada, mantiene predecible el anidamiento y la aplicación masiva, razón por la cual se prefiere dentro del código de clase y paquete.

ClaveEje / efectoFormulario de comando (lapso corto)Formulario de declaración (alcance vía grupo)
romanFamilia: romano (serif)\textrm{...}{\rmfamily ...}
sansFamilia: sans-serif\textsf{...}{\sffamily ...}
ttFamilia: máquina de escribir (monoespaciada)\texttt{...}{\ttfamily ...}
boldSerie: negrita\textbf{...}{\bfseries ...}
mediumSerie: media (predeterminada)\textmd{...}{\mdseries ...}
italicForma: cursiva\textit{...}{\itshape ...}
slantedForma: inclinada\textsl{...}{\slshape ...}
smallcapsForma: versalitas\textsc{...}{\scshape ...}
resetRestablecer todos los ejes a los valores predeterminados\textnormal{...}{\normalfont ...}

Restablecimiento y corrección de cursiva

Para restablecer los tres ejes al valor predeterminado del documento a la vez, use \textnormal{...} (formulario de comando) o \normalfont (formulario de declaración): útil cuando desea una sola palabra en la fuente predeterminada dentro de un encabezado sans-serif, por ejemplo. Para restablecer solo un eje, use el comando predeterminado de ese eje: \mdseries (volver a peso medio), \upshape (volver a vertical) o \rmfamily (volver a romano).

Corrección de cursiva \/ agrega un pequeño espacio para compensar el saliente de una letra inclinada, de modo que el último carácter en cursiva no choque con el texto vertical que sigue. Aquí es donde las dos formas divergen. Las formas de comando como \textit{...} insertan la corrección automáticamente cuando es necesario (la omiten si el siguiente carácter está en \nocorrlist; de forma predeterminada, un punto o una coma). El formulario de declaración \itshape no hace nada, por lo que debes agregar \/ al final del tramo inclinado.

latex
% 命令形:補正は自動 / Command form: correction is automatic
He was \textit{very} clever.

% 宣言形:末尾に \/ を手で入れる / Declaration form: add \/ by hand
He was {\itshape very\/} clever.

% 自動挿入を止めたいとき / To suppress the automatic correction
\textit{\nocorr text}

Para enfatizar, use \emph (no \textit)

Cuando tu intención es “enfatizar esto”, el modismo no es el \textit que fija la apariencia sino el \emph{...} que lleva el significado. El truco es que \emph es consciente del contexto: en el texto del cuerpo vertical se pone en cursiva, pero usado dentro del texto que ya está en cursiva cambia *de nuevo a vertical* para destacar. Anidado, se alterna: \emph{start \emph{middle} end} muestra cursiva, luego vertical y luego cursiva.

Esto representa la separación de estructura y apariencia de LaTeX: escriba solo el *significado* “énfasis” en el cuerpo, y si luego desea que el énfasis se muestre en negrita o en color, cambie la definición de \emph en un lugar (por ejemplo, a través de \DeclareTextFontCommand) y se propaga a todas partes. La página dedicada cubre el énfasis con más profundidad.

Los viejos comandos a evitar

Es posible que veas los comandos de dos letras \bf, \it, \rm, \sf, \tt, \sc, \sl en publicaciones web antiguas, pero estas son reliquias de LaTeX 2.09 (anterior a 1994). Todavía funcionan, pero no los uses. La razón es que no son ortogonales: cada uno descarta *todos* los atributos de fuente actuales excepto el tamaño y lo anula.

Entonces se niegan a combinarse. {\bf\it text} ignora \bf y aparece solo en cursiva; {\it\bf text} ignora a \it y sale en negrita; y mezclando lo viejo con lo nuevo, \textbf{\tt text} deja caer silenciosamente el \textbf. LaTeX2e los reemplazó en 1994 con comandos componibles por eje: \bfseries, \itshape, \rmfamily y sus compañeros de estilo \textbf{...}. Utilice siempre los comandos modernos en el código nuevo.

Combinando los ejes: un ejemplo trabajado

Como los tres ejes son independientes, puedes apilarlos libremente. El siguiente ejemplo aplica sans-serif, negrita y cursiva a la vez: anide los formularios de comando o simplemente enumere las declaraciones en el mismo grupo.

latex
\documentclass{article}
\begin{document}
% 命令形を入れ子に / Nest the command forms
\textsf{\textbf{\textit{Bold sans-serif italic}}}

% 宣言形を同じグループに並べる(等価)/ Declarations in one group (equivalent)
{\sffamily\bfseries\itshape Bold sans-serif italic\/}

% 一語だけ標準書体へ戻す / Reset one word to the default font
{\sffamily 見出し調のテキストの中の \textnormal{標準} という語}
\end{document}

El texto en japonés (和文) funciona un poco diferente. Su eje familiar tiene dos miembros — mincho \textmc / \mcfamily y gótico \textgt / \gtfamily — un sistema separado del romano/sans-serif occidental. Debido a que la fuente japonesa predeterminada no tiene series independientes en negrita, aplicar \textbf al texto japonés hace que las letras occidentales estén en negrita pero muestra el japonés en gótico como sustituto (el comportamiento predeterminado). Enfatizar el japonés cambiando de familia (mincho ↔ gótico) es el enfoque tradicional, conceptualmente diferente de la idea occidental de peso e inclinación.

Una nota final: los comandos de alto nivel como \textbf se expanden internamente en NFSS comandos de bajo nivel\fontfamily{...}, \fontseries{...}, \fontshape{...} establecen los atributos y \selectfont los confirma. Los valores del atributo de forma son n (vertical), it (cursiva), sl (inclinado) y sc (versalitas). Rara vez tocas esta capa directamente, pero así es como invocas una fuente con nombre específico.

Una política de trabajo para manuscritos

En una tesis o documento técnico, cuanto más dispersos los comandos de fuente como pequeños arreglos visuales, más difícil será mantener el manuscrito. En el cuerpo del texto, mantenga los comandos de fuente para lugares donde tienen significado. Reglas como poner títulos en negrita, subtítulos más pequeños o términos definidos consistentemente sans-serif deben vivir en la clase, un paquete o su propia macro semántica, no en comandos \textbf repetidos a lo largo de la prosa.

  • Deje el énfasis en \emph. Mantenga el significado en el cuerpo para que la apariencia pueda cambiar más adelante.
  • Use estilo directo solo para etiquetas cortas. Los comandos como \textsf o \texttt son apropiados para nombres de interfaz de usuario, nombres de claves y etiquetas de advertencia breves donde la apariencia en sí importa.
  • Utilice declaraciones para períodos largos. Para una cita completa o nota marginal, declare \itshape o \small al inicio del entorno y cierre el grupo limpiamente.
  • No mezcle comandos antiguos de dos letras. En manuscritos colaborativos, reemplace \bf o \it con \bfseries / \itshape o \textbf / \textit modernos.

Leer advertencias de fuentes en el registro

Si la combinación solicitada no existe en la fuente actual, LaTeX la sustituye por una fuente cercana y continúa. Esto es conveniente, pero en un PDF enviado puede significar "Pedí versalitas en negrita, pero parece negrita normal". Cuando el registro diga Font shape ... undefined o Font shape ... substituted, no revise solo la ortografía del comando; comprueba si la fuente elegida realmente tiene esa familia, serie y forma. Incluso cuando una sustitución sea aceptable, inspeccione el PDF y registre la decisión en las notas del manuscrito.

  • Pruebe combinaciones en un ejemplo mínimo. Antes de distribuirlas por el manuscrito, inspeccione \textsf{\textbf{...}} o \textsc{...} en una breve muestra.
  • No ignore las sustituciones. Si no se toman en cuenta, las advertencias pueden hacer que el énfasis parezca diferente de un capítulo a otro. Cambie la fuente o simplifique la forma solicitada.
  • Mueva los usos repetidos a macros semánticas. Para términos, nombres de interfaz de usuario y otras funciones recurrentes, recopile el estilo en un comando como \newcommand{\term}[1]{...} en lugar de repetir los cambios de fuente en la prosa.