
Ich versuche, ein Wort auf ähnliche Weise wie das \LaTeX
Logo zu setzen. Ich habe den Code für das Logo gefunden (unten im MWE angegeben), aber er verwendet viele Befehle, die ich noch nie zuvor gesehen habe, wie \z@
(was laut einer Google-Suche Null ist?) und eine seltsame Syntax ( T\vbox to \ht
), an die ich nicht gewöhnt bin.
Ich versuche, jeden Schritt des Befehls zu verstehen, einschließlich der Syntax und warum er auf diese Weise ausgeführt wird.
Ein MWE, falls jemand das Bedürfnis hat, mit dem Code herumzuspielen:
\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}
Antwort1
\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
Einige Notizen.
\sbox\z@ T
ist vollständig gleichwertig mit \sbox{0}{T}
; der Code ist auf die Mindestanzahl an Token reduziert, da zur Zeit der Entwicklung von LaTeX2e Computerspeicher sehr knapp war. Der in der Definition von gespeicherte Code \LaTeX
besteht aus drei Token, während \sbox{0}{T}
sieben hat.
Was a \vbox
und an \hbox
sind, können Sie in TeX nach Thema suchen (kostenlos verfügbar in jeder TeX-Distribution als texdoc texbytopic
oder auf CTAN).
\check@mathfonts
stellt sicher, dass die mathematischen Schriftarten für die aktuelle Größe eingerichtet werden; normalerweise geschieht dies nur, wenn eine mathematische Formel gestartet wird. Dieser Befehl definiert insbesondere \sf@size
die Schriftgröße für tiefgestellte/hochgestellte Zeichen der ersten Ebene. Das Makro \selectfont
richtet die aktuelle Schriftart ein; mit \math@fontsfalse
sagen wir ihm, dass es die notwendige Arbeit zum Einrichten der mathematischen Schriftarten nicht durchführen soll, da wir nur ein A in der angeforderten Größe drucken und nicht beliebigen Text mit Mathematik setzen möchten.
\vss
ist dasselbe wie \vspace{0pt plus 1fil minus 1fil}
, es handelt sich also um einen unendlich dehnbaren und schrumpfbaren Raum, der das \hbox
mit dem A bündig mit der Oberseite des schiebt \vbox
. Somit befindet sich die Oberseite des A auf derselben Höhe wie der obere Balken des T (und wahrscheinlich auch die Oberseite des L).
A \kern
ist so etwas wie \hspace
, aber weder dehnbar noch schrumpfbar. An diesen Stellen wird es bevorzugt, da es nicht als Zeilenumbruchpunkt verwendet werden kann (es sei denn, es folgt ein Sprung).
Die Definition \TeX
ist einfacher: Das E wird nach unten verschoben und es werden einige Unterschneidungen angewendet.
Wie Barbara in ihren Kommentaren anmerkt, wurde diese Definition für die Computer Modern-Schriftarten sehr sorgfältig geprüft. Andere Schriftarten liefern möglicherweise kein so gutes Ergebnis. Das metalogo
Paket versucht, die Abstände zu „abstrahieren“, sodass das Logo mit minimalem Aufwand an andere Schriftarten angepasst werden kann (es sind jedoch einige Versuche erforderlich, um die Parameter richtig einzustellen).