summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/tcolorbox.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/tcolorbox.el')
-rw-r--r--elpa/auctex-13.1.3/style/tcolorbox.el714
1 files changed, 714 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/tcolorbox.el b/elpa/auctex-13.1.3/style/tcolorbox.el
new file mode 100644
index 0000000..5ba44bb
--- /dev/null
+++ b/elpa/auctex-13.1.3/style/tcolorbox.el
@@ -0,0 +1,714 @@
+;;; tcolorbox.el --- AUCTeX style for `tcolorbox.sty' (v4.00) -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2015--2021 Free Software Foundation, Inc.
+
+;; Author: Tassilo Horn <tsdh@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; 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' (v4.00) from 2017/02/16.
+
+;; This style file adds support for core macros and environments and
+;; their options provided by `tcolorbox.sty'. Macros and environments
+;; provided by libraries should go in their own style files where the
+;; file is prefixed with `tcolorboxlib-',
+;; e.g. `tcolorboxlib-raster.el'.
+
+;; Libraries should also prepend a symbol containing their key=val
+;; options to the variable `LaTeX-tcolorbox-keyval-options-full'.
+;; This variable is used by the function of the same name called when
+;; inserting `\tcbset' macro.
+
+;;; Code:
+
+;; Needed for compiling `cl-pushnew':
+(eval-when-compile
+ (require 'cl-lib))
+
+;; Needed for auto-parsing:
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+
+(declare-function LaTeX-xcolor-definecolor-list "xcolor" ())
+
+;; FIXME: Anything missing?
+(defvar LaTeX-tcolorbox-keyval-options
+ '(;; 4.1 Title
+ ("title")
+ ("notitle")
+ ("adjusted title")
+ ("adjust text")
+ ("squeezed title")
+ ("squeezed title*")
+ ("detach title")
+ ("attach title")
+ ("attach title to upper")
+ ;; 4.2 Subtitle
+ ("subtitle style")
+ ;; 4.3 Upper Part
+ ("upperbox" ("visible" "invisible"))
+ ("visible")
+ ("invisible")
+ ("saveto")
+ ;; 4.4 Lower Part
+ ("lowerbox" ("visible" "invisible" "ignored"))
+ ("savelowerto")
+ ("lower separated" ("true" "false"))
+ ("savedelimiter")
+ ;; 4.5 Colors and Fonts
+ ("colframe")
+ ("colback")
+ ("title filled" ("true" "false"))
+ ("colbacktitle")
+ ("colupper")
+ ("collower")
+ ("coltext")
+ ("coltitle")
+ ("fontupper" ("\\rmfamily" "\\sffamily" "\\ttfamily" "\\mdseries" "\\bfseries"
+ "\\upshape" "\\itshape" "\\slshape" "\\scshape"
+ "\\tiny" "\\scriptsize" "\\footnotesize"
+ "\\small" "\\normalsize" "\\large"
+ "\\Large" "\\LARGE" "\\huge" "\\Huge" "\\normalfont"))
+ ("fontlower" ("\\rmfamily" "\\sffamily" "\\ttfamily" "\\mdseries" "\\bfseries"
+ "\\upshape" "\\itshape" "\\slshape" "\\scshape"
+ "\\tiny" "\\scriptsize" "\\footnotesize"
+ "\\small" "\\normalsize" "\\large"
+ "\\Large" "\\LARGE" "\\huge" "\\Huge" "\\normalfont"))
+ ("fonttitle" ("\\rmfamily" "\\sffamily" "\\ttfamily" "\\mdseries" "\\bfseries"
+ "\\upshape" "\\itshape" "\\slshape" "\\scshape"
+ "\\tiny" "\\scriptsize" "\\footnotesize"
+ "\\small" "\\normalsize" "\\large"
+ "\\Large" "\\LARGE" "\\huge" "\\Huge" "\\normalfont"))
+ ;; 4.6 Text Alignment
+ ("halign" ("justify" "left" "flush left" "right"
+ "flush right" "center" "flush center"))
+ ("halign lower" ("justify" "left" "flush left" "right"
+ "flush right" "center" "flush center"))
+ ("halign title" ("justify" "left" "flush left" "right"
+ "flush right" "center" "flush center"))
+ ("flushleft upper")
+ ("center upper")
+ ("flushright upper")
+ ("flushleft lower")
+ ("center lower")
+ ("flushright lower")
+ ("flushleft title")
+ ("center title")
+ ("flushright title")
+ ("valign" ("top" "center" "bottom" "scale" "scale*"))
+ ("valign upper" ("top" "center" "bottom" "scale" "scale*"))
+ ("valign lower" ("top" "center" "bottom" "scale" "scale*"))
+ ("valign scale limit")
+ ;; 4.7 Geometry:
+ ;; 4.7.1 Width
+ ("width")
+ ("text width")
+ ("add to width")
+ ;; 4.7.2 Rules
+ ("toprule")
+ ("bottomrule")
+ ("leftrule")
+ ("rightrule")
+ ("titlerule")
+ ("boxrule")
+ ;; 4.7.3 Arcs
+ ("arc")
+ ("circular arc")
+ ("bean arc")
+ ("octogon arc")
+ ("arc is angular")
+ ("arc is curved")
+ ("outer arc")
+ ("auto outer arc")
+ ;; 4.7.4 Spacing
+ ("boxsep")
+ ("left")
+ ("left*")
+ ("lefttitle")
+ ("leftupper")
+ ("leftlower")
+ ("right")
+ ("right*")
+ ("righttitle")
+ ("rightupper")
+ ("rightlower")
+ ("top")
+ ("toptitle")
+ ("bottom")
+ ("bottomtitle")
+ ("middle")
+ ;; 4.7.5 Size Shortcuts
+ ("size" ("normal" "title" "small" "fbox" "tight" "minimal"))
+ ("oversize")
+ ("toggle left and right" ("none" "forced" "evenpage"))
+ ;; 4.8 Corners
+ ("sharp corners" ("northwest" "northeast" "southwest" "southeast"
+ "north" "south" "east" "west" "downhill" "uphill" "all"))
+ ("rounded corners" ("northwest" "northeast" "southwest" "southeast"
+ "north" "south" "east" "west" "downhill" "uphill" "all"))
+ ("sharpish corners")
+ ;; 4.9 Transparency
+ ("opacityframe")
+ ("opacityback")
+ ("opacitybacktitle")
+ ("opacityfill")
+ ("opacityupper")
+ ("opacitylower")
+ ("opacitytext")
+ ("opacitytitle")
+ ;; 4.10 Height Control
+ ("natural height")
+ ("height")
+ ("height plus")
+ ("height from")
+ ("text height")
+ ("add to height")
+ ("add to natural height")
+ ("height fill" ("true" "false" "maximum"))
+ ("square")
+ ("space")
+ ("space to upper")
+ ("space to lower")
+ ("space to both")
+ ("space to")
+ ("split")
+ ("equal height group")
+ ("minimum for equal height group")
+ ("minimum for current equal height group")
+ ("use height from group")
+ ;; 4.11 Box Content Additions
+ ("before title")
+ ("after title")
+ ("before upper")
+ ("after upper")
+ ("after upper*")
+ ("before lower")
+ ("after lower")
+ ("after lower*")
+ ("text fill")
+ ("tabularx")
+ ("tabularx*")
+ ("tikz upper")
+ ("tikz lower")
+ ("tikznode upper")
+ ("tikznode lower")
+ ("tikznode")
+ ("varwidth upper")
+ ;; 4.12 Overlays
+ ("overlay")
+ ("no overlay")
+ ("overlay broken")
+ ("overlay unbroken")
+ ("overlay first")
+ ("overlay middle")
+ ("overlay last")
+ ("overlay unbroken and first")
+ ("overlay middle and last")
+ ("overlay unbroken and last")
+ ("overlay first and middle")
+ ;; 4.13 Floating Objects
+ ("floatplacement" ("htbp" "t" "b" "h" "p"))
+ ("float" ("htbp" "t" "b" "h" "p"))
+ ("float*" ("htbp" "t" "b" "h" "p"))
+ ("nofloat")
+ ("every float" ("\\centering" "\\raggedleft" "\\raggedright"))
+ ;; 4.14 Embedding into the Surroundings
+ ("before")
+ ("after")
+ ("parskip")
+ ("noparskip")
+ ("autoparskip")
+ ("nobeforeafter")
+ ("forces nobeforeafter")
+ ("baseline")
+ ("box align" ("bottom" "top" "center" "base" ))
+ ("before skip")
+ ("after skip")
+ ("beforeafter skip")
+ ("left skip")
+ ("right skip")
+ ("leftright skip")
+ ("ignore nobreak" ("true" "false"))
+ ("before nobreak")
+ ;; 4.15 Bounding Box
+ ("enlarge top initially by")
+ ("enlarge bottom finally by")
+ ("enlarge top at break by")
+ ("enlarge bottom at break by")
+ ("enlarge top by")
+ ("enlarge bottom by")
+ ("enlarge left by")
+ ("enlarge right by")
+ ("enlarge by")
+ ("flush left")
+ ("flush right")
+ ("center")
+ ("grow to left by")
+ ("grow to right by")
+ ("toggle enlargement" ("none" "forced" "evenpage"))
+ ("spread inwards")
+ ("spread outwards")
+ ("move upwards")
+ ("move upwards*")
+ ;; FIXME: This one should be added w/ `breakable' lib:
+ ;; ("fill downwards")
+ ("spread upwards")
+ ("spread upwards*")
+ ("spread sidewards")
+ ("spread")
+ ("spread downwards")
+ ("shrink tight")
+ ("extrude left by")
+ ("extrude right by")
+ ("extrude top by")
+ ("extrude bottom by")
+ ("extrude by")
+ ;; 4.16 Layered Boxes and Every Box Settings
+ ("every box")
+ ("every box on layer 1")
+ ("every box on layer 2")
+ ("every box on layer 3")
+ ("every box on layer 4")
+ ("every box on higher layers")
+ ;; 4.17 Capture Mode
+ ("capture" ("minipage" "hbox" "fitbox"))
+ ("hbox")
+ ("minipage")
+ ;; 4.18 Text Characteristics
+ ("parbox" ("true" "false"))
+ ("hyphenationfix" ("true" "false"))
+ ;; 4.19 Files
+ ("tempfile")
+ ;; 4.21 Counters, Labels, and References
+ ("phantom")
+ ("nophantom")
+ ("label")
+ ("phantomlabel")
+ ;; FIXME: Are these types documented somewhere in cleveref.pdf?
+ ("label type")
+ ("no label type")
+ ("step")
+ ("step and label")
+ ("list entry")
+ ("list text")
+ ("add to list")
+ ("nameref")
+ ;; 4.22 Even and Odd Pages
+ ("check odd page" ("true" "false"))
+ ("if odd page")
+ ("if odd page or oneside")
+ ;; FIXME: These two should be added w/ `breakable' lib:
+ ;; ("if odd page*")
+ ;; ("if odd page or oneside*")
+ ;; 4.24 Miscellaneous
+ ("reset")
+ ("only")
+ ("code")
+ ("void")
+ ;; 6 Side by Side
+ ("sidebyside" ("true" "false"))
+ ("sidebyside align" ("center" "top" "bottom" "center seam"
+ "top seam" "bottom seam"))
+ ("sidebyside gap")
+ ("lefthand width")
+ ("righthand width")
+ ("lefthand ratio")
+ ("righthand ratio")
+ ;; 8 Recording options
+ ("record")
+ ("no recording"))
+ "Key=value options for tcolorbox macros and environments.")
+
+(defun LaTeX-tcolorbox-keyval-options ()
+ "Return an updated list of key=vals from tcolorbox package."
+ (append
+ ;; This style runs `xcolor.el', so we use
+ ;; `LaTeX-xcolor-definecolor-list' right away:
+ (let ((colors (mapcar #'car (LaTeX-xcolor-definecolor-list)))
+ (keys '("colframe"
+ "colback"
+ "colbacktitle"
+ "colupper"
+ "collower"
+ "coltext"
+ "coltitle"))
+ result)
+ (dolist (key keys result)
+ (cl-pushnew (list key colors) result :test #'equal)))
+ LaTeX-tcolorbox-keyval-options))
+
+(defvar LaTeX-tcolorbox-keyval-options-full
+ '(LaTeX-tcolorbox-keyval-options)
+ "Buffer-local list of symbols containing key=val options.
+tcolorbox libraries should add their key=val options to this
+list. Key=val options might be a variable or a function. This
+variable is initialized with the function
+`LaTeX-tcolorbox-keyval-options'. Please add entries on top of
+this list so that this item always comes last.")
+(make-variable-buffer-local 'LaTeX-tcolorbox-keyval-options-full)
+
+(defun LaTeX-tcolorbox-keyval-options-full ()
+ "Return an updated list of full key=vals for tcolorbox and libraries.
+Each symbol is a variable or a function. If a symbol name
+contains a function and a variable value, the function is
+preferred. This function processes symbols in the variable
+`LaTeX-tcolorbox-keyval-options-full'."
+ (let (result)
+ (dolist (elt (reverse LaTeX-tcolorbox-keyval-options-full) result)
+ (if (functionp elt)
+ (setq result (append (funcall elt) result))
+ (setq result (append (symbol-value elt) result))))))
+
+(defvar LaTeX-tcolorbox-tcbox-options
+ '(;; 4.20 \tcbox Specials
+ ("tcbox raise")
+ ("tcbox raise base")
+ ("on line")
+ ("tcbox width" ("auto" "auto limited" "forced center"
+ "forced left" "forced right" "minimum center"
+ "minimum left" "minimum right")))
+ "Key=value options only for \\tcbox and \\tcboxmath from tcolorbox.sty.")
+
+(defvar LaTeX-tcolorbox-init-options
+ '(;; 5 Initialization Option Keys
+ ;; 5.1 Numbered Boxes
+ ("auto counter")
+ ("use counter from")
+ ("use counter")
+ ("use counter*")
+ ("no counter")
+ ("number within" ("part" "chapter" "section" "subsection"))
+ ("number format" ("\\arabic" "\\roman" "\\Roman" "\\Alph" "\\alph"))
+ ("number freestyle")
+ ("crefname")
+ ("Crefname")
+ ("blend into" ("figures" "tables" "listings"))
+ ("blend before title" ("colon" "dash" "colon hang" "dash hang"))
+ ("blend before title code")
+ ;; 5.2 Lists of tcolorboxes
+ ("list inside")
+ ("list type"))
+ "Initialization key=value options for tcolorbox macros.")
+
+(defvar LaTeX-tcolorbox-library-list
+ '("skins"
+ "vignette"
+ "raster"
+ "listings"
+ "listingsutf8"
+ "minted"
+ "theorems"
+ "breakable"
+ "magazine"
+ "fitting"
+ "hooks"
+ "xparse"
+ "external"
+ "documentation"
+ "many" "most" "all")
+ "List with libraries provided by tcolorbox package.")
+
+;; Setup for \newtcolorbox:
+(TeX-auto-add-type "tcolorbox-newtcolorbox" "LaTeX" "tcolorbox-newtcolorboxes")
+
+(defvar LaTeX-tcolorbox-newtcolorbox-regexp
+ `(,(concat "\\\\\\(re\\)?newtcolorbox"
+ "[ \t\n\r%]*"
+ "\\(?:"
+ (LaTeX-extract-key-value-label 'none)
+ "\\)?"
+ "[ \t\n\r%]*"
+ "{\\([a-zA-Z0-9]+\\)}"
+ "[ \t\n\r%]*"
+ "\\(?:\\[\\([0-9]*\\)\\]\\)?"
+ "[ \t\n\r%]*"
+ "\\(\\[\\)?")
+ (2 3 4 1) LaTeX-auto-tcolorbox-newtcolorbox)
+ "Matches the arguments of \\newtcolorbox from tcolorbox package.")
+
+;; Setup for \newtcbox:
+(TeX-auto-add-type "tcolorbox-newtcbox" "LaTeX" "tcolorbox-newtcboxes")
+
+(defvar LaTeX-tcolorbox-newtcbox-regexp
+ `(,(concat "\\\\\\(re\\)?newtcbox"
+ "[ \t\n\r%]*"
+ "\\(?:"
+ (LaTeX-extract-key-value-label 'none)
+ "\\)?"
+ "[ \t\n\r%]*"
+ "{\\\\\\([a-zA-Z]+\\)}"
+ "[ \t\n\r%]*"
+ "\\(?:\\[\\([0-9]*\\)\\]\\)?"
+ "[ \t\n\r%]*"
+ "\\(\\[\\)?")
+ (2 3 4 1) LaTeX-auto-tcolorbox-newtcbox)
+ "Matches the arguments of \\newtcbox from tcolorbox package.")
+
+;; Setup for \tcbuselibrary:
+(TeX-auto-add-type "tcolorbox-tcbuselibrary"
+ "LaTeX" "tcolorbox-tcbuselibraries")
+
+(defvar LaTeX-tcolorbox-tcbuselibrary-regexp
+ '("\\\\tcbuselibrary{\\([^}]+\\)}"
+ 1 LaTeX-auto-tcolorbox-tcbuselibrary)
+ "Matches the arguments of \\tcbuselibrary from tcolorbox package.")
+
+(defun LaTeX-tcolorbox-load-used-libraries ()
+ "Check which tcolorbox libraries are loaded and run respective style hooks.
+This functions checks the arguments of \\tcbuselibrary and the
+name of libraries given in the optional argument of \\usepackage
+call for tcolorbox and runs the style hook for them. The file
+for style must have the prefix \"tcolorboxlib-\" in the name,
+for example \"tcolorboxlib-raster.el\"."
+ (when (LaTeX-tcolorbox-tcbuselibrary-list)
+ (let (libs)
+ (dolist (x (LaTeX-tcolorbox-tcbuselibrary-list))
+ (push (replace-regexp-in-string "[ %\n\r\t]" "" (car x)) libs))
+ (setq libs (mapconcat #'identity libs ","))
+ (dolist (x (split-string libs "," t))
+ (TeX-run-style-hooks (concat "tcolorboxlib-" x)))))
+ (when (assoc "tcolorbox" LaTeX-provided-package-options)
+ (let ((opts (cdr (assoc "tcolorbox" LaTeX-provided-package-options))))
+ (dolist (x opts)
+ (when (member x LaTeX-tcolorbox-library-list)
+ (TeX-run-style-hooks (concat "tcolorboxlib-" x)))))))
+
+(defun LaTeX-tcolorbox-auto-prepare ()
+ "Clear various LaTeX-tcolorbox-* variables before parsing."
+ (setq LaTeX-auto-tcolorbox-newtcolorbox nil
+ LaTeX-auto-tcolorbox-newtcbox nil
+ LaTeX-auto-tcolorbox-tcbuselibrary nil))
+
+(defun LaTeX-tcolorbox-auto-cleanup ()
+ "Process parsed results."
+ ;; Process new env's from \newtcolorbox
+ (dolist (newtcbox (apply #'append LaTeX-tcolorbox-newtcolorbox-list))
+ (let ((box (nth 0 newtcbox))
+ (arg (nth 1 newtcbox))
+ (opt (nth 2 newtcbox))
+ (renew (when (string= (nth 3 newtcbox) "re")
+ (nth 3 newtcbox))))
+ ;; When renew'ing, delete any entry from
+ ;; `LaTeX-environment-list' first:
+ (when renew
+ (setq LaTeX-environment-list
+ (assq-delete-all
+ (car (assoc box (LaTeX-environment-list)))
+ LaTeX-environment-list)))
+ (cond (;; opt. 1st argument and mandatory argument(s)
+ (and arg (not (string= arg ""))
+ opt (not (string= opt "")))
+ (LaTeX-add-environments
+ (list box
+ #'LaTeX-env-args
+ [TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)]
+ (1- (string-to-number arg)))))
+ (;; mandatory argument(s) only
+ (and arg (not (string= arg ""))
+ (string-equal opt ""))
+ (LaTeX-add-environments
+ (list box (string-to-number arg))))
+ (t ; No args
+ (LaTeX-add-environments (list box))))))
+ ;;
+ ;; Process new macros from \newtcbox
+ (dolist (newtcbox (apply #'append LaTeX-tcolorbox-newtcbox-list))
+ (let ((box (nth 0 newtcbox))
+ (arg (nth 1 newtcbox))
+ (opt (nth 2 newtcbox))
+ (renew (when (string= (nth 3 newtcbox) "re")
+ (nth 3 newtcbox))))
+ ;; When renew'ing, delete any entry from `TeX-symbol-list'
+ ;; first:
+ (when renew
+ (setq TeX-symbol-list
+ (assq-delete-all
+ (car (assoc box (TeX-symbol-list)))
+ TeX-symbol-list)))
+ (cond (;; opt. 1st argument and mandatory argument(s)
+ (and arg (not (string= arg ""))
+ opt (not (string= opt "")))
+ (TeX-add-symbols (list box
+ [TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)]
+ (1- (string-to-number arg)))))
+ (;; mandatory argument(s) only
+ (and arg (not (string= arg ""))
+ (string-equal opt ""))
+ (TeX-add-symbols (list box (string-to-number arg))))
+ (t ; No args -- in pratice, this will probably never happen
+ (TeX-add-symbols (list box))))))
+ ;;
+ ;; Load style hooks for libraries, if any.
+ (LaTeX-tcolorbox-load-used-libraries))
+
+(add-hook 'TeX-auto-prepare-hook #'LaTeX-tcolorbox-auto-prepare t)
+(add-hook 'TeX-auto-cleanup-hook #'LaTeX-tcolorbox-auto-cleanup t)
+(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
+
+(TeX-add-style-hook
+ "tcolorbox"
+ (lambda ()
+
+ ;; Add tcolorbox to the parser.
+ (TeX-auto-add-regexp LaTeX-tcolorbox-newtcolorbox-regexp)
+ (TeX-auto-add-regexp LaTeX-tcolorbox-newtcbox-regexp)
+ (TeX-auto-add-regexp LaTeX-tcolorbox-tcbuselibrary-regexp)
+
+ ;; We just run the style hook for `xcolor' which is loaded by pgf.sty
+ (TeX-run-style-hooks "xcolor")
+
+ ;; FIXME: Anything missing?
+ (TeX-add-symbols
+
+ ;; 1.3 Libraries
+ '("tcbuselibrary"
+ (TeX-arg-eval
+ (lambda ()
+ (let ((libs (mapconcat #'identity
+ (TeX-completing-read-multiple
+ (TeX-argument-prompt nil nil "Libraries")
+ LaTeX-tcolorbox-library-list)
+ ",")))
+ (LaTeX-add-tcolorbox-tcbuselibraries libs)
+ (LaTeX-tcolorbox-load-used-libraries)
+ (format "%s" libs)))))
+
+ ;; 3 Macros for Box Creation
+ '("tcblower" 0)
+
+ '("tcbset"
+ (TeX-arg-key-val (LaTeX-tcolorbox-keyval-options-full)))
+
+ '("tcbsetforeverylayer"
+ (TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)))
+
+ '("tcbox"
+ [TeX-arg-eval TeX-read-key-val t
+ (append
+ LaTeX-tcolorbox-tcbox-options
+ (LaTeX-tcolorbox-keyval-options))]
+ t)
+
+ '("newtcolorbox"
+ [ TeX-arg-key-val LaTeX-tcolorbox-init-options ]
+ "Name"
+ [ TeX-arg-define-macro-arguments ]
+ (TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)))
+
+ '("renewtcolorbox"
+ [ TeX-arg-key-val LaTeX-tcolorbox-init-options ]
+ (TeX-arg-eval completing-read
+ (TeX-argument-prompt nil nil "Color box")
+ (LaTeX-tcolorbox-newtcolorbox-list))
+ [ TeX-arg-define-macro-arguments ]
+ (TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)))
+
+ '("newtcbox"
+ [ TeX-arg-key-val LaTeX-tcolorbox-init-options ]
+ TeX-arg-macro
+ [ TeX-arg-define-macro-arguments ]
+ (TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)))
+
+ '("renewtcbox"
+ [ TeX-arg-key-val LaTeX-tcolorbox-init-options ]
+ (TeX-arg-eval
+ (lambda ()
+ (let ((macro (completing-read
+ (TeX-argument-prompt nil nil "Macro: \\" t)
+ (LaTeX-tcolorbox-newtcbox-list))))
+ (concat TeX-esc macro))))
+ [ TeX-arg-define-macro-arguments ]
+ (TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)))
+
+ '("tcolorboxenvironment"
+ TeX-arg-environment
+ (TeX-arg-key-val (LaTeX-tcolorbox-keyval-options)))
+
+ ;; 4.16 Layered Boxes and Every Box Settings
+ '("tcbsetmanagedlayer" "Number")
+
+ ;; 4.22 Even and Odd Pages
+ '("tcbifoddpage" 2)
+ '("tcbifoddpageoroneside" 2)
+ '("thetcolorboxnumber" 0)
+ '("thetcolorboxpage" 0)
+
+ ;; 5.2 Lists of tcolorboxes
+ '("tcblistof"
+ [ TeX-arg-eval completing-read
+ (TeX-argument-prompt t nil "Macro")
+ (if (< (LaTeX-largest-level) 2)
+ '("\\chapter" "\\section" "\\subsection" "\\subsubsection")
+ '("\\section" "\\subsection" "\\subsubsection")) ]
+ 2)
+
+ ;; 7 Saving and Loading of Verbatim Texts
+ '("tcbusetemp")
+
+ ;; 8 Recording
+ '("tcbstartrecording" [ "File name" ])
+ '("tcbstoprecording")
+ '("tcbrecord" t)
+ '("tcbinputrecords" [ TeX-arg-file ]) ) ; Terminate TeX-add-symbols
+
+ (LaTeX-add-environments
+ ;; 3 Macros for Box Creation: Main env
+ '("tcolorbox" LaTeX-env-args
+ [ TeX-arg-key-val (LaTeX-tcolorbox-keyval-options) ])
+
+ ;; 7 Saving and Loading of Verbatim Texts
+ '("tcbverbatimwrite" "File name")
+ '("tcbwritetemp"))
+
+ ;; Do not indent text in verbatim environments:
+ (make-local-variable 'LaTeX-indent-environment-list)
+ (add-to-list 'LaTeX-indent-environment-list
+ '("tcbverbatimwrite" current-indentation) t)
+ (add-to-list 'LaTeX-indent-environment-list
+ '("tcbwritetemp" current-indentation) t)
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("tcbuselibrary" "{")
+ ("tcbset" "{")
+ ("tcbsetforeverylayer" "{")
+ ("tcbox" "[{")
+ ("newtcolorbox" "[{[[{")
+ ("renewtcolorbox" "[{[[{")
+ ("newtcbox" "[{[[{")
+ ("renewtcbox" "[{[[{")
+ ("tcolorboxenvironment" "{{")
+ ("tcbsetmanagedlayer" "{"))
+ 'function)))
+ TeX-dialect)
+
+(defvar LaTeX-tcolorbox-package-options LaTeX-tcolorbox-library-list
+ "Package options for the tcolorbox package.")
+
+;;; tcolorbox.el ends here