1

I am trying to understand better how Babel works, especially when used with LuaLaTeX. (For years I used Polyglossia and XeLaTeX).

It appears to me that, for many languages, you simply set the main language when you declare use of Babel, as follows:

\usepackage[french]{babel}

However, when I try to do the same with Arabic...

\usepackage[arabic,bidi=basic]{babel}

...the text does not appear, and I get many errors. Instead I find I must use the following:

\usepackage[bidi=basic]{babel}
\babelprovide[import,main]{arabic}
\babelfont[arabic]{rm}[Scale=1.5]{Amiri}

I am happy to do this of course, but am trying to understand how language declaration works—why declaring Arabic is not the same as declaring, say, French. Many thanks for any clarification.

1 Answer 1

3

This ‘package interface’ for ini based languages has not been yet implemented. That's all 😉. I hope it will be available in a few months, because this is the standard way to select languages in LaTeX. A separate macro to load languages (\babelprovide) works, but it's not a good idea in general.

babel is introducing a new model to define languages based on ini files, as opposed to the old good (but not obsolete) monolithic model based on ldf files with self-contained languages, which doesn't always interoperate correctly. Many things have been written from scratch, and Rome was not built in a day 🙂. Since \babelprovide does the trick, it wasn't one of my priorities.

This doesn't mean the ldf model isn't recommended. On the contrary, in monolingual and ‘mostly monolingual’ documents (see the manual for an explanation of the latter) it's still the preferred way to load languages if available. But ini files in many languages are as complete as ldf files, and in some cases, like arabic for xetex and luatex, even more complete.

1
  • That's very clear and helpful, Javier. As an "end user" rather than someone who can understand what happens behind the curtains, I'll simply wait for Rome to be completed. 🙂 Unless there are side effects of which I am not aware, for now I will merrily continue to typeset my Arabic documents using the \babelprovide method.
    – talazem
    Jun 16, 2020 at 15:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .