连字符和连字:空括号组 {} 的效果

连字符和连字:空括号组 {} 的效果

对于以下示例,

\hsize =2in

shelf{}ful shelf{}ful shelf{}ful
rot{}ten rot{}ten
shelf{}ful shelf{}ful shelf{}ful

shelf{}ful shelf{}ful
rot{}ten rot{}ten
shelf{}ful shelf{}ful

\bye

执行结果如下:

在此处输入图片描述

我的问题是:在第一段中,为什么第一个shelfful没有连字符,而其他的shelfful都有连字符?

答案1

TeXBook 有这个练习:

锻炼有时你会遇到像 'shelfful' 这样的罕见单词,shelf{}ful没有ff连字符看起来会更好。你如何才能欺骗 TeX 认为这样的单词中没有两个连续的 f?

回答 {shelf}fulshelf{}ful等;甚至 shelf\/ful,这会产生 shelf/ful 而不是 shelf{\kern0pt}ful。事实上,后一种想法(插入斜体校正)更可取,因为 TeX 会在连字 后自行重新插入 ff 连字shelf{}ful。附录 H 指出,连字会放入不包含明确字距的带连字的单词中,而斜体校正是明确的字距。)但斜体校正可能太多(尤其是在斜体字体中);shelf{\kern0pt}ful通常是最好的。

注意,“连字符之后”应读作“之后连字” 如果 TeX 尝试对单词进行连字,它实际上会在可能的断点处将其拆分,以添加自由连字符。如果此时未使用连字,则单词将在没有这些连字点的情况下重新组合,但原始{}信息会丢失,并且将在重新组合的单词中形成连字。

TeX(不是 luatex)从不尝试对段落的第一个单词进行连字符处理(本质上是一个错误,被归类为保持 TeX 稳定性的功能),并且如果它可以将段落分成几行并且保持在\pretolerance错误范围内,它也不会尝试对段落中的任何单词进行连字符处理。因此,是否真正打破 ff 连字符取决于整个段落,而不仅仅是使用f{}f单词的位置。{}

相关内容