(Xe)LaTex 中嵌套 \discretionary-ies 导致错误

(Xe)LaTex 中嵌套 \discretionary-ies 导致错误

我想为亚美尼亚语单词设置自动连字倫敦在 XeLaTeX 中用 \discretionary 连接。问题是,有四个辅音连在一起,而亚美尼亚语对于这些单词的连字符规则非常奇怪(对于英语使用者而言)。该单词可以用两种方式连字符:倫敦ը雙方倫坡ը閣֊նել,这两封信中ը重新出现在它发出的声音中。这可以通过以下方式正确实现

յան\h{֊}{դըգ}{դ\h{ըգ֊}{}{գ}}նել

我将其定义\h

\newcommand{\h}[3]{\discretionary{#1}{#2}{#3}}

但是这里有嵌套的\h-s,所以会出现错误

Improper discretionary list. ... յան\h{֊}{դըգ}{դ\h{ըգ֊}{}{գ}}

并且编译器(XeLaTex)仅删除了\h需要的第二个。

我在互联网上没有找到任何关于此主题的信息,不幸的是,没有针对亚美尼亚语的自动连字包。嵌套的\discretionary-ies 有什么问题?

PS 亚美尼亚语使用另一种符号表示连字符(略弯曲的֊, 不是-),所以无论如何我都需要使用\discretionary

答案1

正如您所见,\discretionaryTeX 不支持嵌套 ies,但作为一种解决方法,您可以使用它在大多数文档中每行都会有五个以上的字符,因此不太可能同时使用两个连字符。因此,通常您可以使用

յան\h{֊}{դը}{դ}\h{ըգ֊}{}{գ}նել

当然,这在技术上允许(错误的)连字符

յան֊
դըըգ֊
նել

但在正常的行长下,这不太可能被选择,因为“դըըգ֊”远远不能填满一行。

如果你不想做出这样的妥协,你需要LuaTeX虽然 LuaTeX 一般也不支持嵌套自由裁量,但它支持一种特殊情况,应该适用于此处:使用

\newcommand\weirddisc[6]{%
  \discretionary{#1}{#2}{#3}\discretionary{#4}{#5}{#6}%
  \directlua{
    local last = tex.nest.top.tail
    last.subtype = 5
    last.prev.subtype = 4
  }}
...
յան\weirddisc{֊}{դըգ}{դգ}{դըգ֊}{}{դըգ-}նել

这里

\weirddisc{1}{2}{3}{4}{5}{6}

代表“嵌套的自由裁量权”

\h{1}{\h{4}{5}{2}}{\h{6}{5}{3}}

相关内容