\@normalsize 与 \normalsize

\@normalsize 与 \normalsize

\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)是谁?......

相关内容