28

I want the footnote mark to be superscripted in the text body (e.g. Footnote mark²), but normalsize in the foot, to be shown like:

________________
2. Some footnote text

Also, it would be nice if the mark appeared hanging in the left margin, like

   ________________
2. Some footnote text

(That is recommended by Bringhurst in his Elements of Typographic Style)

4 Answers 4

18

Use the scrextend package (part of KOMA-script) to customize footnotes. See section 3.14 of the documentation of KOMA-script for details about the \deffootnote macro.

\documentclass{article}

\usepackage{scrextend}
\deffootnote{0em}{1.6em}{\thefootnotemark.\enskip}

\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}

\blindtext\footnote{\blindtext}

\end{document}
3
  • 1
    Number (footnotemark) is out of left margin and that doesn't like to me, is it possible fix it?
    – skpblack
    Aug 6, 2014 at 16:44
  • I'd like to concur with @skpblack. Here the footnote marker in the footnote is set outside of the body text area. How can it be put at the margin instead of in the margin?
    – Sverre
    Sep 18, 2015 at 17:56
  • 1
    The particular values may vary with your setup, but I was able to align the markers with the body text by setting \deffootnote[1.25em]{1.25em}{1em}{\thefootnotemark.\enskip}
    – twofeet
    May 22, 2020 at 18:48
11

I already had a solution for this problem, which I managed to come up by trial and error... I just didn't know if it was the best way to do it:

\makeatletter
  \renewcommand\@makefntext[1]{%
  \hspace*{-2em}
  \parindent 0em
  \noindent
  \hb@xt@ 1.8em{\hss %  There's the option of putting \hss before
  \@thefnmark. }%       or after \@thefnmark, aligning the footnote
  #1}%                  marks to the right or to the left, respectively
\makeatother

I tried to look at the definition of \deffootnote in scrextend.sty, but it seems to be much more complicated than that...

Anyway, the solution proposed by @lockstep is much simpler than this, although this one might be useful for class authors. Hope it helps.

6

This is a TeX approach, with doesn't need a package. I use it always. Maybe the code can be improved:

\documentclass{article}

\makeatletter
\newlength{\fnBreite}
\renewcommand{\@makefntext}[1]{%
  \settowidth{\fnBreite}{\footnotesize\@thefnmark.i}
  \protect\footnotesize\upshape%
  \setlength{\@tempdima}{\columnwidth}\addtolength{\@tempdima}{-\fnBreite}%
  \makebox[\fnBreite][l]{\@thefnmark.\phantom{}}%
  \parbox[t]{\@tempdima}{\everypar{\hspace*{1em}}\hspace*{-1em}\upshape#1}}
\makeatother

\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}

\blindtext\footnote{\blindtext}

\end{document}
2
  • 3
    This works very nicely, with one problem: very long footnotes no longer break across pages, even when \footins is set manually to values small enough that footnotes should be forced to break. The fatal features seems to be the use of \parbox. Any thoughts on how to repair this feature? Aug 5, 2012 at 15:21
  • @PeterBreitfeld, The effect is very beautiful! You save me several days to fix the annoying issue. Thank you very much!
    – xmllmx
    Mar 31, 2015 at 1:24
4

I found that using the scrextend package for customizing footnotes can introduce issues (such as the suppression of the footnote marker when including a footnote in a section heading). Hence, here’s a solution that does not rely on scrextend:

In order to prevent the footnote marker from being superscripted in the footnote text, you can use the following. I did not find this code to create any problems regarding splitting very long footnotes over multiple pages.

\documentclass{article}

\newlength{\templength}
\newlength{\textparindent}
\setlength{\textparindent}{\parindent}
\makeatletter
\let \@makefntextorig \@makefntext
    % Saving the original definition so we can reuse it if necessary.
\newcommand{\@makefntextcustom}[1]{%
    \parindent 2\textparindent%
    \hspace{-\textparindent}%
    \settowidth{\templength}{0}%
    \ifnum\value{footnote}<10 \hspace{\templength}\else\fi%
    \thefootnote.\enskip #1%
}
\renewcommand{\@makefntext}[1]{\@makefntextcustom{#1}}
\makeatother

\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}

Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs.\par A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}

\end{document}

No superscript for footnote marker in the footnote text

In order to move the footnote marker into the margin (Bringhurst-style), here’s a variant of the above:

\documentclass{article}

\newlength{\templength}
\newlength{\textparindent}
\setlength{\textparindent}{\parindent}
\makeatletter
\let \@makefntextorig \@makefntext
    % Saving the original definition so we can reuse it if necessary.
\newcommand{\@makefntextcustom}[1]{%
    \parindent \textparindent%
    \hspace{-\textparindent}\hspace{-100pt}\makebox[100pt][r]{\thefootnote.\enskip}%
    #1%
}
\renewcommand{\@makefntext}[1]{\@makefntextcustom{#1}}
\makeatother

\usepackage[english]{babel}
\usepackage{blindtext}

\begin{document}

Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote. A~\emph{long} test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs.\par A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs. A~\emph{very long} test footnote including two paragraphs.}\par
Some text.\footnote{A~test footnote.}\par
Some text.\footnote{A~test footnote.}\par
\setcounter{footnote}{0}
\makeatletter
\renewcommand{\@makefntext}[1]{\@makefntextorig{#1}}
\makeatother
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
Some text.\footnote{A~footnote after switching back to the original definition.}

\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .