summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/empheq.el
diff options
context:
space:
mode:
authormattkae <mattkae@protonmail.com>2022-06-07 08:23:47 -0400
committermattkae <mattkae@protonmail.com>2022-06-07 08:23:47 -0400
commitbd18a38c2898548a3664a9ddab9f79c84f2caf4a (patch)
tree95b9933376770381bd8859782ae763be81c2d72b /elpa/auctex-13.1.3/style/empheq.el
parentb07628dddf418d4f47b858e6c35fd3520fbaeed2 (diff)
parentef160dea332af4b4fe5e2717b962936c67e5fe9e (diff)
Merge conflict
Diffstat (limited to 'elpa/auctex-13.1.3/style/empheq.el')
-rw-r--r--elpa/auctex-13.1.3/style/empheq.el485
1 files changed, 0 insertions, 485 deletions
diff --git a/elpa/auctex-13.1.3/style/empheq.el b/elpa/auctex-13.1.3/style/empheq.el
deleted file mode 100644
index b9f32b1..0000000
--- a/elpa/auctex-13.1.3/style/empheq.el
+++ /dev/null
@@ -1,485 +0,0 @@
-;;; empheq.el --- AUCTeX style for `empheq.sty' (v2.14) -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2016-2021 Free Software Foundation, Inc.
-
-;; Author: Arash Esbati <arash@gnu.org>
-;; Maintainer: auctex-devel@gnu.org
-;; Created: 2016-08-07
-;; 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 `empheq.sty' (v2.14) from 2014/08/04.
-;; `empheq.sty' is part of TeXLive.
-
-;;; Code:
-
-(require 'tex)
-(require 'latex)
-(eval-when-compile
- (require 'cl-lib))
-
-;; Silence the compiler:
-(declare-function font-latex-add-keywords
- "font-latex"
- (keywords class))
-
-(declare-function LaTeX-item-equation-alignat
- "amsmath" (&optional suppress))
-
-(defvar LaTeX-mathtools-package-options)
-
-(defvar LaTeX-empheq-key-val-options
- `(("box")
- ("innerbox")
- ("left" ,(mapcar
- (lambda (x)
- (concat TeX-esc x))
- '("empheqlbrace"
- "empheqlbrack"
- "empheqlangle"
- "empheqlparen"
- "empheqlvert"
- "empheqlVert"
- "empheqlfloor"
- "empheqlceil"
- "empheqbiglbrace"
- "empheqbiglbrack"
- "empheqbiglangle"
- "empheqbiglparen"
- "empheqbiglvert"
- "empheqbiglVert"
- "empheqbiglfloor"
- "empheqbiglceil")))
- ("right" ,(mapcar
- (lambda (x)
- (concat TeX-esc x))
- '("empheqrbrace"
- "empheqrbrack"
- "empheqrangle"
- "empheqrparen"
- "empheqrvert"
- "empheqrVert"
- "empheqrfloor"
- "empheqrceil"
- "empheqbigrbrace"
- "empheqbigrbrack"
- "empheqbigrangle"
- "empheqbigrparen"
- "empheqbigrvert"
- "empheqbigrVert"
- "empheqbigrfloor"
- "empheqbigrceil")))
- ("outerbox")
- ("marginbox"))
- "Key=value options for environments from empheq.sty.")
-
-(defvar LaTeX-empheq-supported-amsmath-envs
- '("equation" "equation*"
- "align" "align*"
- "gather" "gather*"
- "flalign" "flalign*"
- "alignat" "alignat*"
- "multline" "multline*")
- "List of amsmath environments supported by empheq package.")
-
-(defvar LaTeX-empheq-package-options
- '("overload" "overload2" "ntheorem" "newmultline" "oldmultline")
- "Package options for the empheq package.")
-(TeX-load-style "mathtools")
-;; Add elements from `LaTeX-mathtools-package-options' only once
-;; and not every time the style hook runs
-(dolist (elt LaTeX-mathtools-package-options)
- (add-to-list 'LaTeX-empheq-package-options elt))
-
-;; Setup for \Declare(Left|Right)Delimiter:
-
-(TeX-auto-add-type "empheq-declaredelimiter" "LaTeX")
-
-(defvar LaTeX-empheq-declaredelimiter-regexp
- `(,(concat "\\\\Declare\\(Left\\|Right\\)Delimiter"
- "[ \t\n\r%]*"
- "\\(?:\\[[^]]*\\]\\)?"
- "[ \t\n\r%]*"
- "{"
- (regexp-quote TeX-esc)
- "\\([^}]+\\)}")
- (2 1) LaTeX-auto-empheq-declaredelimiter)
- "Matches the argument of \\Declare(Left|Right)Delimiter from empheq package.")
-
-(defun LaTeX-empheq-auto-prepare ()
- "Clear `LaTeX-auto-empheq-declaredelimiter' before parsing."
- (setq LaTeX-auto-empheq-declaredelimiter nil))
-
-(defun LaTeX-empheq-auto-cleanup ()
- "Process parsed delimiters."
- (dolist (delim (mapcar #'car (LaTeX-empheq-declaredelimiter-list)))
- (TeX-add-symbols (concat "empheq" delim)
- (concat "empheqbig" delim))))
-
-(add-hook 'TeX-auto-prepare-hook #'LaTeX-empheq-auto-prepare t)
-(add-hook 'TeX-auto-cleanup-hook #'LaTeX-empheq-auto-cleanup t)
-(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
-
-(defun LaTeX-empheq-key-val-options ()
- "Return an updated list of key=vals from empheq package.
-This function retrieves values of user defined left and right
-delimiters and prepends them to variable
-`LaTeX-empheq-key-val-options'."
- (append
- (when (LaTeX-empheq-declaredelimiter-list)
- (let ((lvals (copy-sequence
- (cadr (assoc "left" LaTeX-empheq-key-val-options))))
- (rvals (copy-sequence
- (cadr (assoc "right" LaTeX-empheq-key-val-options)))))
- (dolist (delims (LaTeX-empheq-declaredelimiter-list))
- (let ((delim (car delims))
- (where (cadr delims)))
- (if (string= where "Left")
- (progn
- (cl-pushnew (concat TeX-esc "empheq" delim) lvals :test #'equal)
- (cl-pushnew (concat TeX-esc "empheqbig" delim) lvals :test #'equal))
- (cl-pushnew (concat TeX-esc "empheq" delim) rvals :test #'equal)
- (cl-pushnew (concat TeX-esc "empheqbig" delim) rvals :test #'equal))))
- `(("left" ,lvals)
- ("right" ,rvals))))
- LaTeX-empheq-key-val-options))
-
-(defun LaTeX-empheq-env (env)
- "Query for a supported amsmath environment and insert it accordingly.
-ENV is the name of environment passed to the function in the style hook."
- (let* ((keyvals (TeX-read-key-val t (LaTeX-empheq-key-val-options)))
- (amsenv (completing-read
- (TeX-argument-prompt nil nil "amsmath environment")
- LaTeX-empheq-supported-amsmath-envs))
- (ncols (when (or (string= amsenv "alignat")
- (string= amsenv "alignat*"))
- (TeX-read-string
- (TeX-argument-prompt nil nil "Number of columns"))))
- num)
- (LaTeX-insert-environment
- env
- (concat
- (when (and keyvals (not (string= keyvals "")))
- (concat LaTeX-optop keyvals LaTeX-optcl))
- TeX-grop
- (if (and ncols (not (string= ncols "")))
- (concat amsenv "=" ncols)
- amsenv)
- TeX-grcl))
- (when (and (assoc amsenv LaTeX-label-alist)
- (LaTeX-label amsenv 'environment))
- (LaTeX-newline)
- (indent-according-to-mode))
- (when (and ncols (not (string= ncols "")))
- (setq num (string-to-number ncols))
- (save-excursion
- (insert (make-string (+ num num -1) ?&))))))
-
-(defun LaTeX-empheq-env-overload (env &optional _ignore)
- "Insert amsmath ENV's when option overload is given to empheq package.
-This function combines the capabilities of `LaTeX-env-label' and
-`LaTeX-amsmath-env-alignat'. It overwrites the definitions of
-`amsmath.el'."
- (if (or (string= env "alignat")
- (string= env "alignat*"))
- (let ((ncols (TeX-read-string
- (TeX-argument-prompt nil nil "Number of columns")))
- (keyvals (TeX-read-key-val t
- (LaTeX-empheq-key-val-options)
- "empheq options (k=v)")))
- (LaTeX-insert-environment env
- (concat TeX-grop ncols TeX-grcl
- (when (and keyvals
- (not (string= keyvals "")))
- (concat LaTeX-optop
- keyvals
- LaTeX-optcl))))
- (LaTeX-item-equation-alignat t))
- (let ((keyvals
- (TeX-read-key-val t
- (LaTeX-empheq-key-val-options)
- "empheq options (k=v)")))
- (LaTeX-insert-environment env
- (when (and keyvals
- (not (string= keyvals "")))
- (concat LaTeX-optop
- keyvals
- LaTeX-optcl)))
- (when (and (assoc env LaTeX-label-alist)
- (LaTeX-label env 'environment))
- (LaTeX-newline)
- (indent-according-to-mode)))))
-
-(defun LaTeX-empheq-item-equation ()
- "Insert contents to terminate a line in multi-line equations environment.
-Put line break macro on the last line. Next, if the current
-environment wants \\label, insert it also. And insert suitable
-number of ampersands if possible."
- (let ((env (LaTeX-current-environment))
- amsenv ncols match)
- (save-excursion
- (LaTeX-find-matching-begin)
- (re-search-forward (concat (regexp-quote TeX-esc)
- "begin" TeX-grop env TeX-grcl))
- (when (looking-at "[ \t\n\r%]*\\[")
- (forward-sexp))
- (re-search-forward "[ \t\n\r%]*{\\([^}]+\\)}")
- (setq match (replace-regexp-in-string "[ \t\n\r%]" ""
- (match-string-no-properties 1)))
- (if (string-match "=" match)
- (progn
- (setq amsenv (car (split-string match "=")))
- (setq ncols (string-to-number (cadr (split-string match "=")))))
- (setq amsenv match)))
- ;; Do not ask for "\\" if in "equation" or "equation*" since these
- ;; are single line equations only
- (if (or (string= amsenv "equation")
- (string= amsenv "equation*"))
- ;; Nullify the effect of `M-RET'
- (progn
- (message "This environment does not support multi-line equations")
- (end-of-line 0)
- (kill-line 1))
- (progn
- (end-of-line 0)
- (just-one-space)
- (TeX-insert-macro "\\")
- (forward-line 1)
- (indent-according-to-mode)))
- ;; Add a new label only if not in "equation"
- (when (and (not (string= amsenv "equation"))
- (assoc amsenv LaTeX-label-alist)
- (LaTeX-label amsenv 'environment))
- (LaTeX-newline)
- (indent-according-to-mode))
- (when ncols
- (save-excursion
- (insert (make-string (+ ncols ncols -1) ?&))))))
-
-(TeX-add-style-hook
- "empheq"
- (lambda ()
-
- ;; Add empheq to parser
- (TeX-auto-add-regexp LaTeX-empheq-declaredelimiter-regexp)
-
- ;; Load amsmath.el and mathtools.el
- (TeX-run-style-hooks "amsmath" "mathtools")
-
- (LaTeX-add-environments
- '("empheq" LaTeX-empheq-env))
-
- ;; Add "empheq" to `LaTeX-item-list' and run
- ;; `LaTeX-empheq-item-equation' when `M-RET' is invoked
- (add-to-list 'LaTeX-item-list '("empheq" . LaTeX-empheq-item-equation) t)
-
- ;; Reftex support: Use `reftex-add-label-environments'
- (when (fboundp 'reftex-add-label-environments)
- (reftex-add-label-environments '(("empheq" ?e nil nil t))))
-
- (TeX-add-symbols
- '("empheqset" (TeX-arg-key-val (LaTeX-empheq-key-val-options)))
-
- ;; 1.4 Special delimiters
- ;; Normal
- '("empheqlbrace" TeX-arg-insert-right-brace-maybe)
- '("empheqrbrace")
- '("empheqlbrack" TeX-arg-insert-right-brace-maybe)
- '("empheqrbrack")
- '("empheqlangle" TeX-arg-insert-right-brace-maybe)
- '("empheqrangle")
- '("empheqlparen" TeX-arg-insert-right-brace-maybe)
- '("empheqrparen")
- '("empheqlvert" TeX-arg-insert-right-brace-maybe)
- '("empheqrvert")
- '("empheqlVert" TeX-arg-insert-right-brace-maybe)
- '("empheqrVert")
- '("empheqlfloor" TeX-arg-insert-right-brace-maybe)
- '("empheqrfloor")
- '("empheqlceil" TeX-arg-insert-right-brace-maybe)
- '("empheqrceil")
- ;; Bigger
- '("empheqbiglbrace" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrbrace")
- '("empheqbiglbrack" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrbrack")
- '("empheqbiglangle" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrangle")
- '("empheqbiglparen" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrparen")
- '("empheqbiglvert" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrvert")
- '("empheqbiglVert" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrVert")
- '("empheqbiglfloor" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrfloor")
- '("empheqbiglceil" TeX-arg-insert-right-brace-maybe)
- '("empheqbigrceil"))
-
- ;; Append delimiters to `TeX-braces-association'
- (make-local-variable 'TeX-braces-association)
- (let ((delimiters '(("\\empheqlbrace" . "\\empheqrbrace")
- ("\\empheqlbrack" . "\\empheqrbrack")
- ("\\empheqlangle" . "\\empheqrangle")
- ("\\empheqlparen" . "\\empheqrparen")
- ("\\empheqlvert" . "\\empheqrvert")
- ("\\empheqlVert" . "\\empheqrVert")
- ("\\empheqlfloor" . "\\empheqrfloor")
- ("\\empheqlceil" . "\\empheqrceil")
- ("\\empheqbiglbrace" . "\\empheqbigrbrace")
- ("\\empheqbiglbrack" . "\\empheqbigrbrack")
- ("\\empheqbiglangle" . "\\empheqbigrangle")
- ("\\empheqbiglparen" . "\\empheqbigrparen")
- ("\\empheqbiglvert" . "\\empheqbigrvert")
- ("\\empheqbiglVert" . "\\empheqbigrVert")
- ("\\empheqbiglfloor" . "\\empheqbigrfloor")
- ("\\empheqbiglceil" . "\\empheqbigrceil"))))
- (dolist (elt delimiters)
- (add-to-list 'TeX-braces-association elt t)))
-
- ;; 2.2.1 Using multline
- (when (LaTeX-provided-package-options-member "empheq" "oldmultline")
- (LaTeX-add-environments
- '("MTmultlined" LaTeX-mathtools-env-multlined)))
-
- ;; 2.2.2 The overload option
- ;; I simplify it and ignore the additional feature overload2:
- (when (or (LaTeX-provided-package-options-member "empheq" "overload")
- (LaTeX-provided-package-options-member "empheq" "overload2"))
- (LaTeX-add-environments
- '("align" LaTeX-empheq-env-overload)
- '("alignat" LaTeX-empheq-env-overload)
- '("equation" LaTeX-empheq-env-overload)
- '("flalign" LaTeX-empheq-env-overload)
- '("gather" LaTeX-empheq-env-overload)
- '("multline" LaTeX-empheq-env-overload)
- '("align*" LaTeX-env-args [TeX-arg-key-val (LaTeX-empheq-key-val-options)])
- '("alignat*" LaTeX-empheq-env-overload)
- '("equation*" LaTeX-env-args [TeX-arg-key-val (LaTeX-empheq-key-val-options)])
- '("flalign*" LaTeX-env-args [TeX-arg-key-val (LaTeX-empheq-key-val-options)])
- '("gather*" LaTeX-env-args [TeX-arg-key-val (LaTeX-empheq-key-val-options)])
- '("multline*" LaTeX-env-args [TeX-arg-key-val (LaTeX-empheq-key-val-options)])
-
- ;; Original definitions are stored prefixed with "AmS"
- '("AmSalign" LaTeX-env-label)
- '("AmSalignat" LaTeX-amsmath-env-alignat)
- '("AmSequation" LaTeX-env-label)
- '("AmSflalign" LaTeX-env-label)
- '("AmSgather" LaTeX-env-label)
- '("AmSmultline" LaTeX-env-label)
- '("AmSalign*")
- '("AmSalignat*" LaTeX-amsmath-env-alignat)
- '("AmSequation*")
- '("AmSflalign*")
- '("AmSgather*")
- '("AmSmultline*"))
-
- ;; Append original definitions to `LaTeX-label-alist'
- (let ((envs '("AmSalign"
- "AmSalignat"
- "AmSequation"
- "AmSflalign"
- "AmSgather"
- "AmSmultline")))
- (dolist (env envs)
- (add-to-list 'LaTeX-label-alist `(,env . LaTeX-amsmath-label) t)))
-
- ;; RefTeX support: Add original definitions with `reftex-add-label-environments'
- (when (fboundp 'reftex-add-label-environments)
- (let ((envs '(("AmSalign" ?e nil nil eqnarray-like)
- ("AmSequation" ?e nil nil t)
- ("AmSgather" ?e nil nil eqnarray-like)
- ("AmSmultline" ?e nil nil t)
- ("AmSflalign" ?e nil nil eqnarray-like)
- ("AmSalignat" ?e nil nil alignat-like))))
- (dolist (env envs)
- (reftex-add-label-environments `(,env)))))
-
- ;; Append original definitions to `LaTeX-item-list'; functions
- ;; are provided by amsmath.el
- (let ((envs '(("AmSalign" . LaTeX-item-equation)
- ("AmSalign*" . LaTeX-item-equation)
- ("AmSflalign" . LaTeX-item-equation)
- ("AmSalignat" . LaTeX-item-equation-alignat)
- ("AmSalignat*" . LaTeX-item-equation-alignat)
- ("AmSflalign*" . LaTeX-item-equation)
- ("AmSgather" . LaTeX-item-equation)
- ("AmSgather*" . LaTeX-item-equation)
- ("AmSmultline" . LaTeX-item-equation)
- ("AmSmultline*" . LaTeX-item-equation))))
- (dolist (env envs)
- (add-to-list 'LaTeX-item-list env t)))
-
- ;; Ispell skip lists:
- (TeX-ispell-skip-setcdr
- `(,(cons (concat "\\(AmS\\(?:align\\(?:\\*\\|at\\*?\\)?\\|"
- "equation\\*?\\|flalign\\*?\\|gather\\*?\\|multline\\*?\\)\\)")
- (concat "\\\\end{"
- "\\(AmS\\(?:align\\(?:\\*\\|at\\*?\\)?\\|"
- "equation\\*?\\|flalign\\*?\\|gather\\*?\\|multline\\*?\\)\\)}")))))
-
- ;; 3.2 Support for ntheorem
- (LaTeX-add-lengths "mintagvsep")
-
- ;; 4.1 Creating your own delimiters
- (TeX-add-symbols
- '("DeclareLeftDelimiter"
- [ "Space adjustment" ]
- (TeX-arg-eval
- (lambda ()
- (let ((delim (TeX-read-string (concat "Delimiter: " TeX-esc))))
- (TeX-add-symbols (concat "empheq" delim)
- (concat "empheqbig" delim))
- (LaTeX-add-empheq-declaredelimiters `(,delim "Left"))
- (concat TeX-esc delim)))))
-
- '("DeclareRightDelimiter"
- [ "Space adjustment" ]
- (TeX-arg-eval
- (lambda ()
- (let ((delim (TeX-read-string (concat "Delimiter: " TeX-esc))))
- (TeX-add-symbols (concat "empheq" delim)
- (concat "empheqbig" delim))
- (LaTeX-add-empheq-declaredelimiters `(,delim "Right"))
- (concat TeX-esc delim))))))
-
- ;; 4.2 Fine-tuning of delimiters
- (LaTeX-add-lengths "EmphEqdelimitershortfall")
- (LaTeX-add-counters "EmphEqdelimiterfactor")
-
- (TeX-add-symbols
- ;; 4.3 Scaling material yourself
- '("EmphEqdisplayheight" 0)
- '("EmphEqdisplaydepth" 0)
- ;; 6.1 New empheq-like environments
- '("EmphEqMainEnv" 0)
- '("endEmphEqMainEnv" 0))
-
- ;; Fontification
- (when (and (featurep 'font-latex)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords '(("empheqset" "{")
- ("DeclareLeftDelimiter" "[{")
- ("DeclareRightDelimiter" "[{"))
- 'function)))
- TeX-dialect)
-
-;;; empheq.el ends here