From: "Juan Manuel Macías" <maciaschain@posteo.net>
To: Ihor Radchenko <yantar92@gmail.com>
Cc: orgmode <emacs-orgmode@gnu.org>
Subject: Re: [PATCH] ox-latex.el: Unify in one single list Babel and Polyglossia languages alists
Date: Thu, 14 Jul 2022 12:34:27 +0000 [thread overview]
Message-ID: <87lesvlvos.fsf@posteo.net> (raw)
In-Reply-To: <87czeduxnz.fsf@localhost> (Ihor Radchenko's message of "Sun, 10 Jul 2022 17:25:36 +0800")
[-- Attachment #1: Type: text/plain, Size: 368 bytes --]
Ihor Radchenko writes:
> Thanks!
> This looks like an improvement.
> However, we may need to preserve the old defconsts for the time being
> and declare them obsolete.
Hi, Ihor,
I attach the new version of the patch with both variables declared
obsolete.
If everything is ok, I can add what is necessary to NEWS and to the Org Manual.
Best regards,
Juan Manuel
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-lisp-ox-latex.el-New-variable-org-latex-language-ali.patch --]
[-- Type: text/x-patch, Size: 8306 bytes --]
From 9ff77e71a8cd89b883d5ead37909c887178e4402 Mon Sep 17 00:00:00 2001
From: Juan Manuel Macias <maciaschain@posteo.net>
Date: Thu, 14 Jul 2022 13:42:50 +0200
Subject: [PATCH] * lisp/ox-latex.el: New variable `org-latex-language-alist'
(org-latex-language-alist): Unify in a single list
`org-latex-polyglossia-language-alist' and
`org-latex-babel-language-alist', and make the two variables obsolete.
---
lisp/ox-latex.el | 173 ++++++++++++++++++++---------------------------
1 file changed, 74 insertions(+), 99 deletions(-)
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 1aab8ffd5..9e97f38db 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -172,144 +172,115 @@
\f
;;; Internal Variables
-(defconst org-latex-babel-language-alist
- '(("af" . "afrikaans")
- ("bg" . "bulgarian")
- ("ca" . "catalan")
- ("cs" . "czech")
- ("cy" . "welsh")
- ("da" . "danish")
- ("de" . "germanb")
- ("de-at" . "naustrian")
- ("de-de" . "ngerman")
- ("el" . "greek")
- ("en" . "english")
- ("en-au" . "australian")
- ("en-ca" . "canadian")
- ("en-gb" . "british")
- ("en-ie" . "irish")
- ("en-nz" . "newzealand")
- ("en-us" . "american")
- ("es" . "spanish")
- ("et" . "estonian")
- ("eu" . "basque")
- ("fi" . "finnish")
- ("fr" . "french")
- ("fr-ca" . "canadien")
- ("gl" . "galician")
- ("hr" . "croatian")
- ("hu" . "hungarian")
- ("id" . "indonesian")
- ("is" . "icelandic")
- ("it" . "italian")
- ("la" . "latin")
- ("ms" . "malay")
- ("nl" . "dutch")
- ("nb" . "norsk")
- ("nn" . "nynorsk")
- ("no" . "norsk")
- ("pl" . "polish")
- ("pt" . "portuguese")
- ("pt-br" . "brazilian")
- ("ro" . "romanian")
- ("ru" . "russian")
- ("sa" . "sanskrit")
- ("sb" . "uppersorbian")
- ("sk" . "slovak")
- ("sl" . "slovene")
- ("sq" . "albanian")
- ("sr" . "serbian")
- ("sv" . "swedish")
- ("ta" . "tamil")
- ("tr" . "turkish")
- ("uk" . "ukrainian"))
- "Alist between language code and corresponding Babel option.")
-
-(defconst org-latex-polyglossia-language-alist
- '(("am" "amharic")
+(make-obsolete-variable 'org-latex-babel-language-alist
+ "set `org-latex-language-alist' instead." "9.6")
+
+(make-obsolete-variable 'org-latex-polyglossia-language-alist
+ "set `org-latex-language-alist' instead." "9.6")
+
+(defconst org-latex-language-alist
+ '(("am" "amharic" "*")
("ar" "arabic")
- ("ast" "asturian")
+ ("ast" "asturian" "*")
("bg" "bulgarian")
- ("bn" "bengali")
- ("bo" "tibetan")
+ ("bn" "bengali" "*")
+ ("bo" "tibetan" "*")
("br" "breton")
("ca" "catalan")
- ("cop" "coptic")
+ ("cop" "coptic" "*")
("cs" "czech")
("cy" "welsh")
("da" "danish")
- ("de" "german" "german")
- ("de-at" "german" "austrian")
- ("de-de" "german" "german")
- ("dsb" "lsorbian")
- ("dv" "divehi")
+ ("de" "ngerman" "german" "german")
+ ("de-at" "naustrian" "german" "austrian")
+ ("dsb" "lsorbian" "*")
+ ("dv" "divehi" "*")
("el" "greek")
- ("en" "english" "usmax")
- ("en-au" "english" "australian")
- ("en-gb" "english" "uk")
- ("en-nz" "english" "newzealand")
- ("en-us" "english" "usmax")
+ ("el-polyton" "polutonikogreek" "greek" "polytonic")
+ ("en" "american" "english" "usmax")
+ ("en-au" "australian" "english" "australian")
+ ("en-gb" "british" "english" "uk")
+ ("en-nz" "newzealand" "english" "newzealand")
+ ("en-us" "american" "english" "usmax")
("eo" "esperanto")
("es" "spanish")
+ ("es-mx" "spanishmx" "spanish" "mexican")
("et" "estonian")
("eu" "basque")
("fa" "farsi")
("fi" "finnish")
("fr" "french")
- ("fu" "friulan")
+ ("fr-ca" "canadien" "french" "canadian")
+ ("fur" "friulan")
("ga" "irish")
("gd" "scottish")
("gl" "galician")
("he" "hebrew")
("hi" "hindi")
("hr" "croatian")
- ("hsb" "usorbian")
+ ("hsb" "uppersorbian" "sorbian" "upper")
("hu" "magyar")
- ("hy" "armenian")
+ ("hy" "armenian" "*")
("ia" "interlingua")
- ("id" "bahasai")
+ ("id" "bahasai" "*")
("is" "icelandic")
("it" "italian")
- ("kn" "kannada")
- ("la" "latin" "modern")
- ("la-classic" "latin" "classic")
- ("la-medieval" "latin" "medieval")
- ("la-modern" "latin" "modern")
- ("lo" "lao")
+ ("kn" "kannada" "*")
+ ("la" "latin")
+ ("la-classic" "classiclatin" "latin" "classic")
+ ("la-medieval" "medievallatin" "latin" "medieval")
+ ("la-ecclesiastic" "ecclesiasticlatin" "latin" "ecclesiastic")
+ ("lo" "lao" "*")
("lt" "lithuanian")
("lv" "latvian")
- ("ml" "malayalam")
- ("mr" "maranthi")
- ("nb" "norsk")
- ("nko" "nko")
+ ("ml" "malayalam" "*")
+ ("mr" "maranthi" "*")
+ ("nb" "norsk" "norwegian" "bokmal")
("nl" "dutch")
- ("nn" "nynorsk")
+ ("nn" "nynorsk" "norwegian" "nynorsk")
("no" "norsk")
("oc" "occitan")
("pl" "polish")
("pms" "piedmontese")
("pt" "portuges")
("pt-br" "brazilian")
- ("rm" "romansh")
+ ("rm" "romansh" "*")
("ro" "romanian")
("ru" "russian")
- ("sa" "sanskrit")
- ("se" "samin")
+ ("sa" "sanskrit" "*")
("sk" "slovak")
- ("sl" "slovenian")
+ ("sl" "slovene")
("sq" "albanian")
("sr" "serbian")
("sv" "swedish")
- ("syr" "syriac")
- ("ta" "tamil")
- ("te" "telugu")
+ ("syr" "syriac" "*")
+ ("ta" "tamil" "*")
+ ("te" "telugu" "*")
("th" "thai")
("tk" "turkmen")
("tr" "turkish")
("uk" "ukrainian")
- ("ur" "urdu")
+ ("ur" "urdu" "*")
("vi" "vietnamese"))
- "Alist between language code and corresponding Polyglossia option.")
+ "Alist between language code and corresponding Babel/Polyglossia option.
+
+For the names of the languages, the Babel nomenclature is
+preferred to that of Polyglossia, in those cases where both
+coincide.
+
+The alist supports three types of members:
+
+- Members with two elements: CODE BABEL/POLYGLOSSIA OPTION.
+
+- Members with three elements: CODE BABEL/POLYGLOSSIA OPTION
+ASTERISK (the presence of the asterisk indicates that this
+language is not loaded in Babel using the old method of ldf
+files but using ini files. If Babel is loaded in an Org
+document with these languages, the \"AUTO \" argument is just
+removed, to avoid compilation errors).
+
+- Members with four elements (for variants of languages): CODE
+BABEL-OPTION POLYGLOSSIA-OPTION POLYGLOSSIA-VARIANT")
(defconst org-latex-table-matrix-macros '(("bordermatrix" . "\\cr")
("qbordermatrix" . "\\cr")
@@ -1657,14 +1628,16 @@ Return the new header."
header
(let ((options (save-match-data
(org-split-string (match-string 1 header) ",[ \t]*")))
- (language (cdr (assoc-string language-code
- org-latex-babel-language-alist t))))
+ (language (nth 1 (assoc language-code
+ org-latex-language-alist))))
;; 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))
+ ((let ((l (assoc language-code org-latex-language-alist)))
+ (and (consp l) (= (length l) 3))) (delete "AUTO" options))
((member "AUTO" options) options)
(t (append options (list language))))
", ")
@@ -1710,15 +1683,17 @@ Return the new header."
(concat "\\usepackage{polyglossia}\n"
(mapconcat
(lambda (l)
- (let ((l (or (assoc l org-latex-polyglossia-language-alist)
+ (let ((l (or (assoc l org-latex-language-alist)
l)))
(format (if main-language-set "\\setotherlanguage%s{%s}\n"
(setq main-language-set t)
"\\setmainlanguage%s{%s}\n")
- (if (and (consp l) (= (length l) 3))
- (format "[variant=%s]" (nth 2 l))
+ (if (and (consp l) (= (length l) 4))
+ (format "[variant=%s]" (nth 3 l))
"")
- (nth 1 l))))
+ (if (and (consp l) (= (length l) 4))
+ (nth 2 l)
+ (nth 1 l)))))
languages
""))
t t header 0)))))
--
2.36.1
next prev parent reply other threads:[~2022-07-14 12:37 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-03 15:28 [PATCH] ox-latex.el: Unify in one single list Babel and Polyglossia languages alists Juan Manuel Macías
2022-07-10 9:25 ` Ihor Radchenko
2022-07-14 12:34 ` Juan Manuel Macías [this message]
2022-07-14 15:12 ` Max Nikulin
2022-07-14 15:53 ` Juan Manuel Macías
2022-07-14 18:17 ` Juan Manuel Macías
2022-07-15 12:18 ` Max Nikulin
2022-07-15 14:36 ` Juan Manuel Macías
2022-07-17 9:55 ` Ihor Radchenko
2022-07-17 14:48 ` Juan Manuel Macías
2022-07-18 6:44 ` Ihor Radchenko
2022-07-18 10:32 ` Juan Manuel Macías
2022-07-18 11:01 ` Juan Manuel Macías
2022-07-18 15:37 ` Max Nikulin
2022-07-18 16:21 ` Juan Manuel Macías
2022-07-19 15:01 ` Juan Manuel Macías
2022-07-19 17:01 ` Max Nikulin
2022-07-19 19:31 ` Juan Manuel Macías
2022-07-20 16:12 ` Max Nikulin
2022-07-20 21:30 ` Juan Manuel Macías
2022-07-21 14:36 ` Max Nikulin
2022-07-21 15:39 ` Juan Manuel Macías
2022-07-22 12:16 ` Max Nikulin
2022-07-22 12:49 ` Juan Manuel Macías
2022-07-22 14:07 ` Juan Manuel Macías
2022-07-23 15:19 ` Max Nikulin
2022-07-23 17:15 ` Improvements in the default LaTeX preamble (was: [PATCH] ox-latex.el: Unify in one single list Babel and Polyglossia languages alists) Juan Manuel Macías
2022-07-24 12:06 ` Improvements in the default LaTeX preamble: templates? " Juan Manuel Macías
2022-07-25 9:31 ` Ihor Radchenko
2022-07-25 10:45 ` Improvements in the default LaTeX preamble: templates? Juan Manuel Macías
2022-07-23 5:01 ` [PATCH] ox-latex.el: Unify in one single list Babel and Polyglossia languages alists Ihor Radchenko
2022-07-23 13:44 ` BUG " Kai von Fintel
2022-07-23 13:59 ` Ihor Radchenko
2022-07-23 14:07 ` Kai von Fintel
2022-07-23 14:22 ` Ihor Radchenko
2022-07-23 14:39 ` Kai von Fintel
2022-07-23 14:50 ` Ihor Radchenko
2022-07-23 15:53 ` Juan Manuel Macías
2022-07-24 7:15 ` Ihor Radchenko
2022-07-24 11:29 ` Juan Manuel Macías
2022-07-26 11:58 ` Ihor Radchenko
2022-07-26 16:19 ` Juan Manuel Macías
2022-07-28 12:36 ` Ihor Radchenko
2022-07-23 14:53 ` Juan Manuel Macías
2022-07-23 14:11 ` Juan Manuel Macías
2022-07-23 14:25 ` Ihor Radchenko
2022-07-23 15:29 ` Max Nikulin
2022-07-24 7:23 ` Ihor Radchenko
2022-07-10 10:51 ` Max Nikulin
2022-07-15 15:38 ` Juan Manuel Macías
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87lesvlvos.fsf@posteo.net \
--to=maciaschain@posteo.net \
--cc=emacs-orgmode@gnu.org \
--cc=yantar92@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).