summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/sidecap.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/sidecap.el')
-rw-r--r--elpa/auctex-13.1.3/style/sidecap.el131
1 files changed, 131 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/sidecap.el b/elpa/auctex-13.1.3/style/sidecap.el
new file mode 100644
index 0000000..ff17517
--- /dev/null
+++ b/elpa/auctex-13.1.3/style/sidecap.el
@@ -0,0 +1,131 @@
+;;; sidecap.el --- AUCTeX style for `sidecap.sty' (v1.6f) -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2021, 2022 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <arash@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2021-12-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 `sidecap.sty' (v1.6f) from 2003/06/06.
+;; `sidecap.sty' is part of TeXLive.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+(defun LaTeX-env-sidecap-float (environment)
+ "Create ENVIRONMENT with \\caption and \\label commands.
+This function runs `LaTeX-env-figure' and inserts the first
+optional argument 'relwidth' provided by environments of the
+package sidecap."
+ (let ((relwidth (TeX-read-string
+ (TeX-argument-prompt t nil "Relative caption width")))
+ (sc-active-mark (and (TeX-active-mark)
+ (not (eq (mark) (point)))))
+ (p (point-marker))
+ s)
+ ;; Run `LaTeX-env-figure' which does the major part of the job:
+ (LaTeX-env-figure environment)
+ ;; Now save the position:
+ (setq s (point-marker))
+ ;; Search backwards to see if an optional float-placement arg is
+ ;; inserted; this would be the 2nd arg for sidecap environments:
+ (save-excursion
+ (re-search-backward (concat (regexp-quote TeX-esc)
+ "begin"
+ "[ \t]*"
+ TeX-grop
+ (regexp-quote environment)
+ "\\(" TeX-grcl "\\)"
+ "[ \t]*"
+ "\\("
+ (regexp-quote LaTeX-optop)
+ ;; Float placement:
+ "\\([a-zA-Z!]*\\)"
+ (regexp-quote LaTeX-optcl)
+ "\\)?")
+ p t))
+ (cond (;; Insert the first optional arg at any rate if non-empty:
+ (and relwidth (not (string= relwidth "")))
+ (goto-char (match-end 1))
+ (insert LaTeX-optop relwidth LaTeX-optcl))
+ ;; Insert a pair of empty brackets if relwidth is empty and
+ ;; float-placement is given:
+ ((and (or (null relwidth)
+ (string= relwidth ""))
+ (match-string 3))
+ (goto-char (match-beginning 2))
+ (insert LaTeX-optop LaTeX-optcl))
+ (t nil))
+ ;; Go back to where we started if we have moved at all:
+ (unless (= s (point))
+ (goto-char s))
+ ;; Insert a tabular stored in `LaTeX-default-tabular-environment':
+ (when (and (member environment '("SCtable" "SCtable*"))
+ (not sc-active-mark))
+ (LaTeX-environment-menu LaTeX-default-tabular-environment))
+ ;; Clean up the markers:
+ (set-marker s nil)
+ (set-marker p nil)))
+
+(TeX-add-style-hook
+ "sidecap"
+ (lambda ()
+
+ ;; Add the environments provided by the package:
+ (LaTeX-add-environments
+ '("SCtable" LaTeX-env-sidecap-float)
+ '("SCtable*" LaTeX-env-sidecap-float)
+ '("SCfigure" LaTeX-env-sidecap-float)
+ '("SCfigure*" LaTeX-env-sidecap-float)
+ '("wide"))
+
+ ;; Add the float environments to `LaTeX-label-alist':
+ (dolist (env '("SCfigure" "SCfigure*"))
+ (add-to-list 'LaTeX-label-alist `(,env . LaTeX-figure-label) t))
+
+ (dolist (env '("SCtable" "SCtable*"))
+ (add-to-list 'LaTeX-label-alist `(,env . LaTeX-table-label) t))
+
+ ;; The next 2 can be set with '\renewcommand':
+ (TeX-add-symbols
+ "sidecaptionsep"
+ "sidecaptionrelwidth")
+
+ ;; Run the style hook for 'ragged2e' if necessary:
+ (when (or (LaTeX-provided-package-options-member "sidecap" "raggedright")
+ (LaTeX-provided-package-options-member "sidecap" "raggedleft")
+ (LaTeX-provided-package-options-member "sidecap" "ragged"))
+ (TeX-run-style-hooks "ragged2e")))
+
+ TeX-dialect)
+
+(defvar LaTeX-sidecap-package-options
+ '("outercaption" "innercaption"
+ "leftcaption" "rightcaption"
+ "wide"
+ "raggedright" "raggedleft" "ragged")
+ "Package options for the sidecap package.")
+
+;;; sidecap.el ends here