连字符惩罚

连字符惩罚

假设我已完成\hyphenation{a-no-ma-ly}。在文本中,该词被异常断开。这(从词源学上)令人不快,但可能比禁止它所导致的间距要好。我可以在文本中做些什么来惩罚这个中断吗?我试过了… ano\penalty100maly,但这只产生了一个没有连字符的中断。

PS:没有办法将\penalty(或类似的东西) 与自由连字符一起使用吗?例如,是否可以\-像这样重新定义:a\-1no\-2ma\-1ly

答案1

不是\hyphenation,这是 tex 的一个众所周知的限制。它最常出现在含有大量复合词的语言中,在这种情况下,最好(但不可能)在复合词之间进行拆分。

同样,使用英语的默认设置\lefthyphenmin和,\righthyphenminTeX 将不会使用a-nomaly,或者anoma-ly\hyphenation{a-no-ma-ly}相同\hyphenation{ano-maly}

在文本中,在给定的实例中,你当然可以在任何地方手动中断

例如:

强制中断:

... an-\linebreak
omaly ...

或明确的自由裁量权:

... an\-omaly

连字选择的优先级是 (1) 文本中单词内的明确自由裁量权;(2) 列表中指定的模式\hyphenation(可以限制为特定语言);(3) 当前语言的指定模式。

答案2

在 LuaTEX 中,您可以对\hyphenpenalty不必要的连字符赋予比默认值 50 更严厉的惩罚。

\newcommand\hyphenif[1]{{\hyphenpenalty#1\-}}

{\let\\\hyphenif
  a\-no\\{80}ma\\{60}ly}

相关内容