![“\null?”不会在问号后添加空格](https://linux22.com/image/470309/%E2%80%9C%5Cnull%3F%E2%80%9D%E4%B8%8D%E4%BC%9A%E5%9C%A8%E9%97%AE%E5%8F%B7%E5%90%8E%E6%B7%BB%E5%8A%A0%E7%A9%BA%E6%A0%BC.png)
在这本书的第 34 页缺乏耐心的人可以使用 TEX, 有:
TEX 通常会在它认为是句末标点符号的地方(即 '.'、'?' 或 '!' 后面跟着输入空格)添加一些额外的空格。但是,如果标点符号跟在大写字母后面,TEX 不会添加额外的空格,因为它假定大写字母是某人名字的首字母。您可以通过输入以下内容来强制在原本不会出现额外空格的地方添加空格:
A computer from IBM\null?
我测试了这个:
A computer from IBM\null?A computer from IBM?A computer from IBM?A computer from IBM?
\bye
\null
问号后面没有加空格,是我理解错了还是操作错了?
如果在问号后添加一个空格,
A computer from IBM\null? A computer from IBM? A computer from IBM? A computer from IBM?
\bye
我还是找不到任何区别。
答案1
本文假定标点符号
. , ? ! ; :
后面跟着一个空格,这是文本中的常态。
它说的是 TeX(在\nonfrenchspacing
) 还会添加一些额外的空间。
如果你写?A
,就会有不问号和 A 之间的空格,因为您告诉 TeX 不要插入它。
但是? A
您会看到(下方\nonfrenchspacing
)有一个比行中其他单词间空格稍大的空格。
但是,标点符号前的字母大写不会触发额外的空格。为此,您需要将空格系数重置为 1000,而空框就很适合这项工作。
from IBM? A computer
from IBM\null? A computer
额外的空格是美国印刷术的一个特点(在某种程度上也是英国印刷术的一个特点)。在欧洲大陆并不常见。
您可以通过声明来禁用多余的空格\frenchspacing
。
如果你使用 LaTeX,不\null
在文档正文的任何情况下都可使用。你可以将上述示例键入为
from IBM? A computer
from IBM\@? A computer
该命令\@
也可以在标点符号后使用,以避免在以下情况下出现多余的空格:
dr.\@ Treemunch
(但dr.~Treemunch
会更好)。请注意,\null
不能用于此目的:您需要dr.\null{} Treemunch
。