当页面上的空间太大时,下一页上会出现脚注

当页面上的空间太大时,下一页上会出现脚注

我试图让脚注出现在与正文中的引用相同的页面上(第 1 页),但它却出现在下一页(第 2 页)。

我能找到的最接近我的问题是脚注出现在下一页。为什么?但我的问题似乎不是页面上的空间太小。事实上,当我在段落中添加一些内容以使其更长并减少页面底部的空间时,脚注可以出现在第一页,而布局几乎没有任何变化。

简化的源代码如下,

\documentclass[letter]{article}

\usepackage{setspace}

\begin{document}

\small \rm
\setstretch{2.0}

a aj jfskdj pojsdf jasdfj jjiaosdjf jaisdojf ajsidfj oaijds fsojijf sd,

\vspace{11cm}

a aj jfskdj pojsdf jasdfj jjiaosdjf jaisdojf ajsid\footnote{fasu tuthwery ;xncdnbcd},
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
% Uncomment the following to fix the problem...
% jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadjjpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
% fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija

\subsubsection{jpai sdjp foiadsj fpajdsp fia jsdpoij fapods fjpoiadj}

\begin{figure}
  \centering
  \caption{
    JHLHL Jlkjaklsdf jalksjdf kja;d fa;skldjf ;aksdjf japisodf
    jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
    fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
    pdo fpaisodf aosdjf ia psfj aspoidjaposifjpaiod fpiaos fpais pfoa sdpoif sdf}
\end{figure}
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija

\end{document}

我可以使用pdflatex或重现此问题xelatex

这是一份超过 200 页的文档,因此我非常希望有一个强大且自动化的解决方案,这样我就不需要在每次发生更改时手动查看文档……我还想了解为什么确实发生了这种情况。脚注似乎确实可以毫无问题地放在第一页。任何有关内部或如何调试此类内容的注释也将不胜感激。

笔记:此问题与第一页底部的可用空间有关,因此它与第一页上的内容占用的空间大小相当敏感。我并不真正想知道如何改变这一点以避免遇到此问题。如果您对文档进行了任何更改导致问题消失,尝试稍微改变一下 vspace 值,看看它是否不会因为垂直位置的变化而触发问题。节标题之前的文本应位于第一页,页面底部应留有足够的空间,而图表和节应位于第二页。我希望脚注位于第一页,但它出现在第二页,即使第一页上显然有足够的空间。

我在 Arch Linux 上使用 TeX Live 2020.57066。还使用 pdfLatex 和 texlive 版本 2020(当前为默认版本)在 overleaf 上进行了复制。

答案1

这是 TeX 输出例程在浮点数存在的情况下如何工作的问题。完全相同的问题已报告给 LaTeX 团队这里作为一个更大的问题的一部分,它还涉及 TeX 的其他部分。我会让 Frank Mittelbach解释怎么了:

每当 LaTeX 遇到浮点数时,它都会调用输出例程 [注意,下面是“OR”] 来确定其位置。之后,OR 将页面材料返回到主垂直列表,但会有一个区别:

  • 在呼叫 OR 之前,脚注单独位于它们出现的位置旁边
  • 调用 OR 后,它们都会聚集在插入框中。因此 LaTeX 必须决定将它们放在哪里,例如放在第一个还是最后一个。目前它是最后一个
  • 因此,在您的示例中,它们被重新插入到 \section [NB \subsubsection 在您的情况下] 之后,但随后 LaTeX 决定在部分 [NB subsubsection] 之前中断,因此产生这样的结果。

首先这样做会有相反的问题(我猜这种情况会更频繁地发生),您可能会拿起脚注文本,然后标记会出现在下一页上。

对于这个问题,正确的方法是在调用 OR 时使用 \holdinginserts,但这不容易集成到算法中,因为这是一个重大的变化。

对于您遇到的具体情况,可能的解决方法是给定;但如果您的文档更复杂,它可能会破坏其他一些东西。给出的修复涉及加载etoolbox和修补浮点的处理方式,因此您可以尝试添加

\usepackage{etoolbox}
\makeatletter
\patchcmd\end@float{\@cons\@currlist\@currbox}
   {\@cons\@currlist\@currbox
    \global\holdinginserts\@ne}
    {}{}
    
\apptocmd\@specialoutput{\global\holdinginserts\z@}

\makeatother

回到你的序言。我在你的 MWE 上测试了它,它有效。

答案2

更新

我添加了float并使\begin{figure}[H]图形出现在\subsubsection

脚注将保留到第一页的末尾。(\vspace{17.5cm}有

% !TeX TS-program = pdflatex

\documentclass[letter]{article}

\usepackage{setspace}

\usepackage{float}

\begin{document}

\small \rm
%\setstretch{2.0}

\doublespacing

a aj jfskdj pojsdf jasdfj jjiaosdjf jaisdojf ajsidfj oaijds fsojijf sd,

\vspace{17.5cm}

a aj jfskdj pojsdf jasdfj jjiaosdjf jaisdojf ajsid\footnote{fasu tuthwery ;xncdnbcd},
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
% Uncomment the following to fix the problem...
% jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadjjpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
% fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija

\subsubsection{jpai sdjp foiadsj fpajdsp fia jsdpoij fapods fjpoiadj}

\begin{figure}[H]
  \centering
  \caption{
    JHLHL Jlkjaklsdf jalksjdf kja;d fa;skldjf ;aksdjf japisodf
    jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
    fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
    pdo fpaisodf aosdjf ia psfj aspoidjaposifjpaiod fpiaos fpais pfoa sdpoif sdf}
\end{figure}
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija
jpaisdjpfoiadsj fpajdspfiajsdpoijfapodsfjpoiadj
fpoiajsdfpoiajdskajsdpof  fiosd f asd faijdf a df a jfpo oiaf pa pfoija

\end{document}

相关内容