summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/siunitx.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/siunitx.el')
-rw-r--r--elpa/auctex-13.1.3/style/siunitx.el522
1 files changed, 0 insertions, 522 deletions
diff --git a/elpa/auctex-13.1.3/style/siunitx.el b/elpa/auctex-13.1.3/style/siunitx.el
deleted file mode 100644
index b1164a1..0000000
--- a/elpa/auctex-13.1.3/style/siunitx.el
+++ /dev/null
@@ -1,522 +0,0 @@
-;;; siunitx.el --- AUCTeX style for `siunitx.sty' version 3.3.36. -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2012-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 `siunitx.sty' version 3.0.36 from
-;; 2021/22/18.
-
-;;; 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))
-(declare-function LaTeX-color-definecolor-list "color" ())
-(declare-function LaTeX-xcolor-definecolor-list "xcolor" ())
-
-(TeX-auto-add-type "siunitx-unit" "LaTeX")
-
-;; Self Parsing -- see (info "(auctex)Hacking the Parser").
-;; `\\(?:\\[[^]]*\\]\\)?' matches possible options (actually used only
-;; by `DeclareSIUnit' macro), wrapped in `[...]'.
-(defvar LaTeX-siunitx-regexp
- `(,(concat "\\\\DeclareSI\\(Unit\\|Prefix\\|Power\\|Qualifier\\)"
- "[ \t\n\r]*"
- ;; The optional argument
- "\\(?:\\[[^]]*\\]\\)?"
- "[ \t\n\r]*"
- ;; First mandatory argument
- "{?\\\\\\([A-Za-z]+\\)}?"
- "[ \t\n\r]*"
- ;; Second mandatory argument needed for '\DeclareSIPower':
- "{?\\\\\\([A-Za-z]+\\)}?")
- (2 3 1) LaTeX-auto-siunitx-unit)
- "Matches new siunitx unit, prefix, power, and qualifier definitions.")
-
-(defun LaTeX-siunitx-prepare ()
- "Clear `LaTex-auto-siunitx-unit' before use."
- (setq LaTeX-auto-siunitx-unit nil))
-
-(add-hook 'TeX-auto-prepare-hook #'LaTeX-siunitx-prepare t)
-(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
-
-(defvar LaTeX-siunitx-unit-history nil
- "History of units in siunitx.")
-
-(defun LaTeX-siunitx-unit-list-parsed ()
- "Return a list of units incl. the user defined ones.
-This function should be preferred over the function
-`LaTeX-siunitx-unit-list' since it knows about the 2 macros
-defined with '\\DeclareSIPower'."
- (let (result)
- (dolist (unit (LaTeX-siunitx-unit-list) result)
- (push (car unit) result)
- (when (and (> (safe-length unit) 1)
- (string-equal (nth 2 unit) "Power"))
- (push (cadr unit) result)))))
-
-(defun LaTeX-arg-siunitx-unit (optional &optional prompt initial-input
- definition prefix)
- "Prompt for siunitx units, prefixes, powers, and qualifiers.
-If OPTIONAL is non-nil, insert the resulting value as an optional
-argument, otherwise as a mandatory one. Use PROMPT as the prompt
-string. If INITIAL-INPUT is non-nil, insert it in the minibuffer
-initially, with point positioned at the end. If DEFINITION is
-non-nil, add the chosen unit to the list of defined units. If
-PREFIX is non-nil, insert it before the given input."
- ;; Remove <SPC> key binding from map used in `TeX-completing-read-multiple'
- ;; with `require-match' set to `nil' (it's `crm-local-completion-map' if
- ;; `completing-read-multiple' is bound, `minibuffer-local-completion-map'
- ;; otherwise) and set completion separator to the TeX escape character.
- (let* ((crm-local-completion-map
- (remove (assoc 32 crm-local-completion-map) crm-local-completion-map))
- (minibuffer-local-completion-map
- (remove (assoc 32 minibuffer-local-completion-map)
- minibuffer-local-completion-map))
- (crm-separator (regexp-quote TeX-esc))
- (unit (mapconcat #'identity
- (TeX-completing-read-multiple
- (TeX-argument-prompt optional prompt "Unit: " t)
- (LaTeX-siunitx-unit-list-parsed)
- nil nil initial-input
- 'LaTeX-siunitx-unit-history)
- TeX-esc)))
- (if (and definition (not (string-equal "" unit)))
- (LaTeX-add-siunitx-units unit))
- (TeX-argument-insert unit optional prefix)))
-
-(defun LaTeX-arg-define-siunitx-unit (optional &optional prompt)
- "Prompt for a LaTeX siunitx unit, prefix, power, and qualifier.
-If OPTIONAL is non-nil, insert the resulting value as an optional
-argument, otherwise as a mandatory one. Use PROMPT as the prompt
-string."
- (LaTeX-arg-siunitx-unit optional
- (unless prompt (concat "Unit: " TeX-esc))
- nil t TeX-esc))
-
-(defvar LaTeX-siunitx-package-options
- '(;; Table 10: Print options
- ("color")
- ("mode" ("match" "math" "text"))
- ("number-color")
- ("number-mode" ("match" "math" "text"))
- ("propagate-math-font" ("true" "false"))
- ("reset-math-version" ("true" "false"))
- ("reset-text-family" ("true" "false"))
- ("reset-text-series" ("true" "false"))
- ("reset-text-shape" ("true" "false"))
- ("text-family-to-math" ("true" "false"))
- ("text-font-command")
- ("text-series-to-math" ("true" "false"))
- ("unit-color")
- ("unit-mode" ("match" "math" "text"))
- ;; Table 11: Options for number parsing
- ("evaluate-expression" ("true" "false"))
- ("expression")
- ("input-close-uncertainty")
- ("input-comparators")
- ("input-decimal-markers")
- ("input-digits")
- ("input-exponent-markers")
- ("input-ignore")
- ("input-open-uncertainty")
- ("input-signs")
- ("input-uncertainty-signs")
- ("parse-numbers" ("true" "false"))
- ("retain-explicit-plus" ("true" "false"))
- ("retain-zero-uncertainty" ("true" "false"))
- ;; Table 12: Number post-processing options
- ("drop-exponent" ("true" "false"))
- ("drop-uncertainty" ("true" "false"))
- ("drop-zero-decimal" ("true" "false"))
- ("exponent-mode" ("input" "fixed" "engineering" "scientific"))
- ("fixed-exponent")
- ("minimum-integer-digits")
- ("minimum-decimal-digits")
- ("round-half" ("up" "even"))
- ("round-minimum")
- ("round-mode" ("off" "figures" "places" "uncertainty"))
- ("round-pad" ("true" "false"))
- ("round-precision")
- ;; Table 13: Output options for numbers
- ("bracket-negative-numbers" ("true" "false"))
- ("exponent-base")
- ("exponent-product")
- ("group-digits" ("all" "none" "decimal" "integer"))
- ("group-minimum-digits")
- ("group-separator")
- ("negative-color")
- ("output-close-uncertainty")
- ("output-decimal-marker")
- ("output-exponent-marker")
- ("output-open-uncertainty")
- ("print-implicit-plus" ("true" "false"))
- ("print-unity-mantissa" ("true" "false"))
- ("print-zero-exponent" ("true" "false"))
- ("tight-spacing" ("true" "false"))
- ("uncertainty-mode" ("compact" "full" "compact-marker"))
- ("uncertainty-separator")
- ;; Table 14: Output options for lists, products and ranges of
- ;; numbers and quantities
- ("list-exponents" ("individual" "combine-bracket" "combine"))
- ("list-final-separator")
- ("list-pair-separator")
- ("list-separator")
- ("list-units" ("repeat" "bracket" "single"))
- ("product-exponents" ("individual" "combine-bracket" "combine"))
- ("product-mode" ("symbol" "phrase"))
- ("product-phrase")
- ("product-symbol")
- ("product-units" ("repeat" "bracket" "single"))
- ("range-exponents" ("individual" "combine-bracket" "combine"))
- ("range-phrase")
- ("range-units" ("repeat" "bracket" "single"))
- ;; Table 15: Options for complex numbers
- ("complex-root-position" ("after-number" "before-number"))
- ("output-complex-root")
- ("input-complex-root")
- ;; Table 16: Angle options
- ("angle-mode" ("input" "arc" "decimal"))
- ("angle-symbol-degree")
- ("angle-symbol-minute")
- ("angle-symbol-over-decimal" ("true" "false"))
- ("angle-symbol-second")
- ("angle-separator")
- ("fill-angle-degrees" ("true" "false"))
- ("fill-angle-minutes" ("true" "false"))
- ("fill-angle-seconds" ("true" "false"))
- ("number-angle-product")
- ;; Table 17: Unit creation options
- ("free-standing-units" ("true" "false"))
- ("overwrite-command" ("true" "false"))
- ("space-before-unit" ("true" "false"))
- ("unit-optional-argument" ("true" "false"))
- ("use-xspace" ("true" "false"))
- ;; Table 18: Unit output options
- ("bracket-unit-denominator" ("true" "false"))
- ("forbid-literal-units" ("true" "false"))
- ("fraction-command")
- ("inter-unit-product")
- ("parse-units" ("true" "false"))
- ("per-mode" ("power" "fraction" "symbol"
- "repeated-symbol" "symbol-or-fraction"))
- ("per-symbol")
- ("qualifier-mode" ("subscript" "brackets"
- "combine" "phrase"))
- ("qualifier-phrase")
- ("sticky-per" ("true" "false"))
- ("unit-font-command")
- ;; Table 19: Options for quantities
- ("allow-number-unit-breaks" ("true" "false"))
- ("extract-mass-in-kilograms" ("true" "false"))
- ("prefix-mode" ("input" "combine-exponent"
- "extract-exponent"))
- ("quantity-product")
- ("separate-uncertainty-units")
- ;; Table 20: Options for tabular material
- ("table-align-comparator" ("true" "false"))
- ("table-align-exponent" ("true" "false"))
- ("table-align-text-after" ("true" "false"))
- ("table-align-text-before" ("true" "false"))
- ("table-align-uncertainty" ("true" "false"))
- ("table-alignment" ("center" "left" "right" "none"))
- ("table-alignment-mode" ("format" "marker" "none"))
- ("table-auto-round" ("true" "false"))
- ("table-column-width")
- ("table-fixed-width" ("true" "false"))
- ("table-format")
- ("table-number-alignment" ("center" "left" "right"))
- ("table-text-alignment" ("center" "left" "right"))
- ;; 4.13 Locale options
- ("locale" ("FR" "DE" "UK" "US" "ZA")))
- "Package options for the siunitx package.")
-
-(defun LaTeX-siunitx-key-val-options ()
- "Return an updated list of key=vals from siunitx package."
- (append
- (when (and (or (member "xcolor" (TeX-style-list))
- (member "color" TeX-active-styles)))
- (let* ((colorcmd (if (member "xcolor" TeX-active-styles)
- #'LaTeX-xcolor-definecolor-list
- #'LaTeX-color-definecolor-list))
- (colors (mapcar #'car (funcall colorcmd)))
- (keys '("color"
- "number-color"
- "unit-color"
- "negative-color"))
- result)
- (dolist (key keys result)
- (push (list key colors) result))))
- LaTeX-siunitx-package-options))
-
-(TeX-add-style-hook
- "siunitx"
- (lambda ()
-
- (TeX-auto-add-regexp LaTeX-siunitx-regexp)
-
- (TeX-add-symbols
- '("sisetup" (TeX-arg-key-val (LaTeX-siunitx-key-val-options)))
-
- ;; 3.1 Numbers
- '("num" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)] "Number")
- '("numlist" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)] "Numbers")
- '("numproduct" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)] "Numbers")
- '("numrange" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- "Number 1" "Number 2")
-
- ;; 3.2 Angles
- '("ang" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)] "Angle")
-
- ;; 3.3 Units
- ;; For 'qty' and 'units', see 8 Compatibility with other packages
- '("qtylist" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- "Numbers" LaTeX-arg-siunitx-unit)
- '("qtyproduct" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- "Numbers" LaTeX-arg-siunitx-unit)
- '("qtyrange" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- "Number 1" "Number 2" LaTeX-arg-siunitx-unit)
-
- ;; 3.4 Complex numbers and quantities
- '("complexnum" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- "Number")
- '("complexqty" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- "Number" LaTeX-arg-siunitx-unit)
-
- ;; 3.7 Creating new macros
- '("DeclareSIUnit" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- (LaTeX-arg-define-siunitx-unit) "Symbol")
-
- '("DeclareSIPrefix" (LaTeX-arg-define-siunitx-unit "Prefix")
- "Symbol" "Powers of 10")
-
- '("DeclareSIPower"
- (LaTeX-arg-define-siunitx-unit "Symbol before")
- (LaTeX-arg-define-siunitx-unit "Symbol after")
- "Power")
-
- '("DeclareSIQualifier" (LaTeX-arg-define-siunitx-unit "Qualifier") "Symbol")
-
- ;; 3.8 Tabular material
- '("tablenum" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)] "Number")
-
- ;; 5 Upgrading from version 2
- ;; The next set of macros are still available in siunitx.sty v3
- ;; but are not recommended for use in new documents. We provide
- ;; them in this file anyway since they are also needed when other
- ;; packages like physics or units are loaded:
- '("si" [TeX-arg-key-val (LaTeX-siunitx-package-options)] LaTeX-arg-siunitx-unit)
- '("SI" [TeX-arg-key-val (LaTeX-siunitx-package-options)]
- "Value" ["Pre-unit"] LaTeX-arg-siunitx-unit)
- '("SIlist" [TeX-arg-key-val (LaTeX-siunitx-package-options)]
- "Values" LaTeX-arg-siunitx-unit)
- '("SIrange" [TeX-arg-key-val (LaTeX-siunitx-package-options)]
- "Value 1" "Value 2" LaTeX-arg-siunitx-unit))
-
- ;; 8 Compatibility with other packages
- ;; Avoid clash with other packages which define macros with the
- ;; same name:
- (let ((styles (TeX-style-list)))
- (unless (member "physics" styles)
- (TeX-add-symbols
- '("qty" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- "Number" LaTeX-arg-siunitx-unit)))
- (unless (member "units" styles)
- (TeX-add-symbols
- '("unit" [TeX-arg-key-val (LaTeX-siunitx-key-val-options)]
- LaTeX-arg-siunitx-unit))))
-
- ;; The unit macros
- (LaTeX-add-siunitx-units
- ;; Table 1: SI base units.
- "ampere"
- "candela"
- "kelvin"
- "kilogram"
- "meter"
- "metre"
- "second"
- ;; Table 2: Coherent derived units in the SI with special names
- ;; and symbols
- "becquerel"
- ;; "celsius"
- "degreeCelsius"
- "coulomb"
- "farad"
- "gray"
- "hertz"
- "henry"
- "joule"
- "lumen"
- "katal"
- "lux"
- "newton"
- "ohm"
- "pascal"
- "radian"
- "siemens"
- "sievert"
- "steradian"
- "tesla"
- "volt"
- "watt"
- "weber"
- ;; Table 3: Non-SI units accepted for use with the International
- ;; System of Units
- "astronomicalunit"
- "bel"
- "dalton"
- "day"
- "decibel"
- "degree"
- "electronvolt"
- "hectare"
- "hour"
- "liter"
- "litre"
- "arcminute"
- "minute"
- "arcsecond"
- "neper"
- "tonne"
- ;; 3.5 The unit macros
- "percent"
- "square"
- "squared"
- "cubic"
- "cubed"
- "tothe"
- "raiseto"
- "per"
- "of"
- "highlight" ; Defined by siunitx.sty
- ;; Table 4: SI prefixes
- "yocto"
- "zepto"
- "atto"
- "femto"
- "pico"
- "nano"
- "micro"
- "milli"
- "centi"
- "deci"
- "deca"
- "deka"
- "hecto"
- "kilo"
- "mega"
- "giga"
- "tera"
- "peta"
- "exa"
- "zetta"
- "yotta")
-
- ;; 3.6 Unit abbreviations are always defined:
- (LaTeX-add-siunitx-units
- "fg" "pg" "ng" "ug" "mg" "g" "kg"
- "pm" "nm" "um" "mm" "cm" "dm" "m" "km"
- "as" "fs" "ps" "ns" "us" "ms" "s"
- "fmol" "pmol" "nmol" "umol" "mmol" "mol" "kmol"
- "pA" "nA" "uA" "mA" "A" "kA"
- "ul" "ml" "l" "hl" "uL" "mL" "L" "hL"
- "mHz" "Hz" "kHz" "MHz" "GHz" "THz"
- "mN" "N" "kN" "MN"
- "Pa" "kPa" "MPa" "GPa"
- "mohm" "kohm" "Mohm"
- "pV" "nV" "uV" "mV" "V" "kV"
- "uW" "mW" "W" "kW" "MW" "GW"
- "J" "uJ" "mJ" "kJ"
- "eV" "meV" "keV" "MeV" "GeV" "TeV" "kWh"
- "F" "fF" "pF" "nF" "uF"
- "H" "mH" "uH"
- "K" "dB"
- "kibi" "mebi" "gibi" "tebi" "pebi"
- "exbi" "zebi" "yobi" "bit" "byte")
-
- ;; \cancel is only available when cancel.sty is loaded:
- (when (member "cancel" (TeX-style-list))
- (LaTeX-add-siunitx-units "cancel"))
-
- ;; FIXME: 'siunitx.sty' adds only one new column specification
- ;; letter 'S' in v3 and 's' is removed. We keep 's' for older
- ;; documents and remove it sometimes later.
- (set (make-local-variable 'LaTeX-array-column-letters)
- (concat LaTeX-array-column-letters "S" "s"))
-
- (TeX-run-style-hooks "l3keys2e"
- "array"
- "amstext"
- "xparse"
- "expl3")
-
- ;; Fontification
- (when (and (featurep 'font-latex)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords '(("num" "[{")
- ("numlist" "[{")
- ("numproduct" "[{")
- ("numrange" "[{{")
- ("ang" "[{")
- ("qtylist" "[{{")
- ("qtyrange" "[{{{")
- ("complexnum" "[{")
- ("complexqty" "[{")
- ("DeclareSIUnit" "[|{\\{")
- ("DeclareSIPrefix" "|{\\{{")
- ("DeclareSIPower" "|{\\|{\\{")
- ("DeclareSIQualifier" "|{\\{")
- ("tablenum" "[{")
- ("highlight" "{")
- ("sisetup" "{")
- ;; These macros are deprecated in v3 but
- ;; still available:
- ("si" "[{")
- ("SI" "[{[{")
- ("SIlist" "[{{")
- ("SIrange" "[{{{"))
- 'function)
- (let ((styles (TeX-style-list)))
- (unless (member "physics" styles)
- (font-latex-add-keywords '(("qty" "[{{"))
- 'function))
- (unless (member "units" styles)
- (font-latex-add-keywords '(("unit" "[{"))
- 'function)))))
- TeX-dialect)
-
-(defun LaTeX-siunitx-package-options nil
- "Prompt for package options for the siunitx package."
- (TeX-read-key-val t (append
- ;; 'table-column-type' is a preamble only:
- '(("table-column-type"))
- LaTeX-siunitx-package-options)))
-
-;; siunitx.el ends here