Dear all, Please find enclosed a proposed patch (against master) to document the need for babel/polyglossia in order to honor #+language in LaTeX export.
This is purely a documentation patch. A better solution would be to detect the use of a non-default #+language: and act accordingly. Nicolas notes (rightly) that babel (and polyglossia, BTW) are too "invasive" to be default, and is shy of auto-loading the necessary package(s) "automagically. I do not (yet) know how ti reconcile these imperative, hence the present interim atch (which should disappear if/when a better solution is created). HTH, -- Emmanuel Charpentier Le jeudi 29 novembre 2018 à 20:12 +0100, Nicolas Goaziou a écrit : > Emmanuel Charpentier <emanuel.charpent...@gmail.com> writes: > > > This is *not* *documented* (not even in the `org-latex-packages- > > alist''s > > docstring). > > I know. I fixed `org-latex-packages-alist''s docstring two days ago. > > > Also agreed, with the reservation that "invasive" didn't mean the > > same > > thing in the 1980s (when the core size of computers was measured in > > kilobytes) and in the 2010s (the current core measurement unit is > > the > > /giga/byte...). > > Not invasive by its sheer size, but by the number of alterations it > generates in the LaTeX default behaviour, and the incompatibilities > it > may introduce. For example there used to be issues between frenchb > and > KOMA-Script. > > > Again, I think that the end user should *not* have to worry with > > this only > > when exporting to LaTeX (or beamer or PDF). > > Ideally, that would be nice. > > > If this can be handled silently when exporting to ODT, HTML or > > plain > > text, it should be handled silently when exporting to LaTeX. > > I disagree. Packages should not be loaded /silently/. > > > I do not know how to handle this. My *hunch* is that the Latex > > Export > > function generating the preamble should check for language > > It does already, in `org-latex-guess-babel-language'. > > > and if not default, add the relevant package(s) to the preamble. > > Don't. Anything that is in the header should be declared. > > We could try and see if Babel causes trouble by adding it to default > packages in "next" branch. I'd rather do that than inserting it > magically.
From 7fa155f018687a3395c972661c42159dbfc35fe6 Mon Sep 17 00:00:00 2001 From: Emmanuel Charpentier <emm.charpent...@free.fr> Date: Sun, 2 Dec 2018 21:01:08 +0100 Subject: [PATCH] org-manual.org: document the need for babel when setting #+language: * Add a note to Export Variables. * Describe the use of org-latex-packages-alist for loading babel (or polyglossia) with the right argument in LaTeX specific export settings. --- doc/org-manual.org | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/doc/org-manual.org b/doc/org-manual.org index 458e59a4a..349d01e48 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -11249,6 +11249,10 @@ global variables, include: example, Org translates =Table of contents= to the French =Table des matières=. + For export to LaTeX format (or LaTeX-related formats such as PDF + or =beamer=), the =org-latex-package-alist= variable needs + configuration in [[LaTeX specific export settings]] ([[LatexSetupForLanguage][description)]] + - =SELECT_TAGS= :: #+cindex: @samp{SELECT_TAGS}, keyword @@ -12973,6 +12977,26 @@ general options (see [[*Export Settings]]). the document's front matter. Use multiple =DESCRIPTION= keywords for long descriptions. +- =LANGUAGE= :: + #+cindex: @samp{LANGUAGE}, keyword + #+vindex: org-export-default-language + #+vindex: org-latex-package-alist + <<LatexSetupForLanguage>>LaTeX-specific setting: in order to be + effective in LaTeX export, the =babel= or =polyglossia= packages + (according to the LaTeX compiler used) must be loaded with the + appropriate language as argument. + + These packages being too invasive for loading them by default, + this is not currently done by default. This can be accomplished + by setting (or adding to) the =org-latex-package-alist= variable + the following snippet: + +#+BEGIN_EXAMPLE +'(("AUTO" "babel" t '("pdflatex")) + ("AUTO" "polyglossia" t '("xelatex" "lualatex"))) +#+END_EXAMPLE + + - =LATEX_CLASS= :: #+cindex: @samp{LATEX_CLASS}, keyword -- 2.19.2