浮动放置 [H] 是否被认为是令人发指的?

浮动放置 [H] 是否被认为是令人发指的?

许多 MWE 包含如下代码:

\usepackage{float}
% etc
\begin{figure}[H]% or \begin{table}[H]
% figure/table code (e.g. \begin{tabular}...)
% etc

其效果是将浮动元素(图形或表格等)放置在文档中的确切位置,无论其相对于虚假空白看起来有多糟糕。效果是将浮动元素变为非浮动元素,但可以选择添加标题。问题通常在于浮动元素的位置不理想,而这正是 [H] 选项经常导致的问题。

是否应该使用 [H] 选项?

答案1

[H]经常(也许通常)被误用,但并不令人发指,而且最初提出这种语法的人当然是极其光荣的。

正如 egreg 在(非)问题下面评论的那样,如果图像或表格是非浮动的,它就不需要标题,因此标记可以很简单tabular,或者\includegraphics没有周围的浮动容器,所以不需要[H]

然而,有一种情况是 H 很有用的。它实际上并不适用[H]H埃雷那是[H]为了H人类更善于选择浮动位置。如果您准备完全控制,使用 ,[H]并通过在源中移动环境手动浮动所有浮动,并在必要时重写页面的其他部分以帮助使其适合,那么对于某些文档,您肯定可以获得更好的结果。当然,这样做的维护成本非常高,因为任何编辑都会使所有定位无效,您必须再次检查所有分页符,但如果您刚刚花了十年时间写一本书,那么最后花一周时间手动调整浮动位置不一定是错误的做法。

答案2

[H] 浮动选项可将浮动(图形、表格等)有效地转换为非浮动(尽管它可能有常规标题),使其出现在最终文档中,与 LaTeX 源中的位置相同。这会导致出现大量多余的空白(如果 [H] 浮动需要 3 英寸的垂直空间,但页面上只有 2 英寸可用,会发生什么情况?)。

如果你真的想让浮点数成为非浮点数,那么就不要把它称为浮点数,例如,

%%% begin{table}% don't use this!
\begin{tabular}
% tabular code

如果你需要标题,那么你可以使用该caption包。例如

\usepackage{caption}
% etc
\begin{center} % if you want the tabular centered
\begin{tabular}
% etc
\captionof{table}[LoT entry]{Nonfloating table caption}
\label{tab:X}
\end{tabular}
\end{center}
% etc

LaTeX 尽力通过可选的浮点参数以令人愉悦的方式定位浮点[htbp]。如果你认为你可以做得更好,那么祝你好运。

Frank Mittelbach 和 Michael Goossens 合著的 43 页第 6 章对浮点数及其用途进行了全面讨论LaTeX 伴侣,第二版,Addison Wesley,2004 年(据我所知,第三版可能即将面世)。本章详细介绍了如何调整顶部 ( t)、底部 ( b) 和此处 ( h) 浮动的允许空间。

memoir手册 ( >texdoc memoir) 有一章浮动和标题包含类似信息。LaTeX2e 的简短介绍> texdoc lshort)也包含有关该主题的有用信息。

根据 jfbu 的评论,我应该记得 Frank Mittelbach 写了一篇综合性的文章如何影响 LaTeX 中图形和表格等浮动环境的位置?它可以从 [TUGboat,TeX 用户组的期刊] 访问和打印。https://tug.org/TUGboat/tb35-3/tb111mitt-float.pdf}

相关内容