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{}{}\selectfont
documentado? ¿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 }
\@defaultunits
es responsable de agregarpt
al 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)\f@size
y\f@baselineskip
se establecen en el valor en puntos (sin unidad) de los dos argumentos para\fontsize
\f@linespread
se establece a partir del primer argumento, es decir, de\baselinestretch
- Se define una macro temporal para actualizar los valores, que se ejecutará en el siguiente
\selectfont
comando; la macro \size@updatewill then redefine itself to be
\relax`
Tenga en cuenta que \size@update
también contendrá una redefinición de \strutbox
, por lo que \strut
siempre 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.