summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/babel.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/babel.el')
-rw-r--r--elpa/auctex-13.1.3/style/babel.el436
1 files changed, 0 insertions, 436 deletions
diff --git a/elpa/auctex-13.1.3/style/babel.el b/elpa/auctex-13.1.3/style/babel.el
deleted file mode 100644
index a7d6747..0000000
--- a/elpa/auctex-13.1.3/style/babel.el
+++ /dev/null
@@ -1,436 +0,0 @@
-;;; babel.el --- AUCTeX style for `babel.sty' version 3.31. -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2005-2022 Free Software Foundation, Inc.
-
-;; Author: Ralf Angeli <angeli@iwi.uni-sb.de>
-;; Maintainer: auctex-devel@gnu.org
-;; Created: 2005-05-29
-;; 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 `babel.sty' version 3.31 from 2019/05/04.
-
-;;; Code:
-
-(require 'tex)
-(require 'latex)
-
-(eval-when-compile
- (require 'cl-lib))
-
-;; Silence the compiler:
-(declare-function font-latex-add-keywords
- "font-latex"
- (keywords class))
-
-(defvar LaTeX-babel-language-list
- '("afrikaans"
- "azerbaijani"
- "bahasa" "indonesian" "indon" "bahasai" "bahasam" "malay" "meyalu"
- "basque"
- "breton"
- "bulgarian"
- "catalan"
- "croatian"
- "czech"
- "danish"
- "dutch"
- "english" "USenglish" "american" "UKenglish" "british" "canadian"
- "australian" "newzealand"
- "esperanto"
- "estonian"
- "finnish"
- "french" "francais" "canadien" "acadian"
- "galician"
- "austrian" "german" "germanb" "ngerman" "naustrian"
- "greek" "polutonikogreek"
- "hebrew"
- "icelandic"
- "interlingua"
- "irish"
- "italian"
- "latin"
- "lowersorbian"
- "samin"
- "norsk" "nynorsk"
- "polish"
- "portuges" "portuguese" "brazilian" "brazil"
- "romanian"
- "russian"
- "scottish"
- "spanish"
- "slovak"
- "slovene"
- "swedish"
- "serbian"
- "turkish"
- "ukrainian"
- "uppersorbian"
- "welsh"
- ;; Extra languages mentioned in the `babel' manual.
- "albanian" "hindi" "thai" "thaicjk" "latvian" "turkmen" "hungarian" "magyar"
- "mongolian" "romansh" "lithuanian" "spanglish" "vietnamese" "japanese"
- "pinyin" "arabinc" "farsi" "ibygreek" "bgreek" "serbianic" "frenchle"
- "ethiop" "friulan")
- "List of languages supported by the babel LaTeX package.")
-
-(defvar LaTeX-babel-babelprovide-key-val-options
- `(("import")
- ("captions")
- ("hyphenrules" ,(append '("+") LaTeX-babel-language-list))
- ("main")
- ("script")
- ("language")
- ("mapfont")
- ("intraspace")
- ("intrapenalty"))
- "Key=value options for `\\babelprovide' macro from `babel' package.")
-
-(defun LaTeX-babel-active-languages ()
- "Return a list of languages used in the document."
- (let (main-language active-languages)
- ;; Loop over options provided to class and `babel' package at load time.
- (dolist (elt (append
- ;; In most cases there is only one element in the alist, if
- ;; there is more than one element, the first one should
- ;; contain the class options of the current buffer. So we can
- ;; take the car of `LaTeX-provided-class-options'.
- (cdr (car LaTeX-provided-class-options))
- (cdr (assoc "babel" LaTeX-provided-package-options))))
- (setq elt (split-string elt "="))
- (if (equal (car elt) "main")
- ;; Starting from version 3.9 of `babel' package, languages can be set
- ;; with the following syntax:
- ;; \usepackage[latin.medieval,main=danish,spanish.notilde]{babel}
- ;; with `danish' being the default language. When the default
- ;; language is set with the `main' option, we record it and append to
- ;; the list at the end.
- (setq main-language (car (cdr elt)))
- ;; Get rid of the modifiers (`medieval' and `notilde' in the above
- ;; example).
- (setq elt (car (split-string (car elt) "\\.")))
- (if (member elt LaTeX-babel-language-list)
- ;; Append element to `active-languages' to respect loading order.
- ;; `babel' package uses as default language the last loaded one,
- ;; except if it is set with the `main' option.
- (cl-pushnew elt active-languages :test #'equal))))
- (if main-language
- (cl-pushnew main-language active-languages :test #'equal))
- (nreverse active-languages)))
-
-;; Setup for \babeltags: Note that the macro is \babeltags, we use
-;; the version without `s' in order to reduce the hassle with AUCTeX
-;; auto-generating the plural form:
-(TeX-auto-add-type "babel-babeltag" "LaTeX")
-
-(defvar LaTeX-babel-babeltags-regexp
- '("\\\\babeltags{\\([^}]+\\)}" 1 LaTeX-auto-babel-babeltag)
- "Matches the argument of `\\babeltags' from `babel' package.")
-
-(defun LaTeX-babel-cleanup-babeltags ()
- "Parse defined babel tags and add them to AUCTeX."
- ;; Check if we parsed something at all
- (when (LaTeX-babel-babeltag-list)
- (let (results tag tags cmds)
- ;; Clean up the parsed results from characters we don't want;
- ;; also remove possible comment lines
- (setq results
- (replace-regexp-in-string
- "%.*\\'\\|[ \n\r\t]" ""
- (mapconcat #'car (LaTeX-babel-babeltag-list) ",")))
- ;; Look if \babeltags was issued once with multiple entries or
- ;; more than once in the document:
- (if (string-match-p "," results)
- (progn
- (dolist (elt (split-string results "," t))
- (setq tag (car (split-string elt "=" t)))
- (push tag tags)
- (push (list (concat "text" tag) t) cmds)
- (push (list tag -1) cmds)))
- ;; One \babeltags with one entry only
- (setq tag (car (split-string results "=" t)))
- (push tag tags)
- (push (list (concat "text" tag) t) cmds)
- (push (list tag -1) cmds))
- (mapc #'TeX-add-symbols cmds)
- (mapc #'LaTeX-add-environments tags)
- ;; Fontification
- (when (and (featurep 'font-latex)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords (mapcar (lambda (x)
- (list (concat "text" x) "{"))
- tags)
- 'textual)
- (font-latex-add-keywords (mapcar (lambda (x)
- (list x ""))
- tags)
- 'type-declaration)))))
-
-;; Setup for \babelfont:
-(TeX-auto-add-type "babel-babelfont" "LaTeX")
-
-(defvar LaTeX-babel-babelfont-regexp
- '("\\\\babelfont\\(?:\\[[^]]*\\]\\)?[ \t\n\r%]*{\\([^}]+\\)}"
- 1 LaTeX-auto-babel-babelfont)
- "Matches the <font-family> argument of `\\babelfont' from `babel' package.")
-
-(defun LaTeX-babel-cleanup-babelfont ()
- "Parse defined font-families and add them to AUCTeX."
- (when (LaTeX-babel-babelfont-list)
- (dolist (elt (mapcar #'car (LaTeX-babel-babelfont-list)))
- ;; Don't do anything for standard font-families:
- (unless (member elt '("rm" "sf" "tt"))
- ;; Define \<font>family, \<font>default and \text<font>:
- (let ((fam (concat elt "family"))
- (def (concat elt "default"))
- (mac (concat "text" elt)))
- (apply #'TeX-add-symbols
- `((,fam -1)
- (,def -1)
- (,mac t)))
- ;; Cater for fontification:
- (when (and (featurep 'font-latex)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords `((,fam "")
- (,def ""))
- 'type-declaration)
- (font-latex-add-keywords `((,mac "{"))
- 'type-command)))))))
-
-(defun LaTeX-babel-auto-prepare ()
- "Clear `LaTeX-auto-babel-babel*' before parsing."
- (setq LaTeX-auto-babel-babeltag nil
- LaTeX-auto-babel-babelfont nil))
-
-(defun LaTeX-babel-auto-cleanup ()
- "Process parsed elements."
- (LaTeX-babel-cleanup-babeltags)
- (LaTeX-babel-cleanup-babelfont))
-
-(add-hook 'TeX-auto-prepare-hook #'LaTeX-babel-auto-prepare t)
-(add-hook 'TeX-auto-cleanup-hook #'LaTeX-babel-auto-cleanup t)
-(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
-
-(defun TeX-arg-babel-lang (optional &optional prompt)
- "Prompt for a language with completion and insert it as an argument."
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt optional prompt "Language")
- (LaTeX-babel-active-languages))
- optional))
-
-(defun LaTeX-env-babel-lang (env)
- "Prompt for a language and insert it as an argument of ENV."
- (LaTeX-insert-environment
- env (format "{%s}" (completing-read "Language: "
- (LaTeX-babel-active-languages)))))
-
-(defun LaTeX-babel-load-languages ()
- "Load style files of babel active languages."
- ;; Run style hooks for every active language in loading order, so
- ;; `TeX-quote-language' will be correctly set.
- (mapc #'TeX-run-style-hooks (LaTeX-babel-active-languages)))
-
-(TeX-add-style-hook
- "babel"
- (lambda ()
- (LaTeX-babel-load-languages)
- (add-hook 'LaTeX-after-usepackage-hook #'LaTeX-babel-load-languages nil t)
-
- ;; Add babel to the parser.
- (TeX-auto-add-regexp LaTeX-babel-babeltags-regexp)
- (TeX-auto-add-regexp LaTeX-babel-babelfont-regexp)
-
- ;; New symbols
- (TeX-add-symbols
-
- ;; 1.7 Basic language selectors
- '("selectlanguage" TeX-arg-babel-lang)
- '("foreignlanguage" TeX-arg-babel-lang t)
-
- ;; 1.9 More on selection
- '("babeltags" t)
- '("babelensure" (TeX-arg-key-val
- (("include") ("exclude")
- ("fontenc" (;; 128+ glyph encodings (text)
- "OT1" "OT2" "OT3" "OT4" "OT6"
- ;; 256 glyph encodings (text)
- "T1" "T2A" "T2B" "T2C" "T3" "T4" "T5"
- ;; 256 glyph encodings (text extended)
- "X2"
- ;; Other encodings
- "LY1" "LV1" "LGR"))))
- TeX-arg-babel-lang)
- ;; 1.10 Shorthands
- '("shorthandon" "Shorthands list")
- '("shorthandoff" "Shorthands list")
- '("shorthandoff*" "Shorthands list")
- '("useshorthands" "Character")
- '("useshorthands*" "Character")
- '("defineshorthand"
- [TeX-arg-eval mapconcat #'identity
- (TeX-completing-read-multiple
- (TeX-argument-prompt t nil "Language(s)")
- (LaTeX-babel-active-languages))
- ","]
- t nil)
- '("languageshorthands" TeX-arg-babel-lang)
- '("babelshorthand" "Short hand")
- '("ifbabelshorthand" "Character" t nil)
- '("aliasshorthand" "Original" "Alias")
-
- ;; 1.12 The base option
- '("AfterBabelLanguage"
- (TeX-arg-eval completing-read
- (TeX-argument-prompt nil nil "Language")
- LaTeX-babel-language-list)
- t)
-
- ;; 1.14 Selecting fonts
- '("babelfont"
- [TeX-arg-eval mapconcat #'identity
- (TeX-completing-read-multiple
- (TeX-argument-prompt t nil "Language(s)")
- LaTeX-babel-language-list)
- ","]
- (TeX-arg-eval let ((fontfam (completing-read
- (TeX-argument-prompt nil nil "font family")
- '("rm" "sf" "tt"))))
- ;; Run `TeX-check-engine-add-engines' and then
- ;; load `fontspec.el' if not already loaded and
- ;; make sure the key-vals are up to date.
- (unless (member "fontspec" (TeX-style-list))
- (TeX-check-engine-add-engines 'luatex 'xetex)
- (TeX-run-style-hooks "fontspec")
- (LaTeX-fontspec-auto-cleanup))
- (LaTeX-add-babel-babelfonts fontfam)
- (LaTeX-babel-cleanup-babelfont)
- (format "%s" fontfam))
- [TeX-arg-key-val (LaTeX-fontspec-font-features)]
- LaTeX-fontspec-arg-font)
-
- ;; 1.16 Creating a language
- '("babelprovide"
- [TeX-arg-key-val LaTeX-babel-babelprovide-key-val-options]
- (TeX-arg-eval completing-read
- (TeX-argument-prompt nil nil "Language")
- LaTeX-babel-language-list))
-
- ;; 1.19 Accessing language info
- '("languagename" 0)
- '("iflanguage" TeX-arg-babel-lang t nil)
-
- ;; 1.20 Hyphenation and line breaking
- '("babelhyphen"
- (TeX-arg-eval completing-read
- (TeX-argument-prompt nil nil "Type/Text")
- '("soft" "hard" "repeat" "nobreak" "empty")))
- '("babelhyphen*"
- (TeX-arg-eval completing-read
- (TeX-argument-prompt nil nil "Type/Text")
- '("soft" "hard" "repeat" "nobreak" "empty")))
-
- '("babelhyphenation"
- [TeX-arg-eval mapconcat #'identity
- (TeX-completing-read-multiple
- (TeX-argument-prompt nil nil "Language(s)")
- LaTeX-babel-language-list)
- ","]
- t)
-
- ;; 1.23 Selecting scripts
- '("ensureascii" "Text")
-
- ;; 1.25 Language attributes
- '("languageattribute" TeX-arg-babel-lang t))
-
- ;; Don't increase indentation at various \if* macros:
- (let ((exceptions '("ifbabelshorthand"
- "iflanguage")))
- (dolist (elt exceptions)
- (add-to-list 'LaTeX-indent-begin-exceptions-list elt t))
- (LaTeX-indent-commands-regexp-make))
-
- ;; New environments: 1.8 Auxiliary language selectors
- (LaTeX-add-environments
- '("otherlanguage" LaTeX-env-babel-lang)
- '("otherlanguage*" LaTeX-env-babel-lang)
- '("hyphenrules" LaTeX-env-babel-lang))
-
- ;; Fontification
- (when (and (featurep 'font-latex)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords '(("selectlanguage" "{")
- ("foreignlanguage" "{{")
- ("babeltags" "{")
- ("babelensure" "{{")
- ("shorthandon" "{")
- ("shorthandoff" "*{")
- ("useshorthands" "*{")
- ("languageshorthands" "{")
- ("babelshorthand" "{")
- ("AfterBabelLanguage" "{")
- ("babelfont" "[{[{")
- ("babelprovide" "[{")
- ("languagename" "")
- ("iflanguage" "{{{")
- ("babelhyphen" "*{")
- ("babelhyphenation" "[{")
- ("ensureascii" "{"))
- 'function)
- (font-latex-add-keywords '(("defineshorthand" "[{{")
- ("aliasshorthand" "{{")
- ("languageattribute" "{{"))
- 'variable)))
- TeX-dialect)
-
-(defun LaTeX-babel-package-options ()
- "Prompt for package options for the babel package."
- (TeX-read-key-val
- t
- (append
- '(("KeepShorthandsActive")
- ("activeacute")
- ("activegrave")
- ("shorthands" ("off"))
- ("safe" ("none" "ref" "bib"))
- ("math" ("active" "normal"))
- ("config")
- ("main" LaTeX-babel-language-list)
- ("headfoot" LaTeX-babel-language-list)
- ("noconfigs")
- ("nocase")
- ("silent")
- ("showlanguages")
- ("nocase")
- ("silent")
- ("strings" ("generic" "unicode" "encoded"
- "OT1" "OT2" "OT3" "OT4" "OT6"
- "T1" "T2A" "T2B" "T2C" "T3" "T4" "T5"
- "X2" "LY1" "LV1" "LGR"))
- ("hyphenmap" ("off" "first" "select" "other" "other*"))
- ("bidi" ("default" "basic" "basic-r" "bidi-l" "bidi-r"))
- ("layout" ("sectioning" "counters" "lists" "contents" "footnotes"
- "captions" "columns" "graphics" "extras"))
- ("base"))
- (mapcar #'list LaTeX-babel-language-list))))
-
-;;; babel.el ends here