Was bewirken die Befehle innerhalb des \LaTeX-Logos?

Was bewirken die Befehle innerhalb des \LaTeX-Logos?

Ich versuche, ein Wort auf ähnliche Weise wie das \LaTeXLogo 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@ Tist 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 \LaTeXbesteht aus drei Token, während \sbox{0}{T}sieben hat.

Was a \vboxund an \hboxsind, können Sie in TeX nach Thema suchen (kostenlos verfügbar in jeder TeX-Distribution als texdoc texbytopicoder auf CTAN).

\check@mathfontsstellt 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@sizedie Schriftgröße für tiefgestellte/hochgestellte Zeichen der ersten Ebene. Das Makro \selectfontrichtet die aktuelle Schriftart ein; mit \math@fontsfalsesagen 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.

\vssist dasselbe wie \vspace{0pt plus 1fil minus 1fil}, es handelt sich also um einen unendlich dehnbaren und schrumpfbaren Raum, der das \hboxmit 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 \kernist 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 \TeXist 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 metalogoPaket 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).

verwandte Informationen