我可以使用~
来生成不间断空格。但是它对我来说太大了,我想要一个大小为 的不间断空格\,
。可以吗?
答案1
TeX 可以使用两种间距:跳跃和字距。第一种间距可以灵活(例如,单词之间的间距就是跳跃),而第二种间距则是固定的。
两者都会在换行符处消失,但 TeX 永远不会在 kern 处换行(除非后面跟着跳过),但它愿意在跳过时这样做。因此
word\,word
会绝不跨越界限。
该命令\,
插入一个字距,确切地说它的定义(在文本模式下)为
\kern 0.16667em
(其中 1em 大约等于大写字母“M”的宽度,这也是其名称的由来,或者接近字体大小(以磅为单位);因此插入的空间\,
是 1/6 em。
相反,~
被定义为跳过:它的定义是\nobreakspace
,这转化为
\leavevmode\nobreak\
(最后一个是“反斜杠+空格”)。这里不会有换行符,因为插入的跳过\<space>
前面的惩罚太高,以至于不可能换行(\nobreak
转换为\penalty 10000
)。
您可以通过插入\kern
自己来留出空格,但最好使用宏。如果您需要空格不可中断,则可以使用宏。和灵活,使用相同的技巧~
:
\nobreak\hspace{.16667em plus .08333em}
将插入一个通常等于 1/6 em 但可拉伸至 1/4 em 的空格。
我省略了,\leavevmode
因为这样的空格应该总是插入之间单词。LaTeX 采取了这种预防措施,因为用户可能会使用~
来缩进行(但这不是最好的做法)。