在 LaTeX 文档中,何时应使用 \vskip (\hskip) 而不是 \vspace (\hspace)?

在 LaTeX 文档中,何时应使用 \vskip (\hskip) 而不是 \vspace (\hspace)?

我认为,为了防止出现奇怪的错误,在 LaTeX 文档中,你应该尽可能使用\vspace而不是。但是,在哪些情况下你必须使用呢?\vskip\vskip

\hspace我对vs.也有同样的疑问\hskip

答案1

答案很简单:你永远不应该\vskip在 LaTeX 文档中使用。唯一需要采取的预防措施是\vspace在垂直空间应该出现之前添加一个空行之间段落,通常都是这样的。

但是,\vspace也可以出现在段落中,并且垂直间距将应用于命令最终落下的文本行下方:将其视为延伸到基线以下的不可见的“单词”(但无论如何,这个空间会在分页符处消失)。

有几个不使用的原因\vskip(也许除了在基本的 LaTeX 编程中):

  1. 在需要的地方添加*很容易;
  2. 很容易变成\vspace\addvspace当两个连续的\addvspace命令(通常由宏而不是直接发出)时,只有最大的一个占主导地位);
  3. 语法符合传统的 LaTeX 语法a\relax默认被置于幕后,这样就避免了一些可能出现的问题,根据墨菲定律,这些问题会表现为非常奇怪的错误。

同样,永远不要\hskip在 LaTeX 文档中使用,而应该使用\hspace可以避免以下情况下的头脑混乱

text\hskip 1pt plus other text

尝试一下。;-)然后您将切换到

text\hspace{1pt}plus other text

请注意,其\hspace{...}前面和后面都不应有空格,因为我们此时要覆盖 TeX 的规则,而且我们可能不希望以其他空格开头。

答案2

如果您是文本的作者,您绝不应该使用\vspacenor,\vskip因为您只应使用文档的逻辑标记。印刷问题是所用宏的责任。

如果您是宏程序员,那么您会喜欢 TeX 原语,例如\vskip\vadjust\hskip因为您非常了解它们的作用。而且您不需要\vspace在您的宏中使用像 这样的复杂宏。

结果:没有必要使用\vspace

此外,\vspace这很容易让用户感到困惑,因为它的默认行为是这样\vadjust{\vskip...}的,它会中断当前段落的行网格,但不会结束段落。

答案3

对我来说,一个奇怪的区别是,它\hspace不吃以下空格:

Test\hskip0.1\textwidth\relax Test

Test\hspace{0.1\textwidth} Test

Test\hspace{0.1\textwidth}Test

因此,在许多低级情况下\hskip是首选。当我实现类似的东西时,我发现了这一点另一个问题

相关内容