--- /dev/null
+;;; amsmath.el --- Style hook for the AMS-LaTeX amsmath package.
+
+;; Copyright (C) 2002, 2005 Free Software Foundation, Inc.
+;; FIXME: What about the copyright for <= 2001?
+
+;; Author: Carsten Dominik <dominik@strw.leidenuniv.nl>
+;; Maintainer: auctex-devel@gnu.org
+
+;; 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 will also load the amstext, amsbsy and amsopn style files.
+
+;;; Code:
+
+(TeX-add-style-hook "amsmath"
+ (function
+ (lambda ()
+
+ (LaTeX-add-environments
+ '("align" LaTeX-env-label)
+ '("gather" LaTeX-env-label)
+ '("flalign" LaTeX-env-label)
+ '("multline" LaTeX-env-label)
+ '("alignat" LaTeX-amsmath-env-alignat)
+ '("alignat*" LaTeX-amsmath-env-alignat)
+ '("xalignat" LaTeX-amsmath-env-alignat)
+ '("xalignat*" LaTeX-amsmath-env-alignat)
+ '("xxalignat" LaTeX-amsmath-env-alignat)
+ '("aligned" LaTeX-amsmath-env-aligned)
+ '("gathered" LaTeX-amsmath-env-aligned)
+ "align*" "gather*" "flalign*" "multline*" "equation*"
+ "split"
+ "cases"
+ "matrix" "smallmatrix" "pmatrix" "bmatrix" "Bmatrix" "vmatrix" "Vmatrix"
+ "subequations"
+ '("subarray" "Alignment"))
+
+ (TeX-add-symbols
+ '("eqref" TeX-arg-ref)
+ '("numberwithin" TeX-arg-counter "Section level")
+ '("raisetag" "Dimension")
+ '("intertext" t)
+ '("hdotsfor" ["Stretch"] "Number of columns to cover")
+ '("xleftarrow" ["Below"] "Above")
+ '("xrightarrow" ["Below"] "Above")
+ '("overset" "Accent symbol" "Symbol")
+ '("underset" "Accent symbol" "Symbol")
+ '("dfrac" 2)
+ '("tfrac" 2)
+ '("binom" 2)
+ '("dbinom" 2)
+ '("tbinom" 2)
+ '("genfrac" "Left delimiter" "Right delimiter" "Thickness"
+ "Mathstyle" 2)
+ '("cfrac" ["position (l or r)"] t)
+ '("smash" ["where (t or b)"] t)
+ '("sideset" "Left" "Right")
+ '("tag" "(Tag)")
+ '("tag*" "Tag")
+ '("displaybreak" ["Weight (0..4)"])
+ '("allowdisplaybreaks" ["Weight (1..4)"])
+ '("substack" t)
+ '("leftroot" "Push root index left by")
+ '("uproot" "Push root index upward by")
+ '("boxed" t)
+ '("mspace" t)
+ '("mod" t)
+ '("pmod" t)
+ '("pod" t)
+ '("overleftrightarrow" t)
+ '("underleftarrow" t)
+ '("underrightarrow" t)
+ '("underleftrightarrow" t)
+ '("dddot" t)
+ '("ddddot" t)
+ "bmod" "notag"
+ "dots" "dotsb" "dotsc" "dotsi" "dotsm" "dotso" "nobreakdash"
+ "lvert" "rvert" "lVert" "rVert"
+ "iint" "iiint" "iiiint" "idotsint"
+ )
+
+ (setq LaTeX-item-list
+ (append '(("split" . LaTeX-item-equation)
+ ("multline" . LaTeX-item-equation)
+ ("multline*" . LaTeX-item-equation)
+ ("gather" . LaTeX-item-equations)
+ ("gather*" . LaTeX-item-equation)
+ ("gathered" . LaTeX-item-equation)
+ ("align" . LaTeX-item-equations)
+ ("align*" . LaTeX-item-equation)
+ ("aligned" . LaTeX-item-equation)
+ ("alignat" . LaTeX-item-equations)
+ ("alignat*" . LaTeX-item-equation)
+ ("xalignat" . LaTeX-item-equations)
+ ("xalignat*" . LaTeX-item-equation)
+ ("xxalignat" . LaTeX-item-equation)
+ ("flalign" . LaTeX-item-equations)
+ ("flalign*" . 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)
+ ("cases" . LaTeX-item-equation))
+ LaTeX-item-list))
+
+ ;; When `LaTeX-amsmath-label' is nil, use value of LaTeX-equation-label:
+ (unless LaTeX-amsmath-label
+ (setq LaTeX-amsmath-label LaTeX-equation-label))
+
+ (setq LaTeX-label-alist
+ (append '(("align" . LaTeX-amsmath-label)
+ ("alignat" . LaTeX-amsmath-label)
+ ("xalignat" . LaTeX-amsmath-label)
+ ("multline" . LaTeX-amsmath-label)
+ ("flalign" . LaTeX-amsmath-label)
+ ("gather" . LaTeX-amsmath-label))
+ LaTeX-label-alist))
+
+ ;; amsmath includes amstext, amsbsy, & amsopn.
+ ;; So we run their hooks, too.
+ (TeX-run-style-hooks "amstext" "amsbsy" "amsopn")
+
+ ;; If RefTeX is loaded, make it recognize the amsmath environments.
+ (when (fboundp 'reftex-add-to-label-alist)
+ (reftex-add-to-label-alist '(AMSTeX))))))
+
+(defun LaTeX-amsmath-env-alignat (env)
+ (let ((ncols (read-string "Number of columns: ")))
+ (LaTeX-insert-environment env (concat TeX-grop ncols TeX-grcl))
+ (and (not (string= "xxalignat" env))
+ (not (string= "*" (substring env -1)))
+ (LaTeX-label env)
+ (newline-and-indent))))
+
+(defun LaTeX-amsmath-env-aligned (env)
+ (let ((where (read-string "(optional) Vertical position (t or b): ")))
+ (if (string= where "")
+ (setq where "")
+ (setq where (concat "[" where "]")))
+ (LaTeX-insert-environment env where)))
+
+(defun LaTeX-item-equation ()
+ (end-of-line 0)
+ (just-one-space)
+ (insert "\\\\")
+ (forward-line 1)
+ (indent-according-to-mode))
+
+(defun LaTeX-item-equations ()
+ (LaTeX-item-equation)
+ (let ((environment (LaTeX-current-environment 1)))
+ (and (LaTeX-label environment)
+ (newline-and-indent))))
+
+(defvar LaTeX-amsmath-package-options '("intlimits" "nointlimits"
+ "sumlimits" "nosumlimits"
+ "namelimits" "nonamelimits"
+ "leqno" "reqno" "centertags"
+ "tbtags" "cmex10" "fleqn" "?")
+ "Package options for the amsmath package.")
+
+;;; amsmath.el ends here.