8

I was studying how footnotes come about in LaTeX and what processes exactly run behind the curtain, and noticed \@makefntext. But in fact, in latex.ltx there are only two occurences of this macro where it gets called and no actual definition can be found. Does it implicitly get defined by some wrapper command? Or does it happen in another file? Or even both?

  • According to texdef: \long macro:#1->\parindent 1em\noindent \hb@xt@ 1.8em{\hss \@makefnmark }#1, at the moment I suspect an intrinsic definition – user31729 Jul 11 '15 at 10:54
  • 5
    footnotes are styled according to particular publication specifications, so the associated definitions are almost always made within the applicable document class. the definitions vary widely, and it should not be assumed that the definition for one class (e.g. book) or "class of classes" (basic, ams, koma, ...) is the same as what is defined for another class. – barbara beeton Jul 11 '15 at 12:52
8

With a little help of grep: The standard classes define this command:

For example article.cls

Within \maketitle:

\long\def\@makefntext##1{\parindent 1em\noindent
        \hb@xt@1.8em{%
            \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%

Later on in the class:

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

Inletter.cls

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

The definitions from book and report classes are equal to article.cls, for the KOMA classes the definition is somewhat different.

5

To find definitions, you may use latexdef command.

Example (using the -s option to try to show the original source code of the command definition and the -c option to load given class):

latexdef -s -c article @makefntext

produces:

% article.cls, line 619:
\newcommand\@makefntext[1]{%
    \parindent 1em%
    \noindent
    \hb@xt@1.8em{\hss\@makefnmark}#1}
  • It doesn't always work, but giving it a try is surely a good method. – egreg Jul 13 '15 at 10:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.