是否有任何包或方法可以强制 LaTeX 将浮动环境保持得更table
接近figure
其声明的位置?
答案1
通过选项简化浮动放置:
您可以使用更多定位选项。不仅仅是[h]
。如果您希望将图形放置在附近,请允许更多定位选项,例如[htbp]
(此处、顶部、底部、页面)。使用!
符号可消除进一步的限制。因此,在许多情况下这已经足够了:
\begin{figure}[!htbp]
有关浮动放置的有用包:
float
引入一个放置选项H
,强制在该点精确放置。placeins
\FloatBarrier
提供限制图形或表格浮动的命令。您可以在列表之前和之后放置这样的屏障。afterpage
允许更巧妙地将\clearpage
效果推迟到页面填满为止:\afterpage{\clearpage}
完全避免浮动环境:
包裹caption
允许在浮动环境之外添加标题,即在您想要的任何地方。使用\captionof{figure}{the caption}
(用于图形)
例子:
text
\begin{minipage}{\linewidth}
\begin{center}
\includegraphics[width=.6\linewidth]{example-image}
\captionof{figure}{An example image not including a Wombat}
\end{center}
\end{minipage}
even more text
将minipage
图形和标题保持在一起,center
环境在图形周围添加一些白色空间。
进一步阅读:
由于这是一个重要且不容易的主题,因此有很多资料可供查找,例如在常见问题解答集合中。有一份详尽的文档涉及图形的包含、操作和放置:
- 在 LaTeX 和 pdfLaTeX 中使用导入的图形作者:Keith Reckdahl。
你的问题的有趣部分可能是第四部分:图形环境从第 55 页开始。
Frank Mittelbach 也给出了出色的答案,详细描述了浮动机制和相关选项:
答案2
一旦理解了 LaTeX 如何使用浮点数,控制浮点数就不难了。必备常见问题解答链接:https://texfaq.org/FAQ-floats
从广义上讲,有三件事会阻止浮点数接近其定义:
未指定位置参数。我建议始终使用 [htbp],直到文档完成为止。
图形太大。您真的需要占页面大小 2/3 的图形吗?
图形彼此靠近的次数过多。一旦图形开始堆积,就不可能将最后一个图形保持在其源位置附近。
最重要的是,在文档完全完成之前,不要考虑格式化浮点数。这样,您将获得更好的结果,并更快地编写文档。
答案3
查看float
包。它添加了包含[H]
强制浮动放置的功能。您还可以使用 将其选择为自动默认设置\floatplacement{figure}{H}
。
\documentclass{article}
% Example taken from https://tex.stackexchange.com/questions/297564
\usepackage{float} % here for H placement parameter
\begin{document}
Text before the table.
\begin{table}[H] % placement parameter H
\centering % if you want to center the table
\caption{Table showing \ldots}
\label{table:ExampleTable}
% Code for table
\end{table}
Text after the table.
\end{document}
答案4
通常你需要做的就是提前声明表格和图表,前第一个参考点(例如,参考点之前的一或两段,或上一小节标题之前)。
不幸的是,这往往需要反复试验。有些类型的浮点数需要比其他类型的浮点数更早声明;例如,带位置的浮点数[b]
有时比带 的浮点数更棘手[t]
。