
Estoy intentando escribir una palabra de forma similar al \LaTeX
logotipo. Encontré el código para el logotipo (que se proporciona a continuación en MWE), pero utiliza muchos comandos que nunca antes había visto, como \z@
(¿que según una búsqueda en Google es cero?) y una sintaxis extraña ( T\vbox to \ht
) que soy no acostumbro a.
Estoy tratando de comprender cada paso del comando, incluida la sintaxis, y por qué se hace de esta manera.
Un MWE si alguien siente la necesidad de jugar con el código:
\documentclass{standalone}
\begin{document}
\makeatletter
L\kern -.36em{\sbox \z@ T\vbox to\ht \z@ {\hbox {\check@mathfonts \fontsize \sf@size \z@ \math@fontsfalse \selectfont A}\vss }}\kern -.15em\TeX
\makeatother
\end{document}
Respuesta1
\makeatletter %% access private macros
L%% print an L
\kern -.36em%% add a negative kern
{%% open a group
\sbox \z@ T%% load box 0 with a T
\vbox to\ht \z@ {%% start a vertical box as high as box 0
\hbox {% start a horizontal box
\check@mathfonts%% ensure the math fonts sizes are set up at the current font size
\fontsize \sf@size \z@%% use the established font size for sub/superscripts
\math@fontsfalse%% don't bother setting up all the math fonts for the new current size
\selectfont%% select the font
A%% print an A
}%% finish the horizontal box
\vss%% fill up the stated height
}%% finish the \vbox
}%% end the group
\kern -.15em%% add a negative kern
\TeX%% print the TeX logo
\makeatother%% no more private macros allowed
Algunas notas.
\sbox\z@ T
es completamente equivalente a \sbox{0}{T}
; el código se reduce al número mínimo de tokens porque en el momento en que se desarrolló LaTeX2e, la memoria de la computadora era muy escasa. El código almacenado en la definición de \LaTeX
es de tres tokens, mientras que \sbox{0}{T}
tiene siete.
Lo que son a \vbox
y an \hbox
se puede encontrar en TeX por tema (disponible gratuitamente en cualquier distribución de TeX como texdoc texbytopic
o en CTAN).
\check@mathfonts
garantiza que las fuentes matemáticas estén configuradas para el tamaño actual; normalmente esto sólo se hace cuando se inicia una fórmula matemática. Este comando, en particular, define \sf@size
el tamaño de fuente para subíndices/superíndices de primer nivel. La macro \selectfont
configura la fuente actual; con \math@fontsfalse
le decimos que no haga el trabajo necesario para configurar también las fuentes matemáticas, porque solo queremos imprimir una A en el tamaño solicitado, no componer texto arbitrario con matemáticas.
\vss
es lo mismo que \vspace{0pt plus 1fil minus 1fil}
, por lo que es un espacio infinitamente estirable y encogible, que empujará el \hbox
que contiene A al ras con la parte superior del \vbox
. Así, la parte superior de la A quedará a la misma altura que la barra superior de la T (y probablemente también la parte superior de la L).
A \kern
es algo así como \hspace
, pero no se puede estirar ni encoger. En estos lugares se prefiere porque no se puede utilizar como punto de salto de línea (a menos que vaya seguido de un salto).
La definición de \TeX
es más simple: la E se desplaza hacia abajo y se aplican algunos núcleos.
Como señala Barbara en los comentarios, esta definición se estudia con mucho cuidado para las fuentes Computer Modern. Otras fuentes pueden dar un resultado no tan bueno. El metalogo
paquete intenta "abstraer" los espacios, por lo que el logotipo se puede adaptar a otras fuentes con un mínimo de complicaciones (pero se necesitan algunos intentos para conseguir los parámetros correctos).