目前我正在学习如何创建宏来设计我自己的文档格式,并且\space
经常使用该命令。我想知道它的确切值(em
value 或pt
value)。如果有人能对此有所启发,我将不胜感激。
答案1
\space
定义为
\def\space{ }
因此它添加了一个空间标记而不是胶水。
排版时,由 fontdimens 决定的水平空间\spacefactor
将会\xpacefactor
被添加,就像文字空间一样。
宏编写最常见的用途之一是在消息中。
\typeout{\string\LaTeX\space zzz}
生成一条消息\LaTeX zzz
,其中显然\space
只是一个字符,而不是任何长度的em
单位。
答案2
\space
就像您用键盘插入的空格可以拉伸和收缩一样。您可以通过测量一个框或要求当前字体的 \fontdimen2 来获取“未拉伸”空格的长度。
\documentclass{article}
\begin{document}
a\space b
a\space b \linebreak c %stretched \space
\newlength\mylength
\settowidth\mylength{\mbox{ }}
\the\mylength =
\the\fontdimen2\font
\bfseries
\settowidth\mylength{\mbox{ }}
\the\mylength =
\the\fontdimen2\font
\end{document}