\normalsize
和之间有什么区别\@normalsize
?我找不到任何文档(网上有很多关于 的搜索结果\normalsize
,但即使我引用了 ,搜索引擎似乎也会忽略@
它;而且我在“The Guide to LaTeX”或“The LaTeX Companion”中也找不到任何内容)。
我之所以询问,是因为我们一直在使用的宏在 TeXLive 2014 和 2015 之间从 xelatex 调用时似乎改变了其行为,并且我已将问题追溯到宏执行此操作的事实:
\def\@selfnt{\ifx\@currsize\normalsize\@normalsize\else\@currsize\fi}
我不知道它这样做的目的是什么。(实际上,只有\new@fontshape
定义了它才会这样做,如果我知道它\new@fontshape
做了什么,这可能会有所帮助。)
一般来说(我意识到这是两个问题),如何找到包含的这些命令的文档@
?我假设至少\@selfnt
在“标准”LaTeX 中定义,否则这个宏不会依赖它(它不需要任何其他包),但如果不在那些书中,那么文档在哪里?(我\new@fontshape
在中找到latexrelease.sty
,但代码对我来说没有什么启发。)
答案1
通常情况下,它们是\let
相等的,但如果你用\documentstyle
而不是 来启动你的文档\documentclass
,那么就会加载一些 LaTeX2.09 兼容代码,并且在latex209.dtx
源代码中你会发现
% The intention of the strange |\normalsize| tests below are that after
% the |\documentstyle| command has completed, then
% if neither of the commands |\normalsize|
% nor |\@normalsize| were defined by the main style or one of its
% `substyles' or `options', then |\@normalsize| will be undefined and
% |\normalsize| will generate an error saying it hasn't been defined.
%
% If the style defined either |\normalsize| or \@|normalsize| then
% these two commands will be |\let| equal to each other, with the
% definition given by the style file.
%
% If the style defines both |\normalsize| and |\@normalsize| then
% those two definitions are kept.
% \begin{macrocode}
\def\@documentclasshook{%
\RequirePackage\@unusedoptionlist
\let\@unusedoptionlist\@empty
\def\@tempa{\@normalsize}%
\ifx\normalsize\@tempa
\let\normalsize\@normalsize
\fi
\ifx\@normalsize\@undefined
\let\@normalsize\normalsize
\fi
\ifx\normalsize\@undefined
\let\normalsize\original@normalsize
\fi
\let\@latex@e@error\@latex@e@error@}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\original@normalsize}
% \changes{v0.51}{1996/05/24}{(DPC) Macro added /2153.}
% Save the original definition of |\normalsize| (which generates an
% error)
% \begin{macrocode}
\let\original@normalsize\normalsize
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\normalsize}
% \changes{v0.14}{1994/02/07}{Added \cs{normalsize}.}
% Some styles don't define |\normalsize|, just |\@normalsize|.
% \begin{macrocode}
\def\normalsize{\@normalsize}
% \end{macrocode}
% \end{macro}
%
上个世纪发表评论的那个家伙(DPC)是谁?......