Function: LaTeX-env-figure
LaTeX-env-figure is a byte-compiled function defined in latex.el.
Signature
(LaTeX-env-figure ENVIRONMENT)
Documentation
Create ENVIRONMENT with \caption and \label commands.
Source Code
;; Defined in ~/.emacs.d/elpa/auctex-14.1.2/latex.el
(defun LaTeX-env-figure (environment)
"Create ENVIRONMENT with \\caption and \\label commands."
(let* ((float (and LaTeX-float ; LaTeX-float can be nil, i.e.
; do not prompt
(TeX-read-string "(Optional) Float position: " LaTeX-float)))
(caption (TeX-read-string "Caption: "))
(short-caption (when (>= (length caption) LaTeX-short-caption-prompt-length)
(TeX-read-string "(Optional) Short caption: ")))
(center (y-or-n-p "Center? "))
(active-mark (and (TeX-active-mark)
(not (eq (mark) (point)))))
start-marker end-marker)
(when active-mark
(if (< (mark) (point))
(exchange-point-and-mark))
(setq start-marker (point-marker))
(set-marker-insertion-type start-marker t)
(setq end-marker (copy-marker (mark))))
(setq LaTeX-float float)
(LaTeX-insert-environment environment
(unless (zerop (length float))
(concat LaTeX-optop float
LaTeX-optcl)))
(when active-mark
(goto-char start-marker)
(set-marker start-marker nil))
(when center
(insert TeX-esc "centering")
(indent-according-to-mode)
(LaTeX-newline)
(indent-according-to-mode))
;; Insert caption and ask for a label, do nothing if user skips caption
(unless (zerop (length caption))
(if (member environment LaTeX-top-caption-list)
;; top caption
(progn
(insert (LaTeX-compose-caption-macro caption short-caption))
;; If `auto-fill-mode' is active, fill the caption.
(if auto-fill-function (LaTeX-fill-paragraph))
(LaTeX-newline)
(indent-according-to-mode)
;; ask for a label and insert a new line only if a label is
;; actually inserted
(when (LaTeX-label environment 'environment)
(LaTeX-newline)
(indent-according-to-mode)))
;; bottom caption (default)
(when active-mark (goto-char end-marker))
(save-excursion
(LaTeX-newline)
(indent-according-to-mode)
;; If there is an active region point is before the backslash of
;; "\end" macro, go one line upwards.
(when active-mark (forward-line -1) (indent-according-to-mode))
(insert (LaTeX-compose-caption-macro caption short-caption))
;; If `auto-fill-mode' is active, fill the caption.
(if auto-fill-function (LaTeX-fill-paragraph))
;; ask for a label and if necessary insert a new line between caption
;; and label
(when (save-excursion (LaTeX-label environment 'environment))
(LaTeX-newline)
(indent-according-to-mode)))
;; Insert an empty line between caption and marked region, if any.
(when active-mark (LaTeX-newline) (forward-line -1))
(indent-according-to-mode)))
(when (markerp end-marker)
(set-marker end-marker nil))
(when (and (member environment '("table" "table*"))
;; Suppose an existing tabular environment should just
;; be wrapped into a table if there is an active region.
(not active-mark))
(LaTeX-environment-menu LaTeX-default-tabular-environment))))