为什么我们需要 \ldots?

为什么我们需要 \ldots?

在尝试理解 Knuth TeXbook 第 12 章关于胶合,我不明白为什么\ldots最后看起来比 更好...。在我看来,通常的句号.有一个额外的拉伸选项,而且它被设置为允许在其后留出更多空间。我猜,但我不确定,这是命令的一部分\nofrenchspacing,其中指定点后的空格应该是3@m而不是@m。所以,我的问题是

  1. 首先,我上面的猜测是否正确?如果我想了解 TeX (或 LaTeX) 在哪里被告知如何处理非法语空格文本中的句点,这是在命令中吗\nonfrenchspacing?是这个空格后,称为 吗spacefactor
  2. 更重要的是:如果我把三个点连成一行,它们怎么会太接近了分开吗?根据上面的内容,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或\nonfrenchspacing1000 \frenchspacing

答案2

...和之间的关键印刷差异\ldots不是与后续空间的宽度有关的任何事情。 \ldots增加更多间距介于点。观察:

x...x\par
x\dots x\par
\bye

呈现为

上述示例的渲染,显示第二种情况的点之间有更多空间

(注意:纯 TeX\ldots仅用于数学,您必须\dots在文本模式下使用。)

相关内容