22

I'm writing my thesis using the scrbook-class. Is it possible to display footnotes only on the odd (right) pages?

This should mean that \footnote{something} should be collected on even pages and displayed on the next page (of course followed by the footnotes from this page).

I've seen this behavior in a few textbooks and thought it was quite nice, but don't know how to achieve this style.

P.S.: Of course one has to violate this approach when a chapter ends on an even page.

MWE (does not do what I want):

\documentclass{scrbook}
\usepackage{blindtext}

\begin{document}
\blindtext[2]\footnote{First footnote}
\blindtext[2]\footnote{Second footnote}
\blindtext[2]\footnote{Third footnote}
\end{document}

Output: enter image description here

Should look like: enter image description here

  • An MWE would be useful, you should know that ;) And can I ask why would you like that? – yo' Aug 26 '13 at 12:51
  • 1
    First thought that a MWE wouldn't be that helpful, as I don't know how to achieve what I'm asking. I expected that maybe someone comes up: Hey, you just need to enable the option someoption from somepackage. Nevertheless, I have added a MWE now and also two pictures (second one is photomanipulated). I think that it gives a nicer output if there are less footnote-rules, while it does not limit the readability as all footnotes you might need are always visible. – MrD Aug 26 '13 at 13:07
  • I don't know what type of work you typeset and in what field, but IMHO it is a bad style to have many footnotes. You either want to say it (and then it goes in the text) or you do not (and then it should be omitted). – yo' Aug 26 '13 at 13:22
  • My work is in the field of physics. I don't have to many footnotes, but sometimes they are needed, e.g. to point out a requirement for the validity of an equation. As a physicist you know those requirements and assume anyway that these requirements are all met. The thing is here that I found that the text gets quite boring sometimes when giving them all inside the text. Nevertheless, they have to be mentioned somewhere. – MrD Aug 26 '13 at 13:28
  • @DL6ER I've modified my answer, take a look. – karlkoeller Sep 1 '13 at 6:48
18

The following solution uses the \label-\ref system to record a footnote and retrieve it, possibly on the current page, or possibly \afterpage:

enter image description here

\documentclass{scrbook}% http://ctan.org/pkg/KOMA-script
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{afterpage,etoolbox,refcount}% http://ctan.org/pkg/{afterpage,etoolbox,refcount}
\patchcmd{\footnotemark}{\stepcounter}{\refstepcounter}{}{}% Update \footnotemark to allow \label-\ref
\let\oldfootnote\footnote% Store \footnote in \oldfootnote
\let\oldfootnotetext\footnotetext% Store \footnotetext in \oldfootnotetext
\newcounter{fntext}% Footnote text counter (for correct sequential retrieval of footnote text
\renewcommand{\footnotetext}{\stepcounter{fntext}\oldfootnotetext}
\renewcommand{\footnote}{\evenfootnote}
\newcommand{\evenfootnote}[1]{%
  \leavevmode\footnotemark\label{evenfn-\thefootnote}% Set footnote mark
  \ifodd\getpagerefnumber{evenfn-\thefootnote}\relax% Page is odd
    \def\whichpage{\afterpage}% Footnote text on next page
  \else
    \def\whichpage{\relax}% Footnote text on current page
  \fi%
  \whichpage{\footnotetext[\getrefnumber{evenfn-\thefntext}]{#1}}% Set footnote text
}

\begin{document}

\lipsum[1-2]\evenfootnote{First footnote}
\lipsum[1-2]\evenfootnote{Second footnote}
\lipsum[1-2]\evenfootnote{Third footnote}
\lipsum[1-2]\evenfootnote{Fourth footnote}
\lipsum*[1]\evenfootnote{Mystery footnote}
\lipsum[1-2]\evenfootnote{Fifth footnote}
\lipsum[1-2]\evenfootnote{Sixth footnote}

\end{document}

refcount provides expandable macros that extracts page references, used in testing whether the current page is odd or not.

  • It seems to work fine (unlike mine...) also when there is an even page with no footnotes. +1(00) ;-) – karlkoeller Aug 27 '13 at 5:58
  • 2
    By the way: KOMA-Script provides \ifthispageodd{<true>}{<false>} It would allow a definition without refcount – clemens Aug 27 '13 at 6:54
6

This one can be a solution (seeing the image, I'm assuming you want footnotes in even pages, not in odd ones).

\documentclass{scrbook}
\usepackage{lipsum}
\usepackage{atbegshi,etoolbox}

\newcounter{newfoot}
\patchcmd{\footnotetext}{\thempfn}{\thenewfoot}{}{}

\newcommand{\evenfootnote}[1]{%
  \ifodd\value{page}%
    \footnotemark%
    \AtBeginShipoutNext{%
      \stepcounter{newfoot}\footnotetext{#1}%
    }%
  \else%
    \stepcounter{newfoot}\footnote{#1}%
  \fi%
}

\begin{document}

\lipsum[1-2]\evenfootnote{First footnote}
\lipsum[1-2]\evenfootnote{Second footnote}
\lipsum[1-2]\evenfootnote{Third footnote}
\lipsum[1-2]\evenfootnote{Fourth footnote}
\lipsum*[1]\evenfootnote{Mystery footnote}
\lipsum[1-2]\evenfootnote{Fifth footnote}
\lipsum[1-2]\evenfootnote{Sixth footnote}

\end{document} 

Output:

enter image description here

We use the trick to define a new counter newfoot and let \footnotetext use this one:

\newcounter{newfoot}
\patchcmd{\footnotetext}{\thempfn}{\thenewfoot}{}{}  

When we are in an odd page, only the footnote mark is printed, while the footnote text is printed in the next page exploiting the command \AtBeginShipoutNext provided by the package atbegshi.

When we are in an even page, the usual command \footnote is used.

So we define a new command \evenfootnote which takes care of the above:

\newcommand{\evenfootnote}[1]{%
  \ifodd\value{page}%
    \footnotemark%
    \AtBeginShipoutNext{%
      \stepcounter{newfoot}\footnotetext{#1}%
    }%
  \else%
    \stepcounter{newfoot}\footnote{#1}%
  \fi%
}

Note that the new counter newfoot is incremented each time a footnote is printed.

  • This still lacks proper page-number checking, since the output of pages happens asynchronously. For example, use the document \lipsum[1-2]\evenfootnote{First footnote} \lipsum[1-2]\evenfootnote{Second footnote} \lipsum[1-2]\evenfootnote{Third footnote} \lipsum[1-3]\evenfootnote{Fourth footnote} \lipsum*[1]\evenfootnote{Mystery footnote} \lipsum[1-2]\evenfootnote{Fifth footnote} \lipsum[1-2]\evenfootnote{Sixth footnote} which prints a footnote on page 3 (non-even/odd). – Werner Aug 26 '13 at 21:16
  • Perhaps the code for \strictpagecheck from changepage.sty could be adapted to this purpose. – jon Aug 26 '13 at 22:46
  • @Werner now it seems to work fine... – karlkoeller Sep 1 '13 at 6:45
  • @jon thanks for the suggestion. I've found a simpler way. – karlkoeller Sep 1 '13 at 7:15

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.