如何在不指定允许的连字符的情况下阻止单词的特定连字符

如何在不指定允许的连字符的情况下阻止单词的特定连字符

\hyphenation命令可用于列出允许的单词连字符形式。例如,\hyphenation{incor-rect-ly}表示单词错误地被允许。

是否有一个补充命令允许人们列出不允许单词的连字符?我不想列出所有允许的版本。例如,我想说\nohyphenation{in-correctly} 没有指定允许的版本。我很懒/效率高,不想花太多心思考虑多音节单词。

答案1

从你的回答来看,你似乎并不真正明白这\hyphenation意味着什么。

的目的\hyphenation{some-word-with-hyphens}不仅仅是允许 TeX 在连字符所在的地方使用连字符:它还禁止在其他地方使用连字符。例如,假设您想通过在末尾的“ed”之前允许断点来为单词“advised”添加断点(在任何英文排版样式中,正确的连字符都是“ad-vised”)。您唯一能做到这一点的方法是说\hyphenation{ad-vis-ed};如果您说\hyphenation{advis-ed}您将禁止使用连字符“ad-”,这是...不明智的。

为了解决您的问题,我们需要引入互补命令,例如,我们可以调用\allowhyphenation\forbidhyphenation。我看不出使用 TeX 连字算法的当前实现可以轻松实现这一点;似乎您必须添加针对单词量身定制的模式,以便允许或禁止特定的断点,这相当尴尬。或者,您可以编写一个函数来扫描单词以查找其所有连字断点,根据刚刚发出的命令的要求添加或删除其中一些断点,然后再次将其提供给它\hyphenation。这些都不是特别简单。您最好使用\hyphenation它来实现它的设计目的:在一个单词中指定所有所需的断点。您可能会发现它们毕竟没有那么糟糕。显然,也可能存在错误;如果您发现任何错误,请报告这里

当然,如果您使用的是 LuaTeX,那么一切都将变得无效,因为您可以用 Lua 中实现的新算法替换整个连字算法。

相关内容