\@setfontsize
和 之间有什么区别 \fontsize
?
例如,Martin Scharrer 回答如何为字体大小创建新命令?他说:
这是通过调用来完成的
\@setfontsize
,但在您的情况下是不可用的。
为什么?
答案1
该命令的名称中\@setfontsize
有一个@
,这意味着它是一个“低级”命令,或者更确切地说是内部命令。它不应该出现在普通文档中,除非在序言中做出一些特殊的定义。
的定义\fontsize
是
\DeclareRobustCommand{\fontsize}[2]{%
\set@fontsize \baselinestretch {#1}{#2}}
这意味着用户级命令\fontsize
将控制权交给\set@fontsize
。这是 LaTeX 中的常用技术。
内部命令\@setfontsize
的用途不同于\fontsize
:
% latex.ltx, line 3611:
\def\@setfontsize#1#2#3{\@nomath#1%
\ifx\protect\@typeset@protect
\let\@currsize#1%
\fi
\fontsize{#2}{#3}\selectfont}
它通常位于“类选项文件”中size10.clo
,例如
\renewcommand\normalsize{%
\@setfontsize\normalsize\@xpt\@xiipt
\abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI}
让我们看看当\normalsize
被调用时会发生什么(大多数时候是隐式的);LaTeX 会
\@setfontsize\normalsize\@xpt\@xiipt
根据上述定义,
\@nomath\normalsize
\ifx\protect\@typeset@protect\let\@currsize\normalsize\fi
\fontsize{\@xpt}{\@xiipt}\selectfont
第一行\normalsize
告诉 LaTeX 在数学模式下不允许\normalsize
;第二行将设置\@currsize
为等同于\normalsize
,但仅限于正常排版期间(例如,在写入操作中它不执行任何操作)。最后,\fontsize
使用字体大小 10pt 和基线跳过 12pt 调用命令,然后实际选择字体。
因此您会发现这\@setfontsize
是一个内部实用程序,在文档中调用它是没有意义的。
的用途是什么?和size10.clo
等类通常以“大小无关”的方式编写;大小选项(可能是默认选项)使 LaTeX 读取、或(对于类,它是、或)。这些文件设置字体选择和列表参数以及许多其他取决于主体字体大小的内容。article
report
size10.clo
size11.clo
size12.clo
bk10.clo
bk11.clo
bk12.clo
book