在下面的例子中,脚注被定义在第 1 页的顶部附近,但是在 pdflatex 生成的 PDF 文件中,它出现在第 2 页,而它本来可以放在第 1 页。请注意,两个浮动表都很重要。
为什么脚注没有放在定义它的页面上(那里有空间)?这算是错误吗?
\documentclass[12pt]{article}
\begin{document}
Text text text text text text text text text text text text text
text text text text text text text text text text text text text
text text text\footnote{Footnote.}
\[x\]
Text text text text text text text text text text text
\[x\]
\vspace*{370pt}
Text text text text text text text text text text text text text
text text text text text text text text text text text text text
text text text text text text text text text text text text text
text text text text text text text text text text text text text
\begin{table}
\caption{Text}
\end{table}
\begin{table}
\caption{Text}
\end{table}
Text text text text text text text text text text text text text
text text text text text text text text text text text text text
\end{document}
答案1
在显示方程式之前永远不应该有空白行,它会创建一条异常的白线(不是垂直空间),这条白线是显示屏上方不需要的,也不会在分页符处被丢弃。
尽管即使没有指定的空间,第 1 页也不允许添加脚注,但仍存在两个问题,第一,为了使其适合,您必须将段落的一行放在一页上,而通常 LaTeX 会尽量避免这样做(\widowpenalty
),第二,因为页面上没有足够的拉伸空间来弥补行高的差异。
如果你让 TeX 优先使用寡妇线而不是避免寡妇线,那么它就适合了(我不建议这样做,但为了演示效果)
\documentclass[12pt]{article}
\begin{document}
\widowpenalty-10000
Text text text text text text text text text text text text text
text text text text text text text text text text text text text
text text text\footnote{Footnote.}
\[x\]
Text text text text text text text text text text text
\[x\]
\vspace*{370pt}
Text text text text text text text text text text text text text
text text text text text text text text text text text text text
text text text text text text text text text text text text text
text text text text text text text text text text text text text
\begin{table}
\caption{Text}
\end{table}
\begin{table}
\caption{Text}
\end{table}
Text text text text text text text text text text text text text
text text text text text text text text text text text text text
\end{document}
答案2
当你把这些页面并排摆放时,你会清楚地看到,不是第一页有足够的空间。而且 LaTeX 不喜欢为了在那里放脚注而破坏“文本”块,因为这会产生糟糕的排版。将 更改\vspace*{370pt}
为较小的值,例如\vspace*{360pt}
可以解决问题。从排版角度来看,在下一页放脚注是完全可以的,如果您的图表真的迫使这种情况发生(如您的示例所示)。