diff --git a/siunitx.el b/siunitx.el index 8ba6dce..eeb5466 100644 --- a/siunitx.el +++ b/siunitx.el @@ -29,25 +29,195 @@ ;;; Code: +(defvar LaTeX-siunitx-package-options + '(;; Detecting fonts + ("detect-all") + ("detect-display-math" ("true" "false")) + ("detect-family" ("true" "false")) + ("detect-inline-family" ("math" "text")) + ("detect-inline-weight" ("math" "text")) + ("detect-mode" ("true" "false")) + ("detect-none") + ("detect-shape" ("true" "false")) + ("detect-weight" ("true" "false")) + ;; Font settings + ("color") + ("math-rm") + ("math-sf") + ("math-tt") + ("mode" ("math" "text")) + ("number-color") + ("text-rm") + ("text-sf") + ("text-tt") + ("unit-color") + ;; Parsing numbers + ("input-close-uncertainty") + ("input-comparators") + ("input-complex-roots") + ("input-decimal-markers") + ("input-digits") + ("input-exponent-markers") + ("input-ignore") + ("input-open-uncertainty") + ("input-protect-tokens") + ("input-signs") + ("input-uncertainty-signs") + ("input-symbols") + ("parse-numbers" ("true" "false")) + ;; Post-processing numbers + ("add-decimal-zero" ("true" "false")) + ("add-integer-zero" ("true" "false")) + ("explicit-sign") + ("fixed-exponent") + ("minimum-integer-digits") + ("omit-uncertainty" ("true" "false")) + ("retain-explicit-plus" ("true" "false")) + ("retain-unity-mantissa" ("true" "false")) + ("retain-zero-exponent" ("true" "false")) + ("round-half" ("up" "even")) + ("round-integer-to-decimal" ("true" "false")) + ("round-minimum") + ("round-mode" ("off" "figures" "places")) + ("round-precision") + ("scientific-notation" ("true" "false" "fixed" "engineering")) + ("zero-decimal-to-integer" ("true" "false")) + ;; Printing numbers + ("bracket-negative-numbers" ("true" "false")) + ("bracket-numbers" ("true" "false")) + ("close-bracket") + ("complex-root-position" ("after-number" "before-number")) + ("copy-complex-root") + ("copy-decimal-marker") + ("exponent-base") + ("exponent-product") + ("group-digits" ("true" "false" "decimal" "integer")) + ("group-minimum-digits") + ("group-separator") + ("negative-color") + ("open-bracket") + ("output-close-uncertainty") + ("output-complex-root") + ("output-decimal-marker") + ("output-exponent-marker") + ("output-open-uncertainty") + ("separate-uncertainty" ("true" "false")) + ("tight-spacing" ("true" "false")) + ("uncertainty-separator") + ;; Multi-part numbers + ("fraction-function") + ("input-product") + ("input-quotient") + ("output-product") + ("output-quotient") + ("quotient-mode" ("symbol" "fraction")) + ;; Lists and ranges of numbers + ("list-final-separator") + ("list-pair-separator") + ("list-separator") + ("range-phrase") + ;; Angles + ("add-arc-degree-zero" ("true" "false")) + ("add-arc-minute-zero" ("true" "false")) + ("add-arc-second-zero" ("true" "false")) + ("angle-symbol-over-decimal" ("true" "false")) + ("arc-separator") + ("number-angle-product") + ;; Creating units + ("free-standing-units" ("true" "false")) + ("overwrite-functions" ("true" "false")) + ("space-before-unit" ("true" "false")) + ("unit-optional-argument" ("true" "false")) + ("use-xspace" ("true" "false")) + ;; Loading additional units + ("abbreviations" ("true" "false")) + ("binary-units" ("true" "false")) + ("version-1-compatibility" ("true" "false")) + ;; Using units + ("bracket-unit-denominator" ("true" "false")) + ("forbid-literal-units" ("true" "false")) + ("literal-superscript-as-power" ("true" "false")) + ("inter-unit-product") + ("parse-units" ("true" "false")) + ("per-mode" ("reciprocal" "fraction" "reciprocal-positive-first" "symbol" "repeated-symbol" "symbol-or-fraction")) + ("per-symbol") + ("power-font" ("number" "unit")) + ("prefixes-as-symbols" ("true" "false")) + ("qualifier-mode" ("subscript" "brackets" "phrase" "space" "text")) + ("qualifier-phrase") + ("sticky-per" ("true" "false")) + ;; Numbers with units + ("allow-number-unit-breaks" ("true" "false")) + ("exponent-to-prefix" ("true" "false")) + ("list-units" ("brackets" "repeat" "single")) + ("multi-part-units" ("brackets" "repeat" "single")) + ("number-unit-product") + ("product-units" ("repeat" "brackets" "brackets-power" "power" "repeat" "single")) + ("range-units" ("brackets" "repeat" "single")) + ;; Tabular material + ("table-align-comparator" ("true" "false")) + ("table-align-exponent" ("true" "false")) + ("table-align-text-pre" ("true" "false")) + ("table-align-text-post" ("true" "false")) + ("table-align-uncertainty" ("true" "false")) + ("table-alignment" ("center" "left" "right")) + ("table-auto-round" ("true" "false")) + ("table-column-width") + ("table-comparator" ("true" "false")) + ("table-figures-decimal") + ("table-figures-exponent") + ("table-figures-integer") + ("table-figures-uncertainty") + ("table-format") + ("table-number-alignment" ("center-decimal-marker" "center" "left" "right")) + ("table-parse-only" ("true" "false")) + ("table-omit-exponent" ("true" "false")) + ("table-space-text-pre") + ("table-space-text-post") + ("table-sign-exponent" ("true" "false")) + ("table-sign-mantissa" ("true" "false")) + ("table-text-alignment" ("center" "left" "right")) + ("table-unit-alignment" ("center" "left" "right")) + ;; Symbols + ("math-angstrom") + ("math-arcminute") + ("math-arcsecond") + ("math-celsius") + ("math-degree") + ("math-micro") + ("math-ohm") + ("redefine-symbols" ("true" "false")) + ("text-angstrom") + ("text-arcminute") + ("text-arcsecond") + ("text-celsius") + ("text-degree") + ("text-micro") + ("text-ohm") + ;; Other options + ("locale" ("FR" "DE" "UK" "US" "ZA")) + ("strict")) + "Package options for the siunitx package.") + (TeX-add-style-hook "siunitx" (lambda () (TeX-add-symbols ;; Numbers - '("ang" [ "Options" ] "Angle") - '("num" [ "Options" ] "Number") - '("numlist" [ "Options" ] "Numbers") - '("numrange" [ "Options" ] "Number 1" "Number 2") + '("ang" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Angle") + '("num" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Number") + '("numlist" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Numbers") + '("numrange" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Number 1" "Number 2") ;; Units - '("si" [ "Options" ] "Unit") - '("SI" [ "Options" ] "Value" [ "Pre-unit"] "Unit") - '("SIlist" [ "Options" ] "Values" "Unit") - '("SIrange" [ "Options" ] "Value 1" "Value 2" "Unit") + '("si" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Unit") + '("SI" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Value" [ "Pre-unit"] "Unit") + '("SIlist" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Values" "Unit") + '("SIrange" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Value 1" "Value 2" "Unit") ;; Settings - '("sisetup" "Options") + '("sisetup" (TeX-arg-key-val LaTeX-siunitx-package-options)) ;; Tabular material - '("tablenum" [ "Options" ] "Number") + '("tablenum" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] "Number") ;; Creating new macros (`DeclareSIUnitWithOptions' macro is deprecated) - '("DeclareSIUnit" [ "Options" ] (TeX-arg-define-macro "Unit: \\") "Symbol") + '("DeclareSIUnit" [ (TeX-arg-key-val LaTeX-siunitx-package-options) ] (TeX-arg-define-macro "Unit: \\") "Symbol") '("DeclareSIPrefix" (TeX-arg-define-macro "Prefix: \\") "Symbol" "Powers of 10") '("DeclareBinaryPrefix" (TeX-arg-define-macro "Prefix: \\") "Symbol" "Powers of 2") '("DeclareSIPostPower" (TeX-arg-define-macro "Name: \\") "Power")