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/bicaption.el | 206 ++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 elpa/auctex-13.1.3/style/bicaption.el (limited to 'elpa/auctex-13.1.3/style/bicaption.el') diff --git a/elpa/auctex-13.1.3/style/bicaption.el b/elpa/auctex-13.1.3/style/bicaption.el new file mode 100644 index 0000000..245b454 --- /dev/null +++ b/elpa/auctex-13.1.3/style/bicaption.el @@ -0,0 +1,206 @@ +;;; bicaption.el --- AUCTeX style for `bicaption.sty' (v1.1-158) -*- lexical-binding: t; -*- + +;; Copyright (C) 2016--2020 Free Software Foundation, Inc. + +;; Author: Arash Esbati +;; Maintainer: auctex-devel@gnu.org +;; Created: 2016-11-11 +;; 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 `bicaption.sty' (v1.1-158) from +;; 2016/03/27. `bicaption.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 `LaTeX-check-insert-macro-default-style': +(require 'latex) + +;; Silence the compiler: +(declare-function font-latex-add-keywords + "font-latex" + (keywords class)) + +(declare-function LaTeX-babel-active-languages "babel" ()) +(declare-function LaTeX-polyglossia-active-languages "polyglossia" ()) + +(defvar LaTeX-caption-supported-float-types) +(defvar LaTeX-caption-key-val-options) + +(defvar LaTeX-bicaption-key-val-options + '(("bi-lang" ("first" "second" "both")) + ("bi-singlelinecheck" ("false" "no" "off" "0" "true" "yes" "on" "1")) + ("bi-slc" ("false" "no" "off" "0" "true" "yes" "on" "1")) + ("bi-swap" ("false" "no" "off" "0" "true" "yes" "on" "1")) + ("listtype+")) + "Key=value options for bicaption macros.") + +(defun LaTeX-arg-bicaption-bicaption (optional &optional prompt star cap-box label-inside) + "Query for the arguments of \"\\bicaption\" incl. a label and insert them. +PROMPT replaces the standard one. If STAR is non-nil, then do +not query for a \\label and short captions, insert only captions. +If CAP-BOX is non-nil, also query and include optional arguments +for the box command. If LABEL-INSIDE is non-nil, insert \\label +inside the first mandatory argument, otherwise after all +arguments." + ;; \bicaption []{}[]{} + ;; \bicaptionbox[]{}[]{} + ;; [][]{} + (let* (;; \bisubcaption 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))) + (captionI (TeX-read-string + (TeX-argument-prompt + optional (when prompt + (concat "1. " prompt "bicaption")) + "1. bicaption"))) + (short-captionI + (when (and (not star) + (>= (length captionI) LaTeX-short-caption-prompt-length)) + (TeX-read-string + (TeX-argument-prompt t (when prompt + (concat "Short 1. " prompt "bicaption")) + "Short 1. bicaption")))) + (captionII (TeX-read-string + (TeX-argument-prompt + optional (when prompt + (concat "2. " prompt "bicaption")) + "2. bicaption"))) + (short-captionII + (when (and (not star) + (>= (length captionII) LaTeX-short-caption-prompt-length)) + (TeX-read-string + (TeX-argument-prompt t (when prompt + (concat "Short 2. " prompt "bicaption")) + "Short 2. bicaption"))))) + (indent-according-to-mode) + ;; Insert short & regular 1. caption + (when (and short-captionI (not (string= short-captionI ""))) + (insert LaTeX-optop short-captionI LaTeX-optcl)) + (insert TeX-grop captionI) + ;; For \bi(sub)?captionbox, the label must be inserted here + (when (and label-inside (not star)) + (LaTeX-label currenv 'environment)) + (insert TeX-grcl) + (when auto-fill-function (LaTeX-fill-paragraph)) + (LaTeX-newline) + (indent-according-to-mode) + ;; Insert short & regular 2. caption + (when (and short-captionII (not (string= short-captionII ""))) + (insert LaTeX-optop short-captionII LaTeX-optcl)) + (insert TeX-grop captionII TeX-grcl) + ;; Insert width & pos in case of captionbox macros: + (when cap-box + (let* ((TeX-arg-opening-brace "[") + (TeX-arg-closing-brace "]") + (TeX-last-optional-rejected nil) + (width (LaTeX-check-insert-macro-default-style + (completing-read (TeX-argument-prompt t nil "Width") + (mapcar (lambda (elt) (concat TeX-esc (car elt))) + (LaTeX-length-list))))) + (TeX-last-optional-rejected (or (not width) + (and width (string= width "")))) + (inpos (LaTeX-check-insert-macro-default-style + (if (and width (not (string-equal width ""))) + (completing-read (TeX-argument-prompt t nil "Inner position") + '("c" "l" "r" "s")) + "")))) + (and width (TeX-argument-insert width t)) + (and inpos (TeX-argument-insert inpos t)))) + (when auto-fill-function (LaTeX-fill-paragraph)) + ;; Insert label -- a new line is inserted only if label is there: + (when (and (not label-inside) (not star) + (save-excursion (LaTeX-label currenv 'environment))) + (LaTeX-newline) + (indent-according-to-mode) + (end-of-line)))) + +(defun LaTeX-arg-bicaption-captionsetup (optional) + "Query for 2 arguments for \"\\captionsetup\" with bicaption.sty loaded. +When OPTIONAL is non-nil, include both as optional arguments in +square brackets." + (let* ((flttype (completing-read (TeX-argument-prompt optional nil "Float type") + LaTeX-caption-supported-float-types)) + (biflt (if (and (not (or (string= flttype "bi") + (string= flttype "bi-first") + (string= flttype "bi-second"))) + flttype (not (string= flttype ""))) + (completing-read (TeX-argument-prompt optional nil "Bicaption type") + '("bi" "bi-first" "bi-second")) + ""))) + (TeX-argument-insert flttype optional) + (TeX-argument-insert biflt optional))) + +(TeX-add-style-hook + "bicaption" + (lambda () + + ;; Load caption.el: + (TeX-run-style-hooks "caption") + + ;; Macros + (TeX-add-symbols + '("bicaption" (LaTeX-arg-bicaption-bicaption)) + '("bicaption*" (LaTeX-arg-bicaption-bicaption nil t)) + '("bicaptionbox" (LaTeX-arg-bicaption-bicaption nil nil t t) t) + '("bicaptionbox*" (LaTeX-arg-bicaption-bicaption nil t t) t) + '("bisubcaption" (LaTeX-arg-bicaption-bicaption "sub-")) + '("bisubcaption*" (LaTeX-arg-bicaption-bicaption "sub-" t)) + '("bisubcaptionbox" (LaTeX-arg-bicaption-bicaption "sub-" nil t t) t) + '("bisubcaptionbox*" (LaTeX-arg-bicaption-bicaption "sub-" t t t) t)) + + ;; \bi(sub)?caption(box)? macros should get their own lines + (LaTeX-paragraph-commands-add-locally '("bicaption" "bicaptionbox" + "bisubcaption" "bisubcaptionbox")) + + ;; Fontification + (when (and (featurep 'font-latex) + (eq TeX-install-font-lock 'font-latex-setup)) + (font-latex-add-keywords '(("bicaption" "*[{[{") + ("bicaptionbox" "*[{[{[[") + ("bisubcaption" "*[{[{") + ("bisubcaptionbox" "*[{[{[[")) + 'textual))) + TeX-dialect) + +(defun LaTeX-bicaption-package-options () + "Prompt for package options for the bicaption package." + (TeX-load-style "caption") + (TeX-read-key-val t + (append + `(,(list "language" + (cond ((and (member "babel" (TeX-style-list)) + (LaTeX-babel-active-languages)) + (butlast (LaTeX-babel-active-languages))) + ((and (member "polyglossia" (TeX-style-list)) + (LaTeX-polyglossia-active-languages)) + (butlast (LaTeX-babel-active-languages))) + (t nil)))) + LaTeX-bicaption-key-val-options + LaTeX-caption-key-val-options))) + +;;; bicaption.el ends here -- cgit v1.2.1