仅显示奇数页的脚注

仅显示奇数页的脚注

我正在使用 -class 撰写论文scrbook。是否可以仅在奇数页(右侧)显示脚注?

这应该意味着\footnote{something}应该收集在偶数页上并显示在下一页(当然后面跟着本页的脚注)。

我在一些教科书中看到过这种行为,认为它非常好,但不知道如何实现这种风格。

附言:当然,当一章以偶数页结尾时,就必须违反这种方法。

MWE(没有按照我的要求执行):

\documentclass{scrbook}
\usepackage{blindtext}

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

输出: 在此处输入图片描述

看起来应该是这样的: 在此处输入图片描述

答案1

以下解决方案使用\label-\ref系统记录脚注并检索它,可能在当前页面上,或者可能\afterpage

在此处输入图片描述

\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提供可扩展的宏来提取页面引用,用于测试当前页面是否为奇数。

答案2

这可以是一个解决方案(看到图像,我假设你希望脚注在偶数页,而不是在奇数页)。

\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} 

输出:

在此处输入图片描述

我们使用这个技巧来定义一个新的计数器newfoot\footnotetext使用这个:

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

\AtBeginShipoutNext当我们在奇数页时,只打印脚注标记,而利用包提供的命令在下一页打印脚注文本atbegshi

当我们处于偶数页时,\footnote使用通常的命令。

因此我们定义一个新命令\evenfootnote来处理上述操作:

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

newfoot请注意,每次打印脚注时,新计数器都会增加。

相关内容