[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex 4034de2 21/35: New style for caption.sty.
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex 4034de2 21/35: New style for caption.sty. |
Date: |
Sun, 22 Mar 2015 09:27:04 +0000 |
branch: externals/auctex
commit 4034de28e2ec88854604cc7f1951fe4e39c2aac0
Author: Arash Esbati <address@hidden>
Commit: Tassilo Horn <address@hidden>
New style for caption.sty.
* Makefile.in (STYLESRC): Add new style.
* style/caption.el: New file.
---
ChangeLog | 6 +
Makefile.in | 2 +-
style/caption.el | 308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 315 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 7925bfd..482a4fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,12 @@
* 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>
diff --git a/Makefile.in b/Makefile.in
index 6873e01..2195bf8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -145,7 +145,7 @@ STYLESRC = style/prosper.el \
style/newtxtext.el style/newtxttt.el style/minted.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/bidibeamer.el style/enumitem.el style/caption.el
STYLEELC = $(STYLESRC:.el=.elc)
diff --git a/style/caption.el b/style/caption.el
new file mode 100644
index 0000000..f2ea856
--- /dev/null
+++ b/style/caption.el
@@ -0,0 +1,308 @@
+;;; 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")
+
+(defvar LaTeX-caption-DeclareCaption-regexp
+ `(,(concat "\\\\DeclareCaption\\(Font\\|Format\\|Justification"
+ "\\|LabelFormat\\|LabelSeparator\\|ListFormat"
+ "\\|Option\\|Style\\|TextFormat\\)"
+ "\\*?"
+ "[ \t\n\r%]*"
+ "{\\([^}]+\\)}"
+ "[ \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 use a random number for this purpose which
+;; will then disappear.
+(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
+ `(,(number-to-string (random)) ,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
- [elpa] externals/auctex 86f4a1e 12/35: Add a hook that's run after an environment is modified, (continued)
- [elpa] externals/auctex 86f4a1e 12/35: Add a hook that's run after an environment is modified, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 566426b 08/35: New style for color.sty, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 3cf92fc 14/35: Fix font-locking issue, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 39badf0 15/35: New defcustom LaTeX-fill-excluded-macros, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 83306b4 13/35: Add some expl3 support, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 074af82 16/35: Add docs for LaTeX-fill-excluded-macros, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 61ed48c 19/35: Replace add-to-list with pushnew, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 31c42ca 23/35: Indent \[...\] display math as a normal environment., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 41c5f9a 24/35: Improve error/warning reporting when file cannot be determined., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 59f9440 26/35: Fix void-function error occuring if cl is not loaded, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex 4034de2 21/35: New style for caption.sty.,
Tassilo Horn <=
- [elpa] externals/auctex a2a4777 25/35: Add TeX-after-TeX-LaTeX-command-finished-hook, Tassilo Horn, 2015/03/22
- [elpa] externals/auctex b853739 17/35: Add uninstall rules to Makefiles., Tassilo Horn, 2015/03/22
- [elpa] externals/auctex d23de0a 18/35: Style for bidibeamer which delegates to beamer, Tassilo Horn, 2015/03/22
- [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