似乎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.cfg和texmf-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}
?