
Estou tentando digitar uma palavra de maneira semelhante ao \LaTeX
logotipo. Encontrei o código do logotipo (fornecido abaixo no MWE), mas ele usa muitos comandos que nunca vi antes, como \z@
(que de acordo com uma pesquisa no Google é zero?) e uma sintaxe estranha ( T\vbox to \ht
) que estou não estou acostumado.
Estou tentando entender cada etapa do comando, inclusive a sintaxe, e por que isso é feito dessa forma.
Um MWE se alguém sentir necessidade de brincar com o 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}
Responder1
\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
Algumas notas.
\sbox\z@ T
é completamente equivalente a \sbox{0}{T}
; o código é reduzido ao número mínimo de tokens porque na época em que o LaTeX2e estava sendo desenvolvido a memória do computador era muito escassa. O código armazenado na definição de \LaTeX
é de três tokens, enquanto \sbox{0}{T}
possui sete.
O que são a \vbox
e an \hbox
pode ser encontrado no TeX por Tópico (disponível gratuitamente em qualquer distribuição TeX como texdoc texbytopic
ou no CTAN).
\check@mathfonts
garante que as fontes matemáticas estejam configuradas para o tamanho atual; normalmente isso só é feito quando uma fórmula matemática é iniciada. Este comando, em particular, define \sf@size
o tamanho da fonte para sub/sobrescritos de primeiro nível. A macro \selectfont
configura a fonte atual; com \math@fontsfalse
dizemos para não fazer o trabalho necessário para configurar também as fontes matemáticas, porque queremos apenas imprimir um A no tamanho solicitado, não para compor texto arbitrário com matemática.
\vss
é o mesmo que \vspace{0pt plus 1fil minus 1fil}
, portanto, é um espaço infinitamente extensível e encolhível, que empurrará o \hbox
que contém o A nivelado com o topo do \vbox
. Assim, o topo do A estará na mesma altura da barra superior do T (e provavelmente também do topo do L).
A \kern
é algo parecido com \hspace
, mas não é extensível nem encolhível. Nestes locais é preferido porque não pode ser usado como ponto de quebra de linha (a menos que seja seguido por um salto).
A definição de \TeX
é mais simples: o E é deslocado para baixo e alguns kerns são aplicados.
Como Barbara observa nos comentários, esta definição é estudada com muito cuidado para as fontes Computer Modern. Outras fontes podem dar um resultado não tão bom. O metalogo
pacote tenta “abstrair” os espaçamentos, para que o logotipo possa ser adaptado a outras fontes com o mínimo de complicações (mas são necessárias algumas tentativas para acertar os parâmetros).