![是什么导致了 LaTeX 中“\begin{figure}[hbt]”和“\begin{figure}”之间的差异?](https://linux22.com/image/464931/%E6%98%AF%E4%BB%80%E4%B9%88%E5%AF%BC%E8%87%B4%E4%BA%86%20LaTeX%20%E4%B8%AD%E2%80%9C%5Cbegin%7Bfigure%7D%5Bhbt%5D%E2%80%9D%E5%92%8C%E2%80%9C%5Cbegin%7Bfigure%7D%E2%80%9D%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B7%AE%E5%BC%82%EF%BC%9F.png)
在 LaTeX 中插入图形时,我们将使用 的浮动环境\begin{figure}
,其中的说明符可以是h
、b
和t
或!
它们的组合。如如何影响 LaTeX 中图形和表格等浮动环境的位置?,
每当 LaTeX 在源中遇到浮点环境时,它都会首先查看保留队列,检查队列中是否已经有相同类别的浮点。如果是,则不允许放置,浮点会立即进入保留队列。
如果不是,LaTeX 会查看此浮点数的浮点位置说明符,要么是可选参数中的显式说明符,要么是浮点类中的默认说明符。每个浮点类的默认说明符在文档类文件(例如 article.cls)中设置,并且通常会解析为 tbp,但这并不能保证。
如果说明符包含 !,则算法将忽略与可放入区域的浮点数或区域可占用的最大大小相关的任何限制。否则,将应用参数定义的限制。下一步,它将检查是否已指定 h。如果是,它将尝试将浮点放置在遇到它的位置。如果可行,即如果有足够的空间,则将放置它并结束对该浮点的处理。如果没有,它将接下来查找 t,如果已指定,它将尝试将浮点放置在顶部区域。如果没有阻止它的限制,则放置浮点并停止处理。如果没有,它将最终检查 b 是否存在,如果存在,它将尝试将浮点放置在底部区域(再次遵守如果未给出 ! 则适用的任何限制)。如果这也不起作用或由于未给出说明符而不允许,则将浮点添加到保留队列中。在上述过程中不使用 p 说明符(如果存在)。仅当在下一页边界清空保持队列时才会查看它。当在文档中遇到浮动元素时,处理就会结束。
我不这么认为。我们来举个例子。
\documentclass{article}
\usepackage{lipsum,graphicx}
\begin{document}
\lipsum[1]
\begin{figure}
\centering
\includegraphics[width=0.5\textwidth]{example-image-a}
\caption{Test}
\end{figure}
\lipsum[2-15]
\end{document}
但若改为\begin{figure}
或\begin{figure}[hbt]
,\begin{figure}[bth]
图形将位于页面中间,作为h
作品的指定者。
\documentclass{article}
\usepackage{lipsum,graphicx}
\begin{document}
\lipsum[1]
\begin{figure}[bth]
\centering
\includegraphics[width=0.5\textwidth]{example-image-a}
\caption{Test}
\end{figure}
\lipsum[2-15]
\end{document}
\begin{figure}[hbt]
所以和是有区别的\begin{figure}
,它和的解释也不同如何影响 LaTeX 中图形和表格等浮动环境的位置?\begin{figure}
。为什么以及LaTeX 中的 默认规则是什么?
谢谢。