假设我已完成\hyphenation{a-no-ma-ly}
。在文本中,该词被异常断开。这(从词源学上)令人不快,但可能比禁止它所导致的间距要好。我可以在文本中做些什么来惩罚这个中断吗?我试过了… ano\penalty100maly
,但这只产生了一个没有连字符的中断。
PS:没有办法将\penalty
(或类似的东西) 与自由连字符一起使用吗?例如,是否可以\-
像这样重新定义:a\-1no\-2ma\-1ly
?
答案1
不是\hyphenation
,这是 tex 的一个众所周知的限制。它最常出现在含有大量复合词的语言中,在这种情况下,最好(但不可能)在复合词之间进行拆分。
同样,使用英语的默认设置\lefthyphenmin
和,\righthyphenmin
TeX 将不会使用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}