浮动出现得太晚了,甚至在新章节之后也是如此

浮动出现得太晚了,甚至在新章节之后也是如此

这个问题的解决方案出现在这篇文章的末尾。首先是令人费解的症状。

我正在对一个长而复杂的 400pp 文档使用 LaTeXbook类。使用 LaTeX\begin{figure}环境生成的一些浮点数(没有可选参数)决定将浮点数浮动到调用点之外的许多页面(坏浮点数之间的其他浮点数看起来正常)。图形可以浮动到 a 之后\cleardoublepage、a 之后\part{}、a 之后\chapter{}。有些出现在下一章的第二页!在这之间,有些页面包含浮动,图形可能被放置在该位置。.log 文件中没有警告,无论是在调用图形环境的页面上,还是在浮动实际出现的页面上。

解决:我的书也包含许多 \marginpar。问题是,在一个地方,我意外地将 \marginpar 嵌入到了 \footnote 中。我知道这是不允许的,但我没有意识到这会破坏 LaTeX 内部的某些东西,并且会弄乱后面数百页的浮动图形的位置。修复这一行就可以解决所有问题。

答案1

latex 浮动放置算法不会惩罚(甚至不会测量)浮动移动的页面数。如果它不适合当前页面,那么它将被放置在满足约束条件的最早位置。

除非\cleardoublepage重新定义,否则浮点数不会超过该点,因此除非您可以展示一些代码,否则不可能对浮点数放置的细节进行评论。

答案2

您可以使用该float包并将\begin{figure}[H]单个图形准确地放置在您想要的位置。

也许这是解决问题的快速方法。

答案3

问题在于,在一个地方,我无意中将 \marginpar 嵌入到了 \footnote 中。我知道这是不允许的,但我没有意识到这会破坏 LaTeX 内部的某些功能,并会扰乱后面数百页的浮动图形的位置。

当我猜到这可能涉及 \marginpar 时,我按照 Johannes_B 的建议找到了问题所在:我添加了一行代码,重新定义了 \marginpar 不执行任何操作,然后慢慢地从头开始在书稿中向前移动该行,直到问题开始出现。这样就将错误代码定位到明显的位置,正如 Johannes_B 所说的那样。谢谢 Johannes_B。

相关内容