在尝试理解 Knuth TeXbook 第 12 章关于胶合,我不明白为什么\ldots
最后看起来比 更好...
。在我看来,通常的句号.
有一个额外的拉伸选项,而且它被设置为允许在其后留出更多空间。我猜,但我不确定,这是命令的一部分\nofrenchspacing
,其中指定点后的空格应该是3@m
而不是@m
。所以,我的问题是
- 首先,我上面的猜测是否正确?如果我想了解 TeX (或 LaTeX) 在哪里被告知如何处理非法语空格文本中的句点,这是在命令中吗
\nonfrenchspacing
?是这个空格后,称为 吗spacefactor
? - 更重要的是:如果我把三个点连成一行,它们怎么会太接近了分开吗?根据上面的内容,
3@m
每个句号后面都应该有一个,所以三个点应该没问题:但事实并非如此。Knuth 说 TeX 有一个确定句子结尾的规则,但他没有告诉我们如何(我正在看第73他的 TeXbook 中有关于如何将句子转换为句子的命令。具体来说,我猜有两个spacefactor
命令,一个用于句末,一个用于句中。能否提供一些详细信息?
答案1
空间因子(\sfcode
)不会在后面添加任何空格,.
它只会增加在后面的空格标记产生的空间,.
因此
This is the end. A new sentence
如果 sfcode.
不是 1000,句子末尾的空间将会稍微大一些,并且允许拉伸更多。
如果您去的话,...
点之间没有空间标记,因此.
不使用空间因子代码。
教科书上说,如果空间因子的当前值为F然后:
采用当前字体的正常空格粘合,并添加额外的空格,如果F>= 2000(每种字体都指定了正常空间、正常拉伸、正常收缩和额外空间;例如,这些数量分别为 3.33333pt、1.66666pt、1.11111pt 和 1.11111pt。
cmr10
[…])然后将拉伸分量乘以F/1000,而收缩分量乘以 1000/F。
这里的相关值F分别为3000或\nonfrenchspacing
1000 \frenchspacing
。