Am Sun, 11 Mar 2012 19:42:25 +0100 schrieb Mojca Miklavec:
> thank you very much for this bug report. (We can move further
> discussion to tex-hyphen.)
>> There seems to be a problem with loading hyphenation patterns for Brazilian
>> Portuguese when using babel with LuaLaTeX. The following document fails
>> miserably because (I think) 'brazilian' (or 'brazil') isn't set as a synonym
>> for 'portuguese' (or 'portuges') in language.dat.lua
>> % !TEX TS-program = LuaLaTeX
>> \documentclass{article}
>> \usepackage[brazil]{babel}
>>
>> \begin{document}
>>
>> Documento de teste.
>>
>> \end{document}
>>
>> Since language.dat.lua is generated from language.dat and both are generated
>> by tlmgr I'm posting this here.
>>
>>
>> The issue was reported here: http://tex.stackexchange.com/q/47605/2693
>
> Is this considered a bug in babel, a bug in hyphenation patterns
> databases or a bug in luatex-based pattern loading?
>
> It is trivial to add an extra entry to language.dat, language.def and
> language.dat.lua and I can do that, but I would like to also hear
> other's opinion.
>
> Since the given chunk of code seems to work fine in xelatex and
> pdflatex (without the need to add extra synonyms), I guess that this
> might be a problem in the lua code? I don't understand Babel well
> enough, but I assume that it does the following:
> if brazil patterns are available
> use brazil patterns
> else
> use portugues patterns as a fallback
> end
> and lualatex chokes on trying to load brazil patterns that don't exist?
I get the problem in miktex too. I don't have "brazil" somewhere in
my language.dat-files. In this case babel sets up things so that
l@brazil points to the same "number" as l@portuges:
> \l@brazil=\char"D.
l.69 \show\l@brazil
> \l@portuges=\char"D.
l.70 \show\l@portuges
This is naturally fine for pdflatex which only needs the language
number of the already loaded patterns. It now can load and use
"\l@brazil".
But luatex has still to load the patterns and my guess is that it is
trying to find them by name and so fails.
> In my opinion it makes slightly more sense if babel/polyglossia is
> able to deal with synonyms properly and only load brazil patterns if
> different patterns are actually available.
Babel doesn't load brazil patterns, it only give the portuguese
patterns the additional name "\l@brazil".
Imho there are two possible solutions:
The luatex code could - if patterns can't be found - go through the
list of languages and try to find the one "\l@xxx" with the same
number as the actual "\l@yyy".
Or in the language.dat brazil could be added as synonym.
--
Ulrike Fischer