![`H` 说明符的缺点](https://linux22.com/image/284800/%60H%60%20%E8%AF%B4%E6%98%8E%E7%AC%A6%E7%9A%84%E7%BC%BA%E7%82%B9.png)
根据float
包文档,H
浮动位置说明符
[...]当添加到浮动元素时,告诉 LaTeX“将浮动元素放在此处,句号”。如果页面上没有足够的空间,浮动元素将连同其后的内容一起转移到下一页,即使可能仍有剩余空间。
我听到过一些赞成和反对使用这个放置说明符的意见。我个人倾向于不推荐使用它,而是建议从一开始就使用静态对象(但我唯一的原因是我不喜欢将某个东西声明为浮点数然后抑制浮动的想法;我宁愿从一开始就使用静态对象)。
H
除了引用文本最后一句中提到的缺点之外,浮点位置说明符还有其他主要缺点吗?
答案1
这里有一个缺点,这源于[H]
浮点数被设置为minipage
:
\documentclass{article}
\usepackage{float}
\newcommand{\pangram}{The quick fox jumped over the lazy dog.}
\begin{document}
\pangram
\begin{figure}[h]
\pangram
\caption{\pangram}
\end{figure}
\pangram
\clearpage
\pangram
\begin{figure}[H]
\pangram
\caption{\pangram}
\end{figure}
\pangram
\end{document}
另一个缺点是它处理“文本内浮动”的方式:
\documentclass{article}
\usepackage{float}
\newcommand{\pangram}{The quick fox jumped over the lazy dog.}
\begin{document}
\pangram
\begin{figure}[h]
\pangram
\caption{\pangram}
\end{figure}
\pangram
\clearpage
\pangram
\begin{figure}[H]
\pangram
\caption{\pangram}
\end{figure}
\pangram
\end{document}
答案2
另一个缺点是使用H
修饰符一些浮点数可能会导致浮点数乱序,如以下示例所示:
\documentclass{book}
\usepackage{graphicx}
\usepackage{float}
\begin{document}
\chapter{A test chapter}
\begin{figure}
\centering
\includegraphics[width=4cm]{example-image-a}
\caption{A test floating figure}
\end{figure}
\begin{figure}[H]
\centering
\includegraphics[width=4cm]{example-image-b}
\caption{A test non-floating figure}
\end{figure}
\end{document}