巴西葡萄牙语 babel 选项导致 lualatex 出现错误

巴西葡萄牙语 babel 选项导致 lualatex 出现错误

似乎lualatex不知道葡萄牙语的巴西方言与babel包裹。

编译简单文档时:

\documentclass{article}
\usepackage[brazil]{babel}

\begin{document}

Documento de teste.

\end{document}

lualatex给出以下错误信息:

! LuaTeX error ...re/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua:50: luat
ex-hyphen: no entry in language.dat.lua for this language: brazil
stack traceback:
    [C]: in function 'error'
    ...re/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua:22: in function 'err'
    ...re/texmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua:50: in function 'loadl
anguage'
    <\directlua >:1: in main chunk.
\bbl@patterns ...pestring {#1}", \the \language )}
                                                  \fi \fi \fi 
l.165 \ldf@finish\CurrentOption

这是一个已知错误吗?有修复方法吗?

答案1

Khaled Honsy 编写了一个补丁,我向 CTAN 提交了新版本的 hyph-utf8,因此它应该很快就会出现在 TeX Live 中。

如果有人想测试,请尝试更换texmf-dist/tex/luatex/hyph-utf8/hyphen.cfgtexmf-dist/tex/luatex/hyph-utf8/luatex-hyphen.lua在您的发行版中并运行

sudo fmtutil-sys --byfmt lualatex

或者简单地fmtutil --byfmt lualatex。在 MikTeX 中,您可以在 GUI 的某个地方重建格式。

目前唯一受此变化影响的语言同义词是:

canadian               => english   
australian, newzealand => british   
austrian               => german    
naustrian              => ngerman   
brazilian, brazil      => portuguese

Claudio Beccari 发现许多同义词在 Polyglossia 中也不起作用。我们可能会在未来改变同义词的处理方式,但希望这能暂时解决这个问题。

答案2

一个快速的解决方法是在你的计算机上找到language.dat.lua(注意,可能有两个,如果你使用 TeX Live,你需要 TEXMFVAR 中的一个;我的在/usr/local/texlive/2011/texmf-var/tex/generic/config/language.dat.lua),并将 portuguese 的同义词更改为

synonyms = { 'portuges', 'brazil', 'brazilian' },

为了得到正确的修复,我将与 luatex 特定代码的作者(Manuel)讨论如何加载连字模式。如果他或其他人能够快速提供修复,我们将应用它,否则我将在 TeX Live 中采取临时解决方法,并将两个额外的同义词添加到hyphen-portuguese.tlpsrc。奥地利的问题有多严重 - 人们真的使用 吗\usepackage[austrian]{babel}

相关内容