ConTeXt 中的自动自由连字

ConTeXt 中的自动自由连字

我正在尝试让 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=defaultmethod=expanded产生相同的结果。

作为一种解决方法,可以\discretionary向需要的地方添加呼叫。

LaTeX () 中也尚未解决此问题,magyar.ldf其在双重多字符辅音前使用活动字符来指示正确的连字规则。

由于 ConTeXt/LuaTeX 似乎比 LaTeX 功能更强大,我想知道我是否最终可以用匈牙利语书写,并假设双多字符辅音的连字符正确,因为这些在我们的语言中很常见?当然也存在需要人工注意的例外情况,但只处理例外情况会节省时间。

更好的办法是以某种方式将它们纳入连字模式。

我怎样才能使常见的连字机制默认正确地连字这个单词?另外,我怎样才能将特殊单词也添加leggyakoribb到 ConTeXt 的连字模式中,该单词应连字为 而leg-gyakoribb不是legy-gyakoribb

答案1

下面是 Ulrikes 解决方案的 ConTeXt 版本,它使用 LuaTeX 的命令扩展\hyphenation来设置\discretionary命令参数中的值。

\startexceptions[hu]
a{sz-}{sz}{ssz}o{ny-}{ny}{nny}al
\stopexceptions

\starttext

\starttabulate[|l|p(1pt)|]
\NC English   \EQ              asszonnyal \NC\NR
\NC Hungarian \EQ \language[hu]asszonnyal \NC\NR
\stoptabulate

\stoptext

ConTeXt 的连字异常

答案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 有点模糊。

相关内容