Ich fand diese FrageWie funktioniert \fontsize{}{}?während ich nach einem Verständnis von suchte \selectfont
, war aber enttäuscht, als ich sah, dass sich der Begriff „funktionieren“ auf die Verwendung und nicht auf die Implementierung bezog, d. h. wie es intern tatsächlich funktioniert.
Wo ist es \fontsize{}{}\selectfont
dokumentiert? Ist es falsch anzunehmen, dass es in source2e enthalten sein sollte? Wenn ja, warum?
Antwort1
Hier ist der Code:
2400 \DeclareRobustCommand\fontsize[2]
2401 {\set@fontsize\baselinestretch{#1}{#2}}
2697 \def\set@fontsize#1#2#3{%
2698 \@defaultunits\@tempdimb#2pt\relax\@nnil
2699 \edef\f@size{\strip@pt\@tempdimb}%
2700 \@defaultunits\@tempskipa#3pt\relax\@nnil
2701 \edef\f@baselineskip{\the\@tempskipa}%
2702 \edef\f@linespread{#1}%
2703 \let\baselinestretch\f@linespread
2704 \def\size@update{%
2705 \baselineskip\f@baselineskip\relax
2706 \baselineskip\f@linespread\baselineskip
2707 \normalbaselineskip\baselineskip
2708 \setbox\strutbox\hbox{%
2709 \vrule\@height.7\baselineskip
2710 \@depth.3\baselineskip
2711 \@width\z@}%
2712 \let\size@update\relax}%
2713 }
\@defaultunits
ist dafür zuständig,pt
dem Argument etwas hinzuzufügen, wenn nur eine Zahl vorkommt. Der Wert wird entweder in\@tempdimb
(für das Größenargument) oder in\@tempskipa
(für das Argument „Baseline-Überspringen“) gespeichert.\f@size
und\f@baselineskip
werden auf den Wert in Punkten (keine Einheit) aus den beiden Argumenten gesetzt, um\fontsize
\f@linespread
wird aus dem ersten Argument gesetzt, d.h. aus\baselinestretch
- Zum Aktualisieren der Werte wird ein temporäres Makro definiert, welches beim nächsten Befehl ausgeführt wird
\selectfont
; das Makro \size@updatewill then redefine itself to be
\relax`
Beachten Sie, dass \size@update
auch eine Neudefinition von enthalten ist \strutbox
, sodass a \strut
immer an die aktuelle Schriftgröße angepasst wird.
\fontsize{3cm}{4cm}
Sie können „oder“ oder jede beliebige Mischung mit oder ohne Einheiten aufrufen \fontsize{15}{18}
. Bei Einheiten ohne Einheiten wird implizit davon ausgegangen, dass sie in Punkten vorliegen.