diff options
author | mattkae <mattkae@protonmail.com> | 2022-06-07 08:23:47 -0400 |
---|---|---|
committer | mattkae <mattkae@protonmail.com> | 2022-06-07 08:23:47 -0400 |
commit | bd18a38c2898548a3664a9ddab9f79c84f2caf4a (patch) | |
tree | 95b9933376770381bd8859782ae763be81c2d72b /elpa/auctex-13.1.3/style/polyglossia.el | |
parent | b07628dddf418d4f47b858e6c35fd3520fbaeed2 (diff) | |
parent | ef160dea332af4b4fe5e2717b962936c67e5fe9e (diff) |
Merge conflict
Diffstat (limited to 'elpa/auctex-13.1.3/style/polyglossia.el')
-rw-r--r-- | elpa/auctex-13.1.3/style/polyglossia.el | 366 |
1 files changed, 0 insertions, 366 deletions
diff --git a/elpa/auctex-13.1.3/style/polyglossia.el b/elpa/auctex-13.1.3/style/polyglossia.el deleted file mode 100644 index cdfb03e..0000000 --- a/elpa/auctex-13.1.3/style/polyglossia.el +++ /dev/null @@ -1,366 +0,0 @@ -;;; polyglossia.el --- AUCTeX style for `polyglossia.sty' version 1.42.0. -*- lexical-binding: t; -*- - -;; Copyright (C) 2015-2021 Free Software Foundation, Inc. - -;; Maintainer: auctex-devel@gnu.org -;; Author: Mosè Giordano <mose@gnu.org> -;; Keywords: tex - -;; This file is part of AUCTeX. - -;; AUCTeX is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. - -;; AUCTeX is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with AUCTeX; see the file COPYING. If not, write to the Free -;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA -;; 02110-1301, USA. - -;;; Commentary: - -;; This file adds support for `polyglossia.sty' version 1.42.0. - -;;; TODO: - -;; -- Create language specific styles with names `gloss-<lang>.el'. They -;; should add `text<lang>' macros, `<lang>' environments (`Arabic' for -;; `arabic' language), and the others language-specific commands. - -;;; Code: - -(require 'tex) ;Indispensable when compiling the call to `TeX-auto-add-type'. -(require 'latex) - -;; Silence the compiler: -(declare-function font-latex-add-keywords - "font-latex" - (keywords class)) - -(TeX-auto-add-type "polyglossia-lang" "LaTeX") - -;; Self Parsing -- see (info "(auctex)Hacking the Parser"). -(defvar LaTeX-polyglossia-lang-regexp - (concat "\\\\set\\(defaultlanguage\\|mainlanguage\\|otherlanguages?\\)" - "[ \t\n\r]*\\(?:\\[\\(.*\\)\\]\\)?[ \t\n\r]*{\\([A-Za-z, ]+\\)}") - "Matches languages set with polyglossia macros.") - -(defvar LaTeX-polyglossia-setkeys-regexp - (concat "\\\\setkeys" - "[ \t\n\r]*{\\([A-Za-z]+\\)}[ \t\n\r]*{\\([^}]*\\)}") - "Matches polyglossia languages options set using \"\setkeys\".") - -(defvar LaTeX-auto-polyglossia-lang nil - "Temporary for parsing polyglossia languages.") - -(defvar LaTeX-auto-polyglossia-setkeys nil - "Temporary for parsing polyglossia language options.") - -(defun LaTeX-polyglossia-prepare () - "Clear some polyglossia variables before use." - (setq LaTeX-auto-polyglossia-lang nil - LaTeX-auto-polyglossia-setkeys nil - LaTeX-polyglossia-lang-list nil)) - -(defun LaTeX-polyglossia-cleanup () - "Move languages and their options from -`LaTeX-auto-polyglossia-lang' to `LaTeX-polyglossia-lang-list'." - ;; Example: now the value of `LaTeX-auto-polyglossia-lang' is something like - ;; '(("danish" "defaultlanguage" "") - ;; ("arabic" "otherlanguage" "locale=tunisia,numerals=maghrib") - ;; ("german" "otherlanguage" "spelling=new,script=latin") - ;; ("icelandic,brazil,sanskrit" "otherlanguages" "")) - ;; We want to end up with a list like - ;; '(("danish" "defaultlanguage") - ;; ("arabic" "otherlanguage" "locale=tunisia" "numerals=maghrib") - ;; ("german" "otherlanguage" "spelling=new" "script=latin") - ;; ("icelandic" "otherlanguages") - ;; ("brazil" "otherlanguages") - ;; ("sanskrit" "otherlanguages" "script=Devanagari")) - ;; with "script=Devanagari" option to "sanskrit" language set using - ;; "\setkeys". - ;; In each element of the alist, the key is the language, the second value is - ;; the polyglossia command which set the language, the rest of values is the - ;; list of options given to the language. - (let (opts otheropts) - (mapc - (lambda (elt) - (mapc - (lambda (language) - ;; `opts' is the string of options for `language', set using - ;; "\setdefaultlanguage" or "\setotherlanguage". - (setq opts (cdr (cdr elt))) - ;; `otheropts' is the string of options for `language' set using - ;; "\setkeys". - (setq otheropts - (car (cdr (assoc language LaTeX-auto-polyglossia-setkeys)))) - (add-to-list - 'LaTeX-polyglossia-lang-list - (append - (list language) (list (nth 1 elt)) - (unless (equal opts '("")) - (LaTeX-listify-package-options (car opts))) - (if otheropts (LaTeX-listify-package-options otheropts))) t)) - (LaTeX-listify-package-options (car elt)))) - LaTeX-auto-polyglossia-lang))) - -(add-hook 'TeX-auto-prepare-hook #'LaTeX-polyglossia-prepare) -(add-hook 'TeX-auto-cleanup-hook #'LaTeX-polyglossia-cleanup) -(add-hook 'TeX-update-style-hook #'TeX-auto-parse t) -;; Run style hooks for every active language. This *has* to be done after -;; `TeX-auto-parse'. -(add-hook 'TeX-update-style-hook #'LaTeX-polyglossia-load-languages t) - -(defvar LaTeX-polyglossia-language-list - '("albanian" "amharic" "arabic" "armenian" "asturian" "bahasai" "bahasam" - "basque" "bengali" "brazil" "breton" "bulgarian" "catalan" "coptic" - "croatian" "czech" "danish" "divehi" "dutch" "english" "esperanto" - "estonian" "farsi" "finnish" "french" "friulan" "galician" "german" "greek" - "hebrew" "hindi" "icelandic" "interlingua" "irish" "italian" "kannada" - "khmer" "korean" "lao" "latin" "latvian" "lithuanian" "lsorbian" "magyar" - "malayalam" "marathi" "nko" "norsk" "nynorsk" "occitan" "piedmontese" - "polish" "portuges" "romanian" "romansh" "russian" "samin" "sanskrit" - "scottish" "serbian" "slovak" "slovenian" "spanish" "swedish" "syriac" - "tamil" "telugu" "thai" "tibetan" "turkish" "turkmen" "ukrainian" "urdu" - "usorbian" "vietnamese" "welsh") - "List of languages supported by the polyglossia LaTeX package.") - -(defun LaTeX-polyglossia-active-languages () - "Return a list of polyglossia languages used in the document. -The last language is the default one." - (let (active-languages default) - (mapc - (lambda (elt) - (setq default (or (string-equal "defaultlanguage" (nth 1 elt)) - (string-equal "mainlanguage" (nth 1 elt)))) - ;; Append the language to the list if it's the default one. - (if default - (setq active-languages (append active-languages - (list (car elt)))) - (push active-languages (car elt)))) - LaTeX-polyglossia-lang-list) - active-languages)) - -(defun LaTeX-polyglossia-lang-option-member (language option) - "Return non-nil if OPTION has been given to polyglossia LANGUAGE. -The value is actually the tail of the list of options given to LANGUAGE." - (member option (cdr (cdr (assoc language LaTeX-polyglossia-lang-list))))) - -(defun LaTeX-arg-polyglossia-lang (_optional _default multiple setkeys) - "Prompt for language and its options with completion and insert them -as arguments. - -This function is triggered by \"\setdefaultlanguage\", -\"\setotherlanguage\", \"\setotherlanguages\", and \"\setkeys\" -macros by polyglossia package. - -OPTIONAL and DEFAULT are ignored, if MULTIPLE is non-nil prompt -for multiple languages, if SETKEYS is non-nil insert options as -second mandatory argument." - ;; DEFAULT = t , MULTIPLE = nil, SETKEYS = nil: "\setdefaultlanguage". - ;; DEFAULT = nil, MULTIPLE = nil, SETKEYS = nil: "\setotherlanguage". - ;; DEFAULT = nil, MULTIPLE = t , SETKEYS = nil: "\setotherlanguages". - ;; DEFAULT = nil, MULTIPLE = nil, SETKEYS = t : "\setkeys". - - ;; Note: `DEFAULT' is currently ignored because we don't really have a - ;; mechanism to identify the default polyglossia language. - (let ((language (funcall - (if multiple - #'TeX-completing-read-multiple - #'completing-read) - (if multiple "Languages: " "Language: ") - (if setkeys - (LaTeX-polyglossia-active-languages) - LaTeX-polyglossia-language-list))) - var options) - (if multiple - (mapc (lambda (elt) (TeX-run-style-hooks (concat "gloss-" elt))) - language) - (TeX-run-style-hooks (concat "gloss-" language))) - ;; "\setotherlanguages" doesn't take options, don't prompt for them. - (setq options - (if multiple "" - (setq var (intern (format "LaTeX-polyglossia-%s-options-list" language))) - (if (and (boundp var) (symbol-value var)) - ;; "\setdefaultlanguage" and "\setotherlanguage" use `options' - ;; as first optional argument; "\setkeys" uses `options' as - ;; second mandatory argument. - (TeX-read-key-val (not setkeys) (symbol-value var)) - ;; When `LaTeX-polyglossia-<lang>-options-list' is nil or not - ;; defined, don't prompt for options. - ""))) - (unless setkeys - (let ((TeX-arg-opening-brace LaTeX-optop) - (TeX-arg-closing-brace LaTeX-optcl)) - (TeX-argument-insert options t))) - (if multiple - (setq language (mapconcat #'identity language ","))) - (TeX-argument-insert language nil) - (if setkeys - (TeX-argument-insert options nil)))) - -(defun LaTeX-arg-polyglossiasetup-options (optional) - "Prompt for setup options of polyglossia package. -If OPTIONAL is non-nil, insert the resulting value as an optional -argument, otherwise as a mandatory one." - (TeX-arg-key-val optional - '(("language") ;; TODO: add completion in `fontspec.el', see - ;; "\newfontlanguage"s in `fontspec-xetex.sty'. - ("hyphennames") - ("script") ;; TODO: add completion in `fontspec.el', see - ;; "\newfontscript"s in `fontspec-xetex.sty'. - ("direction" ("RL" "LR")) - ("scripttag") - ("langtag") - ("hyphenmins") - ("frenchspacing" ("true" "false")) - ("indentfirst" ("true" "false")) - ("fontsetup" ("true" "false")) - ;; The following options aren't already implemented but are - ;; present in `polyglossia.sty' comments. - ;; ("nouppercase" ("true" "false")) - ;; ("localalph") - ;; ("localnumber") - ))) - -(defun LaTeX-polyglossia-load-languages () - "Load style files of babel active languages." - (mapc (lambda (elt) (TeX-run-style-hooks (concat "gloss-" elt))) - (LaTeX-polyglossia-active-languages))) - -(TeX-add-style-hook - "polyglossia" - (lambda () - (TeX-check-engine-add-engines 'luatex 'xetex) - (TeX-auto-add-regexp - `(,LaTeX-polyglossia-lang-regexp (3 1 2) LaTeX-auto-polyglossia-lang)) - (TeX-auto-add-regexp - `(,LaTeX-polyglossia-setkeys-regexp (1 2) LaTeX-auto-polyglossia-setkeys)) - (TeX-run-style-hooks "makecmds" "xkeyval" "fontspec") - (TeX-add-symbols - '("setdefaultlanguage" (LaTeX-arg-polyglossia-lang t nil nil)) - '("setmainlanguage" (LaTeX-arg-polyglossia-lang t nil nil)) - '("setotherlanguage" (LaTeX-arg-polyglossia-lang nil nil nil)) - '("setotherlanguages" (LaTeX-arg-polyglossia-lang nil t nil)) - '("setkeys" (LaTeX-arg-polyglossia-lang nil nil t )) - '("PolyglossiaSetup" (TeX-arg-eval completing-read "Language: " - (LaTeX-polyglossia-active-languages)) - LaTeX-arg-polyglossiasetup-options) - "selectbackgroundlanguage" - '("resetdefaultlanguage" ["argument"] 1) - "normalfontlatin" - "rmfamilylatin" - "sffamilylatin" - "ttfamilylatin" - "selectlanguage" - "foreignlanguage") - - (TeX-declare-expert-macros - "polyglossia" - "PolyglossiaSetup" "selectbackgroundlanguage" "resetdefaultlanguage" - "normalfontlatin" "rmfamilylatin" "sffamilylatin" "ttfamilylatin" - "selectlanguage" "foreignlanguage") - - ;; Fontification - (when (and (featurep 'font-latex) - (eq TeX-install-font-lock 'font-latex-setup)) - (font-latex-add-keywords '(("setdefaultlanguage" "[{") - ("setmainlanguage" "[{") - ("setotherlanguage" "[{") - ("setotherlanguages" "{") - ("setkeys" "{{")) - 'function))) - TeX-dialect) - -;; TODO: move each option variable in its specific `gloss-<lang>.el' file. -(defvar LaTeX-polyglossia-arabic-options-list - '(("calendar" ("gregorian" "islamic")) - ("locale" ("default" "mashriq" "libya" "algeria" "tunisia" "morocco" "mauritania")) - ("numerals" ("mashriq" "maghrib")) - ("abjadjimnotail" ("false" "true"))) - "Arabic language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-bengali-options-list - '(("numerals" ("Western" "Devanagari")) - ("changecounternumbering" ("true" "false"))) - "Bengali language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-catalan-options-list - '(("babelshorthands" ("true" "false"))) - "Catalan language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-dutch-options-list - '(("babelshorthands" ("true" "false"))) - "Dutch language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-english-options-list - '(("variant" ("american" "usmax" "british" "australian" "newzealand")) - ("ordinalmonthday" ("true" "false"))) - "English language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-farsi-options-list - '(("numerals" ("western" "eastern")) - ;; ("locale") ;; not yet implemented - ;; ("calendar") ;; not yet implemented - ) - "Farsi language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-german-options-list - '(("variant" ("german" "austrian" "swiss")) - ("spelling" ("new" "old")) - ("latesthyphen" ("true" "false")) - ("babelshorthands" ("true" "false")) - ("script" ("latin" "fraktur"))) - "German language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-greek-options-list - '(("variant" ("monotonic" "polytonic" "ancient")) - ("numerals" ("greek" "arabic")) - ("attic" ("true" "false"))) - "Greek language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-hebrew-options-list - '(("numerals" ("hebrew" "arabic")) - ("calendar" ("hebrew" "gregorian"))) - "Hebrew language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-hindi-options-list - '(("numerals" ("Western" "Devanagari"))) - "Hindi language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-lao-options-list - '(("numerals" ("lao" "arabic"))) - "Lao language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-russian-options-list - '(("spelling" ("modern" "old")) - ("babelshorthands" ("true" "false"))) - "Russian language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-sanskrit-options-list - '(("Script" ("Devanagari"))) - "Sanskrit language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-serbian-options-list - '(("script" ("cyrillic" "latin"))) - "Serbian language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-syriac-options-list - '(("numerals" ("western" "eastern" "abjad"))) - "Syriac language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-thai-options-list - '(("numerals" ("thai" "arabic"))) - "Thai language options for the polyglossia package.") - -(defvar LaTeX-polyglossia-package-options - '("babelshorthands" "localmarks" "nolocalmarks" "quiet") - "Package options for the polyglossia package.") - -;;; polyglossia.el ends here |