Max Nikulin writes: > On 18/07/2022 17:32, Juan Manuel Macías wrote: >> For example, something like this: >> latex-lang: babel(sorbian) variant(upper) >> provide(hebrew:import,hyphenrules=+) options(bidi=default), >> others(french,catalan) >> returns: >> \usepackage[french,catalan,uppersorbian,bidi=default]{babel} >> \babelprovide[import,hyphenrules=+]{hebrew} > > I have never tried so complex babel configuration. Should "latex-lang" > options affect ox-latex in any way besides adding > \usepackage[...]{babel} and \babelprovide[...]{...}? If not, maybe it > is better to use
I really think not. It's more of a way to have a more or less complete configuration of babel (including font options) in a single line and with a more org-centric syntax. The drawback is that the user would have to know in this case what he is putting, and know the babel options. > #+latex_header: \usepackage[french,catalan,uppersorbian,bidi=default]{babel} > #+latex_header: \babelprovide[import,hyphenrules=+]{hebrew} That's what I would do as a user. I write all my preambles in pure LaTeX and don't let Org write anything before the \begin{document} :-) > directly and add default \usepackage[french]{babel} based on > "#+language:" only in the case when babel is not loaded through > "#+latex_header:". Currently such strategy is implemented for inputenc > or some other package. humm, what do you think about this idea?: If I'm not mistaken, the current behavior is as follows. If in the org document there is this: #+latex_header: \usepackage[english,french,AUTO]{babel} #+language: es it returns: \usepackage[english,french,spanish]{babel} But it could be extended to the new babel syntax, so that: #+latex_header: \usepackage[french,catalan,AUTO,bidi=default]{babel} #+latex_header: \babelprovide[import,hyphenrules=+]{hebrew} #+language: es returns: \usepackage[french,catalan,spanish,bidi=default]{babel} \babelprovide[import,hyphenrules=+]{hebrew} Or, if we want to load the main language via babelprovide (using an ini file instead of an ldf file): #+latex_header: \usepackage[french,catalan,spanish]{babel} #+latex_header: \babelprovide[main,import]{AUTO} #+language: ru returns: \usepackage[french,catalan,spanish]{babel} \babelprovide[main,import]{russian} (in this case french, catalan and spanish are the secondary languages) And this could be extended (in LuaTeX and XeTeX only) to the class options (which is a new babel feature): #+latex_class: article #+latex_class_options: [11pt,draft,AUTO] #+LaTeX_Header: \usepackage{babel} #+language: ru returns: \documentclass[11pt,draft,russian]{article} \usepackage{babel}