From becff06c71d277647eda4378203d03ab36e141eb Mon Sep 17 00:00:00 2001 From: mattkae Date: Tue, 17 May 2022 07:07:37 -0400 Subject: Evil mode and latex support --- elpa/auctex-13.1.3/style/subcaption.el | 205 +++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 elpa/auctex-13.1.3/style/subcaption.el (limited to 'elpa/auctex-13.1.3/style/subcaption.el') diff --git a/elpa/auctex-13.1.3/style/subcaption.el b/elpa/auctex-13.1.3/style/subcaption.el new file mode 100644 index 0000000..cd3312d --- /dev/null +++ b/elpa/auctex-13.1.3/style/subcaption.el @@ -0,0 +1,205 @@ +;;; subcaption.el --- AUCTeX style for `subcaption.sty' (v1.3) -*- lexical-binding: t; -*- + +;; Copyright (C) 2015--2022 Free Software Foundation, Inc. + +;; Author: Arash Esbati +;; Maintainer: auctex-devel@gnu.org +;; Created: 2015-09-19 +;; 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 `subcaption.sty' (v1.3) from 2019-08-31. +;; `subcaption.sty' is part of TeXLive. + +;;; Code: + +(require 'tex) +(require 'latex) + +;; Silence the compiler: +(declare-function font-latex-add-keywords + "font-latex" + (keywords class)) +(defvar LaTeX-caption-key-val-options) + +(defvar LaTeX-subcaption-key-val-options + '(("subrefformat" ("default" "empty" "simple" "brace" "parens"))) + "Key=value options for subcaption package. +This key takes the same values as \"labelformat\" from caption +package.") + +(defun LaTeX-arg-subcaption-subcaption (optional &optional star) + "Query for the arguments of \"\\subcaption\" incl. a label and insert them. +If OPTIONAL is non-nil, indicate it while reading the caption. +If STAR is non-nil, then do not query for a \\label and a short +caption, insert only a caption." + (let* (;; \subcaption needs an environment, "minipage" will be + ;; popular. If so, check next higher environment to find out + ;; where we are + (currenv (if (string= (LaTeX-current-environment) "minipage") + (LaTeX-current-environment 2) + (LaTeX-current-environment))) + (caption (TeX-read-string + (TeX-argument-prompt optional nil "Sub-caption"))) + (short-caption + (when (and (not star) + (>= (length caption) LaTeX-short-caption-prompt-length)) + (TeX-read-string + (TeX-argument-prompt t nil "Short caption"))))) + (indent-according-to-mode) + (when (and short-caption (not (string= short-caption ""))) + (insert LaTeX-optop short-caption LaTeX-optcl)) + (insert TeX-grop caption TeX-grcl) + ;; Fill the \subcaption paragraph before inserting the \label: + (when auto-fill-function (LaTeX-fill-paragraph)) + (when (and (not star) + (save-excursion (LaTeX-label currenv 'environment))) + ;; Move \label into next line if we have one: + (LaTeX-newline) + (indent-according-to-mode) + (end-of-line)))) + +(defun LaTeX-arg-subcaption-subcaptionbox (optional &optional star) + "Query for the arguments of \"\\subcaptionbox\" incl. a label and insert them. +If OPTIONAL is non-nil, indicate it while reading the caption. +If STAR is non-nil, then do not query for a \\label and a short +caption, insert only a caption." + (let* ((currenv (LaTeX-current-environment)) + (caption (TeX-read-string + (TeX-argument-prompt optional nil "Sub-caption"))) + (short-caption + (when (and (not star) + (>= (length caption) LaTeX-short-caption-prompt-length)) + (TeX-read-string + (TeX-argument-prompt t nil "Short Sub-caption"))))) + (indent-according-to-mode) + (when (and short-caption (not (string= short-caption ""))) + (insert LaTeX-optop short-caption LaTeX-optcl)) + (insert TeX-grop caption) + (unless star (LaTeX-label currenv 'environment)) + (insert TeX-grcl)) + (let* ((TeX-arg-opening-brace "[") + (TeX-arg-closing-brace "]") + (width (completing-read (TeX-argument-prompt t nil "Width") + (mapcar (lambda (elt) (concat TeX-esc (car elt))) + (LaTeX-length-list)))) + (inpos (if (and width (not (string-equal width ""))) + (completing-read (TeX-argument-prompt t nil "Inner position") + '("c" "l" "r" "s")) + ""))) + (TeX-argument-insert width t) + (TeX-argument-insert inpos t)) + ;; Fill the paragraph before inserting {}. We use this function + ;; since we add \subcaption to `paragraph-start' in the style hook + ;; below. + (when auto-fill-function (LaTeX-fill-paragraph))) + +(TeX-add-style-hook + "subcaption" + (lambda () + ;; Run style hook for caption.el + (TeX-run-style-hooks "caption") + + + (TeX-add-symbols + ;; Basic commands + '("subcaption" (LaTeX-arg-subcaption-subcaption)) + '("subcaption*" (LaTeX-arg-subcaption-subcaption t) ) + '("subcaptionbox" (LaTeX-arg-subcaption-subcaptionbox) t) + '("subcaptionbox*" (LaTeX-arg-subcaption-subcaptionbox t) t) + '("subref" TeX-arg-ref) + ;; \subref* is only available with hyperref.sty loaded, we don't + ;; check if hyperref.el is loaded and make it available directly. + '("subref*" TeX-arg-ref) + '("phantomcaption" 0) + '("phantomsubcaption" 0) + '("subfloat" [ "List entry" ] [ "Sub-caption" ] t)) + + ;; The next 2 macros are part of the kernel of caption.sty, but we + ;; load them within subcaption.el. + (TeX-add-symbols + '("DeclareCaptionSubType" + [TeX-arg-eval + completing-read (TeX-argument-prompt t nil "Numbering scheme") + '("arabic" "roman" "Roman" "alph" "Alph" "fnsymbol")] + (TeX-arg-eval + completing-read + (TeX-argument-prompt nil nil "Type") + (append + (when (and (fboundp 'LaTeX-newfloat-DeclareFloatingEnvironment-list) + (LaTeX-newfloat-DeclareFloatingEnvironment-list)) + (mapcar #'car (LaTeX-newfloat-DeclareFloatingEnvironment-list))) + '("figure" "table")))) + + '("DeclareCaptionSubType*" + [TeX-arg-eval completing-read + (TeX-argument-prompt t nil "Numbering scheme") + '("arabic" "roman" "Roman" "alph" "Alph" "fnsymbol")] + (TeX-arg-eval + completing-read + (TeX-argument-prompt nil nil "Type") + (append + (when (and (fboundp 'LaTeX-newfloat-DeclareFloatingEnvironment-list) + (LaTeX-newfloat-DeclareFloatingEnvironment-list)) + (mapcar #'car (LaTeX-newfloat-DeclareFloatingEnvironment-list))) + '("figure" "table"))))) + + ;; \subcaption(box)? and \subfloat macros should get their own lines + (LaTeX-paragraph-commands-add-locally + '("subcaption" "subcaptionbox" "subfloat")) + + ;; The subfigure & subtable environments + (LaTeX-add-environments + '("subfigure" LaTeX-env-minipage) + '("subtable" LaTeX-env-minipage)) + + ;; Append them to `LaTeX-label-alist': + (add-to-list 'LaTeX-label-alist '("subfigure" . LaTeX-figure-label) t) + (add-to-list 'LaTeX-label-alist '("subtable" . LaTeX-table-label) t) + + ;; Introduce env's to RefTeX if loaded + (when (fboundp 'reftex-add-label-environments) + (reftex-add-label-environments + `(("subfigure" ?f ,LaTeX-figure-label "~\\ref{%s}" caption) + ("subtable" ?t ,LaTeX-table-label "~\\ref{%s}" caption)))) + + ;; Fontification + (when (and (featurep 'font-latex) + (eq TeX-install-font-lock 'font-latex-setup)) + (font-latex-add-keywords '(("subcaption" "*[{") + ("subcaptionbox" "*[{[[") + ("phantomcaption" "") + ("phantomsubcaption" "") + ("subfloat" "[[")) + 'textual) + (font-latex-add-keywords '(("subref" "*{")) + 'reference) + (font-latex-add-keywords '(("DeclareCaptionSubType" "*[{")) + 'function)) ) + TeX-dialect) + +(defun LaTeX-subcaption-package-options () + "Prompt for package options for the subcaption package." + (TeX-load-style "caption") + (TeX-read-key-val t (append LaTeX-subcaption-key-val-options + LaTeX-caption-key-val-options))) + +;;; subcaption.el ends here -- cgit v1.2.1