奇怪的身影漂浮

奇怪的身影漂浮

我不明白为什么我的图形会飘到“错误的地方”。例如:

  \documentclass[12pt,a4paper,oneside]{book}
  \usepackage{graphicx}

  \begin{document}

  \section{My section}
  \begin{figure}[htbp!]
  \centering
  \includegraphics[width=16.6cm]{figure.png}
  \caption{My caption}
  \end{figure}

  \end{document}

问题是图形出现在部分名称之前,而不是像我希望的那样出现在部分名称之后......我该如何纠正这个问题?

答案1

添加

\usepackage{flafter}

这是核心 LaTeX 发行版的一部分。这改变了选项的含义t,以便它允许在后续页面的顶部,但不是当前页面,以便浮动元素永远不会向后移动。

答案2

您可以使用放置包。它提供了以下命令\FloatBarrier

Placeins.sty 让浮动元素“停留在原处”,防止它们越过\FloatBarrier命令进入另一部分。要使用它,请在浮动元素不应越过的位置(可能在每个位置)声明\usepackage{placeins}并插入。\FloatBarrier\section

选项:[section]

在节边界处停止浮动的更方便的方法是将 的定义更改\section为包括 \FloatBarrier,无论是在开头、 之前\@startsection,还是在 'style' 规范中(参见 LATEX Companion,第 2.2.2 节;或第 1 版中的 2.3 节)。如果您指定 \usepackage[section]{placeins},则\section命令将被重新定义为\FloatBarrier在开头插入 。

选项:[above] [below]

您可能不喜欢的是,默认情况下, \FloatBarrier它非常严格,并且会(尝试)阻止浮动出现在当前节的开头上方或下一节的开头下方,即使浮动仍与其预期节位于同一页面上。可以使用[above][below]包选项分别放宽每个限制:[above]如果在同一页面上,则允许浮动出现在其节的上方;[below] 允许在下方。

(引自包装文档

相关内容