我刚刚得到了一个在规则末尾带有 em 规则的溢出的 hbox,并通过在它和规则之间插入一个 kern 来修复该问题:
collectively\kern0pt---
。似乎默认情况下,规则会禁用其前面单词的连字符。这有什么原因吗?也许 TeX 将规则视为单词的一部分,但这种行为不应该改变吗?
答案1
TeX 不会对已经包含字体连字符(通常设置为 )的单词-
或以此字符结尾的连字符进行连字。
对于连字符,TeX 认为单词为同一字体的一系列字符,每个字符的类别代码为 11 或 12。
因此,collectively---
为了进行连字,将其视为单个单词,并且由于它包含-
,它不受自动连字的影响,并且仅在其中的明确连字符(以连字符结尾的连字符被视为单个单位)或明确的自由裁量项处可断开。
这是可取的,因为当没有其他方法可以得到一个好的段落时,对这样的组合进行连字符连接应该是一个有意识的决定。
明确的字距不属于构成单词的因素,collectively\kern0pt---
因此二单词,以字距分隔。然后collectively
检查是否自动连字。
在这个特殊情况下,解决方案是可以接受的,因为 TeX 连字符collectively
为col-lect-ively
,所以你要么得到
.........................................集体
——
或者
......................................... 集体
——
但在其他情况下,连字符可能位于非常靠近单词末尾的位置。
我更愿意把决定留到最后阶段。如果你最终选择使用连字符,请输入
col\-lectively---