我刚刚看到一个有趣的片段新哈特规则(第 59 页):
这新牛津拼写词典 因此,使用两个级别的分词——“首选”分词(标记为 |),在几乎任何情况下都是可以接受的,以及“允许”分词(标记为¦),如果可以选择的话,这种分词就不那么好了。因此无益显示为 无帮助。
这个问题延伸LaTeX 连字。
这似乎是改进连字的一个非常好的想法;是否有 TeX 格式或包提供此类函数的接口?具体来说,我是否有办法为任意选择的单词提供连字优先级,就像 Liang 一样?
尽管 TeXbook 的附录 H 似乎提到了与 Liang 算法 (1994, p.449) 相关的连字优先级,但我在 TeX by Topic 中找不到任何有用的东西
答案1
TeX(以及它的所有变体,包括 LuaTeX)均未改变地实现了 Liang 的连字算法(pTeX 可能是个例外,因为日语需要完全不同的方法,但 Liang 的算法可能也在那里可用)。
该算法不实施任何连字优先级!模式中确实会出现不同的数字,但它们的存在只是为了能够覆盖其他模式做出的决定:如果最大数字是“奇数”,那么到最后就会找到连字点。
如果我没记错的话,这些模式是如何得出的,那么这是一个多遍生成:首先,从一组带连字符的单词中生成仅具有值 0 和 1 的模式。然后,应用这些模式并查看由它们产生的所有错误连字符。对于那些误报,将生成值为 2(禁止)的模式。然后,查看新集合中缺少的内容并生成值为 3 的模式(在某些位置覆盖 2),然后……因此,理论上这些数字可以上升到您想要的高度,但通常在几次迭代之后结果就已经相当不错了。无论如何,底线是算法为每个位置生成一个简单的是/否,并且没有任何权重。
要做到这一点,需要研究如何最好地捕获、存储和使用这些数据,正如 Joseph 所说,这是我在 1990 年就强调过的 TeX 问题之一。E-TeX:未来 TeX 扩展指南。遗憾的是,从那以后什么也没有发生。
David 建议使用两组连字模式,首先只应用“首选”模式,然后再应用“完整”模式,这是一个有趣的想法。它可能适用于 LuaTeX,但文本中包含多种语言的单词,这很复杂。还有一个问题是,这是否是最好的方法,或者在换行时使用不同的缺点(即,在首选位置使用较低的缺点)是否更好。我的假设是,总的来说,这将产生更好的解决方案——但同样,这确实需要研究,到目前为止还没有人进行过研究。
还有一个有趣的问题,即什么更适合用作连字符点。在我看来,非常不理想的是那些你很可能从单词中误解含义的连字符点,例如德语
Nonnen-kloster = nuns abbey
Nonnenklo-ster = nuns toilet + <no word>
Spar-gelder = (bank) savings
Spargel-der = asparagus + the
但出于同样的原因,我不同意牛津词典选择“首选”连字点作为
un-helpful
意味着“有帮助”这个词出现在行/页的开头,如果读者因为某种原因从此处开始浏览/阅读,则可能导致读者获得与预期相反的含义。