auctex-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[AUCTeX-diffs] Changes to style/mathtools.el


From: Tassilo Horn
Subject: [AUCTeX-diffs] Changes to style/mathtools.el
Date: Wed, 26 Dec 2012 10:45:49 +0000

CVSROOT:        /sources/auctex
Module name:    auctex
Changes by:     Tassilo Horn <tsdh>     12/12/26 10:45:47

Index: style/mathtools.el
===================================================================
RCS file: style/mathtools.el
diff -N style/mathtools.el
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ style/mathtools.el  26 Dec 2012 10:45:47 -0000      1.1
@@ -0,0 +1,197 @@
+;;; mathtools.el --- Style hook for the LaTeX package `mathtools'.
+
+;; Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+;; Author: Mads Jensen <address@hidden>
+;; Created: 2011-02-13
+;; 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 `mathtools.sty'
+
+;;; Comments:
+
+;;; This package serves as a wrapper for amsmath, adding more features
+;;; and fixing a few bugs in amsmath.  The mathstyle argument for many
+;;; of the macros is discussed at
+;;; <http://www.tug.org/TUGboat/Articles/tb22-4/tb72perlS.pdf>
+
+;;; Code:
+
+(defvar LaTeX-mathtools-key-val-options
+  "Options for the \\mathtoolsset command"
+  '(("showonlyrefs")
+    ("mathic" ("true" "false"))
+    ("showmanualtags" ("true" "false"))
+    ("firstline-afterskip")
+    ("lastline-preskip")
+    ("multlined-pos" ("c" "b" "t"))
+    ("multlined-width")
+    ("centercolon" ("true" "false"))
+    ("prescript-sub-format")
+    ("prescript-sup-format")
+    ("prescript-arg-format")))
+
+(TeX-add-style-hook
+ "mathtools"
+ (function
+  (lambda ()
+
+    ;; mathtools requires amsmath, as some bugs in amsmath are fixed
+    (TeX-run-style-hooks "amsmath")
+
+    (LaTeX-add-environments
+     '("lgathered" LaTeX-amsmath-env-aligned)
+     '("rgathered" LaTeX-amsmath-env-aligned)
+     '("multlined" LaTeX-mathtools-env-multlined)
+     '("matrix*" LaTeX-mathtools-env-matrix-starred)
+     '("pmatrix*" LaTeX-mathtools-env-matrix-starred)
+     '("bmatrix*" LaTeX-mathtools-env-matrix-starred)
+     '("Bmatrix*" LaTeX-mathtools-env-matrix-starred)
+     '("vmatrix*" LaTeX-mathtools-env-matrix-starred)
+     '("Vmatrix*" LaTeX-mathtools-env-matrix-starred)
+     '("spreadlines" LaTeX-mathtools-env-spreadlines)
+     "dcases" "dcases*")
+
+    (TeX-add-symbols
+     '("mathtoolsset" (TeX-arg-key-val LaTeX-mathtools-key-val))
+     '("mathclap" 1)
+     '("mathllap" ["Mathstyle"] t)
+     '("mathrlap" ["Mathstyle"] t)
+     '("mathclap" ["Mathstyle"] t)
+     '("mathmakebox" [TeX-arg-size] [ TeX-arg-size ] 1)
+     '("clap" 1)
+     '("mathmbox" 1)
+     '("cramped" 1)
+     '("crampedllap" [ "Mathstye" ] t)
+     '("crampedrlap" [ "Mathstyle" ] t)
+     '("crampedclap" [ "Mathstyle" ] t)
+     '("smashoperator" [ "Position (l, r or lr (default)" ] 2)
+     ;; 3.1.4 Adjusting the limits of operators
+     ;; explicit argument encapsulation does not seem to be required
+     '("adjustlimits" 4)
+     ;; 3.2 Controlling tags
+     '("newtagform" "Name" ["Inner format"] "Left" "Right")
+     '("renewtagform" "Name" ["Inner format"] "Left" "Right")
+     '("usetagform" "Name")
+     '("xleftrightarrow" ["Below"] "Above")
+     '("xLeftarrow" ["Below"] "Above")
+     '("xRightarrow" ["Below"] "Above")
+     '("xLeftrightarrow" ["Below"] "Above")
+     '("xhookleftarrow" ["Below"] "Above")
+     '("xhookrightarrow" ["Below"] "Above")
+     '("xmapsto" ["Below"] "Above")
+     '("xrightharpoondown" ["Below"] "Above")
+     '("xrightharpoonup" ["Below"] "Above")
+     '("xleftharpoondown" ["Below"] "Above")
+     '("xleftharpoonup" ["Below"] "Above")
+     '("xrightleftharpoons" ["Below"] "Above")
+     '("xleftrightharpoons" ["Below"] "Above")
+     '("underbracket" [ "Rule thickness" ] [ "Bracket height" ] t)
+     '("overbracket" [ "Rule thickness" ] [ "Bracket height" ] t)
+     '("underbrace" 1)
+     '("overbrace" 1)
+     '("LaTeXunderbrace" 1)
+     '("LaTeXoverbrace" 1)
+     ;; 3.4.2
+     '("shoveleft"  [ TeX-arg-size ] 1)
+     '("shoveright" [ TeX-arg-size ] 1)
+     ;; don't understand t, but intertext in amsmath.el uses it
+     '("shortintertext" t)
+     '("DeclarePairedDelimeter" TeX-arg-macro "Left delimeter" "Right 
delimeter")
+     ;; 3.4.4
+     '("MoveEqLeft" [ "Number" ])
+     '("ArrowBetweenLines" [ TeX-arg-macro ] )
+     '("ArrowBetweenLines*" [ TeX-arg-macro ] )
+     ;; colon operators
+     "vcentcolon" "ordinarycolon" "coloneqq" "Coloneqq"
+     "coloneq" "Coloneq" "eqqcolon" "Eqqcolon" "eqcolon"
+     "Eqcolon" "colonapprox" "Colonapprox" "colonsim" "Colonsim"
+     ;; 3.7.1
+     "lparen" "rparen"
+     ;; left sub/superscripts
+     '("prescript" "Below" "Above" t)
+     ;; Declaring math sizes; this command doesn't seem so relevant, but
+     ;; for completion, it's included
+     '("DeclareMathSizes" 4)
+     ;; Gathered envionments
+     '("newgather" "Name" "Pre-line" "Post-line" "After")
+     '("renewgather" "Name" "Pre-line" "Post-line" "After")
+     ;; Split fractions
+     '("splitfrac" 2)
+     '("splitdfrac" 2))
+
+    (setq LaTeX-item-list
+         (append '(("multlined"    . LaTeX-item-equation)
+                   ("lgathered" . LaTeX-item-equation)
+                   ("rgathered" . LaTeX-item-equation)
+                   ("spreadlines" . LaTeX-item-equation)
+                   ("matrix*" .  LaTeX-item-equation)
+                   ("pmatrix*" .  LaTeX-item-equation)
+                   ("bmatrix*" .  LaTeX-item-equation)
+                   ("Bmatrix*" .  LaTeX-item-equation)
+                   ("vmatrix*" .  LaTeX-item-equation)
+                   ("Vmatrix*" .  LaTeX-item-equation)
+                   ("dcases"    . LaTeX-item-equation)
+                   ("dcases*"    . LaTeX-item-equation))
+                 LaTeX-item-list))
+
+    (setq LaTeX-label-alist
+         (append '(("lgathered"    . LaTeX-amsmath-label)
+                   ("rgathered"   . LaTeX-amsmath-label)
+                   ("multlined"    . LaTeX-amsmath-label)
+                   LaTeX-label-alist))))))
+
+(defun LaTeX-mathtools-env-matrix-starred (env)
+  (let ((where (read-string "(optional) Vertical placement of columns: ")))
+    (if (string= where "")
+       (setq where "")
+      (setq where (concat "[" where "]")))
+    (LaTeX-insert-environment env where)))
+
+(defun LaTeX-mathtools-env-spreadlines (env)
+  (let ((spread (read-string "Spacing between lines: ")))
+    (LaTeX-insert-environment env (concat TeX-grop spread TeX-grcl))
+    (newline-and-indent)))
+
+;; FIXME: there are probably more subtle ways to support more than one
+;; optional argument; please change if this is the case
+(defun LaTeX-mathtools-env-multlined (env)
+  (let ((pos (read-string "(optional) Position: "))
+       (width (read-string "(optional) Width: "))
+       (extra ""))
+    (if (not (string= pos ""))
+       (setq pos (concat LaTeX-optop pos LaTeX-optcl))
+      (setq pos ""))
+    (if (not (string= width ""))
+       (setq width (concat LaTeX-optop width LaTeX-optcl))
+      (setq width ""))
+    (setq extra (concat pos width))
+    (LaTeX-insert-environment env extra)
+    (newline-and-indent)))
+
+;; amsmath options can also be passed directly to mathtools
+(defvar LaTeX-mathtools-package-options
+  (append '("fixamsmath" "donotfixamsmathbugs"
+           "allowspaces" "disallowspaces") LaTeX-amsmath-package-options)
+  "Package options for the mathtools package.")
+
+;;; mathtools.el ends here.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]