Wie funktioniert \fontsize{}{} intern?

Wie funktioniert \fontsize{}{} intern?

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{}{}\selectfontdokumentiert? 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   }
  1. \@defaultunitsist dafür zuständig, ptdem 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.

  2. \f@sizeund \f@baselineskipwerden auf den Wert in Punkten (keine Einheit) aus den beiden Argumenten gesetzt, um\fontsize

  3. \f@linespreadwird aus dem ersten Argument gesetzt, d.h. aus\baselinestretch
  4. Zum Aktualisieren der Werte wird ein temporäres Makro definiert, welches beim nächsten Befehl ausgeführt wird \selectfont; das Makro \size@update will then redefine itself to be\relax`

Beachten Sie, dass \size@updateauch eine Neudefinition von enthalten ist \strutbox, sodass a \strutimmer 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.

verwandte Informationen