This patch allows ox-latex to make a guess on which language to use
if babel is a default package. See the head of the patch.
Two notes on the funcion:
1. As far as I remember, if more than one language is loaded the
order is not neutral one one should issue a \selectlanguage{LANG}.
2. Perhaps it should look for babel /and/ pologlossya or whatever the
package the xelatex and perhaps lualatex uses. Any thoughs?
–Rasmus
--
Together we'll stand, divided we'll fall
>From dde65056267bcb4c1bfe23c2e66f570739bb72c7 Mon Sep 17 00:00:00 2001
From: "rasmus" <[email protected]>
Date: Sat, 1 Jun 2013 00:20:18 +0200
Subject: [PATCH] Allow AUTO argument to org-latex-guess-babel-language.
* ox-latex.el (org-latex-guess-babel-language): ignore AUTO
if argument.
* ox-latex.el (org-lat ex-guess-babel-language): use language
if is not in =`org-latex-inputenc-alist'=.
* ox-latex.el (org-latex-guess-babel-language): retain case
in final regexp of function.
Behavior changes:
1. =("AUTO" "babel" t)= works like ("AUTO" "inputenc" t) in
=`org-latex-default-packages-alist'=. I.e. the default
language is choosen.
2. if #+LANGUAGE: mylang then then \usepackage[mylang]{babel} in
outpu.
TINYCHANGE
---
lisp/ox-latex.el | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 3a01693..033d318 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -929,19 +929,21 @@ Return the new header."
;; If no language is set or Babel package is not loaded, return
;; HEADER as-is.
(if (or (not (stringp language-code))
- (not (string-match "\\\\usepackage\\[\\(.*\\)\\]{babel}" header)))
+ (not (string-match "\\\\usepackage\\[\\(AUTO\\)?,?\\(.*\\)\\]{babel}" header)))
header
(let ((options (save-match-data
- (org-split-string (match-string 1 header) ",")))
- (language (cdr (assoc language-code
- org-latex-babel-language-alist))))
+ (org-split-string (match-string 2 header) ",")))
+ (language (or
+ (cdr (assoc language-code
+ org-latex-babel-language-alist))
+ language-code)))
;; If LANGUAGE is already loaded, return header. Otherwise,
;; append LANGUAGE to other options.
(if (member language options) header
(replace-match (mapconcat 'identity
(append options (list language))
",")
- nil nil header 1))))))
+ t nil header 1))))))
(defun org-latex--find-verb-separator (s)
"Return a character not used in string S.
--
1.8.3