auctex-diffs
[Top][All Lists]
Advanced

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

[AUCTeX-diffs] GNU AUCTeX branch, master, updated. ec7caff5fa3a31c39e212


From: Arash Esbati
Subject: [AUCTeX-diffs] GNU AUCTeX branch, master, updated. ec7caff5fa3a31c39e21244a118cf59f6194f390
Date: Sun, 29 Jan 2017 16:17:23 +0000 (UTC)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU AUCTeX".

The branch, master has been updated
       via  ec7caff5fa3a31c39e21244a118cf59f6194f390 (commit)
      from  1b3f6e813326b65eb753c4be00bd74f7ae15963b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ec7caff5fa3a31c39e21244a118cf59f6194f390
Author: Arash Esbati <address@hidden>
Date:   Sun Jan 29 17:16:45 2017 +0100

    Add new style/breqn.el
    
    * Makefile.in (STYLESRC): Add new style.
    
    * style/breqn.el: New file.

diff --git a/Makefile.in b/Makefile.in
index e650ddc..19ef2ab 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -163,7 +163,7 @@ STYLESRC = style/prosper.el \
           style/bicaption.el style/amsfonts.el  style/subfiles.el \
           style/dcolumn.el   style/mdframed.el  style/tcolorboxlib-raster.el \
           style/titleps.el   style/titlesec.el  style/titletoc.el \
-          style/exam.el
+          style/exam.el      style/breqn.el
 
 STYLEELC = $(STYLESRC:.el=.elc)
 
diff --git a/style/breqn.el b/style/breqn.el
new file mode 100644
index 0000000..0c75fac
--- /dev/null
+++ b/style/breqn.el
@@ -0,0 +1,185 @@
+;;; breqn.el --- AUCTeX style for `breqn.sty' (v0.98e)
+
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <address@hidden>
+;; Maintainer: address@hidden
+;; Created: 2017-01-06
+;; 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 `breqn.sty' (v0.98e) from 2017/01/27.
+;; `breqn.sty' is part of TeXLive.
+
+;; In breqn documentation, there is the following statement:
+;;
+;;   9 Various environment options
+;;
+;;   Use of the normal \label command instead of the label option
+;;   works, I think, most of the time (untested).
+;;
+;; To be on the safe side, a label should be written in the optional
+;; argument of an environment as value to the `label' key, e.g.:
+;;
+;;   \begin{dmath}[label={eq:42}]
+;;     ...
+;;   \end{dmath}
+;;
+;; This style achieves this requirement by using the function
+;; `LaTeX-env-label-as-keyval'.
+
+;;; Code:
+
+(defvar LaTeX-breqn-key-val-options
+  '(("style" ("\\tiny" "\\scriptsize" "\\footnotesize" "\\small"
+             "\\normalsize" "\\large" "\\Large" "\\LARGE"
+             "\\huge" "\\Huge"))
+    ("number")
+    ("indentstep")
+    ("compact")
+    ("spread")
+    ("frame")
+    ("framesep")
+    ("background")
+    ("color")
+    ("breakdepth"))
+  "Key=value options for breqn environments.
+The keys \"label\" and \"labelprefix\" are omitted.")
+
+(defvar LaTeX-breqn-key-val-options-local nil
+  "Buffer-local key=value options for breqn environments.")
+(make-variable-buffer-local 'LaTeX-breqn-key-val-options-local)
+
+(defvar LaTeX-breqn-key-val-label-regexp
+  `(,(concat
+      "\\\\begin{"
+      (regexp-opt '("dmath" "dseries" "dgroup" "darray"))
+      "}"
+      "\\(?:\\[[^][]*"
+       "\\(?:{[^}{]*"
+         "\\(?:{[^}{]*"
+           "\\(?:{[^}{]*}[^}{]*\\)*"
+         "}[^}{]*\\)*"
+       "}[^][]*\\)*"
+      "label[ \t]*=[ \t]*{\\([^}]+\\)}"
+      "\\(?:[^]]*\\)*"
+      "\\]\\)")
+    1 LaTeX-auto-label)
+  "Matches the label inside an optional argument after 
\\begin{<breqn-env's>}.")
+
+(defun LaTeX-breqn-env (env)
+  "Insert ENV from breqn package incl. optional key=val argument.
+Keys offered for key=val query depend on ENV.  \"label\" and
+\"labelprefix\" are omitted."
+  (let ((keyvals
+        (TeX-read-key-val t
+                          (cond ((or (string= env "dgroup")
+                                     (string= env "dgroup*"))
+                                 (append '(("noalign") ("brace"))
+                                         LaTeX-breqn-key-val-options-local))
+                                ((or (string= env "darray")
+                                     (string= env "darray*"))
+                                 (append '(("noalign") ("brace") ("cols" 
("{}")))
+                                         LaTeX-breqn-key-val-options-local))
+                                (t LaTeX-breqn-key-val-options-local)))))
+    (LaTeX-insert-environment env (when (and keyvals
+                                            (not (string= keyvals "")))
+                                   (concat LaTeX-optop keyvals LaTeX-optcl)))
+    (LaTeX-env-label-as-keyval nil nil keyvals env)))
+
+(defun LaTeX-breqn-update-color-keys ()
+  "Update color relevant keys from `LaTeX-breqn-key-val-options-local'."
+  (when (or (member "xcolor" (TeX-style-list))
+           (member "color" (TeX-style-list)))
+    (let* ((colorcmd (if (member "xcolor" (TeX-style-list))
+                        #'LaTeX-xcolor-definecolor-list
+                      #'LaTeX-color-definecolor-list))
+          (keys '("color" "background"))
+          (tmp (copy-alist LaTeX-breqn-key-val-options-local)))
+      (dolist (x keys)
+       (assq-delete-all (car (assoc x tmp)) tmp)
+       (push (list x (mapcar #'car (funcall colorcmd))) tmp))
+      (setq LaTeX-breqn-key-val-options-local
+           (copy-alist tmp)))))
+
+(add-hook 'TeX-auto-cleanup-hook #'LaTeX-breqn-update-color-keys t)
+(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
+
+(TeX-add-style-hook
+ "breqn"
+ (lambda ()
+
+   ;; Local version of key-val options
+   (setq LaTeX-breqn-key-val-options-local
+        (copy-alist LaTeX-breqn-key-val-options))
+
+   ;; Add breqn to parser:
+   (TeX-auto-add-regexp LaTeX-breqn-key-val-label-regexp)
+
+   ;; Tell AUCTeX that we want to prefix the labels with 
`LaTeX-equation-label':
+   (let ((envs '("dmath"  "dseries" "dgroup" "darray")))
+     (dolist (env envs)
+       (add-to-list 'LaTeX-label-alist (cons env LaTeX-equation-label) t)))
+
+   ;; For RefTeX, we must distinguish between equation and eqnarray-like:
+   ;; breqn env == equivalent -- starred
+   ;; dmath     == equation   -- dmath*   == unnumbered
+   ;; dseries   == equation   -- dseries* == unnumbered
+   ;; dgroup    == align      -- dgroup*  == unnumbered
+   ;; darray    == eqnarray   -- darray*  == unnumbered
+   (when (fboundp 'reftex-add-label-environments)
+     (dolist (env '("dmath" "dseries" "dgroup"))
+       (reftex-add-label-environments `((,env ?e nil nil t))))
+     (reftex-add-label-environments '(("darray" ?e nil nil eqnarray-like))))
+
+   (LaTeX-add-environments
+    '("dmath" LaTeX-breqn-env)
+    '("dmath*" LaTeX-breqn-env)
+    '("dseries" LaTeX-breqn-env)
+    '("dseries*" LaTeX-breqn-env)
+    '("dgroup" LaTeX-breqn-env)
+    '("dgroup*" LaTeX-breqn-env)
+    '("darray" LaTeX-breqn-env)
+    '("darray" LaTeX-breqn-env)
+    '("dsuspend"))
+
+   (TeX-add-symbols
+    '("condition"  [ "Punctuation mark (default ,)" ] t)
+    '("condition*" [ "Punctuation mark (default ,)" ] t)
+    '("hiderel" t))
+
+   ;; Fontification
+   (when (and (featurep 'font-latex)
+             (eq TeX-install-font-lock 'font-latex-setup)
+             (boundp 'font-latex-math-environments))
+     (make-local-variable 'font-latex-math-environments)
+     (let ((envs '(;; Do not insert the starred versions here;
+                  ;; function `font-latex-match-math-envII' takes
+                  ;; care of it
+                  "dmath" "dseries" "dgroup" "darray")))
+       (dolist (env envs)
+        (add-to-list 'font-latex-math-environments env t)))))
+ LaTeX-dialect)
+
+(defvar LaTeX-breqn-package-options nil
+  "Package options for the breqn package.")
+
+;;; breqn.el ends here

-----------------------------------------------------------------------

Summary of changes:
 Makefile.in    |    2 +-
 style/breqn.el |  185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 186 insertions(+), 1 deletion(-)
 create mode 100644 style/breqn.el


hooks/post-receive
-- 
GNU AUCTeX



reply via email to

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