¿Cómo funciona \fontsize{}{} internamente?

¿Cómo funciona \fontsize{}{} internamente?

encontré esta pregunta¿Cómo funciona \fontsize{}{}?Mientras buscaba una comprensión de \selectfont, me decepcionó ver que el término "trabajo" se refería a su uso y no a su implementación, es decir, cómo funciona realmente internamente.

¿Dónde está \fontsize{}{}\selectfontdocumentado? ¿Es incorrecto pensar que debería incluirse en source2e? Si es así, ¿por qué?

Respuesta1

Aquí está el código:

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. \@defaultunitses responsable de agregar ptal argumento si solo aparece un número, almacenando el valor en \@tempdimb(para el argumento de tamaño) o en \@tempskipa(para el argumento de omisión de línea base)

  2. \f@sizey \f@baselineskipse establecen en el valor en puntos (sin unidad) de los dos argumentos para\fontsize

  3. \f@linespreadse establece a partir del primer argumento, es decir, de\baselinestretch
  4. Se define una macro temporal para actualizar los valores, que se ejecutará en el siguiente \selectfontcomando; la macro \size@update will then redefine itself to be\relax`

Tenga en cuenta que \size@updatetambién contendrá una redefinición de \strutbox, por lo que \strutsiempre se ajustará al tamaño de fuente actual.

Puedes llamar \fontsize{3cm}{4cm}a o \fontsize{15}{18}cualquier mezcla con o sin unidades; Se supone implícitamente que un sin unidades está en puntos.

información relacionada