pt 后面一定要有空格吗?

pt 后面一定要有空格吗?

空格是否总是位于 之后pt,例如 中的用法\hskip1pt?如果使用空格,是否存在空格出现在不该出现的位置的情况?如果不使用空格,将pt无法识别,例如,如果字母紧随其后,例如1ptThe?

答案1

根据 TeX 的语法规则,任何长度规范都允许在其后留一个可选的空格,但该空格会被忽略。

执行宏扩展时始终会寻找空格,当找到空格或其他不可扩展的标记时,宏扩展结束。然后会忽略空格标记。

因此\hskip1pt Then\hskip1ptThen完全等价(但后者比前者需要多一点点机器工作,因为T必须将标记放回输入流中)。

但是,你应该记住,<skip>规范并不以1pt标记结束:TeX 还会寻找可能的plus关键字(或minus,无论如何都会在后面寻找)plus <dimen>。因此

\hskip1pt plus two

不是相当于

\hskip1pt\relax plus two

前者会导致Missing number错误。

因此,最好用 来结束不完整的<skip>规范\relax,特别是当它们位于可能在无法完全控制以下标记时展开的宏中时(参见 TeXbook 中的练习 27.4)。

答案2

以下内容应该可以回答您的问题:

在此处输入图片描述

\documentclass{article}
\setlength{\parindent}{0pt}% Just for this example
\begin{document}
aaa\hskip20ptbbb \par
aaa\hskip20pt bbb \par
aaa\hskip 20ptbbb \par
aaa\hskip 20pt bbb \par
aaa\rule{20pt}{.4pt}bbb
\end{document}​

归根结底,这关乎代码的可读性。从这个意义上讲,将长度与其他文档元素分开(上面的“选项”2 和 4)是有意义的。

当然,如果您的编辑器具有语法高亮功能,那么也许您可以接受所有可能性。

相关内容