"Fossies" - the Fresh Open Source Software Archive

Member "auctex-12.3/style/caption.el" (18 Oct 2020, 19132 Bytes) of package /linux/misc/auctex-12.3.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Lisp source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "caption.el": 12.2_vs_12.3.

    1 ;;; caption.el --- AUCTeX style for `caption.sty' (v3.4a)
    2 
    3 ;; Copyright (C) 2015--2019 Free Software Foundation, Inc.
    4 
    5 ;; Author: Arash Esbati <arash@gnu.org>
    6 ;; Maintainer: auctex-devel@gnu.org
    7 ;; Created: 2015-02-21
    8 ;; Keywords: tex
    9 
   10 ;; This file is part of AUCTeX.
   11 
   12 ;; AUCTeX is free software; you can redistribute it and/or modify it
   13 ;; under the terms of the GNU General Public License as published by
   14 ;; the Free Software Foundation; either version 3, or (at your option)
   15 ;; any later version.
   16 
   17 ;; AUCTeX is distributed in the hope that it will be useful, but
   18 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
   19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   20 ;; General Public License for more details.
   21 
   22 ;; You should have received a copy of the GNU General Public License
   23 ;; along with AUCTeX; see the file COPYING.  If not, write to the Free
   24 ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
   25 ;; 02110-1301, USA.
   26 
   27 ;;; Commentary:
   28 
   29 ;; This file adds support for `caption.sty' (v3.4a) from 2019/10/18.
   30 ;; `caption.sty' is part of TeXLive.
   31 
   32 ;; If things do not work or when in doubt, press `C-c C-n'.  Comments
   33 ;; for improvement are welcome.
   34 
   35 ;;; Code:
   36 
   37 (eval-when-compile
   38   (require 'cl-lib))
   39 
   40 ;; Needed for compiling `LaTeX-check-insert-macro-default-style':
   41 (require 'latex)
   42 
   43 ;; Needed for auto-parsing:
   44 (require 'tex)
   45 
   46 ;; Silence the compiler:
   47 (declare-function font-latex-add-keywords
   48           "font-latex"
   49           (keywords class))
   50 
   51 (declare-function LaTeX-babel-active-languages "babel" ())
   52 (declare-function LaTeX-polyglossia-active-languages "polyglossia" ())
   53 
   54 (defvar LaTeX-bicaption-key-val-options)
   55 
   56 (defvar LaTeX-caption-key-val-options
   57   '(("aboveskip")
   58     ("belowskip")
   59     ("font"   ("scriptsize" "footnotesize" "small" "normalsize" "large"
   60            "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
   61            "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
   62            "stretch" "normalcolor" "color" "normal"))
   63     ("font+"  ("scriptsize" "footnotesize" "small" "normalsize" "large"
   64            "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
   65            "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
   66            "stretch" "normalcolor" "color" "normal"))
   67     ("format" ("plain" "hang"))
   68     ("hangindent")
   69     ("hypcap" ("false" "no" "off" "0" "true" "yes" "on" "1"))
   70     ("hypcapspace")
   71     ("indention")
   72     ("justification" ("justified" "centering" "centerlast" "centerfirst"
   73               "raggedright" "RaggedRight" "raggedleft"))
   74     ("labelfont"     ("scriptsize" "footnotesize" "small" "normalsize" "large"
   75               "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
   76               "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
   77               "stretch" "normalcolor" "color" "normal"))
   78     ("labelfont+"    ("scriptsize" "footnotesize" "small" "normalsize" "large"
   79               "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
   80               "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
   81               "stretch" "normalcolor" "color" "normal"))
   82     ("labelformat"   ("default" "empty" "simple" "brace" "parens"
   83               "autodot" "unnumbered"))
   84     ("labelsep"      ("none" "colon" "period" "space" "quad" "newline" "endash"))
   85     ("list"          ("false" "no" "off" "0" "true" "yes" "on" "1"))
   86     ("listformat"    ("empty" "simple" "paren" "subsimple" "subparens"))
   87     ("margin")
   88     ("margin*")
   89     ("maxmargin")
   90     ("minmargin")
   91     ("name")
   92     ("oneside")
   93     ("parindent")
   94     ("parskip")
   95     ("position"        ("top" "above" "bottom" "below" "auto"))
   96     ("singlelinecheck" ("false" "no" "off" "0" "true" "yes" "on" "1"))
   97     ("slc"             ("false" "no" "off" "0" "true" "yes" "on" "1"))
   98     ("skip")
   99     ("strut"      ("false" "no" "off" "0" "true" "yes" "on" "1"))
  100     ("style"      ("base" "default"))
  101     ("textfont"   ("scriptsize" "footnotesize" "small" "normalsize" "large"
  102            "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
  103            "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
  104            "stretch" "normalcolor" "color" "normal"))
  105     ("textfont+"  ("scriptsize" "footnotesize" "small" "normalsize" "large"
  106            "Large" "normalfont" "up" "it" "sl" "sc" "md" "bf" "rm"
  107            "sf" "tt" "singlespacing" "onehalfspacing" "doublespacing"
  108            "stretch" "normalcolor" "color" "normal"))
  109     ("textformat" ("empty" "simple" "period"))
  110     ("twoside")
  111     ("type"       ("figure" "table"))
  112     ("type*"      ("figure" "table"))
  113     ("width"))
  114   "Key=value options for caption macros.")
  115 
  116 (defvar LaTeX-caption-key-val-options-local nil
  117   "Buffer-local key=value options for caption macros.")
  118 (make-variable-buffer-local 'LaTeX-caption-key-val-options-local)
  119 
  120 (defvar LaTeX-caption-supported-float-types
  121   '("figure" "table" "ContinuedFloat"   ; Standard caption.sty
  122     "sub" "subtable" "subfigure"        ; subcaption.sty
  123     "bi" "bi-first" "bi-second"         ; bicaption.sty
  124     "ruled" "boxed"         ; float.sty
  125     "floatingfigure" "floatingtable"    ; floatflt.sty
  126     "lstlisting"            ; listings.sty
  127     "longtable"             ; longtable.sty
  128     "figwindow" "tabwindow"     ; picinpar.sty
  129     "parpic"                ; picins.sty
  130     "SCfigure" "SCtable"        ; sidecap.sty
  131     "supertabular" "xtabular"       ; supertabular.sty & xtab.sty
  132     "threeparttable" "measuredfigure"   ; threeparttable.sty
  133     "wrapfigure" "wraptable")       ; wrapfigure
  134   "List of float types provided by other LaTeX packages and
  135 supported by `caption.sty'.")
  136 
  137 ;; Setup for various \DeclareCaption's:
  138 (TeX-auto-add-type "caption-DeclareCaption" "LaTeX")
  139 
  140 ;; The 2. argument to `DeclareCaption[A-Za-z]' contains (La)TeX code.
  141 ;; We deliberately ignore that argument in our regex since it is not
  142 ;; needed for this style and would pollute the auto generated
  143 ;; `docname.el' file.
  144 (defvar LaTeX-caption-DeclareCaption-regexp
  145   `(,(concat "\\\\DeclareCaption\\(Font\\|Format\\|Justification"
  146          "\\|LabelFormat\\|LabelSeparator\\|ListFormat"
  147          "\\|Option\\|Style\\|TextFormat\\)"
  148          "\\*?"
  149          "[ \t\n\r%]*"
  150          "{\\([^}]+\\)}")
  151     (0 1 2) LaTeX-auto-caption-DeclareCaption)
  152   "Matches the arguments of different `\\DeclareCaption*' from
  153 `caption.sty'.")
  154 
  155 (defun LaTeX-caption-auto-prepare ()
  156   "Clear `LaTeX-auto-caption-DeclareCaption' before parsing."
  157   (setq LaTeX-auto-caption-DeclareCaption nil))
  158 
  159 (add-hook 'TeX-auto-prepare-hook #'LaTeX-caption-auto-prepare t)
  160 (add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
  161 
  162 (defun LaTeX-caption-update-key-val-options ()
  163   "Update the buffer-local key-val options before offering them
  164 in `caption'-completions."
  165   (dolist (keyvals (LaTeX-caption-DeclareCaption-list))
  166     (let* ((key (cond ((string-equal (nth 1 keyvals) "LabelSeparator")
  167                (downcase (substring (nth 1 keyvals) 0 8)))
  168               (t (downcase (nth 1 keyvals)))))
  169        (val (nth 2 keyvals))
  170        (val-match (cdr (assoc key LaTeX-caption-key-val-options-local)))
  171        (temp (copy-alist LaTeX-caption-key-val-options-local))
  172        ;; If `subcaption.el' is loaded, delete and update also the
  173        ;; entry for `subrefformat' when processing the `labelformat'.
  174        (opts (progn
  175            (when (and (string-equal key "labelformat")
  176                   (boundp 'LaTeX-subcaption-key-val-options))
  177              (setq temp
  178                (assq-delete-all
  179                 (car (assoc (caar LaTeX-subcaption-key-val-options) temp))
  180                 temp)))
  181            (assq-delete-all (car (assoc key temp)) temp))))
  182       ;; For `\DeclareCaptionOption', only add the value
  183       ;; (remember:      key=^^^^^^, val="defined key")
  184       (if (string-equal key "option")
  185       (cl-pushnew (list val) opts :test #'equal)
  186     ;; For anything but `\DeclareCaptionOption', do the standard
  187     ;; procedure.  Again, take care of `subrefformat' for `subcaption.el'.
  188     (if val-match
  189         (progn
  190           (when (and (string-equal key "labelformat")
  191              (boundp 'LaTeX-subcaption-key-val-options))
  192         (cl-pushnew (list "subrefformat"
  193                   (TeX-delete-duplicate-strings (apply #'append (list val) val-match)))
  194                 opts :test #'equal))
  195           (cl-pushnew (list key (TeX-delete-duplicate-strings (apply #'append (list val) val-match)))
  196               opts :test #'equal))
  197       (cl-pushnew (list key (list val)) opts :test #'equal)))
  198       (setq LaTeX-caption-key-val-options-local (copy-alist opts))))
  199   ;; Support for environments defined with newfloat.sty: These
  200   ;; environments are added to "type" and "type*" key:
  201   (when (and (member "newfloat" (TeX-style-list))
  202          (fboundp 'LaTeX-newfloat-DeclareFloatingEnvironment-list)
  203          (LaTeX-newfloat-DeclareFloatingEnvironment-list))
  204     (dolist (key '("type" "type*"))
  205       (let* ((val (mapcar #'car (LaTeX-newfloat-DeclareFloatingEnvironment-list)))
  206          (val-match (cdr (assoc key LaTeX-caption-key-val-options-local)))
  207          (temp (copy-alist LaTeX-caption-key-val-options-local))
  208          (opts (assq-delete-all (car (assoc key temp)) temp)))
  209     (cl-pushnew (list key (TeX-delete-duplicate-strings (apply #'append val val-match)))
  210             opts :test #'equal)
  211     (setq LaTeX-caption-key-val-options-local (copy-alist opts))))))
  212 
  213 (defun LaTeX-arg-caption-command (optional &optional prompt)
  214   "Insert caption-commands from `caption.sty'. If OPTIONAL,
  215 indicate `(Optional)' while reading key=val and insert it in
  216 square brackets.  PROMPT replaces the standard one."
  217   (LaTeX-caption-update-key-val-options)
  218   (let ((opts (TeX-read-key-val optional
  219                 LaTeX-caption-key-val-options-local
  220                 prompt)))
  221     (TeX-argument-insert opts optional)))
  222 
  223 ;; In `LaTeX-caption-DeclareCaption-regexp', we match (0 1 2).  When
  224 ;; adding a new `Name', we need something unique for `0'-match until
  225 ;; the next `C-c C-n'.  We mimic that regex-match bei concat'ing the
  226 ;; elements.  It will vanish upon next `C-c C-n'.
  227 (defun LaTeX-arg-caption-DeclareCaption (optional format)
  228   "Insert various `\\DeclareCaptionFORMAT' commands.  If
  229 OPTIONAL, insert argument in square brackets.  FORMAT is the
  230 suffix of the command."
  231   (let ((name (TeX-read-string "Name: ")))
  232     (LaTeX-add-caption-DeclareCaptions
  233      (list (concat "\\DeclareCaption" format "{" name "}")
  234        format name))
  235     (TeX-argument-insert name optional)))
  236 
  237 ;; Support for an undocumented feature of caption.sty:
  238 ;; `\captionbox' sets the width of the caption equal to the width of
  239 ;; the contents (a feature provided e.g. by `threeparttable.sty').
  240 ;; The starred version typesets the caption without label and without
  241 ;; entry to the list of figures or tables.
  242 
  243 ;; The first mandatory argument {<heading>} contains the caption text
  244 ;; and the label.  We used to use `TeX-insert-macro' to do the job
  245 ;; (Thanks to M. Giordano for his valuable comments on this!), but now
  246 ;; moved to `LaTeX-label'.
  247 
  248 ;; Syntax:
  249 ;; \captionbox[<list entry>]{<heading>}[<width>][<inner-pos>]{<contents>}
  250 ;; \captionbox*{<heading>}[<width>][<inner-pos>]{<contents>}
  251 
  252 (defun LaTeX-arg-caption-captionbox (optional &optional star)
  253   "Query for the arguments of \"\\captionbox\" incl. a label and insert them.
  254 If STAR is non-nil, then do not query for a \\label and a short
  255 caption, insert only a caption."
  256   (let* ((currenv (LaTeX-current-environment))
  257      (caption (TeX-read-string
  258            (TeX-argument-prompt optional nil "Caption")))
  259      (short-caption
  260       (when (and (not star)
  261              (>= (length caption) LaTeX-short-caption-prompt-length))
  262         (TeX-read-string
  263          (TeX-argument-prompt t nil "Short caption")))))
  264     (indent-according-to-mode)
  265     (when (and short-caption (not (string= short-caption "")))
  266       (insert LaTeX-optop short-caption LaTeX-optcl))
  267     (insert TeX-grop caption)
  268     (unless star (LaTeX-label currenv 'environment))
  269     (insert TeX-grcl))
  270   (let* ((TeX-arg-opening-brace "[")
  271      (TeX-arg-closing-brace "]")
  272      (last-optional-rejected nil)
  273      (width (LaTeX-check-insert-macro-default-style
  274          (completing-read (TeX-argument-prompt t nil "Width")
  275                   (mapcar (lambda (elt) (concat TeX-esc (car elt)))
  276                       (LaTeX-length-list)))))
  277      (last-optional-rejected (or (not width)
  278                      (and width (string= width ""))))
  279      (inpos (LaTeX-check-insert-macro-default-style
  280          (if (and width (not (string-equal width "")))
  281              (completing-read (TeX-argument-prompt t nil "Inner position")
  282                       '("c" "l" "r" "s"))
  283            ""))))
  284     (and width (TeX-argument-insert width t))
  285     (and inpos (TeX-argument-insert inpos t)))
  286   ;; Fill the paragraph before inserting {}.  We can use
  287   ;; `LaTeX-fill-paragraph' without messing up the code since
  288   ;; \caption starts a new paragraph with AUCTeX
  289   ;; (cf. `paragraph-start').
  290   (LaTeX-fill-paragraph))
  291 
  292 (defun LaTeX-arg-caption-captionof (optional &optional star)
  293   "Query for the arguments of \"\\captionof\" macro and insert them.
  294 If OPTIONAL is non-nil, insert the arguments in brackets.  If
  295 STAR is non-nil, do not query for a short-caption and a label."
  296   (let* ((envtype (completing-read (TeX-argument-prompt optional nil "Float type")
  297                    LaTeX-caption-supported-float-types))
  298      (figtypes '("figure" "subfigure" "floatingfigure"
  299              "figwindow" "SCfigure" "measuredfigure" "wrapfigure"))
  300      (tabtypes '("table"  "subtable" "floatingtable"  "tabwindow" "SCtable"
  301              "supertabular" "xtabular" "threeparttable"  "wraptable"))
  302      (caption (TeX-read-string
  303            (TeX-argument-prompt optional nil "Caption")))
  304      (short-caption
  305       (when (and (not star)
  306              (>= (length caption) LaTeX-short-caption-prompt-length))
  307         (TeX-read-string
  308          (TeX-argument-prompt t nil "Short caption")))))
  309     (indent-according-to-mode)
  310     (TeX-argument-insert envtype optional)
  311     (when (and short-caption (not (string= short-caption "")))
  312       (insert LaTeX-optop short-caption LaTeX-optcl))
  313     (TeX-argument-insert caption optional)
  314     (LaTeX-fill-paragraph)
  315     (when (and (not star)
  316            ;; Check if `envtype' is a figure or a table, also
  317            ;; consult `LaTeX-label-alist' for additions from user
  318            ;; or newfloat.el, then run `LaTeX-label' w/
  319            ;; 'environment arg, otherwise w/o.
  320            (save-excursion
  321          (if (or (member envtype figtypes)
  322              (member envtype tabtypes)
  323              (assoc envtype LaTeX-label-alist))
  324              (LaTeX-label (cond ((member envtype figtypes)
  325                      "figure")
  326                     ((member envtype tabtypes)
  327                      "table")
  328                     (t envtype))
  329                   'environment)
  330            (LaTeX-label envtype))))
  331       (LaTeX-newline)
  332       (indent-according-to-mode)
  333       (end-of-line))))
  334 
  335 (TeX-add-style-hook
  336  "caption"
  337  (lambda ()
  338 
  339    ;; Add caption to the parser.
  340    (TeX-auto-add-regexp LaTeX-caption-DeclareCaption-regexp)
  341 
  342    ;; Activate the buffer-local version of key-vals.
  343    (setq LaTeX-caption-key-val-options-local
  344      (copy-alist LaTeX-caption-key-val-options))
  345 
  346    ;; Append key=vals from bicaption.sty if loaded: "language" key
  347    ;; depends on the active languages, it is appended extra where main
  348    ;; language is removed from the list:
  349    (when (and (member "bicaption" (TeX-style-list))
  350           ;; Make sure that one of these packages is loaded:
  351           (or (fboundp 'LaTeX-babel-active-languages)
  352           (fboundp 'LaTeX-polyglossia-active-languages)))
  353      (setq LaTeX-caption-key-val-options-local
  354        (append
  355         `(,(list "language"
  356              (or (butlast (LaTeX-babel-active-languages))
  357              (butlast (LaTeX-polyglossia-active-languages)))))
  358         LaTeX-bicaption-key-val-options
  359         LaTeX-caption-key-val-options-local)))
  360 
  361    ;; Caption commands:
  362    (TeX-add-symbols
  363     '("caption*" t)
  364 
  365     '("captionlistentry"
  366       [TeX-arg-eval completing-read (TeX-argument-prompt t nil "Float type")
  367             LaTeX-caption-supported-float-types]
  368       t)
  369 
  370     '("captionof" LaTeX-arg-caption-captionof)
  371 
  372     '("captionof*" (LaTeX-arg-caption-captionof t))
  373 
  374     '("captionsetup"
  375       (TeX-arg-conditional (member "bicaption" (TeX-style-list))
  376                ([LaTeX-arg-bicaption-captionsetup])
  377                ([TeX-arg-eval completing-read
  378                       (TeX-argument-prompt t nil "Float type")
  379                       LaTeX-caption-supported-float-types]))
  380       (LaTeX-arg-caption-command))
  381 
  382     '("captionsetup*"
  383       (TeX-arg-conditional (member "bicaption" (TeX-style-list))
  384                ([LaTeX-arg-bicaption-captionsetup])
  385                ([TeX-arg-eval completing-read
  386                       (TeX-argument-prompt t nil "Float type")
  387                       LaTeX-caption-supported-float-types]))
  388       (LaTeX-arg-caption-command))
  389 
  390     '("clearcaptionsetup"
  391       [LaTeX-arg-caption-command "Single key"]
  392       (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type")
  393             LaTeX-caption-supported-float-types))
  394 
  395     '("clearcaptionsetup*"
  396       [LaTeX-arg-caption-command "Single key"]
  397       (TeX-arg-eval completing-read (TeX-argument-prompt nil nil "Float type")
  398             LaTeX-caption-supported-float-types))
  399 
  400     '("captionbox"  (LaTeX-arg-caption-captionbox) t)
  401 
  402     '("captionbox*" (LaTeX-arg-caption-captionbox t) t)
  403 
  404     '("continuedfloat" 0)
  405     '("continuedfloat*" 0)
  406 
  407     '("DeclareCaptionFont"
  408       (LaTeX-arg-caption-DeclareCaption "Font") t)
  409 
  410     '("DeclareCaptionFormat"
  411       (LaTeX-arg-caption-DeclareCaption "Format") t)
  412 
  413     '("DeclareCaptionFormat*"
  414       (LaTeX-arg-caption-DeclareCaption "Format") t)
  415 
  416     '("DeclareCaptionJustification"
  417       (LaTeX-arg-caption-DeclareCaption "Justification") t)
  418 
  419     '("DeclareCaptionLabelFormat"
  420       (LaTeX-arg-caption-DeclareCaption "LabelFormat") t)
  421 
  422     '("DeclareCaptionLabelSeparator"
  423       (LaTeX-arg-caption-DeclareCaption "LabelSeparator") t)
  424 
  425     '("DeclareCaptionLabelSeparator*"
  426       (LaTeX-arg-caption-DeclareCaption "LabelSeparator") t)
  427 
  428     '("DeclareCaptionListFormat"
  429       (LaTeX-arg-caption-DeclareCaption "ListFormat") t)
  430 
  431     '("DeclareCaptionOption"
  432       (LaTeX-arg-caption-DeclareCaption "Option") t)
  433 
  434     '("DeclareCaptionStyle"
  435       (LaTeX-arg-caption-DeclareCaption "Style")
  436       [LaTeX-arg-caption-command "Additional options"]
  437       (LaTeX-arg-caption-command "Options"))
  438 
  439     '("DeclareCaptionTextFormat"
  440       (LaTeX-arg-caption-DeclareCaption "TextFormat") t)
  441 
  442     '("bothIfFirst" 2)
  443 
  444     '("bothIfSecond" 2))
  445 
  446    ;; \caption(box|of) macros should get their own lines
  447    (LaTeX-paragraph-commands-add-locally '("captionbox" "captionof"))
  448 
  449    ;; Fontification
  450    (when (and (featurep 'font-latex)
  451           (eq TeX-install-font-lock 'font-latex-setup))
  452      (font-latex-add-keywords '(("caption"           "*[{")
  453                 ("captionlistentry"  "[{")
  454                 ("captionof"         "*{[{")
  455                 ("captionbox"        "*[{[["))
  456                   'textual)
  457      (font-latex-add-keywords '(("captionsetup"                  "*[[{")
  458                 ("clearcaptionsetup"             "*[{")
  459                 ("continuedfloat"                "")
  460                 ("DeclareCaptionFont"            "{{")
  461                 ("DeclareCaptionFormat"          "*{{")
  462                 ("DeclareCaptionJustification"   "{{")
  463                 ("DeclareCaptionLabelFormat"     "{{")
  464                 ("DeclareCaptionLabelSeparator"  "*{{")
  465                 ("DeclareCaptionListFormat"      "{{")
  466                 ("DeclareCaptionOption"          "{{")
  467                 ("DeclareCaptionStyle"           "{[{")
  468                 ("DeclareCaptionTextFormat"      "{{"))
  469                   'function)) )
  470  LaTeX-dialect)
  471 
  472 (defun LaTeX-caption-package-options ()
  473   "Prompt for package options for the caption package."
  474   (TeX-read-key-val t
  475    (append '(("compatibility"  ("true" "false")))
  476        '(("figureposition" ("top" "above" "bottom" "below")))
  477        '(("tableposition"  ("top" "above" "bottom" "below")))
  478        LaTeX-caption-key-val-options)))
  479 
  480 ;;; caption.el ends here