\fontsize{}{}는 내부적으로 어떻게 작동하나요?

\fontsize{}{}는 내부적으로 어떻게 작동하나요?

이 질문을 찾았어요\fontsize{}{}는 어떻게 작동하나요?에 대한 이해를 찾는 동안 \selectfont"작업"이라는 용어가 구현이 아니라 사용법, 즉 실제로 내부적으로 작동하는 방식을 참조하는 것을 보고 실망했습니다.

어디에 \fontsize{}{}\selectfont문서화되어 있습니까? source2e에 포함되어야 한다고 생각하는 것이 잘못된 것인가요? 그렇다면 왜 그렇습니까?

답변1

코드는 다음과 같습니다.

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. \@defaultunitspt숫자만 나타나는 경우 인수에 추가하고 값을 \@tempdimb(크기 인수의 경우) 또는 \@tempskipa(기준 건너뛰기 인수의 경우) 에 저장합니다.

  2. \f@size\f@baselineskip두 인수에서 포인트(단위 없음) 값으로 설정됩니다 .\fontsize

  3. \f@linespread첫 번째 인수, 즉\baselinestretch
  4. 다음 명령에서 실행될 값을 업데이트하기 위해 임시 매크로가 정의됩니다 \selectfont. 매크로 \size@update will then redefine itself to be\relax`

에는 \size@update의 재정의도 포함되므로 \strutboxa는 \strut항상 현재 글꼴 크기에 맞춰집니다.

단위가 있거나 없는 혼합을 \fontsize{3cm}{4cm}호출 할 수 있습니다 . \fontsize{15}{18}단위가 없는 것은 암묵적으로 포인트에 있는 것으로 가정됩니다.

관련 정보