如何禁止 LaTex 在句子中间放置浮点数?

如何禁止 LaTex 在句子中间放置浮点数?

我发现图像浮动被放置在段落中...好的,这是正常的。但它们被放置在句子中,看起来很糟糕。所以我已经摸索了一段时间,但没有人抱怨过这一点。通常会出现这种类型的答案: 如何保护文本不被浮点数分割?

我在用着:

\usepackage{placeins}
\usepackage{flafter}

例如

在此处输入图片描述

有什么想法吗?

答案1

您的示例显示,您所关注的中断发生在分页符处。让我们假设您不是担心浮动元素会将页面中间的段落分割开。

根据具体情况,有几种可能性:

  • 浮点数的引用位置;

  • 浮点数的大小;

  • 分割段落的长度;

  • 拆分到一页或另一页的行数。

如果对浮动元素的引用早于“第一”页的最后一段,并且该段落后的空间足以容纳浮动元素,则浮动指令可能会移动到出现引用的段落之前,并指定浮动放置选项[b]以尝试将其移动到同一页面上。

如果只有一两行进入“下一页”,您可以尝试使用第一页\enlargethispage{1\baselineskip}上的某个位置使该页比第一页长一行左右。

如果拆分段落在“第一”页上只有一两行,则可以在拆分段落前插入分页符,以鼓励在\goodbreak拆分段落前进行分页。或者,在绝望的情况下,您可以指定\newpage

如果拆分段落不是从章节的第一页开始,您可以尝试调整前面的一页或多页(使它们短一行或长一行 - 并与对开页的长度相匹配)以改变导致不必要中断的条件。

有一个过时的命令\samepage,放在段落的某个地方,目的是让段落的所有行保持在同一页面上。 定义中的关键指令\samepage\interlinepenalty=10000,因此单独使用它不太有力。 受影响的段落应始终括在一个组中(用括号{...\par}\begingroup ... \par\endgroup)以限制惩罚的范围,并记住必须结束段落才能正确操作段落范围的指令(\baselineskip,行宽更改,以及类似的,除了\interlinepenalty)。

或者,当所有其他方法都失败时,重写。

答案2

基本上你不能。

文本不是被浮动分割的,而是被分页符分割的。只有在分页符之后,LaTeX 才会在考虑下一页布局的可能性时决定将待定浮动插入顶部区域。此时 LaTeX 基本上没有关于内容页面只有垂直的框和粘连线列表。实际上,前几个框是来自断段的行框,但 LaTeX 不知道这一点,它们可能是图形或任何东西,它当然无法分辨句子结构。

如果你想这样做,并且仍然保留放置浮标的可能性某处你可能想要安排换行有所不同。分页符不会向换行符提供反馈,这是 TeX 的一个一般特性(或缺少的特性)。

相关内容