如何确保脚注仅从背面(背面,偶数页)到正面(正面,奇数页)换页?

如何确保脚注仅从背面(背面,偶数页)到正面(正面,奇数页)换页?

如何确保脚注仅从背面(背面,偶数页)到正面(正面,奇数页)换页?

使用以下代码,第二个脚注所附的行应移至第 4 页,以便第二个脚注从第 4 页换行到第 5 页(而不是从第 3 页换行到第 5 页)。第一个脚注没有问题(它从第 2 页跨越到第 3 页)。

\documentclass{memoir}
\usepackage{lipsum}


\begin{document}

\lipsum Very long footnote.\footnote{\lipsum[1-5]}

\newpage
\lipsum[1-4] Very long footnote.\footnote{\lipsum[1-8]}

\end{document}

一些特别的考虑:(虽然极端情况不太可能代表良好的风格,但 (1)实施者需要意识到它们(2)有些文体可能会给出不同的优先级,而不在乎这些极端例子的奇怪之处。我见过法律评论文体中的文本,其中很多页都是用脚注填充的最多页面的。

  • 无法解决的情况是脚注跨越两页以上。在这种情况下,脚注从哪里开始并不重要,但确保脚注从反面(偶数页)开始也是一个明智的选择。
  • 如果有很长的脚注锚定到连续线,人们可以简单地用脚注填充双页,并将包含此类锚点的每一行移动到新的双页的开头以满足要求。
  • 如果有很长的脚注锚定到同行单词,那么将锚点与很长的脚注放在同一页上就没什么办法了。在这种情况下,包含脚注 6、7 和 8 的行将简单地放在(比如说)第 2 页上,而这些脚注从(比如说)第 2、6 和 8 页开始。
  • 确保满足要求的另一种合理方法是将脚注移至下一个背面(偶数页),同时将锚点保持在正面页面上(当文档第 1 页上有很长的脚注时,这可能有意义)。

这些考虑将有助于设计决策;有多种方法可以做到这一点。极端情况不会经常发生,但除非有人能解决这些问题,否则就不清楚如何实现算法。

答案1

一个实验

我可以总结一下我对这个问题的研究结果。

  • 尽量避免使用脚注。有时即使你花了很多精力正确排版,脚注看起来还是不对,人们仍然难以阅读论文。有一个很好的方法,只需将脚注转换为节注或尾注。甚至有一个名为的包endnotes,请参阅http://ftp.cvut.cz/tex-archive/macros/latex/contrib/endnotes/endnotes.pdf。它使用简单的 I/O 操作。这种方法的优点是,如果需要,您可以从文本交叉引用注释,并从注释交叉引用文本中的引用。这并不容易,但编程并不难。好吧,在和hyperref包的帮助下,也可以使用常规脚注轻松实现双向引用footnotebackref,请参阅http://ftp.cvut.cz/tex-archive/macros/latex/contrib/footnotebackref/footnotebackref.pdf
  • 如果必须使用脚注,请尝试将其整体拆分限制为\interfootnotelinepenalty=10000,这意味着惩罚设置为最大值。
  • 这让我想起了我的实验。我在想,是否可以将这个惩罚值即时更改为初始值(100)和最高值(10000),以满足我们的要求。如果要在奇数页上排版脚注,则让程序在排版前将其设置为 10000,如果不是,则让惩罚值重新设置为 100。我试过了。看起来它有效,但我输了\footnoterule,所以我自己画了。

我附上了代码,第一列图演示了 TeX 的初始设置(第 12 行设置为 100 或\myinter),第二列图是本次实验排版的(第 12 行设置为 10000)。示例看起来很丑,但算法应该可以正常工作!

\documentclass[a4paper]{article}
\usepackage{kantlipsum}
\usepackage{xcolor}

\begin{document}
\newcount\myinter
\myinter=\interfootnotelinepenalty % Save the predefined value.
%\the\interfootnotelinepenalty % Show me the actual value.

\def\mykant#1{%
\ifodd\thepage
  \interfootnotelinepenalty=10000% 10000, \myinter
  \def\footnoterule{}%
\else
  \interfootnotelinepenalty=\myinter% 100, \myinter
\fi
\footnote{\kant*[#1]}%
% Definition of the command is rewritten...
\def\footnoterule{\noindent
\raisebox{0.7ex}[0ex][0ex]{% Just for fun...
  \makebox[3cm][l]{\color{red}\hrulefill}%
  \makebox[3cm][l]{\color{green}\hrulefill}%
  \makebox[3cm][l]{\color{blue}\hrulefill}%
  }}%
}% End of \mykant...

\kant[1-3]
My sentence.\mykant{5}
\kant[6-11]%
My next sentence.\mykant{6-7} 
\kant[9-10] Two words.\mykant{8} \kant[11] A word.\mykant{7} \kant[30] The last experiment.\mykant{9} The end of story!
\end{document}

第 1 页 第 2 页 第 3 页 第 4 页 第 5 页

相关内容