\@makefntext 在哪里定义?

\@makefntext 在哪里定义?

我正在研究 LaTeX 中的脚注是如何产生的,以及幕后究竟运行了哪些过程,然后注意到了\@makefntext。但事实上,latex.ltx这个宏只出现了两次,它被调用,但找不到实际的定义。它是否由某个包装器命令隐式定义?还是在另一个文件中发生?或者两者兼而有之?

答案1

借助以下帮助grep:标准类定义此命令:

例如article.cls

之内\maketitle

\long\def\@makefntext##1{\parindent 1em\noindent
        \hb@[email protected]{%
            \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%

之后在课堂上:

\newcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent
    \hb@[email protected]{\hss\@makefnmark}#1}

letter.cls

  \long\def\@makefntext#1{%
    \noindent
    \hangindent 5\p@
    \hb@xt@5\p@{\hss\@makefnmark}#1}

book和类的定义report等于article.cls,对于 KOMA 类,定义略有不同。

答案2

要查找定义,您可以使用latexdef命令。

示例(使用-s选项尝试显示命令定义的原始源代码和-c选项加载给定的类):

latexdef -s -c 文章@makefntext

生成:

% article.cls, line 619:
\newcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent
    \hb@[email protected]{\hss\@makefnmark}#1}

相关内容