我认为,为了防止出现奇怪的错误,在 LaTeX 文档中,你应该尽可能使用\vspace
而不是。但是,在哪些情况下你必须使用呢?\vskip
\vskip
\hspace
我对vs.也有同样的疑问\hskip
。
答案1
答案很简单:你永远不应该\vskip
在 LaTeX 文档中使用。唯一需要采取的预防措施是\vspace
在垂直空间应该出现之前添加一个空行之间段落,通常都是这样的。
但是,\vspace
也可以出现在段落中,并且垂直间距将应用于命令最终落下的文本行下方:将其视为延伸到基线以下的不可见的“单词”(但无论如何,这个空间会在分页符处消失)。
有几个不使用的原因\vskip
(也许除了在基本的 LaTeX 编程中):
- 在需要的地方添加*很容易;
- 很容易变成
\vspace
(\addvspace
当两个连续的\addvspace
命令(通常由宏而不是直接发出)时,只有最大的一个占主导地位); - 语法符合传统的 LaTeX 语法和a
\relax
默认被置于幕后,这样就避免了一些可能出现的问题,根据墨菲定律,这些问题会表现为非常奇怪的错误。
同样,永远不要\hskip
在 LaTeX 文档中使用,而应该使用\hspace
可以避免以下情况下的头脑混乱
text\hskip 1pt plus other text
尝试一下。;-)
然后您将切换到
text\hspace{1pt}plus other text
请注意,其\hspace{...}
前面和后面都不应有空格,因为我们此时要覆盖 TeX 的规则,而且我们可能不希望以其他空格开头。
答案2
如果您是文本的作者,您绝不应该使用\vspace
nor,\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
是首选。当我实现类似的东西时,我发现了这一点另一个问题。