看完之后这个非常有用的 TeX.SE 线程关于间距和标点符号,我一直在思考一个似乎没有得到解决的问题:\frenchspacing
与修改后的标点符号一起使用\@.
,\@?
等。
据我直观地了解,使用\frenchspacing
这些命令可以正常工作(即,似乎没有任何中断,并且额外的空间被正常抑制),但是这样做是否会出现问题?
此外,在使用 时\frenchspacing
,我是否应该\@.
在通常需要的地方继续使用 及其相关功能,以防有人\frenchspacing
日后想要删除?以这种方式迁就(假设的)未来编辑者是“标准”、“超出职责范围”还是“疯狂”?
答案1
的定义\@
很简单\spacefactor 1000
,所以根据 TeX 的规则,在 之后不会添加额外的空格.\@
,而 之后则会添加\@.
(如果\nonfrenchspacing
有效)。
的定义\frenchspacing
只是将所有标点符号的位数设置\sfcode
为 1000,因此永远不会有额外的空格。因此,制度\@
中的 操作\frenchspacing
无效。但这也没有坏处。
如果你担心你的文本会被恢复原状\nonfrenchspacing
,那就使用它。否则就完全没有必要。
实际上,在某些情况下,它可能会造成损害:amsthm
重新定义\frenchspacing
以使用空间因子来决定标点符号是否存在。然而,这隐藏在宏中,因此很难添加\@
导致错误的内容。