LaTeX 会自动处理标点符号的间距吗?

LaTeX 会自动处理标点符号的间距吗?

据说适用不同的标点符号规则,请参阅https://www.lcps.org/cms/lib/VA01000195/Centricity/Domain/1695/Punctuation%20Rules%20Table.pdf LaTeX 能自动帮我们处理这个问题吗,比如为不同的标点符号留出适当的空间?

答案1

TeX 有一种复杂的方法来处理这些实际上非常过时的建议,因为它们指的是打字机。在实际排版中,“两个空格”的概念并不适用,因为存在对齐问题。

无论如何,TeX 实现了“空间因子”。每个字符都有一个“空间因子代码”,TeX 以一种有趣的方式维护“当前空间因子”。当一个框被初始化时,当前空间因子从 1000 开始。

如果当前空间因子为F以及具有空间因素的字符G则当前空间因子将变为G除非F小于 1000,此时当前空间因子变为 1000。如果G为 0。

空间因子的标准设置为

  • 小写字母为 1000
  • 999 为大写字母
  • 0 为) ] '
  • 3000 为. ? !
  • 2000 年:
  • 1500 为;
  • 1250 为,

另一个重要规则是,(反斜杠空格)将空间因子重置为 1000。当前空间因子也可以手动设置\spacefactor=X(在哪里X是 0 至 32767 之间的整数(包括 0 和 32767)。

这个空间因子是如何使用的?当 TeX 排版一行时,它会查看每个空格前面的空间因子。单词间空间有一个拉伸分量和一个收缩分量;然后拉伸分量乘以F/1000,并将收缩组件缩小 1000/F。 如果F(严格来说)大于 2000,则需要额外的空间(额外空间) 被添加。

间距大小取决于字体。对于 10pt 的标准 Computer Modern 字体,单词间距为3.33333pt plus 1.66666pt minus 1.11111pt,并带有1.11111pt额外间距。因此,如果一行不拉伸或收缩(不太可能,但这只是举例),则文本如

A. Uthor 写的论文很棒!她在她的领域很有名。够了。

除感叹号和第二句号,其值为 4.44444pt。这是因为第一个句号后的空间因子为 1000,A空间因子代码为 999。

那类似的东西

一个著名的航天机构是 NASA。它很大。

句号后面的空格数“错误”了?使用 LaTeX,你只需输入

NASA\@.

因为\@代表\spacefactor=1000,也就是将当前空间因子代码设置为 1000 ,因此句号会将其后的空隙因子更新为 3000 。

这是否符合“两倍空格”的规定可能存在争议,但这些陈旧而不精确的建议肯定是有争议的。别担心:发布这些规则的人不知道如何查看排版页面(而不是打字页面)。

最后说明:如果您发出\frenchspacing命令,那么所有空间因子代码都将设置为 1000(嗯,事实并非如此,但大致如此)。

相关内容