[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex 17f5888 34/35: Merge branch 'master' into elpa
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex 17f5888 34/35: Merge branch 'master' into elpa |
Date: |
Sun, 22 Mar 2015 09:27:10 +0000 |
branch: externals/auctex
commit 17f588897feb284a072a4c2be929f6adadbd3490
Merge: 8c89edf ca40c6a
Author: Tassilo Horn <address@hidden>
Commit: Tassilo Horn <address@hidden>
Merge branch 'master' into elpa
---
ChangeLog | 199 +++++++++++++++++++++++
Makefile.in | 26 +++-
doc/Makefile.in | 14 ++-
doc/auctex.texi | 34 ++++
doc/install.texi | 26 +++-
doc/wininstall.texi | 2 +-
font-latex.el | 5 +-
latex.el | 87 +++++++---
latex/Makefile.in | 14 ++-
style/bidibeamer.el | 40 +++++
style/caption.el | 311 +++++++++++++++++++++++++++++++++++
style/color.el | 308 +++++++++++++++++++++++++++++++++++
style/currvita.el | 94 +++++++++++
style/enumitem.el | 447 +++++++++++++++++++++++++++++++++++++++++++++++++++
style/expl3.el | 51 ++++++
style/geometry.el | 150 +++++++++++++++++
style/ltablex.el | 49 ++++++
style/ltxtable.el | 51 ++++++
style/mn2e.el | 175 ++++++++++++++++++++
style/tcolorbox.el | 82 ++++++++++
tex-buf.el | 87 ++++++-----
tex.el | 129 +++++++++------
22 files changed, 2248 insertions(+), 133 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7d47bcd..4b64c90 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,202 @@
+2015-03-17 Mos� Giordano <address@hidden>
+
+ * doc/wininstall.texi: Fix a broken link.
+
+ * style/mn2e.el: New style file.
+
+ * Makefile.in (STYLESRC): Activate new style.
+
+2015-03-15 Arash Esbati <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/ltxtable.el: New file.
+
+2015-03-15 Arash Esbati <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/ltablex.el: New file.
+
+2015-03-15 Arash Esbati <address@hidden>
+
+ * style/enumitem.el (LaTeX-enumitem-SetEnumitemKey-regexp): Delete
+ match for the second argument.
+ (LaTeX-enumitem-SetEnumitemValue-regexp): Delete match for the
+ third argument.
+ (LaTeX-arg-SetEnumitemValue): Replace the randomly generated
+ number with something human-readable.
+
+ * style/caption.el (LaTeX-caption-DeclareCaption-regexp): Delete
+ match for the second argument.
+ (LaTeX-arg-caption-DeclareCaption): Replace the randomly generated
+ number with something human-readable.
+
+2015-03-10 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-style-path): Replace `pushnew' with equivalent code
+ since defcustom init-forms don't seem to get compiled.
+
+ * doc/auctex.texi (Modes and Hooks): Document
+ TeX-after-TeX-LaTeX-command-finished-hook.
+
+ * tex-buf.el (TeX-after-TeX-LaTeX-command-finished-hook): New
+ hook.
+ (TeX-LaTeX-sentinel): Call it.
+
+2015-03-09 Mos� Giordano <address@hidden>
+
+ * tex-buf.el (TeX-find-display-help): Display the help also when
+ the file cannot be determined.
+
+ * latex.el (LaTeX-end-regexp): Add "\]".
+ (LaTeX-indent-calculate): Indent "\[...\]" display math as a
+ regular environment.
+
+2015-03-08 Arash Esbati <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/geometry.el: New file.
+
+2015-03-08 Arash Esbati <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/caption.el: New file.
+
+2015-03-08 Arash Esbati <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/enumitem.el: New file.
+
+2015-03-08 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-style-path): Replace add-to-list on local with
+ pushnew.
+
+ * style/bidibeamer.el: New style.
+
+ * Makefile.in (STYLESRC): Activate new bidibeamer style.
+
+2015-03-07 Mos� Giordano <address@hidden>
+
+ * doc/install.texi: Mention uninstallation in menus.
+ (Build/install and uninstall): Add "Uninstallation" index entry.
+ Document uninstallation process.
+
+ * Makefile.in: Update copyright years.
+ (.PHONY): Add uninstall rule.
+ (uninstall): New rule.
+
+ * doc/Makefile.in: Update copyright years.
+ (.PHONY): Add uninstall rule.
+ (uninstall): New rule.
+
+ * latex/Makefile.in: Update copyright years.
+ (.PHONY): Declare phony targets.
+ (install-texmf-doc): Do not ignore errors in this rule.
+ (uninstall): New rule.
+
+2015-03-03 Tassilo Horn <address@hidden>
+
+ * doc/auctex.texi (Filling): Document LaTeX-fill-excluded-macros.
+
+ * latex.el (LaTeX-fill-excluded-macros): New defcustom for
+ excluding macro arguments from filling.
+ (LaTeX-fill-region-as-paragraph): Use it.
+
+2015-03-02 Tassilo Horn <address@hidden>
+
+ * font-latex.el (font-latex-match-command-with-arguments): Fix
+ error introduced in the last change.
+
+2015-02-24 Tassilo Horn <address@hidden>
+
+ * style/expl3.el: New style for the wrapper package for
+ experimental LaTeX 3.
+
+ * Makefile.in (STYLESRC): Activate new style.
+
+ * font-latex.el (font-latex-match-simple-command)
+ (font-latex-match-command-with-arguments): Use \s_ and \sw regexp
+ classes instead of hard-coding address@hidden as LaTeX macro chars.
+
+2015-02-17 Tassilo Horn <address@hidden>
+
+ * latex.el (LaTeX-after-insert-env-hook): Rename from
+ `LaTeX-after-insert-env-hooks' which is now an obsolete variable
+ alias.
+ (LaTeX-after-modify-env-hook): New hook.
+ (LaTeX-modify-environment): Run `LaTeX-after-modify-env-hook'.
+
+2015-02-13 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-pdf-tools-sync-view, TeX-PDF-mode): Move addition of
+ `TeX-source-correlate-handle-TeX-region' to
+ `pdf-sync-backward-redirect-functions' from `TeX-PDF-mode' to
+ `TeX-pdf-tools-sync-view'.
+
+2015-02-09 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-pdf-tools-sync-view): Make it work with
+ `TeX-command-region'.
+
+2015-02-09 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-pdf-tools-sync-view): Simplify function.
+
+2015-02-09 Arash Esbati <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/color.el: New style.
+
+2015-02-08 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-source-correlate-handle-TeX-region): Fix
+ void-variable error.
+
+2015-02-07 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-pdf-tools-sync-view)
+ (TeX-source-correlate-handle-TeX-region)
+ (TeX-source-correlate-sync-source, TeX-PDF-mode): Adapt PDF Tools
+ forward/backward search to latest PDF Tools changes.
+
+2015-02-06 Mos� Giordano <address@hidden>
+
+ * tex.el (TeX-source-correlate-handle-TeX-region): Replace
+ `file-name-base', introduced in GNU Emacs 24, with
+ `file-name-sans-extension'+`file-name-nondirectory'.
+
+2015-02-06 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-source-correlate-handle-TeX-region): New function.
+ (TeX-source-correlate-sync-source): Use it.
+ (TeX-PDF-mode): Set `pdf-sync-correlate-tex-refine-function' to
+ `TeX-source-correlate-sync-source'.
+
+2015-02-05 Tassilo Horn <address@hidden>
+
+ * tex.el (TeX-pdf-tools-sync-view): New function to use PDF Tools
+ `pdf-view-mode' as a viewer.
+ (TeX-view-program-list-builtin): Add PDF Tools entry calling
+ `TeX-pdf-tools-sync-view'.
+
+2015-02-04 Tassilo Horn <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/tcolorbox.el: New style.
+
+2015-01-31 Arash Esbati <address@hidden>
+
+ * Makefile.in (STYLESRC): Add new style.
+
+ * style/currvita.el: New file.
+
2015-01-27 Tassilo Horn <address@hidden>
* Version 11.88.2 released.
diff --git a/Makefile.in b/Makefile.in
index 39402e7..08c50a0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -2,7 +2,7 @@
# Maintainer: address@hidden
-# Copyright (C) 2003-2008, 2010, 2013, 2014 Free Software
+# Copyright (C) 2003-2008, 2010, 2013-2015 Free Software
# Foundation, Inc.
# This file is part of AUCTeX.
@@ -143,7 +143,12 @@ STYLESRC = style/prosper.el \
style/luatextra.el style/erewhon.el style/baskervaldx.el \
style/fbb.el style/newtxmath.el style/newtxsf.el \
style/newtxtext.el style/newtxttt.el style/minted.el \
- style/wrapfig.el style/relsize.el
+ style/wrapfig.el style/relsize.el style/currvita.el \
+ style/tcolorbox.el style/color.el style/expl3.el \
+ style/bidibeamer.el style/enumitem.el style/caption.el \
+ style/geometry.el style/ltablex.el style/ltxtable.el \
+ style/mn2e.el
+
STYLEELC = $(STYLESRC:.el=.elc)
ifeq (@preview_enabled@,yes)
@@ -183,7 +188,7 @@ all: texmf lisp docs
install-man clean distclean maintainer-clean extraclean \
tar-ball-clean check-tag check release-commit dist snapshot \
patch tar-ball rpm-packages wc xemacs-package windows-package \
- release-sign release-upload preview-ball
+ release-sign release-upload preview-ball uninstall
texmf: latex/Makefile
$(TEXMF)
@@ -351,6 +356,21 @@ install-metadata:
echo "pkginfo/MANIFEST.$(PACKAGE)" >> "pkginfo/MANIFEST.$(PACKAGE)" ;
\
}
+uninstall:
+ rm -rf $(DESTDIR)$(packagelispdir) $(DESTDIR)$(packagedatadir) \
+ $(DESTDIR)$(autodir)
+ if test X$(packagedir) = Xno ; then \
+ rm -f $(DESTDIR)$(lispdir)/tex-site.el \
+ $(DESTDIR)$(auctexstartfile) ; \
+ else \
+ rm -f $(DESTDIR)$(packagedir)/man/auctex/RELEASE \
+ $(DESTDIR)$(packagedir)/pkginfo/MANIFEST.$(PACKAGE); \
+ fi
+ cd doc ; $(MAKE) DESTDIR=$(DESTDIR) uninstall
+ rm -f $(DESTDIR)$(previewstartfile)
+ rm -rf $(DESTDIR)$(packagelispdir)
+ (cd latex ; $(MAKE) DESTDIR=$(DESTDIR) uninstall)
+
.el.elc:
$(ELCC) -f batch-byte-compile $<
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 0855186..01e7e2a 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -2,7 +2,7 @@
# Maintainer: address@hidden
-# Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2003-2008, 2013-2015 Free Software Foundation, Inc.
# This file is part of AUCTeX.
@@ -90,7 +90,8 @@ dist: $(DISTTEXTS) preview-latex.info auctex.info tex-ref.pdf
extradist: html/$(TEXI2HTML_TOC) auctex.ps auctex.pdf tex-ref.ps tex-ref.pdf
.PHONY: all info dvi dist install-auctex disttexts clean distclean \
- maintainer-clean install-preview install-man html-docs extradist
+ maintainer-clean install-preview install-man uninstall html-docs \
+ extradist
# AUCTeX
@@ -200,6 +201,15 @@ install-preview: preview-latex.info
# clean
+uninstall:
+ for info in $(DESTDIR)$(infodir)/{auctex.info,preview-latex.info}; do \
+ test ! -f $${info} || \
+ $(INSTALL_INFO) --delete --info-dir=$(DESTDIR)$(infodir)
$${info}; \
+ done
+ rm -f $(DESTDIR)$(infodir)/auctex.info
$(DESTDIR)$(infodir)/auctex.info-* \
+ $(DESTDIR)$(infodir)/preview-latex.info*
+ test X$(packagedir) != Xno || rm -rf -f $(DESTDIR)$(docdir)
+
clean:
rm -f *.dvi *.ps *.pdf *.aux *.cp *.fn *.ky *.log *~ \#*\# \
*.tp *.vr *.pg *.toc *.tp *.bak *.cps *.kys *.tps \
diff --git a/doc/auctex.texi b/doc/auctex.texi
index 8fb997c..6fb6d71 100644
--- a/doc/auctex.texi
+++ b/doc/auctex.texi
@@ -1741,6 +1741,26 @@ be inserted before the last non-comment word to minimize
the chance that
the line becomes overfull.
@end defopt
address@hidden LaTeX-fill-excluded-macros
+A list of macro names (without leading backslash) for whose arguments
+filling should be disabled. Typically, you will want to add macros here
+which have long, multi-line arguments. An example is
address@hidden from the pgfplotstable package which is
+used as shown in the following listing:
+
address@hidden
+\pgfplotstabletypeset[skip first n=4]{%
+ XYZ Format,
+ Version 1.234
+ Date 2010-09-01
+ @author Mustermann
+ A B C
+ 1 2 3
+ 4 5 6
+}
address@hidden verbatim
address@hidden defopt
+
@node Display
@chapter Controlling Screen Display
@@ -3468,6 +3488,20 @@ if it is relevant for any @AUCTeX{} mode, add it to
@code{TeX-mode-hook}
and if it is relevant for all text modes, append it to
@code{text-mode-hook}.
+Other useful hooks are listed below.
+
address@hidden Variable TeX-after-TeX-LaTeX-command-finished-hook
+Hook which is run after the @TeX{}/@LaTeX{} processor has successfully
+finished compiling your document. (@xref{Processing}, for finding out
+how to compile your document). Each function in the hook is run with
+the compiled output document as its argument.
+
+This is useful for automatically refreshing the viewer after
+re-compilation especially when using Emacs viewers such as DocView or
+PDF Tools.
address@hidden defvr
address@hidden TeX-after-TeX-LaTeX-command-finished-hook
+
@node Multifile
@section Multifile Documents
@cindex Multifile Documents
diff --git a/doc/install.texi b/doc/install.texi
index 24fda96..d814cca 100644
--- a/doc/install.texi
+++ b/doc/install.texi
@@ -43,7 +43,7 @@ the file @file{INSTALL.windows}.
@menu
* Prerequisites::
* Configure::
-* Build/install::
+* Build/install and uninstall::
* Loading the package::
* Advice for package providers::
* Advice for non-privileged users::
@@ -56,7 +56,7 @@ the file @file{INSTALL.windows}.
@menu
* Prerequisites::
* Configure::
-* Build/install::
+* Build/install and uninstall::
* Loading the package::
* Advice for package providers::
* Advice for non-privileged users::
@@ -270,11 +270,12 @@ It is to be used when you are using @address@hidden/dir}},
but is normally not necessary otherwise.
@end table
address@hidden Build/install
address@hidden Build/install
address@hidden Build/install and uninstall
address@hidden Build/install and uninstall
@cindex Installation
@cindex Make
address@hidden Uninstallation
Once @command{configure} has been run, simply enter
@@ -291,9 +292,21 @@ locations chosen earlier, type
make install
@end example
address@hidden
You may need special privileges to install, e.g., if you are installing
into system directories.
+Should you want to completely remove the installed package, in the same
+directory you built @AUCTeX{} run
+
address@hidden
+make uninstall
address@hidden example
+
address@hidden
+You will need administration privileges if you installed the package
+into system directories.
+
@node Loading the package
@section Loading the package
@cindex @file{.emacs}
@@ -575,3 +588,8 @@ directories will be searched recursively, so there is no
reason to list
subdirectories explicitly. Automatic configuration will already have
set the variable for you if it could use the program @samp{kpsewhich}.
In this case you normally don't have to alter anything.
+
address@hidden Local Variables:
address@hidden mode: texinfo
address@hidden TeX-master: "auctex"
address@hidden End:
diff --git a/doc/wininstall.texi b/doc/wininstall.texi
index f396184..e71809e 100644
--- a/doc/wininstall.texi
+++ b/doc/wininstall.texi
@@ -362,7 +362,7 @@ choose another image format to be used by @previewlatex{}.
Adding support for an image format usually involves the installation of
a library, e.g. from @uref{http://gnuwin32.sf.net/}. If you got your
-Emacs from @uref{gnu.org} you might want to check its
+Emacs from @uref{http://www.gnu.org} you might want to check its
@uref{ftp://ftp.gnu.org/gnu/emacs/windows/README,README file} for
details.
diff --git a/font-latex.el b/font-latex.el
index 0a1b8ad..ed953d3 100644
--- a/font-latex.el
+++ b/font-latex.el
@@ -1494,7 +1494,7 @@ Returns nil if none of KEYWORDS is found."
(list (point)
(progn
(forward-char)
- (if (zerop (skip-chars-forward "A-Za-z@"))
+ (if (zerop (skip-syntax-forward "_w"))
(forward-char) ; Single-char macro.
(skip-chars-forward "*"))
(point))))
@@ -1634,7 +1634,8 @@ marks boundaries for searching for group ends."
(defun font-latex-match-simple-command (limit)
"Search for command like \\foo before LIMIT."
- (TeX-re-search-forward-unescaped "address@hidden" limit t))
+ ;; \s_ matches chars with symbol syntax, \sw chars with word syntax
+ (TeX-re-search-forward-unescaped "\\\\\\(?:\\s_\\|\\sw\\)+" limit t))
(defun font-latex-match-math-env (limit)
"Match math pattern up to LIMIT.
diff --git a/latex.el b/latex.el
index 8409690..c232c24 100644
--- a/latex.el
+++ b/latex.el
@@ -644,7 +644,11 @@ With prefix-argument, reopen environment afterwards."
marker))
(move-marker marker nil)))))
-(defvar LaTeX-after-insert-env-hooks nil
+(if (featurep 'xemacs)
+ (define-obsolete-variable-alias 'LaTeX-after-insert-env-hooks
'LaTeX-after-insert-env-hook)
+ (define-obsolete-variable-alias 'LaTeX-after-insert-env-hooks
'LaTeX-after-insert-env-hook "11.89"))
+
+(defvar LaTeX-after-insert-env-hook nil
"List of functions to be run at the end of `LaTeX-insert-environment'.
Each function is called with three arguments: the name of the
environment just inserted, the buffer position just before
@@ -738,26 +742,48 @@ allowing one level of TeX group braces."
(regexp-quote TeX-grop) "]*" (regexp-quote TeX-grcl) "\\)*[^"
(regexp-quote TeX-grcl) (regexp-quote TeX-grop) "]*\\)"))
+(defvar LaTeX-after-modify-env-hook nil
+ "List of functions to be run at the end of `LaTeX-modify-environment'.
+Each function is called with four arguments: the new name of the
+environment, the former name of the environment, the buffer
+position just before \\begin and the position just before
+\\end.")
+
(defun LaTeX-modify-environment (environment)
"Modify current ENVIRONMENT."
- (save-excursion
- (LaTeX-find-matching-end)
- (re-search-backward (concat (regexp-quote TeX-esc)
- "end"
- (regexp-quote TeX-grop)
- (LaTeX-environment-name-regexp)
- (regexp-quote TeX-grcl))
- (save-excursion (beginning-of-line 1) (point)))
- (replace-match (concat TeX-esc "end" TeX-grop environment TeX-grcl) t t)
- (beginning-of-line 1)
- (LaTeX-find-matching-begin)
- (re-search-forward (concat (regexp-quote TeX-esc)
- "begin"
- (regexp-quote TeX-grop)
- (LaTeX-environment-name-regexp)
- (regexp-quote TeX-grcl))
- (save-excursion (end-of-line 1) (point)))
- (replace-match (concat TeX-esc "begin" TeX-grop environment TeX-grcl) t
t)))
+ (let ((goto-end (lambda ()
+ (LaTeX-find-matching-end)
+ (re-search-backward (concat (regexp-quote TeX-esc)
+ "end"
+ (regexp-quote TeX-grop)
+ "\\("
+ (LaTeX-environment-name-regexp)
+ "\\)"
+ (regexp-quote TeX-grcl))
+ (save-excursion (beginning-of-line 1)
(point)))))
+ (goto-begin (lambda ()
+ (LaTeX-find-matching-begin)
+ (prog1 (point)
+ (re-search-forward (concat (regexp-quote TeX-esc)
+ "begin"
+ (regexp-quote TeX-grop)
+ "\\("
+
(LaTeX-environment-name-regexp)
+ "\\)"
+ (regexp-quote TeX-grcl))
+ (save-excursion (end-of-line 1)
(point)))))))
+ (save-excursion
+ (funcall goto-end)
+ (let ((old-env (match-string 1)))
+ (replace-match environment t t nil 1)
+ (beginning-of-line 1)
+ (funcall goto-begin)
+ (replace-match environment t t nil 1)
+ (end-of-line 1)
+ (run-hook-with-args 'LaTeX-after-modify-env-hook
+ environment old-env
+ (save-excursion (funcall goto-begin))
+ (progn (funcall goto-end) (point)))))))
(defun LaTeX-current-environment (&optional arg)
"Return the name (a string) of the enclosing LaTeX environment.
@@ -2922,7 +2948,7 @@ indentation level in columns."
:group 'LaTeX-indentation
:type 'regexp)
-(defcustom LaTeX-end-regexp "end\\b"
+(defcustom LaTeX-end-regexp "end\\b\\|\\]"
"*Regexp matching macros considered ends."
:group 'LaTeX-indentation
:type 'regexp)
@@ -3115,6 +3141,10 @@ outer indentation in case of a commented line. The
symbols
;; End brace in the start of the line.
(- (LaTeX-indent-calculate-last force-type)
TeX-brace-indent-level))
+ ((and (texmathp)
+ ;; Display math \[...\], treat as a generic environment.
+ (equal "\\[" (car texmathp-why)))
+ LaTeX-indent-level)
(t (LaTeX-indent-calculate-last force-type))))))
(defun LaTeX-indent-level-count ()
@@ -3327,6 +3357,12 @@ does not fit into the line."
:group 'LaTeX
:type 'boolean)
+(defcustom LaTeX-fill-excluded-macros nil
+ "List of macro names (without leading \\) whose arguments must
+not be subject to filling."
+ :group 'LaTeX
+ :type '(repeat string))
+
(defvar LaTeX-nospace-between-char-regexp
(if (featurep 'xemacs)
(if (and (boundp 'word-across-newline) word-across-newline)
@@ -3353,6 +3389,7 @@ pass args FROM, TO and JUSTIFY-FLAG."
(interactive "*r\nP")
(let ((end-marker (save-excursion (goto-char to) (point-marker))))
(if (or (assoc (LaTeX-current-environment) LaTeX-indent-environment-list)
+ (member (TeX-current-macro) LaTeX-fill-excluded-macros)
;; This could be generalized, if there are more cases where
;; a special string at the start of a region to fill should
;; inhibit filling.
@@ -5847,7 +5884,7 @@ i.e. you do _not_ have to cater for this yourself by
adding \\\\' or $."
LaTeX-section-list)))
(set (make-local-variable 'TeX-auto-full-regexp-list)
- (append LaTeX-auto-regexp-list plain-TeX-auto-regexp-list))
+ (append LaTeX-auto-regexp-list plain-TeX-auto-regexp-list))
(LaTeX-set-paragraph-start)
(setq paragraph-separate
@@ -5863,10 +5900,10 @@ i.e. you do _not_ have to cater for this yourself by
adding \\\\' or $."
LaTeX-search-files-type-alist)
(set (make-local-variable 'LaTeX-item-list) '(("description" .
LaTeX-item-argument)
- ("thebibliography" . LaTeX-item-bib)
- ("array" . LaTeX-item-array)
- ("tabular" . LaTeX-item-array)
- ("tabular*" . LaTeX-item-tabular*)))
+ ("thebibliography" .
LaTeX-item-bib)
+ ("array" . LaTeX-item-array)
+ ("tabular" . LaTeX-item-array)
+ ("tabular*" .
LaTeX-item-tabular*)))
(setq TeX-complete-list
(append '(("\\\\cite\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)"
diff --git a/latex/Makefile.in b/latex/Makefile.in
index 8a40ca0..afb0a62 100644
--- a/latex/Makefile.in
+++ b/latex/Makefile.in
@@ -2,7 +2,8 @@
# Maintainer: address@hidden
-# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2002-2006, 2008, 2014, 2015 Free Software Foundation,
+# Inc.
# This file is part of AUCTeX.
@@ -41,6 +42,8 @@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = ../mkinstalldirs
+.PHONY: all install install-texmf install-texmf-doc uninstall clean
+
all: $(TEXMFGEN) preview.drv preview-mk.ins preview.dvi preview.pdf
install: install-texmf install-texmf-doc
@@ -61,9 +64,12 @@ install-texmf: $(TEXMFGEN)
fi
install-texmf-doc: preview.dvi
- -$(MKINSTALLDIRS) $(DESTDIR)$(previewdocdir)
+ $(MKINSTALLDIRS) $(DESTDIR)$(previewdocdir)
$(INSTALL_DATA) preview.dvi $(DESTDIR)$(previewdocdir)
+uninstall:
+ rm -rf $(DESTDIR)$(previewdocdir)/preview.dvi
$(DESTDIR)$(previewtexmfdir)
+
preview-mk.ins: preview.dtx bootstrap.ins
$(TEX) '\nonstopmode \input bootstrap.ins'
@@ -87,5 +93,5 @@ preview.pdf: preview.drv preview.dtx preview.sty
$(PDFLATEX) '\nonstopmode
\AtBeginDocument{\OnlyDescription}\input{preview.drv}'
clean:
- rm -f *~ *.aux *.dvi *.drv *.log
- rm -f $(TEXMFGEN) preview.ins preview-mk.ins
+ rm -f *~ *.aux *.dvi *.drv *.log
+ rm -f $(TEXMFGEN) preview.ins preview-mk.ins
diff --git a/style/bidibeamer.el b/style/bidibeamer.el
new file mode 100644
index 0000000..767a647
--- /dev/null
+++ b/style/bidibeamer.el
@@ -0,0 +1,40 @@
+;;; bidibeamer.el --- AUCTeX style for the bidibeamer class
+
+;; Copyright (C) 2015 Free Software Foundation
+
+;; Author: Tassilo Horn <address@hidden>
+;; Created: 2015-03-08
+;; 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 the bidibeamer class which offers the same
+;; functionality and interface as latex-beamer, so we simply call the style
+;; hook of the latter.
+
+;;; Code:
+
+(TeX-add-style-hook
+ "bidibeamer"
+ (lambda ()
+ (TeX-run-style-hooks "beamer"))
+ LaTeX-dialect)
+
+;;; bidibeamer.el ends here
diff --git a/style/caption.el b/style/caption.el
new file mode 100644
index 0000000..c79f562
--- /dev/null
+++ b/style/caption.el
@@ -0,0 +1,311 @@
+;;; caption.el --- AUCTeX style for `caption.sty' (v3.3-89)
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <esbati'at'gmx.de>
+;; Maintainer: address@hidden
+;; Created: 2015-02-21
+;; 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 `caption.sty' (v3.3-89) from 2013/05/02.
+;; `caption.sty' is part of TeXLive.
+
+;; If things do not work or when in doubt, press `C-c C-n'. Comments
+;; for improvement are welcome.
+
+;;; Code:
+
+;; Needed for compiling `pushnew':
+(eval-when-compile (require 'cl))
+
+;; Needed for auto-parsing.
+(require 'tex)
+
+(defvar LaTeX-caption-key-val-options
+ '(("aboveskip")
+ ("belowskip")
+ ("font" ("scriptsize" "footnotesize" "small" "normalsize" "large"
+ "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
+ "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
+ "stretch" "normalcolor" "color" "normal"))
+ ("font+" ("scriptsize" "footnotesize" "small" "normalsize" "large"
+ "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
+ "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
+ "stretch" "normalcolor" "color" "normal"))
+ ("format" ("plain" "hang"))
+ ("hangindent")
+ ("hypcap")
+ ("hypcapspace")
+ ("indention")
+ ("justification" ("justified" "centering" "centerlast" "centerfirst"
+ "raggedright" "RaggedRight" "raggedleft"))
+ ("labelfont" ("scriptsize" "footnotesize" "small" "normalsize" "large"
+ "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
+ "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
+ "stretch" "normalcolor" "color" "normal"))
+ ("labelfont+" ("scriptsize" "footnotesize" "small" "normalsize" "large"
+ "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
+ "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
+ "stretch" "normalcolor" "color" "normal"))
+ ("labelformat" ("default" "empty" "simple" "brace" "parens"))
+ ("labelsep" ("none" "colon" "period" "space" "quad" "newline"
"endash"))
+ ("list" ("false" "no" "off" "0" "true" "yes" "on" "1"))
+ ("listformat" ("empty" "simple" "paren" "subsimple" "subparens"))
+ ("margin" ("type*" "width"))
+ ("margin*")
+ ("maxmargin")
+ ("minmargin")
+ ("name")
+ ("oneside")
+ ("parindent")
+ ("parskip")
+ ("position" ("top" "above" "bottom" "below" "auto"))
+ ("singlelinecheck" ("false" "no" "off" "0" "true" "yes" "on" "1"))
+ ("skip")
+ ("strut" ("false" "no" "off" "0" "true" "yes" "on" "1"))
+ ("style" ("base" "default"))
+ ("textfont" ("scriptsize" "footnotesize" "small" "normalsize" "large"
+ "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
+ "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
+ "stretch" "normalcolor" "color" "normal"))
+ ("textfont+" ("scriptsize" "footnotesize" "small" "normalsize" "large"
+ "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
+ "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
+ "stretch" "normalcolor" "color" "normal"))
+ ("textformat" ("empty" "simple" "period"))
+ ("twoside")
+ ("type" ("figure" "table" "ContinuedFloat"))
+ ("type*" ("figure" "table" "ContinuedFloat"))
+ ("width"))
+ "Key=value options for caption macros.")
+
+(defvar LaTeX-caption-key-val-options-local nil
+ "Buffer-local key=value options for caption macros.")
+(make-variable-buffer-local 'LaTeX-caption-key-val-options-local)
+
+(defvar LaTeX-caption-supported-float-types
+ '("figure" "table" "ContinuedFloat" ; Standard caption.sty
+ "sub" "subtable" "subfigure" ; subcaption.sty
+ "ruled" "boxed" ; float.sty
+ "floatingfigure" "floatingtable" ; floatflt.sty
+ "lstlisting" ; listings.sty
+ "longtable" ; longtable.sty
+ "figwindow" "tabwindow" ; picinpar.sty
+ "parpic" ; picins.sty
+ "SCfigure" "SCtable" ; sidecap.sty
+ "supertabular" "xtabular" ; supertabular.sty & xtab.sty
+ "threeparttable" "measuredfigure" ; threeparttable.sty
+ "wrapfigure" "wraptable") ; wrapfigure
+ "List of float types provided by other LaTeX packages and
+supported by `caption.sty'.")
+
+;; Setup for various \DeclareCaption's:
+(TeX-auto-add-type "caption-DeclareCaption" "LaTeX")
+
+;; The 2. argument to `DeclareCaption[A-Za-z]' contains (La)TeX code.
+;; We deliberately ignore that argument in our regex since it is not
+;; needed for this style and would pollute the auto generated
+;; `docname.el' file.
+(defvar LaTeX-caption-DeclareCaption-regexp
+ `(,(concat "\\\\DeclareCaption\\(Font\\|Format\\|Justification"
+ "\\|LabelFormat\\|LabelSeparator\\|ListFormat"
+ "\\|Option\\|Style\\|TextFormat\\)"
+ "\\*?"
+ "[ \t\n\r%]*"
+ "{\\([^}]+\\)}")
+ (0 1 2) LaTeX-auto-caption-DeclareCaption)
+ "Matches the arguments of different `\\DeclareCaption*' from
+`caption.sty'.")
+
+(defun LaTeX-caption-auto-prepare ()
+ "Clear `LaTeX-auto-caption-DeclareCaption' before parsing."
+ (setq LaTeX-auto-caption-DeclareCaption nil))
+
+(add-hook 'TeX-auto-prepare-hook #'LaTeX-caption-auto-prepare t)
+
+(defun LaTeX-caption-update-key-val-options ()
+ "Update the buffer-local key-val options before offering them
+in `caption'-completions."
+ (dolist (keyvals (LaTeX-caption-DeclareCaption-list))
+ (let* ((key (cond ((string-equal (nth 1 keyvals) "LabelSeparator")
+ (downcase (substring (nth 1 keyvals) 0 8)))
+ (t (downcase (nth 1 keyvals)))))
+ (val (nth 2 keyvals))
+ ;; (key-match (car (assoc key LaTeX-caption-key-val-options-local)))
+ (val-match (cdr (assoc key LaTeX-caption-key-val-options-local)))
+ (temp (copy-alist LaTeX-caption-key-val-options-local))
+ (opts (assq-delete-all (car (assoc key temp)) temp)))
+ ;; For `\DeclareCaptionOption', only add the value
+ ;; (remember: key=^^^^^^, val="defined key")
+ (if (string-equal key "option")
+ (pushnew (list val) opts :test #'equal)
+ ;; For anything but `\DeclareCaptionOption', do the standard procedure
+ (if val-match
+ (pushnew (list key (delete-dups (apply 'append (list val)
val-match)))
+ opts :test #'equal)
+ (pushnew (list key (list val)) opts :test #'equal)))
+ (setq LaTeX-caption-key-val-options-local (copy-alist opts)))))
+
+(defun LaTeX-arg-caption-command (&optional optional prompt)
+ "Insert caption-commands from `caption.sty'. If OPTIONAL is non-nil,
+indicate `(Optional)' while reading key=val. PROMPT replaces the
+standard one."
+ (LaTeX-caption-update-key-val-options)
+ (let ((opts (TeX-read-key-val optional
+ LaTeX-caption-key-val-options-local
+ prompt)))
+ (format "%s" opts)))
+
+;; In `LaTeX-caption-DeclareCaption-regexp', we match (0 1 2). When
+;; adding a new `Name', we need something unique for `0'-match until
+;; the next `C-c C-n'. We mimic that regex-match bei concat'ing the
+;; elements. It will vanish upon next `C-c C-n'.
+(defun LaTeX-arg-caption-DeclareCaption (format)
+ "Insert various `\\DeclareCaptionFORMAT' commands. FORMAT is
+the suffix of the command."
+ (let ((name (TeX-read-string "Name: ")))
+ (LaTeX-add-caption-DeclareCaptions
+ (list (concat "\\DeclareCaption" format "{" name "}")
+ format name))
+ (format "%s" name)))
+
+(TeX-add-style-hook
+ "caption"
+ (lambda ()
+
+ ;; Add caption to the parser.
+ (TeX-auto-add-regexp LaTeX-caption-DeclareCaption-regexp)
+
+ ;; Activate the buffer-local version of key-vals.
+ (setq LaTeX-caption-key-val-options-local
+ (copy-alist LaTeX-caption-key-val-options))
+
+ ;; Caption commands:
+ (TeX-add-symbols
+ '("caption*" t)
+
+ '("captionlistentry"
+ [TeX-arg-eval completing-read (TeX-argument-prompt t nil "Float type")
+ LaTeX-caption-supported-float-types]
+ t)
+
+ '("captionof"
+ (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type")
+ LaTeX-caption-supported-float-types)
+ ["List entry"] t)
+
+ '("captionof*"
+ (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type")
+ LaTeX-caption-supported-float-types)
+ ["List entry"] t)
+
+ '("captionsetup"
+ [TeX-arg-eval completing-read (TeX-argument-prompt t nil "Float type")
+ LaTeX-caption-supported-float-types]
+ (TeX-arg-eval LaTeX-arg-caption-command))
+
+ '("captionsetup*"
+ [TeX-arg-eval completing-read (TeX-argument-prompt t nil "Float type")
+ LaTeX-caption-supported-float-types]
+ (TeX-arg-eval LaTeX-arg-caption-command))
+
+ '("clearcaptionsetup"
+ [TeX-arg-eval LaTeX-arg-caption-command t "Single key"]
+ (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type")
+ LaTeX-caption-supported-float-types))
+
+ '("clearcaptionsetup*"
+ [TeX-arg-eval LaTeX-arg-caption-command t "Single key"]
+ (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type")
+ LaTeX-caption-supported-float-types))
+
+ '("ContinuedFloat" 0)
+
+ '("DeclareCaptionFont"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "Font") t)
+
+ '("DeclareCaptionFormat"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "Format") t)
+
+ '("DeclareCaptionFormat*"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "Format") t)
+
+ '("DeclareCaptionJustification"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "Justification") t)
+
+ '("DeclareCaptionLabelFormat"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "LabelFormat") t)
+
+ '("DeclareCaptionLabelSeparator"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "LabelSeparator") t)
+
+ '("DeclareCaptionLabelSeparator*"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "LabelSeparator") t)
+
+ '("DeclareCaptionListFormat"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "ListFormat") t)
+
+ '("DeclareCaptionOption"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "Option") t)
+
+ '("DeclareCaptionStyle"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "Style")
+ [TeX-arg-eval LaTeX-arg-caption-command t "Additional options"]
+ (TeX-arg-eval LaTeX-arg-caption-command nil "Options"))
+
+ '("DeclareCaptionTextFormat"
+ (TeX-arg-eval LaTeX-arg-caption-DeclareCaption "TextFormat") t)
+
+ '("bothIfFirst" 2)
+
+ '("bothIfSecond" 2))
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("caption" "*[{")
+ ("captionlistentry" "[{")
+ ("captionof" "*[{"))
+ 'textual)
+ (font-latex-add-keywords '(("captionsetup" "*[{")
+ ("clearcaptionsetup" "*[{")
+ ("DeclareCaptionFont" "{{")
+ ("DeclareCaptionFormat" "*{{")
+ ("DeclareCaptionJustification" "{{")
+ ("DeclareCaptionLabelFormat" "{{")
+ ("DeclareCaptionLabelSeparator" "*{{")
+ ("DeclareCaptionListFormat" "{{")
+ ("DeclareCaptionOption" "{{")
+ ("DeclareCaptionStyle" "{[{")
+ ("DeclareCaptionTextFormat" "{{"))
+ 'function)) )
+ LaTeX-dialect)
+
+(defun LaTeX-caption-package-options ()
+ "Prompt for package options for the caption package."
+ (TeX-read-key-val t
+ (append '(("compatibility" ("true" "false")))
+ '(("figureposition" ("top" "above" "bottom" "below")))
+ '(("tableposition" ("top" "above" "bottom" "below")))
+ LaTeX-caption-key-val-options)))
+
+;;; caption.el ends here
diff --git a/style/color.el b/style/color.el
new file mode 100644
index 0000000..de0f50c
--- /dev/null
+++ b/style/color.el
@@ -0,0 +1,308 @@
+;;; color.el --- AUCTeX style for `color.sty' (v1.1a)
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <esbati'at'gmx.de>
+;; Maintainer: address@hidden
+;; Created: 2015-01-16
+;; 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 `color.sty' (v1.1a) from 2014/10/28.
+;; `color.sty' is part of TeXLive.
+
+;; Many thanks to Tassilo Horn for his percetive comments on
+;; implementation of this style and testing.
+
+;;; Code:
+
+(defvar LaTeX-color-colour-models
+ '("cmyk" "gray" "named" "rgb")
+ "List of color models provided by `color.sty'.")
+
+(defvar LaTeX-color-dvipsnames-colors
+ '("Apricot" "Aquamarine" "Bittersweet" "Black"
+ "Blue" "BlueGreen" "BlueViolet" "BrickRed"
+ "Brown" "BurntOrange" "CadetBlue" "CarnationPink"
+ "Cerulean" "CornflowerBlue" "Cyan" "Dandelion"
+ "DarkOrchid" "Emerald" "ForestGreen" "Fuchsia"
+ "Goldenrod" "Gray" "Green" "GreenYellow"
+ "JungleGreen" "Lavender" "LimeGreen" "Magenta"
+ "Mahogany" "Maroon" "Melon" "MidnightBlue"
+ "Mulberry" "NavyBlue" "OliveGreen" "Orange"
+ "OrangeRed" "Orchid" "Peach" "Periwinkle"
+ "PineGreen" "Plum" "ProcessBlue" "Purple"
+ "RawSienna" "Red" "RedOrange" "RedViolet"
+ "Rhodamine" "RoyalBlue" "RoyalPurple" "RubineRed"
+ "Salmon" "SeaGreen" "Sepia" "SkyBlue"
+ "SpringGreen" "Tan" "TealBlue" "Thistle"
+ "Turquoise" "Violet" "VioletRed" "White"
+ "WildStrawberry" "Yellow" "YellowGreen" "YellowOrange")
+ "List of colors defined by package option `dvipsnames' from `color.sty'.")
+
+;; Needed for auto-parsing.
+(require 'tex)
+
+;; Plug color into the parser -- after that we have the following:
+;; 1. LaTeX-auto-color-definecolor: Name of temporary variable used
+;; when parsing.
+;; 2. LaTeX-add-color-definecolors: Name of function to add
+;; information to add to #3.
+;; 3. LaTeX-color-definecolor-list: Name of variable holding buffer
+;; local information.
+;; 4. LaTeX-color-definecolors-changed: Name of variable indicating
+;; that #3 has changed.
+(TeX-auto-add-type "color-definecolor" "LaTeX")
+
+(defvar LaTeX-color-definecolor-regexp
+ '("\\\\definecolor{\\([^}]+\\)}{\\([^}]+\\)}{\\([^}]+\\)}"
+ 1 LaTeX-auto-color-definecolor)
+ "Matches the arguments of `\\definecolor' from `color'
+package.")
+
+(defun LaTeX-color-auto-prepare ()
+ "Clear `LaTeX-auto-color-definecolor' before parsing."
+ (setq LaTeX-auto-color-definecolor nil))
+
+(defun LaTeX-color-auto-cleanup ()
+ "Move parsed colors from `LaTeX-auto-color-definecolor' to
+`LaTeX-color-definecolor-list'."
+ ;; \definecolor{<name>}{<model>}{<colour-spec>}
+ ;; color=<name>, ignored=<model>, ignored=<colour-spec>
+ (dolist (color LaTeX-auto-color-definecolor)
+ (add-to-list 'LaTeX-color-definecolor-list (list color))))
+
+(add-hook 'TeX-auto-prepare-hook #'LaTeX-color-auto-prepare t)
+(add-hook 'TeX-auto-cleanup-hook #'LaTeX-color-auto-cleanup t)
+
+(defun TeX-arg-color-definecolor (optional &optional prompt)
+ "Insert arguments of `\\definecolor' from `color.sty'."
+ ;; \definecolor{<name>}{<model>}{<color spec>}
+ ;; Ask for <name>, add to our list and insert it
+ (let ((colorname (read-string "Color name: ")))
+ (LaTeX-add-color-definecolors colorname)
+ (TeX-argument-insert colorname optional))
+ ;; Ask and insert <model>
+ (let ((model (completing-read
+ (TeX-argument-prompt optional prompt "Color model")
+ (if (not (or (LaTeX-provided-package-options-member "color"
"dvips")
+ (LaTeX-provided-package-options-member "color"
"dvipsnames")))
+ (remove "named" LaTeX-color-colour-models)
+ LaTeX-color-colour-models))))
+ (TeX-argument-insert model optional)
+ ;; Depending on <model>, ask for <color spec> and insert it
+ (cond (;; <cmyk> model
+ (string-equal model "cmyk")
+ (let ((cyan (read-string "Value Cyan (between 0,1): "))
+ (magenta (read-string "Value Magenta (between 0,1): "))
+ (yellow (read-string "Value Yellow (between 0,1): "))
+ (black (read-string "Value Black (between 0,1): ")))
+ (TeX-argument-insert
+ (concat cyan "," magenta "," yellow "," black) optional)))
+ ;; <rgb> model
+ ((string-equal model "rgb")
+ (let ((red (read-string "Value Red (between 0,1): "))
+ (green (read-string "Value Green (between 0,1): "))
+ (blue (read-string "Value Blue (between 0,1): ")))
+ (TeX-argument-insert
+ (concat red "," green "," blue) optional)))
+ ;; <gray> model
+ ((string-equal model "gray")
+ (let ((grayness (read-string "Value Gray (between 0,1): ")))
+ (TeX-argument-insert grayness optional)))
+ ;; <named> model takes the dvipsnames
+ ((string-equal model "named")
+ (let ((color (completing-read "Named Color: "
+ LaTeX-color-dvipsnames-colors)))
+ (TeX-argument-insert color optional))))))
+
+(defun TeX-arg-color (optional &optional prompt)
+ "Insert arguments of various color commands from `color.sty'."
+ ;; \color{<name>} or \color[<model>]{<color spec>}
+ ;; First, ask for <model>. `named' is removed here from completion
+ ;; if package option is not given
+ (let ((model (completing-read
+ (TeX-argument-prompt t prompt "Color model")
+ (if (not (or (LaTeX-provided-package-options-member "color"
"dvips")
+ (LaTeX-provided-package-options-member "color"
"dvipsnames")))
+ (remove "named" LaTeX-color-colour-models)
+ LaTeX-color-colour-models))))
+ (if (string-equal model "")
+ ;; if empty, ask for <name> with completion
+ (let ((color (completing-read
+ (TeX-argument-prompt optional prompt "Color name")
+ (LaTeX-color-definecolor-list))))
+ (TeX-argument-insert color optional))
+ ;; if not empty, insert [<model>] and proceed
+ (insert (concat LaTeX-optop model LaTeX-optcl))
+ (cond (;; <cmyk> model
+ (string-equal model "cmyk")
+ (let ((cyan (read-string "Value Cyan (between 0,1): "))
+ (magenta (read-string "Value Magenta (between 0,1): "))
+ (yellow (read-string "Value Yellow (between 0,1): "))
+ (black (read-string "Value Black (between 0,1): ")))
+ (TeX-argument-insert
+ (concat cyan "," magenta "," yellow "," black) optional)))
+ ;; <rgb> model
+ ((string-equal model "rgb")
+ (let ((red (read-string "Value Red (between 0,1): "))
+ (green (read-string "Value Green (between 0,1): "))
+ (blue (read-string "Value Blue (between 0,1): ")))
+ (TeX-argument-insert
+ (concat red "," green "," blue) optional)))
+ ;; <gray> model
+ ((string-equal model "gray")
+ (let ((grayness (read-string "Value Gray (between 0,1): ")))
+ (TeX-argument-insert grayness optional)))
+ ;; <named> model; allowed are dvipsnames.
+ ((string-equal model "named")
+ (let ((color (completing-read "Named Color: "
+ LaTeX-color-dvipsnames-colors)))
+ (TeX-argument-insert color optional)))))))
+
+(defun TeX-arg-color-fcolorbox (optional &optional prompt)
+ "Insert arguments of `\\fcolorbox' from `color.sty'. "
+ ;; \fcolorbox{<frame color name>}{<box color name>}{<text>} or
+ ;; \fcolorbox[<model>]{<frame color spec>}{<box color spec>}{<text>}
+ ;; First, ask for <model>; remove `named' again
+ (let ((model (completing-read
+ (TeX-argument-prompt t prompt "Color model")
+ (if (not (or (LaTeX-provided-package-options-member "color"
"dvips")
+ (LaTeX-provided-package-options-member "color"
"dvipsnames")))
+ (remove "named" LaTeX-color-colour-models)
+ LaTeX-color-colour-models))))
+ (if (string-equal model "")
+ ;; if empty, ask for <frame color spce> with completion
+ (let ((frame-color (completing-read
+ (TeX-argument-prompt optional prompt "Frame color
name")
+ (LaTeX-color-definecolor-list)))
+ (box-color (completing-read
+ (TeX-argument-prompt optional prompt "Box color
name")
+ (LaTeX-color-definecolor-list))))
+ (TeX-argument-insert frame-color optional)
+ (TeX-argument-insert box-color optional))
+ ;; if not empty, insert [<model>] and cater for 2 mandatory args.
+ (insert (concat LaTeX-optop model LaTeX-optcl))
+ (cond (;; <cmyk> model
+ (string-equal model "cmyk")
+ (let ((cyan (read-string "Frame value Cyan (between 0,1): "))
+ (magenta (read-string "Frame value Magenta (between 0,1): "))
+ (yellow (read-string "Frame value Yellow (between 0,1): "))
+ (black (read-string "Frame value Black (between 0,1): ")))
+ (TeX-argument-insert
+ (concat cyan "," magenta "," yellow "," black) optional))
+ (let ((cyan (read-string "Box value Cyan (between 0,1): "))
+ (magenta (read-string "Box value Magenta (between 0,1): "))
+ (yellow (read-string "Box value Yellow (between 0,1): "))
+ (black (read-string "Box value Black (between 0,1): ")))
+ (TeX-argument-insert
+ (concat cyan "," magenta "," yellow "," black) optional)))
+ ;; <rgb> model
+ ((string-equal model "rgb")
+ (let ((red (read-string "Frame value Red (between 0,1): "))
+ (green (read-string "Frame value Green (between 0,1): "))
+ (blue (read-string "Frame value Blue (between 0,1): ")))
+ (TeX-argument-insert
+ (concat red "," green "," blue) optional))
+ (let ((red (read-string "Box value Red (between 0,1): "))
+ (green (read-string "Box value Green (between 0,1): "))
+ (blue (read-string "box value Blue (between 0,1): ")))
+ (TeX-argument-insert
+ (concat red "," green "," blue) optional)))
+ ;; <gray> model
+ ((string-equal model "gray")
+ (let ((grayness (read-string "Frame value Gray (between 0,1): ")))
+ (TeX-argument-insert grayness optional))
+ (let ((grayness (read-string "Box value Gray (between 0,1): ")))
+ (TeX-argument-insert grayness optional)))
+ ;; <named> model; allowed are dvipsnames.
+ ((string-equal model "named")
+ (let ((color (completing-read "Frame named Color: "
+ LaTeX-color-dvipsnames-colors)))
+ (TeX-argument-insert color optional))
+ (let ((color (completing-read "Box named Color: "
+ LaTeX-color-dvipsnames-colors)))
+ (TeX-argument-insert color optional)))))))
+
+(TeX-add-style-hook
+ "color"
+ (lambda ()
+ ;; Add color to the parser.
+ (TeX-auto-add-regexp LaTeX-color-definecolor-regexp)
+
+ ;; Add list of colors which are always available.
+ (LaTeX-add-color-definecolors
+ "black" "blue" "cyan" "green" "magenta" "red" "white" "yellow")
+
+ ;; Add dvips colors in conjunction with `usenames'.
+ (when (and (LaTeX-provided-package-options-member "color" "usenames")
+ (or (LaTeX-provided-package-options-member "color" "dvips")
+ (LaTeX-provided-package-options-member "color" "dvipsnames")))
+ (apply #'LaTeX-add-color-definecolors LaTeX-color-dvipsnames-colors))
+
+ (TeX-add-symbols
+ ;; \definecolor{<name>}{<model>}{<color spec>}
+ '("definecolor" TeX-arg-color-definecolor)
+
+ ;; \color{<name>} or \color[<model>]{<color spec>}
+ '("color" TeX-arg-color)
+
+ ;; \textcolor{<name>}{<text>} or
+ ;; \textcolor[<model>]{<color spec>}{<text>}
+ '("textcolor" TeX-arg-color "Text")
+
+ ;; \pagecolor{<name>} or
+ ;; \pagecolor[<model>]{<color spec>}
+ '("pagecolor" TeX-arg-color)
+
+ ;; \nopagecolor
+ '("nopagecolor" 0)
+
+ ;; \colorbox{<name>}{<text>} or
+ ;; \colorbox[<model>]{<color spec>}{<text>}
+ '("colorbox" TeX-arg-color "Text")
+
+ ;; \fcolorbox{<frame color name>}{<box color name>}{<text>} or
+ ;; \fcolorbox[<model>]{<frame color spec>}{<box color spec>}{<text>}
+ '("fcolorbox" TeX-arg-color-fcolorbox "Text"))
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("color" "[{")
+ ("pagecolor" "[{"))
+ 'type-declaration)
+ (font-latex-add-keywords '(("textcolor" "[{{")
+ ("colorbox" "[{{" )
+ ("fcolorbox" "[{{{"))
+ 'type-command)
+ (font-latex-add-keywords '(("definecolor" "{{{"))
+ 'function)))
+ LaTeX-dialect)
+
+(defvar LaTeX-color-package-options
+ '("debugshow" "dvipdf" "dvipdfm" "dvipdfmx" "dvips" "dvipsnames"
+ "dvipsone" "dviwin" "dviwindo" "emtex" "monochrome" "nodvipsnames"
+ "oztex" "pctex32" "pctexhp" "pctexps" "pctexwin" "pdftex" "tcidvi"
+ "textures" "truetex" "usenames" "vtex" "xdvi" "xetex")
+ "Package options for the color package.")
+
+;;; color.el ends here
diff --git a/style/currvita.el b/style/currvita.el
new file mode 100644
index 0000000..f2a1d55
--- /dev/null
+++ b/style/currvita.el
@@ -0,0 +1,94 @@
+;;; currvita.el --- AUCTeX style for `currvita.sty' (v0.9i)
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <esbati'at'gmx.de>
+;; Maintainer: address@hidden
+;; Created: 2015-01-05
+;; 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 `currvita.sty' (v0.9i) from 1999/09/13.
+;; `currvita.sty' is part of TeXLive.
+
+;;; Code:
+
+;; This is a modified version of `LaTeX-env-item'.
+(defun LaTeX-currvita-env-with-label (env)
+ "Insert ENV, a mandatory label and the first item."
+ (LaTeX-insert-environment
+ env
+ (let ((heading (read-string "Heading of list: ")))
+ (format "{%s}" heading)))
+ (if (TeX-active-mark)
+ (progn
+ (LaTeX-find-matching-begin)
+ (end-of-line 1))
+ (end-of-line 0))
+ (delete-char 1)
+ (when (looking-at (concat "^[ \t]+$\\|"
+ "^[ \t]*" TeX-comment-start-regexp "+[ \t]*$"))
+ (delete-region (point) (line-end-position)))
+ (delete-horizontal-space)
+ ;; Deactivate the mark here in order to prevent `TeX-parse-macro'
+ ;; from swapping point and mark and the \item ending up right after
+ ;; \begin{...}.
+ (TeX-deactivate-mark)
+ (LaTeX-insert-item)
+ ;; The inserted \item may have outdented the first line to the
+ ;; right. Fill it, if appropriate.
+ (when (and (not (looking-at "$"))
+ (not (assoc environment LaTeX-indent-environment-list))
+ (> (- (line-end-position) (line-beginning-position))
+ (current-fill-column)))
+ (LaTeX-fill-paragraph nil)))
+
+
+(TeX-add-style-hook
+ "currvita"
+ (lambda ()
+
+ ;; env's defined by currvita.sty
+ (LaTeX-add-environments
+ '("cv" "Heading of CV")
+ '("cvlist" LaTeX-currvita-env-with-label))
+
+ ;; Add "cvlist" to the list of environments which have an optional
+ ;; argument for each item
+ (add-to-list 'LaTeX-item-list '("cvlist" . LaTeX-item-argument))
+
+ ;; General commands: "\date" is already provided by AUCTeX
+ (TeX-add-symbols
+ '("cvplace" t)
+ '("cvheadingfont" 0)
+ '("cvlistheadingfont" 0)
+ '("cvlabelfont" 0)
+ '("cvbibname" 0))
+
+ ;; Add new lengths defined by currvita.sty
+ (LaTeX-add-lengths "cvlabelwidth" "cvlabelskip" "cvlabelsep"))
+ LaTeX-dialect)
+
+(defvar LaTeX-currvita-package-options
+ '("LabelsAligned" "TextAligned" "openbib" "ManyBibs" "NoDate")
+ "Package options for the currvita package.")
+
+;;; currvita.el ends here
diff --git a/style/enumitem.el b/style/enumitem.el
new file mode 100644
index 0000000..e2fce50
--- /dev/null
+++ b/style/enumitem.el
@@ -0,0 +1,447 @@
+;;; enumitem.el --- AUCTeX style for `enumitem.sty' (v3.5.2)
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <esbati'at'gmx.de>
+;; Maintainer: address@hidden
+;; Created: 2014-10-20
+;; 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 `enumitem.sty' (v3.5.2) from 2011/09/28.
+;; `enumitem.sty' is part of TeXLive.
+
+;; Tassilo Horn's `minted.el' was a major source of inspiration for
+;; this style, many thanks to him (also for patiently answering my
+;; many other questions, incl. the stupid ones.)
+
+;; If things do not work or when in doubt, press `C-c C-n'. Comments
+;; for improvement are welcome.
+
+;;; Code:
+
+;; Needed for compiling `pushnew':
+(eval-when-compile (require 'cl))
+
+;; Needed for auto-parsing.
+(require 'tex)
+
+(defvar LaTeX-enumitem-key-val-options
+ '(;; Vertical Spacing
+ ("topsep")
+ ("partopsep")
+ ("parsep")
+ ("itemsep")
+ ;; Horizontal Spacing
+ ("leftmargin" ("*" "!"))
+ ("itemindent" ("*" "!"))
+ ("labelsep" ("*" "!"))
+ ("labelwidth" ("*" "!"))
+ ("labelindent" ("*" "!"))
+ ("labelsep*")
+ ("labelindent*")
+ ("widest")
+ ("widest*")
+ ("rightmargin")
+ ;; Labels and cross reference format
+ ("label")
+ ("label*")
+ ("ref")
+ ("font")
+ ("format")
+ ("align" ("left" "right" "parleft"))
+ ;; Numbering, stopping, resuming
+ ("start")
+ ("resume")
+ ("resume*")
+ ;; Series
+ ("series")
+ ;; Penalties
+ ("beginpenalty")
+ ("midpenalty")
+ ("endpenalty")
+ ("before")
+ ("before*")
+ ("after")
+ ("after*")
+ ;; Description styles
+ ("style" ("standard" "multiline" "nextline" "sameline" "unboxed"))
+ ;; Compact lists
+ ("noitemsep")
+ ("nosep")
+ ;; Wide lists
+ ("wide")
+ ;; Inline lists
+ ("itemjoin")
+ ("itemjoin*")
+ ("afterlabel")
+ ("mode" ("boxed" "unboxed")))
+ "Key=value options for enumitem macros and environments.")
+
+(defvar LaTeX-enumitem-key-val-options-local nil
+ "Buffer-local key=value options for enumitem macros and environments.")
+(make-variable-buffer-local 'LaTeX-enumitem-key-val-options-local)
+
+;; Variables needed for \newlist: This command is not hooked into
+;; the parser via `TeX-auto-add-type', we mimic that behaviour.
+
+(defvar LaTeX-enumitem-newlist-list nil
+ "List of environments defined by command `\\newlist' from
+`enumitem' package.")
+
+(defvar LaTeX-enumitem-newlist-list-local nil
+ "Local list of all environments definded with `\\newlist'
+plus available through `enumitem' package.")
+(make-variable-buffer-local 'LaTeX-enumitem-newlist-list-local)
+
+(defvar LaTeX-enumitem-newlist-list-item-arg nil
+ "List of description like environments defined by command
+`\\newlist' from `enumitem' package.")
+
+(defvar LaTeX-enumitem-newlist-list-item-arg-local nil
+ "Local list of all description like environments defined by command
+`\\newlist' plus available through `enumitem' package.")
+(make-variable-buffer-local 'LaTeX-enumitem-newlist-list-item-arg-local)
+
+(defvar LaTeX-auto-enumitem-newlist nil
+ "Temporary for parsing the arguments of `\\newlist' from
+`enumitem' package.")
+
+(defvar LaTeX-enumitem-newlist-regexp
+ '("\\\\newlist{\\([^}]+\\)}{\\([^}]+\\)}"
+ (1 2) LaTeX-auto-enumitem-newlist)
+ "Matches the arguments of `\\newlist' from `enumitem'
+package.")
+
+
+;; Setup for \SetEnumitemKey:
+
+(TeX-auto-add-type "enumitem-SetEnumitemKey" "LaTeX")
+
+(defvar LaTeX-enumitem-SetEnumitemKey-regexp
+ '("\\\\SetEnumitemKey{\\([^}]+\\)}"
+ 1 LaTeX-auto-enumitem-SetEnumitemKey)
+ "Matches the arguments of `\\SetEnumitemKey' from `enumitem'
+package.")
+
+
+;; Setup for \SetEnumitemValue:
+
+(TeX-auto-add-type "enumitem-SetEnumitemValue" "LaTeX")
+
+;; Upon Tassilo's recommendation, we include also `0' so that we can
+;; use the function `LaTeX-enumitem-SetEnumitemValue-list' while we
+;; make sure that `TeX-auto-list-information' doesn't remove multiple
+;; defined values to a specific key. For this reason, we also ignore
+;; the 3. argument to the `\SetEnumitemValue' macro (i.e., a third
+;; {\\([^}]+\\)} in regex) so that we don't pollute the generated
+;; `docname.el' with unnecessary (La)TeX code.
+(defvar LaTeX-enumitem-SetEnumitemValue-regexp
+ '("\\\\SetEnumitemValue{\\([^}]+\\)}{\\([^}]+\\)}"
+ (0 1 2) LaTeX-auto-enumitem-SetEnumitemValue)
+ "Matches the arguments of `\\SetEnumitemValue' from `enumitem'
+package.")
+
+;; Plug them into the machinery.
+(defun LaTeX-enumitem-auto-prepare ()
+ "Clear various `LaTeX-enumitem-*' before parsing."
+ (setq LaTeX-auto-enumitem-newlist nil
+ LaTeX-enumitem-newlist-list nil
+ LaTeX-enumitem-newlist-list-item-arg nil
+ LaTeX-auto-enumitem-SetEnumitemKey nil
+ LaTeX-auto-enumitem-SetEnumitemValue nil))
+
+(defun LaTeX-enumitem-auto-cleanup ()
+ "Move parsing results into right places for further usage."
+ ;; \newlist{<name>}{<type>}{<max-depth>}
+ ;; env=<name>, type=<type>, ignored=<max-depth>
+ (dolist (env-type LaTeX-auto-enumitem-newlist)
+ (let* ((env (car env-type))
+ (type (cadr env-type)))
+ (add-to-list 'LaTeX-auto-environment
+ (list env 'LaTeX-enumitem-env-with-opts))
+ (add-to-list 'LaTeX-enumitem-newlist-list
+ (list env))
+ (when (or (string-equal type "description")
+ (string-equal type "description*"))
+ (add-to-list 'LaTeX-enumitem-newlist-list-item-arg
+ (list env))))))
+
+(add-hook 'TeX-auto-prepare-hook #'LaTeX-enumitem-auto-prepare t)
+(add-hook 'TeX-auto-cleanup-hook #'LaTeX-enumitem-auto-cleanup t)
+
+(defun LaTeX-enumitem-env-with-opts (env)
+ "Update available key-val options, then insert ENV and optional
+key-val and the first item."
+ (LaTeX-enumitem-update-key-val-options)
+ (LaTeX-insert-environment
+ env
+ (let ((opts (TeX-read-key-val t LaTeX-enumitem-key-val-options-local)))
+ (when (and opts (not (string-equal opts "")))
+ (format "[%s]" opts))))
+ (if (TeX-active-mark)
+ (progn
+ (LaTeX-find-matching-begin)
+ (end-of-line 1))
+ (end-of-line 0))
+ (delete-char 1)
+ (when (looking-at (concat "^[ \t]+$\\|"
+ "^[ \t]*" TeX-comment-start-regexp "+[ \t]*$"))
+ (delete-region (point) (line-end-position)))
+ (delete-horizontal-space)
+ ;; Deactivate the mark here in order to prevent `TeX-parse-macro'
+ ;; from swapping point and mark and the \item ending up right after
+ ;; \begin{...}.
+ (TeX-deactivate-mark)
+ (LaTeX-insert-item)
+ ;; The inserted \item may have outdented the first line to the
+ ;; right. Fill it, if appropriate.
+ (when (and (not (looking-at "$"))
+ (not (assoc environment LaTeX-indent-environment-list))
+ (> (- (line-end-position) (line-beginning-position))
+ (current-fill-column)))
+ (LaTeX-fill-paragraph nil)))
+
+(defun LaTeX-arg-SetEnumitemKey (optional &optional prompt)
+ "Ask for a new key to be defined and add it to
+`LaTeX-enumitem-key-val-options-local'."
+ (LaTeX-enumitem-update-key-val-options)
+ (let ((key (TeX-read-string "New Key: "))
+ (replace (TeX-read-key-val optional
+ LaTeX-enumitem-key-val-options-local
"Replacement")))
+ (TeX-argument-insert key optional)
+ (TeX-argument-insert replace optional)
+ (add-to-list 'LaTeX-enumitem-key-val-options-local (list key))
+ (LaTeX-add-enumitem-SetEnumitemKeys key)))
+
+;; In `LaTeX-enumitem-SetEnumitemValue-regexp', we match (0 1 2).
+;; When adding a new `key=val', we need something unique for `0'-match
+;; until the next `C-c C-n'. We mimic that regex-match bei concat'ing
+;; the elements and pass the result to
+;; `LaTeX-add-enumitem-SetEnumitemValues'. It will vanish upon next
+;; invocation of `C-c C-n'.
+(defun LaTeX-arg-SetEnumitemValue (optional &optional prompt)
+ "Ask for a new value added to an existing key incl. the final
+replacement of the value."
+ (LaTeX-enumitem-update-key-val-options)
+ (let* ((key (TeX-read-key-val optional LaTeX-enumitem-key-val-options-local
"Key"))
+ (val (TeX-read-string "String value: "))
+ ;; (key-match (car (assoc key LaTeX-enumitem-key-val-options-local)))
+ (val-match (cdr (assoc key LaTeX-enumitem-key-val-options-local)))
+ (temp (copy-alist LaTeX-enumitem-key-val-options-local))
+ (opts (assq-delete-all (car (assoc key temp)) temp)))
+ (if val-match
+ (pushnew (list key (delete-dups (apply 'append (list val) val-match)))
+ opts :test #'equal)
+ (pushnew (list key (list val)) opts :test #'equal))
+ (setq LaTeX-enumitem-key-val-options-local (copy-alist opts))
+ (TeX-argument-insert key optional)
+ (TeX-argument-insert val optional)
+ (LaTeX-add-enumitem-SetEnumitemValues
+ (list (concat "\\SetEnumitemValue{" key "}{" val "}")
+ key val))))
+
+(defun LaTeX-enumitem-update-key-val-options ()
+ "Update the buffer-local key-val options before offering them
+in `enumitem'-completions."
+ (dolist (key (LaTeX-enumitem-SetEnumitemKey-list))
+ (add-to-list 'LaTeX-enumitem-key-val-options-local key))
+ (dolist (keyvals (LaTeX-enumitem-SetEnumitemValue-list))
+ (let* ((key (nth 1 keyvals))
+ (val (nth 2 keyvals))
+ ;; (key-match (car (assoc key LaTeX-enumitem-key-val-options-local)))
+ (val-match (cdr (assoc key LaTeX-enumitem-key-val-options-local)))
+ (temp (copy-alist LaTeX-enumitem-key-val-options-local))
+ (opts (assq-delete-all (car (assoc key temp)) temp)))
+ (if val-match
+ (pushnew (list key (delete-dups (apply 'append (list val) val-match)))
+ opts :test #'equal)
+ (pushnew (list key (list val)) opts :test #'equal))
+ (setq LaTeX-enumitem-key-val-options-local (copy-alist opts)))))
+
+
+(TeX-add-style-hook
+ "enumitem"
+ (lambda ()
+
+ ;; Add enumitem to the parser.
+ (TeX-auto-add-regexp LaTeX-enumitem-newlist-regexp)
+ (TeX-auto-add-regexp LaTeX-enumitem-SetEnumitemKey-regexp)
+ (TeX-auto-add-regexp LaTeX-enumitem-SetEnumitemValue-regexp)
+
+ ;; Activate the buffer-local version of key-vals.
+ (setq LaTeX-enumitem-key-val-options-local
+ (copy-alist LaTeX-enumitem-key-val-options))
+
+ ;; Set the standard env's to the local list.
+ (setq LaTeX-enumitem-newlist-list-local
+ '(("itemize") ("enumerate") ("description")))
+
+ ;; Add the starred versions to the local list.
+ (when (LaTeX-provided-package-options-member "enumitem" "inline")
+ (setq LaTeX-enumitem-newlist-list-local
+ (append '(("itemize*") ("enumerate*") ("description*"))
+ LaTeX-enumitem-newlist-list-local)))
+
+ ;; Now add the parsed env's to the local list.
+ (setq LaTeX-enumitem-newlist-list-local
+ (append LaTeX-enumitem-newlist-list
+ LaTeX-enumitem-newlist-list-local))
+
+ ;; Move parsed description like env's into a local variable.
+ (setq LaTeX-enumitem-newlist-list-item-arg-local
+ LaTeX-enumitem-newlist-list-item-arg)
+
+ ;; Tell AUCTeX about special items parsed
+ (dolist (env LaTeX-enumitem-newlist-list-item-arg-local)
+ (add-to-list 'LaTeX-item-list `(,(car env) . LaTeX-item-argument)))
+
+ ;; Standard env's take key-val as optional argument.
+ (LaTeX-add-environments
+ '("itemize" LaTeX-enumitem-env-with-opts)
+ '("enumerate" LaTeX-enumitem-env-with-opts)
+ '("description" LaTeX-enumitem-env-with-opts))
+
+ ;; Make inline env's available with package option "inline"
+ (when (LaTeX-provided-package-options-member "enumitem" "inline")
+ (LaTeX-add-environments
+ '("itemize*" LaTeX-enumitem-env-with-opts)
+ '("enumerate*" LaTeX-enumitem-env-with-opts)
+ '("description*" LaTeX-enumitem-env-with-opts))
+ (add-to-list 'LaTeX-item-list '("description*" . LaTeX-item-argument)))
+
+ ;; Cloning lists
+ (TeX-add-symbols
+ ;; The easy way would be:
+ ;; '("newlist"
+ ;; "Name" (TeX-arg-eval
+ ;; completing-read "Type: "
+ ;; '(("itemize") ("enumerate") ("description")
+ ;; ("itemize*") ("enumerate*") ("description*")))
+ ;; "Max-depth")
+ ;; But we go the extra mile to improve the user experience and add
+ ;; the arguments directly to appropriate lists.
+ ;; \newlist{<name>}{<type>}{<max-depth>}
+ '("newlist"
+ (TeX-arg-eval
+ (lambda ()
+ (let ((name (TeX-read-string "Name: "))
+ (type (completing-read
+ "Type: "
+ '(("itemize") ("enumerate") ("description")
+ ("itemize*") ("enumerate*") ("description*"))))
+ (depth (TeX-read-string "Max-depth: ")))
+ (setq LaTeX-enumitem-newlist-list-local
+ (append `(,(list name)) LaTeX-enumitem-newlist-list-local))
+ (when (or (string-equal type "description")
+ (string-equal type "description*"))
+ (add-to-list 'LaTeX-item-list `(,name . LaTeX-item-argument)))
+ (LaTeX-add-environments `(,name LaTeX-enumitem-env-with-opts))
+ (insert (format "{%s}" name)
+ (format "{%s}" type))
+ (format "%s" depth)))))
+
+ ;; \renewlist{<name>}{<type>}{<max-depth>}
+ '("renewlist"
+ (TeX-arg-eval completing-read "Name: "
+ LaTeX-enumitem-newlist-list-local)
+ (TeX-arg-eval completing-read "Type: "
+ '(("itemize") ("enumerate") ("description")
+ ("itemize*") ("enumerate*") ("description*")))
+ "Max-depth")
+
+ ;; \setlist{<names,levels>}{<key-vals>}
+ '("setlist"
+ [TeX-arg-eval mapconcat 'identity
+ (TeX-completing-read-multiple
+ "Environment(s), level(s): "
+ `(,@LaTeX-enumitem-newlist-list-local
+ ("1") ("2") ("3") ("4"))) ","]
+ (TeX-arg-eval
+ (lambda ()
+ (LaTeX-enumitem-update-key-val-options)
+ (let ((opts (TeX-read-key-val nil
LaTeX-enumitem-key-val-options-local)))
+ (format "%s" opts)))))
+
+ ;; \setlist*{<names,levels>}{<key-vals>}
+ '("setlist*"
+ [TeX-arg-eval mapconcat 'identity
+ (TeX-completing-read-multiple
+ "Environment, level: "
+ `(,@LaTeX-enumitem-newlist-list-local
+ ("1") ("2") ("3") ("4"))) ","]
+ (TeX-arg-eval
+ (lambda ()
+ (LaTeX-enumitem-update-key-val-options)
+ (let ((opts (TeX-read-key-val nil
LaTeX-enumitem-key-val-options-local)))
+ (format "%s" opts))))) )
+
+ ;; General commands:
+ (TeX-add-symbols
+
+ ;; Ask for an Integer and insert it.
+ '("setlistdepth" "Integer")
+
+ ;; Just add the braces and let the user do the rest.
+ '("AddEnumerateCounter" 3)
+
+ ;; This command only makes sense for enumerate type environments.
+ ;; Currently, we offer all defined env's -- to be improved
+ ;; sometimes.
+ '("restartlist"
+ (TeX-arg-eval completing-read "List name: "
+ LaTeX-enumitem-newlist-list-local))
+
+ ;; "Key" will be parsed and added to key-val list.
+ '("SetEnumitemKey" LaTeX-arg-SetEnumitemKey)
+
+ ;; "Key" and "Value" are added to our key-val list
+ '("SetEnumitemValue" LaTeX-arg-SetEnumitemValue "Replacement"))
+
+ ;; Setting enumerate short label
+ (when (LaTeX-provided-package-options-member "enumitem" "shortlabels")
+ (TeX-add-symbols
+ '("SetEnumerateShortLabel"
+ (TeX-arg-eval completing-read "Key: "
+ '(("A") ("a") ("I") ("i") ("1")))
+ "Replacement")))
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("newlist" "{{{")
+ ("renewlist" "{{{")
+ ("setlist" "*[{")
+ ("AddEnumerateCounter" "{{{")
+ ("SetEnumitemKey" "{{" )
+ ("SetEnumitemValue" "{{{"))
+ 'function)
+ (font-latex-add-keywords '(("restartlist" "{" )
+ ("setlistdepth" "{" )
+ ("SetEnumerateShortLabel" "{{"))
+ 'variable)))
+ LaTeX-dialect)
+
+(defvar LaTeX-enumitem-package-options
+ '("inline" "ignoredisplayed" "shortlabels" "loadonly")
+ "Package options for the enumitem package.")
+
+;;; enumitem.el ends here
diff --git a/style/expl3.el b/style/expl3.el
new file mode 100644
index 0000000..6293b87
--- /dev/null
+++ b/style/expl3.el
@@ -0,0 +1,51 @@
+;;; expl3.el --- AUCTeX style for `expl3.sty'
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Tassilo Horn <address@hidden>
+;; Maintainer: address@hidden
+;; Created: 2015-02-22
+;; 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 `expl3.sty'.
+
+;;; Code:
+
+(defvar LaTeX-expl3-syntax-table
+ (let ((st (copy-syntax-table LaTeX-mode-syntax-table)))
+ ;; Make _ and : symbol chars
+ (modify-syntax-entry ?\_ "_" st)
+ (modify-syntax-entry ?\: "_" st)
+ st))
+
+(TeX-add-style-hook
+ "expl3"
+ (lambda ()
+ (set-syntax-table LaTeX-expl3-syntax-table)
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ ;; For syntactic fontification, e.g. verbatim constructs.
+ (font-latex-set-syntactic-keywords)
+ ;; Tell font-lock about the update.
+ (setq font-lock-set-defaults nil)
+ (font-lock-set-defaults)))
+ LaTeX-dialect)
diff --git a/style/geometry.el b/style/geometry.el
new file mode 100644
index 0000000..d263183
--- /dev/null
+++ b/style/geometry.el
@@ -0,0 +1,150 @@
+;;; geometry.el --- AUCTeX style for `geometry.sty' (v5.6)
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <esbati'at'gmx.de>
+;; Maintainer: address@hidden
+;; Created: 2015-02-21
+;; 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 `geometry.sty' (v5.6) from 2010/09/12.
+;; `geometry.sty' is part of TeXLive.
+
+;;; Code:
+
+(defvar LaTeX-geometry-always-key-val-options
+ '(("layout") ("layoutwidth") ("layoutheight") ("layoutsize")
+ ("layouthoffset") ("layoutvoffset") ("layoutoffset") ("hscale")
+ ("vscale") ("scale") ("width") ("totalwidth") ("height") ("totalheight")
+ ("total") ("textwidth") ("textheight") ("text") ("body") ("lines")
+ ("includehead") ("includefoot") ("includeheadfoot") ("includemp")
+ ("includeall") ("ignorehead") ("ignorefoot") ("ignoreheadfoot")
+ ("ignoremp") ("ignoreall") ("heightrounded") ("hdivide") ("vdivide")
+ ("divide") ("left") ("lmargin") ("inner") ("right") ("rmargin")
+ ("outer") ("top") ("tmargin") ("bottom") ("bmargin") ("hmargin")
+ ("vmargin") ("margin") ("hmarginratio") ("vmarginratio") ("marginratio")
+ ("ratio") ("hcentering") ("vcentering") ("centering") ("twoside")
+ ("asymmetric") ("bindingoffset") ("hdivide") ("vdivide") ("divide")
+ ("headheight") ("head") ("headsep") ("footskip") ("foot") ("nohead")
+ ("nofoot") ("noheadfoot") ("footnotesep") ("marginparwidth") ("marginpar")
+ ("marginparsep") ("nomarginpar") ("columnsep") ("hoffset") ("voffset")
+ ("offset") ("twocolumn") ("onecolumn") ("twoside") ("textwidth")
+ ("textheight") ("reversemp") ("reversemarginpar"))
+ "Key=value options always available for geometry macros.")
+
+(defvar LaTeX-geometry-preamble-key-val-options
+ '(("paper" ("a0paper" "a1paper" "a2paper" "a3paper" "a4paper"
+ "a5paper" "a6paper" "b0paper" "b1paper" "b2paper"
+ "b3paper" "b4paper" "b5paper" "b6paper" "c0paper"
+ "c1paper" "c2paper" "c3paper" "c4paper" "c5paper"
+ "c6paper" "b0j" "b1j" "b2j" "b3j" "b4j" "b5j" "b6j"
+ "ansiapaper" "ansibpaper" "ansicpaper" "ansidpaper"
+ "ansiepaper" "ansiapaper" "ansibpaper" "ansicpaper"
+ "ansidpaper" "ansiepaper"))
+ ("papername" ("a0paper" "a1paper" "a2paper" "a3paper" "a4paper"
+ "a5paper" "a6paper" "b0paper" "b1paper" "b2paper"
+ "b3paper" "b4paper" "b5paper" "b6paper" "c0paper"
+ "c1paper" "c2paper" "c3paper" "c4paper" "c5paper"
+ "c6paper" "b0j" "b1j" "b2j" "b3j" "b4j" "b5j" "b6j"
+ "ansiapaper" "ansibpaper" "ansicpaper" "ansidpaper"
+ "ansiepaper" "ansiapaper" "ansibpaper" "ansicpaper"
+ "ansidpaper" "ansiepaper"))
+ ("a0paper") ("a1paper") ("a2paper") ("a3paper") ("a4paper") ("a5paper")
+ ("a6paper") ("b0paper") ("b1paper") ("b2paper") ("b3paper") ("b4paper")
+ ("b5paper") ("b6paper") ("c0paper") ("c1paper") ("c2paper") ("c3paper")
+ ("c4paper") ("c5paper") ("c6paper") ("b0j") ("b1j") ("b2j") ("b3j")
+ ("b4j") ("b5j") ("b6j") ("ansiapaper") ("ansibpaper") ("ansicpaper")
+ ("ansidpaper") ("ansiepaper") ("ansiapaper") ("ansibpaper") ("ansicpaper")
+ ("ansidpaper") ("ansiepaper") ("screen") ("paperwidth") ("paperheight")
+ ("papersize") ("landscape") ("portrait")
+ ("driver" ("dvips" "dvipdfm" "pdftex" "vtex" "xetex" "auto" "none"))
+ ("dvips") ("dvipdfm") ("pdftex") ("xetex") ("vtex") ("verbose")
+ ("reset") ("mag") ("truedimen") ("pass") ("showframe") ("showcrop"))
+ "Key=value options allowed only in the preamble for geometry macros.")
+
+
+;; Needed for auto-parsing.
+(require 'tex)
+
+;; Setup for \savegeometry:
+(TeX-auto-add-type "geometry-savegeometry" "LaTeX" "geometry-savegeometries")
+
+(defvar LaTeX-geometry-savegeometry-regexp
+ '("\\\\savegeometry{\\([^}]+\\)}"
+ 1 LaTeX-auto-geometry-savegeometry)
+ "Matches the argument of `\\savegeometry' from `geometry'
+package.")
+
+(defun LaTeX-geometry-auto-prepare ()
+ "Clear `LaTeX-auto-geometry-savegeometry' before parsing."
+ (setq LaTeX-auto-geometry-savegeometry nil))
+
+(add-hook 'TeX-auto-prepare-hook #'LaTeX-geometry-auto-prepare t)
+
+(TeX-add-style-hook
+ "geometry"
+ (lambda ()
+
+ ;; Add geometry to the parser.
+ (TeX-auto-add-regexp LaTeX-geometry-savegeometry-regexp)
+
+ ;; geometry commands:
+ (TeX-add-symbols
+ '("geometry"
+ (TeX-arg-eval TeX-read-key-val nil
+ (append LaTeX-geometry-preamble-key-val-options
+ LaTeX-geometry-always-key-val-options)))
+ '("newgeometry"
+ (TeX-arg-key-val LaTeX-geometry-always-key-val-options))
+
+ '("restoregeometry" 0)
+
+ '("savegeometry"
+ (TeX-arg-eval
+ (lambda ()
+ (let ((name (TeX-read-string "Name: ")))
+ (LaTeX-add-geometry-savegeometries name)
+ (format "%s" name)))))
+
+ '("loadgeometry"
+ (TeX-arg-eval
+ (lambda ()
+ (completing-read "Name: "
+ (LaTeX-geometry-savegeometry-list))))))
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("geometry" "{")
+ ("newgeometry" "{")
+ ("savegeometry" "{")
+ ("loadgeometry" "{"))
+ 'function)))
+ LaTeX-dialect)
+
+(defun LaTeX-geometry-package-options ()
+ "Prompt for package options for the geometry package."
+ (TeX-read-key-val t
+ (append LaTeX-geometry-preamble-key-val-options
+ LaTeX-geometry-always-key-val-options)))
+
+;;; geometry.el ends here
diff --git a/style/ltablex.el b/style/ltablex.el
new file mode 100644
index 0000000..5e0fad5
--- /dev/null
+++ b/style/ltablex.el
@@ -0,0 +1,49 @@
+;;; ltablex.el --- AUCTeX style for `ltablex.sty' (v1.1)
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <esbati'at'gmx.de>
+;; Maintainer: address@hidden
+;; Created: 2015-03-14
+;; 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 `ltablex.sty' (v1.1) from 2014/08/13.
+;; `ltablex.sty' is part of TeXLive. `ltablex.sty' modifies the
+;; tabularx environment to combine the features of the tabularx
+;; package with those of the longtable package. All we need is to
+;; call those styles and add two macros.
+
+;;; Code:
+
+(TeX-add-style-hook
+ "ltablex"
+ (lambda ()
+ (TeX-run-style-hooks "tabularx" "longtable")
+ (TeX-add-symbols
+ '("keepXColumns" 0)
+ '("convertXColumns" 0)))
+ LaTeX-dialect)
+
+(defvar LaTeX-ltablex-package-options nil
+ "Package options for the ltablex package.")
+
+;;; ltablex.el ends here
diff --git a/style/ltxtable.el b/style/ltxtable.el
new file mode 100644
index 0000000..ddc7c89
--- /dev/null
+++ b/style/ltxtable.el
@@ -0,0 +1,51 @@
+;;; ltxtable.el --- AUCTeX style for `ltxtable.sty' (v0.2)
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <esbati'at'gmx.de>
+;; Maintainer: address@hidden
+;; Created: 2015-03-14
+;; 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 `ltxtable.sty' (v0.2) from 1995/12/11.
+;; `ltxtable.sty' is part of TeXLive.
+
+;;; Code:
+
+(TeX-add-style-hook
+ "ltxtable"
+ (lambda ()
+ (TeX-run-style-hooks "tabularx" "longtable")
+ (TeX-add-symbols
+ '("LTXtable"
+ (TeX-arg-length)
+ (TeX-arg-eval
+ (lambda ()
+ (let ((longtable (file-relative-name
+ (read-file-name "File with longtable: "))))
+ (format "%s" longtable)))))))
+ LaTeX-dialect)
+
+(defvar LaTeX-ltxtable-package-options nil
+ "Package options for the ltxtable package.")
+
+;;; ltxtable.el ends here
diff --git a/style/mn2e.el b/style/mn2e.el
new file mode 100644
index 0000000..0c6d9f6
--- /dev/null
+++ b/style/mn2e.el
@@ -0,0 +1,175 @@
+;;; mn2e.el --- AUCTeX style for `mn2e.cls' version 2.2.
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Maintainer: address@hidden
+;; Author: Mosè Giordano <address@hidden>
+;; 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 `mn2e.cls' version 2.2.
+
+;;; Code:
+
+(TeX-add-style-hook
+ "mn2e"
+ (lambda ()
+ (if (LaTeX-provided-class-options-member "mn2e" "usegraphicx")
+ (TeX-run-style-hooks "graphicx"))
+ (if (LaTeX-provided-class-options-member "mn2e" "usenatbib")
+ (TeX-run-style-hooks "natbib"))
+ (if (LaTeX-provided-class-options-member "mn2e" "usedcolumn")
+ (TeX-run-style-hooks "dcolumn"))
+ (TeX-add-symbols
+ ;; 4.5.3 Bold Greek
+ "balpha"
+ "bbeta"
+ "bgamma"
+ "bdelta"
+ "bepsilon"
+ "bzeta"
+ "boldeta"
+ "btheta"
+ "biota"
+ "bkappa"
+ "blambda"
+ "bmu"
+ "bnu"
+ "bxi"
+ "bpi"
+ "brho"
+ "bsigma"
+ "btau"
+ "bupsilon"
+ "bphi"
+ "bchi"
+ "bpsi"
+ "bomega"
+ "bvarepsilon"
+ "bvartheta"
+ "bvarpi"
+ "bvarrho"
+ "bvarsigma"
+ "bvarphi"
+ ;; 4.5.5 Special symbols
+ "getsto"
+ "cor"
+ "lid"
+ "gid"
+ "sol"
+ "sog"
+ "lse"
+ "gse"
+ "grole"
+ "leogr"
+ "loa"
+ "goa"
+ "sun"
+ "earth"
+ "degr"
+ "diameter"
+ "sq"
+ "squareforqed"
+ "fd"
+ "fh"
+ "fm"
+ "fs"
+ "fdg"
+ "farcm"
+ "farcs"
+ "fp"
+ "arcmin"
+ "arcsec"
+ "micron"
+ ;; Authors' notes
+ '("title" ["Short title"] "Long title")
+ '("author" ["Short author(s)"] (LaTeX-arg-author "Long author(s)"))
+ "newauthor"
+ "nokeywords"
+ "plate"
+ "contcaption"
+ '("bmath" "Math text")
+ '("mathbfss" "Text")
+ '("textbfss" "Text")
+ '("mathbfit" "Text")
+ '("textbfit" "Text")
+ ;; Editors' notes
+ "pagerange"
+ "volume"
+ "pubyear"
+ "journal"
+ "bsp")
+ (if (LaTeX-provided-class-options-member "mn2e" "useAMS")
+ (TeX-add-symbols
+ ;; 4.5.4 Upright Greek characters
+ "upi"
+ "umu"
+ "upartial"
+ "leqslant"
+ "geqslant"
+ "la"
+ "ga"))
+ (LaTeX-add-environments
+ "keywords"
+ "abstract"
+ "proof")
+ (LaTeX-add-pagestyles
+ "headings"
+ "myheadings"
+ "titlepage"
+ "plate")
+ (LaTeX-add-counters
+ "part"
+ "section"
+ "subsection"
+ "subsubsection"
+ "paragraph"
+ "subparagraph"
+ "dummy"
+ "table"
+ "figure")
+ (LaTeX-add-lengths
+ "realparindent"
+ "bibhang")
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("author" "[{")
+ ("title" "[{")
+ ("newauthor")
+ ("nokeywords" "{")
+ ("plate" "{")
+ ("contcaption" "{")
+ ("pagerange" "{")
+ ("volume" "{")
+ ("pubyear" "{")
+ ("journal")
+ ("bsp"))
+ 'function)))
+ LaTeX-dialect)
+
+(defvar LaTeX-mn2e-class-options
+ '("useAMS" "usegraphicx" "usenatbib" "usedcolumn"
+ "doublespacing" "galley" "landscape" "letters" "onecolumn" "referee")
+ "Package options for the mn2e package.")
+
+;; mn2e.el ends here
diff --git a/style/tcolorbox.el b/style/tcolorbox.el
new file mode 100644
index 0000000..73c8555
--- /dev/null
+++ b/style/tcolorbox.el
@@ -0,0 +1,82 @@
+;;; tcolorbox.el --- AUCTeX style for `tcolorbox.sty'
+
+;; Copyright (C) 2015 Free Software Foundation, Inc.
+
+;; Author: Tassilo Horn <address@hidden>
+;; Maintainer: address@hidden
+;; Created: 2015-01-04
+;; 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 `tcolorbox.sty'.
+
+;;; Code:
+
+;; TODO: There are tons of more options...
+(defvar LaTeX-tcolorbox-keyval-options
+ '(("title")
+ ("notitle")
+ ("adjusted title")
+ ("adjust text")
+ ("squeezed title")
+ ("squeezed title*")
+ ("detach title")
+ ("attach title")
+ ("attach title to upper")
+ ("upperbox" ("visible" "invisible"))
+ ("visible")
+ ("invisible")
+ ("lowerbox" ("visible" "invisible" "ignored"))
+ ("savelowerto")
+ ("lower separated" ("true" "false"))
+ ("savedelimiter")
+ ("colframe")
+ ("colback")
+ ("title filled" ("true" "false"))
+ ("colbacktitle")
+ ("colupper")
+ ("collower")
+ ("coltext")
+ ("coltitle")
+ ("fontupper")
+ ("fontlower")
+ ("fonttitle")
+ ("width")
+ ("height")
+ ("after")
+ ("before")))
+
+(TeX-add-style-hook
+ "tcolorbox"
+ (lambda ()
+ ;; TODO: There are many more macros
+ (TeX-add-symbols
+ "tcblower"
+ '("tcbset"
+ (TeX-arg-key-val LaTeX-tcolorbox-keyval-options))
+ '("tcbsetforeverylayer"
+ (TeX-arg-key-val LaTeX-tcolorbox-keyval-options)))
+ (LaTeX-add-environments
+ '("tcolorbox" LaTeX-env-args
+ [TeX-arg-key-val LaTeX-tcolorbox-keyval-options])))
+ LaTeX-dialect)
+
+;;; tcolorbox.el ends here
diff --git a/tex-buf.el b/tex-buf.el
index 2623023..c61ffaf 100644
--- a/tex-buf.el
+++ b/tex-buf.el
@@ -557,8 +557,8 @@ QUEUE is non-nil when we are checking for the printer
queue."
(if (listp TeX-output-extension)
(car TeX-output-extension)
(or (TeX-process-get-variable (TeX-active-master)
- 'TeX-output-extension
- TeX-output-extension)
+ 'TeX-output-extension
+ TeX-output-extension)
TeX-output-extension)))
(defun TeX-view-mouse (event)
@@ -603,6 +603,12 @@ the current style options."
;;; Command Hooks
+(defvar TeX-after-TeX-LaTeX-command-finished-hook nil
+ "Hook being run after TeX/LaTeX finished successfully.
+The functions in this hook are run with the DVI/PDF output file
+given as argument. Using this hook can be useful for updating
+the viewer automatically after re-compilation of the document.")
+
(defvar TeX-after-start-process-function nil
"Hooks to run after starting an asynchronous process.
Used by Japanese TeX to set the coding system.")
@@ -1110,7 +1116,12 @@ changed\\. Rerun LaTeX\\." nil t)
(setq TeX-command-next TeX-command-Show))
(t
(message "%s%s%s" name ": problems after " (TeX-current-pages))
- (setq TeX-command-next TeX-command-default))))
+ (setq TeX-command-next TeX-command-default)))
+ (unless TeX-error-list
+ (run-hook-with-args 'TeX-after-TeX-LaTeX-command-finished-hook
+ (with-current-buffer TeX-command-buffer
+ (expand-file-name
+ (TeX-active-master (TeX-output-extension)))))))
;; should go into latex.el? --pg
(defun TeX-BibTeX-sentinel (process name)
@@ -1820,14 +1831,6 @@ Return non-nil if an error or warning is found."
(defun TeX-find-display-help (type file line error offset context string
line-end bad-box error-point)
"Find the error and display the help."
- (unless file
- (cond
- ;; XXX: error messages have to be different?
- ((equal type 'error)
- (error "Error occurred after last TeX file closed"))
- (t
- (error "Could not determine file for warning"))))
-
;; Go back to TeX-buffer
(let ((runbuf (TeX-active-buffer))
(master (with-current-buffer TeX-command-buffer
@@ -1835,33 +1838,41 @@ Return non-nil if an error or warning is found."
(command-buffer TeX-command-buffer)
error-file-buffer start)
(run-hooks 'TeX-translate-location-hook)
- (setq error-file-buffer
- (find-file
- (expand-file-name file (file-name-directory master))))
- ;; Set the value of `TeX-command-buffer' in the next file with an
- ;; error to be displayed to the value it has in the current buffer.
- (with-current-buffer error-file-buffer
- (set (make-local-variable 'TeX-command-buffer) command-buffer))
-
- ;; Find the location of the error or warning.
- (when line
- (goto-char (point-min))
- (forward-line (+ offset line -1))
- (cond
- ;; Error.
- ((equal type 'error)
- (if (not (string= string " "))
- (search-forward string nil t)))
- ;; Warning or bad box.
- (t
- (beginning-of-line 0)
- (setq start (point))
- (goto-char (point-min))
- (forward-line (+ offset line-end -1))
- (end-of-line)
- (when string
- (search-backward string start t)
- (search-forward string nil t)))))
+
+ (if file
+ (progn
+ (setq error-file-buffer
+ (find-file
+ (expand-file-name file (file-name-directory master))))
+ ;; Set the value of `TeX-command-buffer' in the next file with an
+ ;; error to be displayed to the value it has in the current buffer.
+ (with-current-buffer error-file-buffer
+ (set (make-local-variable 'TeX-command-buffer) command-buffer))
+
+ ;; Find the location of the error or warning.
+ (when line
+ (goto-char (point-min))
+ (forward-line (+ offset line -1))
+ (cond
+ ;; Error.
+ ((equal type 'error)
+ (if (not (string= string " "))
+ (search-forward string nil t)))
+ ;; Warning or bad box.
+ (t
+ (beginning-of-line 0)
+ (setq start (point))
+ (goto-char (point-min))
+ (forward-line (+ offset line-end -1))
+ (end-of-line)
+ (when string
+ (search-backward string start t)
+ (search-forward string nil t))))))
+ ;; When the file cannot be determined stay here but issue a warning.
+ (message (concat "Could not determine file for "
+ (cond ((equal type 'error) "error")
+ (t "warning"))))
+ (beep))
;; Display the help.
(cond ((eq TeX-display-help 'expert)
diff --git a/tex.el b/tex.el
index a17b8b4..88e2336 100644
--- a/tex.el
+++ b/tex.el
@@ -1096,6 +1096,27 @@ search are checked, too."
(cdr (caar (cdr elem)))))
spec))))))))
+(defun TeX-pdf-tools-sync-view ()
+ "Focus the focused page/paragraph in `pdf-view-mode'.
+If `TeX-source-correlate-mode' is disabled, only find and pop to
+the output PDF file. Used by default for the PDF Tools viewer
+entry in `TeX-view-program-list-builtin'."
+ (unless (featurep 'pdf-tools)
+ (error "PDF Tools are not installed"))
+ (unless TeX-PDF-mode
+ (error "PDF Tools only work with PDF output"))
+ (add-hook 'pdf-sync-backward-redirect-functions
+ #'TeX-source-correlate-handle-TeX-region)
+ (if (and TeX-source-correlate-mode
+ (fboundp 'pdf-sync-forward-search))
+ (with-current-buffer (or (find-buffer-visiting
+ (concat file "." TeX-default-extension))
+ (current-buffer))
+ (pdf-sync-forward-search))
+ (let ((pdf (concat file "." (TeX-output-extension))))
+ (pop-to-buffer (or (find-buffer-visiting pdf)
+ (find-file-noselect pdf))))))
+
(defvar url-unreserved-chars)
(defun TeX-evince-sync-view ()
@@ -1164,7 +1185,8 @@ the requirements are met."
" -i %(outpage)"
" -p %(outpage)")) " %o")) "evince")
("Okular" ("okular --unique %o" (mode-io-correlate "#src:%n%a"))
"okular")
- ("xdg-open" "xdg-open %o" "xdg-open"))))
+ ("xdg-open" "xdg-open %o" "xdg-open")
+ ("PDF Tools" TeX-pdf-tools-sync-view))))
"Alist of built-in viewer specifications.
This variable should not be changed by the user who can use
`TeX-view-program-list' to add new viewers or overwrite the
@@ -1301,8 +1323,8 @@ are evaluated positively is chosen."
(mapc (lambda (spec)
(add-to-list 'list
`(const ,(car spec))))
- (append TeX-view-program-list
- TeX-view-program-list-builtin))
+ (append TeX-view-program-list
+ TeX-view-program-list-builtin))
(sort list
(lambda (a b)
(string< (downcase (cadr a))
@@ -1601,6 +1623,21 @@ If this is nil, an empty string will be returned."
"Keymap for `TeX-source-correlate-mode'.
You could use this for unusual mouse bindings.")
+(defun TeX-source-correlate-handle-TeX-region (file line col)
+ "Translate backward search info with respect to `TeX-region'.
+That is, if FILE is `TeX-region', update FILE to the real tex
+file and LINE to (+ LINE offset-of-region). Else, return nil."
+ (when (string-equal TeX-region (file-name-sans-extension
+ (file-name-nondirectory file)))
+ (with-current-buffer (or (find-buffer-visiting file)
+ (find-file-noselect file))
+ (goto-char 0)
+ (when (re-search-forward "!offset(\\([[:digit:]]+\\))" nil t)
+ (let ((offset (string-to-int (match-string-no-properties 1))))
+ (when TeX-region-orig-buffer
+ (list (expand-file-name (buffer-file-name TeX-region-orig-buffer))
+ (+ line offset) col)))))))
+
(defun TeX-source-correlate-sync-source (file linecol &rest ignored)
"Show TeX FILE with point at LINECOL.
This function is called when emacs receives a SyncSource signal
@@ -1610,55 +1647,37 @@ or newer."
;; FILE may be given as relative path to the TeX-master root document or as
;; absolute file:// URL. In the former case, the tex file has to be already
;; opened.
- (let* ((line (car linecol))
- (col (cadr linecol))
- (region (string= TeX-region (file-name-sans-extension
- (file-name-nondirectory file))))
- (region-search-string nil)
- (buf (let ((f (condition-case nil
- (progn
- (require 'url-parse)
- (require 'url-util)
- (url-unhex-string (aref (url-generic-parse-url
file) 6)))
- ;; For Emacs 21 compatibility, which doesn't have the
- ;; url package.
- (file-error (replace-regexp-in-string "^file://" ""
file)))))
- (cond
- ;; Copy the text referenced by syntex relative in the region
- ;; file so that we can search it in the original file.
- (region (let ((region-buf (get-buffer (file-name-nondirectory
file))))
- (when region-buf
- (with-current-buffer region-buf
- (goto-char (point-min))
- (forward-line (1- line))
- (let* ((p (point))
- (bound (save-excursion
- (re-search-backward
"\\\\message{[^}]+}" nil t)
- (end-of-line)
- (point)))
- (start (save-excursion
- (while (< (- p (point)) 250)
- (backward-paragraph))
- (point))))
- (setq region-search-string
(buffer-substring-no-properties
- (if (< start
bound) bound start)
- (point))))
- ;; TeX-region-create stores the original buffer
- ;; locally as TeX-region-orig-buffer.
- (get-buffer TeX-region-orig-buffer)))))
- ((file-name-absolute-p f) (find-file f))
- (t (get-buffer (file-name-nondirectory file)))))))
- (if (null buf)
- (message "No buffer for %s." file)
- (switch-to-buffer buf)
- (push-mark (point) 'nomsg)
- (goto-char (point-min))
- (if region
- (search-forward region-search-string nil t)
- (forward-line (1- line)))
- (unless (= col -1)
- (move-to-column col))
- (raise-frame))))
+ (let* ((file (condition-case nil
+ (progn
+ (require 'url-parse)
+ (require 'url-util)
+ (url-unhex-string (aref (url-generic-parse-url file) 6)))
+ ;; For Emacs 21 compatibility, which doesn't have the
+ ;; url package.
+ (file-error (replace-regexp-in-string "^file://" "" file))))
+ (flc (or (apply #'TeX-source-correlate-handle-TeX-region file linecol)
+ (apply #'list file linecol)))
+ (file (car flc))
+ (line (cadr flc))
+ (col (nth 2 flc)))
+ (pop-to-buffer (or (find-buffer-visiting file)
+ (find-file-noselect file)))
+ (push-mark nil 'nomsg)
+ (let ((pos
+ (when (> line 0)
+ (save-excursion
+ (save-restriction
+ (widen)
+ (goto-char 1)
+ (forward-line (1- line))
+ (when (> col 0)
+ (forward-char (1- col)))
+ (point))))))
+ (when pos
+ (when (or (< pos (point-min))
+ (> pos (point-max)))
+ (widen))
+ (goto-char pos)))))
(define-minor-mode TeX-source-correlate-mode
"Minor mode for forward and inverse search.
@@ -2421,11 +2440,13 @@ These correspond to the personal TeX macros."
(let ((path))
;; Put directories in an order where the more local files can
;; override the more global ones.
- (mapc (lambda (file) (when file (add-to-list 'path file t)))
+ (mapc (lambda (file)
+ (when (and file (not (member file path)))
+ (setq path (cons file path))))
(append (list TeX-auto-global TeX-style-global)
TeX-auto-private TeX-style-private
(list TeX-auto-local TeX-style-local)))
- path)
+ (nreverse path))
"List of directories to search for AUCTeX style files.
Per default the list is built from the values of the variables
`TeX-auto-global', `TeX-style-global', `TeX-auto-private',
- [elpa] externals/auctex a375093 20/35: New style enumitem.el, (continued)
- [elpa] externals/auctex a375093 20/35: New style enumitem.el, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 69b02a0 22/35: New style for geometry.sty., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 003f475 28/35: New style ltablex.el., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex f16c051 31/35: Fix header of style/mn2e.el., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 8d7fef3 27/35: Improve styles enumitem.el and caption.el., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 6896a4c 32/35: Fix of the fix. Really., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex fd04166 29/35: New style ltxtable.el., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex b1e9217 30/35: Style file for mn2e.cls., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex ca40c6a 33/35: Fix a broken link in documentation., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 6620d8c 35/35: Merge from upstream master; release 11.88.3, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 17f5888 34/35: Merge branch 'master' into elpa,
Tassilo Horn <=