多语、韩语和 LuaLaTeX

多语、韩语和 LuaLaTeX

我对 polyglossia 包中的语言名称感到困惑。polyglossia 文档第 5 页的表 1 以小写形式列出了语言名称(例如“korean”,而不是“Korean”)。但是当我尝试在文档中使用小写名称“korean”并使用 LuaLaTeX 运行它时,我收到错误。这是 MWE:

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{korean}
\setmainfont{UnBatang}

\begin{document}
한국
\end{document}

..这是错误消息(我假装它是代码,以使其在 stackexchange 上脱颖而出):

You cannot set field spec in a node of type glue.
\newpage ...k \@nobreakfalse \everypar {}\fi \par
                                              \ifdim \prevdepth >\z@ \vs...

LuaLaTeX 似乎可以正常使用大写名称“Korean”。

我尝试过的其他 (3) 种小写语言名称(俄语、波斯语和泰米尔语)没有出现这种错误。

在 XeLaTeX 中,大写和小写名称都不会触发错误消息,但大写版本确实会给我一个相当奇怪的消息:

Package polyglossia Warning: No hyphenation patterns were loaded for `orean'
(polyglossia)   I will use \language=\l@nohyphenation instead on input line 6.

--因此显然有什么东西把大写的“K”去掉了。小写的“korean”没有出现这样的信息。

我猜想 LuaLaTeX 也可能会删除大写字母“K”,因此 polyglossia 不会执行某些操作(例如加载连字模式),从而导致 lualatex 出现错误。换句话说,lualatex 中大写字母“Korean”的表面上成功,可能是由于其他错误导致的。

多语种应该使用小写还是大写的语言名称?

如果这是 lualatex 和/或 polyglossia 中的一个错误(并且 polyglossia 中的语言名称应该是小写的),那么有没有比为韩语提供大写名称更好的解决方法?

答案1

名称应为小写。在我的系统上,传递此名称Korean甚至会导致警告:

Package polyglossia Warning: File gloss-Korean.ldf does not exist!
(polyglossia)                I will nevertheless try to use hyphenation pattern
s for Korean. on input line 3.

多语语言文件korean已损坏,因为它试图设置节点glue_specglue,但两年来已glue_spec不再用于此目的。

您可以通过找到该文件gloss-korean.ldf并更改其中的几行来临时修复该问题:

替换(大约 690 行)

local function get_new_glue (wd, st, sh)
    local glue = node.new("glue")
    local spec = node.new("glue_spec")
    spec.width   = wd
    spec.stretch = st
    spec.shrink  = sh
    glue.spec = spec
    return glue
end

local function get_new_glue (wd, st, sh)
    local glue = node.new("glue")
    glue.width   = wd
    glue.stretch = st
    glue.shrink  = sh
    return glue
end

在第 706 行替换

    local hss = get_new_glue(0, 65536, 65536)
    hss.spec.stretch_order = 2
    hss.spec.shrink_order  = 2

    local hss = get_new_glue(0, 65536, 65536)
    hss.stretch_order = 2
    hss.shrink_order  = 2

我会将这些更改发送给polyglossia维护人员,但看起来不会polyglossia很快有任何更新。

相关内容