我不明白为什么我的图形会飘到“错误的地方”。例如:
\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]
允许在下方。
(引自包装文档)