|
@@ -255,12 +255,17 @@ to \\providecommand, and then place \\usepackage commands based
|
|
|
on the content of `org-latex-packages-alist'.
|
|
|
|
|
|
If your header, `org-latex-default-packages-alist' or
|
|
|
-`org-latex-packages-alist' inserts
|
|
|
-\"\\usepackage[AUTO]{inputenc}\", AUTO will automatically be
|
|
|
-replaced with a coding system derived from
|
|
|
-`buffer-file-coding-system'. See also the variable
|
|
|
+`org-latex-packages-alist' inserts \"\\usepackage[AUTO]{inputenc}\",
|
|
|
+AUTO will automatically be replaced with a coding system derived
|
|
|
+from `buffer-file-coding-system'. See also the variable
|
|
|
`org-latex-inputenc-alist' for a way to influence this mechanism.
|
|
|
|
|
|
+Likewise, if your header contains \"\\usepackage[AUTO]{babel}\",
|
|
|
+AUTO will be replaced with the language related to the language
|
|
|
+code specified by `org-export-default-language', which see. Note
|
|
|
+that constructions such as \"\\usepackage[french,AUTO,english]{babel}\"
|
|
|
+are permitted.
|
|
|
+
|
|
|
The sectioning structure
|
|
|
------------------------
|
|
|
|
|
@@ -910,6 +915,10 @@ Insertion of guessed language only happens when Babel package has
|
|
|
explicitly been loaded. Then it is added to the rest of
|
|
|
package's options.
|
|
|
|
|
|
+The argument to Babel may be \"AUTO\" which is then replaced with
|
|
|
+the language of the document or `org-export-default-language'
|
|
|
+unless language in question is already loaded.
|
|
|
+
|
|
|
Return the new header."
|
|
|
(let ((language-code (plist-get info :language)))
|
|
|
;; If no language is set or Babel package is not loaded, return
|
|
@@ -918,16 +927,19 @@ Return the new header."
|
|
|
(not (string-match "\\\\usepackage\\[\\(.*\\)\\]{babel}" header)))
|
|
|
header
|
|
|
(let ((options (save-match-data
|
|
|
- (org-split-string (match-string 1 header) ",")))
|
|
|
+ (org-split-string (match-string 1 header) ",[ \t]*")))
|
|
|
(language (cdr (assoc language-code
|
|
|
org-latex-babel-language-alist))))
|
|
|
- ;; 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))))))
|
|
|
+ ;; If LANGUAGE is already loaded, return header without AUTO.
|
|
|
+ ;; Otherwise, replace AUTO with language or append language if
|
|
|
+ ;; AUTO is not present.
|
|
|
+ (replace-match
|
|
|
+ (mapconcat (lambda (option) (if (equal "AUTO" option) language option))
|
|
|
+ (cond ((member language options) (delete "AUTO" options))
|
|
|
+ ((member "AUTO" options) options)
|
|
|
+ (t (append options (list language))))
|
|
|
+ ", ")
|
|
|
+ t nil header 1)))))
|
|
|
|
|
|
(defun org-latex--find-verb-separator (s)
|
|
|
"Return a character not used in string S.
|