连续浮动环境后插入额外空格

连续浮动环境后插入额外空格

当在一个段落内连续放置两个浮动环境时(如下例所示),TeX 似乎会在最后一个浮动环境后插入一个额外的空格。

\documentclass{article}

\begin{document}
There is an additional space before this
\begin{figure}
  \caption{A}
\end{figure}
\begin{figure}
  \caption{B}
\end{figure}% <--- gets rid of extra space
word.
\end{document}

额外空间

在最后一个数字后添加%,去掉多余的空格。

没有额外空间

这是什么原因呢?

答案1

造成“this”和“word”之间有额外字间空格的原因有两个。

  • %第一个原因是输入行末尾缺少,即注释字符There is an additional space before this

  • %第二个原因是两行末尾都没有\end{figure}

在第一个或第三个可能位置的末尾提供一个%字符就足以生成正常的单词间空格。%在所有 3 行的末尾插入一个字符可以完全消除单词间空格。


附录总结一下评论中的一些想法:

  • 在某种程度上,是你的编码选择不必要地导致了复杂性(例如额外的空格),然后你发现有必要修复它。在我看来,输入浮点数作为

    There is an additional space before this
    \begin{figure}
      \caption{A}
    \end{figure}
    \begin{figure}
      \caption{B}
    \end{figure}
    word.
    

    相反,正如@egreg 已经建议的那样,只需输入材料即可

    There is an additional space before this word.
    \begin{figure}[ht!]
      \caption{A}
    \end{figure}
    \begin{figure}[ht!]
      \caption{B}
    \end{figure}
    

    如果目的是让浮动元素靠近其前面的文本。

  • 正如@DavidCarlisle 在下面的评论中所解释的那样,额外的单词间空白并不是 LaTeX 肆意将其放在那里的结果;事实上,它是你的奇怪的编码选择导致了额外的空白问题。虽然 TeX 和 LaTeX 可以成功丢弃连续的类型的多余空格word word,它们并未设置为找出并消除类型中不必要的空格word {} () word,其中{}形成一个空组。

  • 结果是:要么养成%在每个实例后添加的习惯\end{figure},要么开始更合理地编码,以便本文中讨论的空格问题永远不会出现。

相关内容