控制 float 包中数字后的空白

控制 float 包中数字后的空白

我一直在序言中使用此代码来控制文档中所有图形和表格的浮动。但是,我认为它会在每个图形/表格前后添加不必要的空白。有什么方法可以控制这种情况并最小化图形/图形和文本之间的空间?

\usepackage{float}
\let\origfigure\figure
\let\endorigfigure\endfigure
\renewenvironment{figure}[1][2] {
    \expandafter\origfigure\expandafter[H]
} {
    \endorigfigure
}


答案1

你有

\renewenvironment{figure}[1][2] {
    \expandafter\origfigure\expandafter[H]
} {
    \endorigfigure
}

并询问空格问题。几乎每一行都可能添加空格。

\renewenvironment{figure}[1][2]

这定义\begin{figure}为具有一个可选参数的环境,如果不使用该选项,则\begin{figure}等同于\begin{figure}[2](这可能不是有意的,因为2这里没有定义的行为)由于根本不使用可选参数,默认值是任意的,也许[1][]会更清楚。

{

这会在定义的开头添加一个空格标记,这可能会figure在结果文档中产生一行虚假的空白,具体取决于放置的位置。通常最好使用,{%这样就不会在定义中添加空格标记。

\expandafter\origfigure\expandafter[H]

H这会在调用之前扩展不可扩展的令牌\origfigure,因此这相当于

\origfigure[H]

如上所述,这会在环境的开头添加一个空格标记,这样不太可能在输出中产生空格,但再次以 结束该行%是一种很好的做法。

由于#1未使用,因此这里将忽略用户提供或默认的定位参数并[H]始终使用。

H设计上会在分页符处产生糟糕的空白,因为浮动图形是为了避免糟糕的分页符,而这会禁用这一点。更好的替代方案是直接使用,\includegraphics因为figure它只用于指定图形是浮动的(即可以移动)。H(这实际上是我最初的想法:-)只是为了在文档的最终编辑阶段进行最终手动覆盖和手动定位,它永远不应被用作默认机制。

} {

再次,这里的行尾添加了一个空格标记,并且与第一行一样,在某些情况下这会在输出中产生空格。

相关内容