我正在尝试让 ConTeXt 执行匈牙利语特有的自动自由连字符操作。
事实上,匈牙利语中有一个词阿松尼亚尔明确包含在lang-hyp.lua
源代码顶部的注释部分中:应将其连字符为亚尔。 注意沈阳市变成深圳-深圳当使用连字符时,同样会发生尼尼。
不幸的是,它不适用于排版匈牙利语文本:
\setuppapersize[A9]
\mainlanguage[hu]
\setuphyphenation[method=traditional]
\setuppagenumbering[location=]
\starttext
Xxxxxx asszonnyal
Xxxxxx a\discretionary{sz-}{sz}{ssz}o\discretionary{ny-}{ny}{nny}al
\stoptext
请注意method=default
和method=expanded
产生相同的结果。
作为一种解决方法,可以\discretionary
向需要的地方添加呼叫。
LaTeX () 中也尚未解决此问题,magyar.ldf
其在双重多字符辅音前使用活动字符来指示正确的连字规则。
由于 ConTeXt/LuaTeX 似乎比 LaTeX 功能更强大,我想知道我是否最终可以用匈牙利语书写,并假设双多字符辅音的连字符正确,因为这些在我们的语言中很常见?当然也存在需要人工注意的例外情况,但只处理例外情况会节省时间。
更好的办法是以某种方式将它们纳入连字模式。
我怎样才能使常见的连字机制默认正确地连字这个单词?另外,我怎样才能将特殊单词也添加leggyakoribb
到 ConTeXt 的连字模式中,该单词应连字为 而leg-gyakoribb
不是legy-gyakoribb
?
答案1
答案2
luatex\hyphenation
具有扩展语法,您可以添加 a 的参数\discretionary
。例如,使用 latex 可以这样工作:
\documentclass{article}
\usepackage[hungarian]{babel}
\hyphenation{a{sz-}{sz}{ssz}o{ny-}{ny}{nny}al}
\textwidth=1pt
\begin{document}
asszonnyal
\end{document}
我不知道是否可以在 \patterns 中以通用方式完成此操作(我认为可以,但我想我误解了这里的文档),以避免必须创建长单词列表。您可以在 tex-hyphen 邮件列表中询问:https://www.tug.org/mailman/listinfo/tex-hyphen或在上下文列表中。
我也不知道如何将我的 latex 示例转换为 context。这里的 contextgarden 有点模糊。