![过长的脚注会导致分页](https://linux22.com/image/309308/%E8%BF%87%E9%95%BF%E7%9A%84%E8%84%9A%E6%B3%A8%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%88%86%E9%A1%B5.png)
如果文档有非常当正文中长脚注彼此靠近时,LaTeX 开始通过分页来弥补这一点(见下面的第一张图片)。
我很感激 TeX 努力将脚注放在相应的标记附近,但不,谢谢 TeX,这太过分了。无论如何,它应该不是打破页面,也不要让段落跳过得更长(这几乎同样丑陋)或使用任何其他常见的肮脏技巧;如果需要的话,我更喜欢将脚注放在标记后五页。有人能找到办法让 TeX 不再像这样破坏页面吗?
我尝试使用bigfoot
和进行实验interfootnotelinepenalty=0
,这改变了输入,但并没有消除问题。此外,还bigfoot
造成了下面第二张图片中所示的噩梦。请注意,脚注超出了页面本身。
请注意,这memoir
也不是问题所在;更改为 article 并加载geometry
,结果完全相同。此外,A5 格式也不是问题所在;它只是使问题比使用 A4 时更加严重。
一位 MWE 表示:
\documentclass[a5paper]{memoir}
\usepackage{lipsum}
%\usepackage{bigfoot}
%\interfootnotelinepenalty=0
\begin{document}
\lipsum[1]\footnote{\lipsum[1-10]}
\lipsum[1]\footnote{\lipsum[1-15]}
\lipsum[1]\footnote{\lipsum[1-10]}
This needs a footnote\footnote{\lipsum[1-10]}, and it is very necessary in order not to cause confusion.
\end{document}
输出:
输出和bigfoot
:
答案1
您可以尝试进行更改\floatingpenalty
(\@footnotetext
全局或本地)。但我认为缩短脚注更为明智。
\makeatletter
\long\def\@footnotetext#1{\insert\footins{%
\reset@font\footnotesize
\interlinepenalty\interfootnotelinepenalty
\splittopskip\footnotesep
\splitmaxdepth \dp\strutbox \floatingpenalty 100 %<---
\hsize\columnwidth \@parboxrestore
\protected@edef\@currentlabel{%
\csname p@footnote\endcsname\@thefnmark
}%
\color@begingroup
\@makefntext{%
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
\color@endgroup}}
编辑2017
由于 footmisc 之类的软件包可能会发生变化,\@footnotetext
因此最好修补定义(在所有可能再次更改定义的软件包都已加载之后):
\usepackage{etoolbox}
\makeatletter
\patchcmd\@footnotetext{\@MM}{100}{}{\fail}
\makeatother
除了使用固定值之外,100
还可以使用可以在本地重新定义的命令或计数器。