
로고 와 비슷한 방식으로 단어를 조판하려고 합니다 \LaTeX
. 로고에 대한 코드(아래 MWE에 있음)를 찾았지만 이전에 본 적이 없는 많은 명령 \z@
(예: Google 검색에 따르면 0입니까?)과 이상한 구문( T\vbox to \ht
)을 사용합니다. 익숙하지 않습니다.
구문을 포함하여 명령의 각 단계와 이러한 방식으로 수행되는 이유를 이해하려고 노력하고 있습니다.
코드를 가지고 놀고 싶은 사람이 있는 경우 MWE:
\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}
답변1
\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
일부 메모.
\sbox\z@ T
와 완전히 동일합니다 \sbox{0}{T}
. LaTeX2e가 개발될 당시에는 컴퓨터 메모리가 매우 부족했기 때문에 코드는 최소한의 토큰 수로 줄였습니다. 정의에 저장된 코드는 \LaTeX
토큰 3개인 반면 토큰 \sbox{0}{T}
은 7개입니다.
a와 \vbox
an은 \hbox
주제별로 TeX에서 찾을 수 있습니다( texdoc texbytopic
CTAN과 같은 모든 TeX 배포판에서 무료로 사용 가능).
\check@mathfonts
수학 글꼴이 현재 크기에 맞게 설정되었는지 확인합니다. 일반적으로 이는 수학 공식이 시작될 때만 수행됩니다. 특히 이 명령은 \sf@size
첫 번째 수준 하위/위 첨자의 글꼴 크기를 정의합니다. 매크로는 \selectfont
현재 글꼴을 설정합니다. \math@fontsfalse
수학 글꼴을 설정하는 데 필요한 작업을 수행하지 말라고 지시합니다. 왜냐하면 우리는 임의의 텍스트를 수학으로 조판하는 것이 아니라 요청된 크기로 A를 인쇄하기를 원하기 때문입니다 .
\vss
는 와 동일 \vspace{0pt plus 1fil minus 1fil}
하므로 무한히 늘어나고 줄어들 수 있는 공간이므로 \hbox
A를 포함하는 을 의 상단과 같은 높이로 밀어냅니다 \vbox
. 따라서 A의 상단은 T의 상단 막대(그리고 아마도 L의 상단도)와 동일한 높이에 있게 됩니다.
A 는 \kern
와 비슷 \hspace
하지만 늘어나지도 줄어들지도 않습니다. 이러한 위치에서는 줄 바꿈 지점으로 사용할 수 없기 때문에 선호됩니다(뒤에 건너뛰기가 오지 않는 한).
의 정의는 \TeX
더 간단합니다. E가 아래로 이동하고 일부 커른이 적용됩니다.
Barbara가 주석에서 언급했듯이 이 정의는 Computer Modern 글꼴에 대해 매우 신중하게 연구되었습니다. 다른 글꼴을 사용하면 결과가 좋지 않을 수 있습니다. 패키지 metalogo
는 간격을 "추상화"하려고 시도하므로 번거로움을 최소화하면서 로고를 다른 글꼴에 적용할 수 있습니다(그러나 매개변수를 올바르게 얻으려면 몇 가지 시도가 필요합니다).