[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex 40ba5b6 37/67: Improve handling of `TeX-insert-m
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex 40ba5b6 37/67: Improve handling of `TeX-insert-macro-default-style' in styles |
Date: |
Fri, 8 Feb 2019 11:40:36 -0500 (EST) |
branch: externals/auctex
commit 40ba5b6ca1623bc270d14eaeb5a9f6a197a3ced2
Author: Arash Esbati <address@hidden>
Commit: Arash Esbati <address@hidden>
Improve handling of `TeX-insert-macro-default-style' in styles
* latex.el (LaTeX-check-insert-macro-default-style): Add new
macro. This macro is intended for more complex functions in style
files querying multiple optional and mandatory arguments and
obeying the values of `TeX-insert-macro-default-style' and
`current-prefix-arg'.
* tex.el (TeX-parse-arguments): Add a comment about the new macro.
* style/bicaption.el (LaTeX-arg-bicaption-bicaption):
* style/caption.el (LaTeX-arg-caption-captionbox):
* style/color.el (TeX-arg-color, TeX-arg-color-fcolorbox):
* style/floatrow.el (LaTeX-floatrow-arg-floatbox):
* style/xcolor.el (TeX-arg-xcolor-definecolor)
(TeX-arg-xcolor-definecolorset, TeX-arg-xcolor)
(TeX-arg-xcolor-fcolorbox): Use
`LaTeX-check-insert-macro-default-style'.
---
latex.el | 20 +++++
style/bicaption.el | 30 +++++---
style/caption.el | 31 ++++----
style/color.el | 218 ++++++++++++++++++++++++++++-------------------------
style/floatrow.el | 45 ++++++-----
style/xcolor.el | 64 ++++++++++------
tex.el | 3 +
7 files changed, 243 insertions(+), 168 deletions(-)
diff --git a/latex.el b/latex.el
index b1d2901..3b8cc5c 100644
--- a/latex.el
+++ b/latex.el
@@ -6620,6 +6620,26 @@ function would return non-nil and `(match-string 1)'
would return
(1+ any-col)
beg-col))))))))
+;; Utilities:
+
+(defmacro LaTeX-check-insert-macro-default-style (&rest body)
+ "Check for values of `TeX-insert-macro-default-style' and
`current-prefix-arg'.
+This is a utility macro with code taken from
+`TeX-parse-arguments'. It should be used inside more complex
+function within AUCTeX style files where optional and mandatory
+arguments are queried and inserted. For examples, check the
+functions `TeX-arg-color' (style/color.el) or
+`LaTeX-arg-bicaption-bicaption' (style/bicaption.el)."
+ `(unless (if (eq TeX-insert-macro-default-style 'show-all-optional-args)
+ (equal current-prefix-arg '(4))
+ (or
+ (and (eq TeX-insert-macro-default-style 'show-optional-args)
+ (equal current-prefix-arg '(4)))
+ (and (eq TeX-insert-macro-default-style 'mandatory-args-only)
+ (null (equal current-prefix-arg '(4))))
+ last-optional-rejected))
+ ,@body))
+
(provide 'latex)
;;; latex.el ends here
diff --git a/style/bicaption.el b/style/bicaption.el
index 47b139b..7bf4d1a 100644
--- a/style/bicaption.el
+++ b/style/bicaption.el
@@ -1,6 +1,6 @@
;;; bicaption.el --- AUCTeX style for `bicaption.sty' (v1.1-158)
-;; Copyright (C) 2016, 2017 Free Software Foundation, Inc.
+;; Copyright (C) 2016--2018 Free Software Foundation, Inc.
;; Author: Arash Esbati <address@hidden>
;; Maintainer: address@hidden
@@ -34,6 +34,9 @@
;;; Code:
+(eval-when-compile
+ (require 'latex))
+
(defvar LaTeX-bicaption-key-val-options
'(("bi-lang" ("first" "second" "both"))
("bi-singlelinecheck" ("false" "no" "off" "0" "true" "yes" "on" "1"))
@@ -50,6 +53,9 @@ 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 [<list entry #1>]{<heading #1>}[<list entry #2>]{<heading
#2>}
+ ;; \bicaptionbox[<list entry #1>]{<heading #1>}[<list entry #2>]{<heading
#2>}
+ ;; [<width>][<inner-pos>]{<contents>}
(let* (;; \bisubcaption needs an environment, "minipage" will be
;; popular. If so, check next higher environment to find out
;; where we are
@@ -100,15 +106,19 @@ arguments."
(when cap-box
(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)))
+ (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)))))
+ (last-optional-rejected (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))))
(LaTeX-fill-paragraph)
;; Insert label -- a new line is inserted only if label is there:
(when (and (not label-inside) (not star)
diff --git a/style/caption.el b/style/caption.el
index f23e59d..0b2cac7 100644
--- a/style/caption.el
+++ b/style/caption.el
@@ -1,6 +1,6 @@
;;; caption.el --- AUCTeX style for `caption.sty' (v3.3-111)
-;; Copyright (C) 2015--2017 Free Software Foundation, Inc.
+;; Copyright (C) 2015--2018 Free Software Foundation, Inc.
;; Author: Arash Esbati <address@hidden>
;; Maintainer: address@hidden
@@ -35,7 +35,8 @@
;;; Code:
(eval-when-compile
- (require 'cl-lib))
+ (require 'cl-lib)
+ (require 'latex))
;; Needed for auto-parsing.
(require 'tex)
@@ -176,10 +177,10 @@ in `caption'-completions."
(when (and (string-equal key "labelformat")
(boundp 'LaTeX-subcaption-key-val-options))
(cl-pushnew (list "subrefformat"
- (TeX-delete-duplicate-strings (apply #'append
(list val) val-match)))
+ (TeX-delete-duplicate-strings (apply #'append
(list val) val-match)))
opts :test #'equal))
(cl-pushnew (list key (TeX-delete-duplicate-strings (apply
#'append (list val) val-match)))
- opts :test #'equal))
+ opts :test #'equal))
(cl-pushnew (list key (list val)) opts :test #'equal)))
(setq LaTeX-caption-key-val-options-local (copy-alist opts))))
;; Support for environments defined with newfloat.sty: These
@@ -255,15 +256,19 @@ caption, insert only a caption."
(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))
+ (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)))))
+ (last-optional-rejected (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)))
;; Fill the paragraph before inserting {}. We can use
;; `LaTeX-fill-paragraph' without messing up the code since
;; \caption starts a new paragraph with AUCTeX
diff --git a/style/color.el b/style/color.el
index 0a9c74a..753ab7c 100644
--- a/style/color.el
+++ b/style/color.el
@@ -1,6 +1,6 @@
;;; color.el --- AUCTeX style for `color.sty' (v1.1a)
-;; Copyright (C) 2015--2017 Free Software Foundation, Inc.
+;; Copyright (C) 2015--2018 Free Software Foundation, Inc.
;; Author: Arash Esbati <address@hidden>
;; Maintainer: address@hidden
@@ -34,6 +34,9 @@
;;; Code:
+(eval-when-compile
+ (require 'latex))
+
(defvar LaTeX-color-colour-models
'("cmyk" "gray" "named" "rgb")
"List of color models provided by `color.sty'.")
@@ -118,111 +121,124 @@
(defun TeX-arg-color (optional &optional prompt)
"Insert arguments of various color commands from `color.sty'."
- ;; \color{<name>} or \color[<model>]{<color spec>}
- ;; First, ask for <model>. `named' is removed here from completion
- ;; if package option is not given
- (let ((model (completing-read
- (TeX-argument-prompt t prompt "Color model")
- (if (not (or (LaTeX-provided-package-options-member "color"
"dvips")
- (LaTeX-provided-package-options-member "color"
"dvipsnames")))
- (remove "named" LaTeX-color-colour-models)
- LaTeX-color-colour-models))))
- (if (string-equal model "")
- ;; if empty, ask for <name> with completion
- (let ((color (completing-read
- (TeX-argument-prompt optional prompt "Color name")
- (LaTeX-color-definecolor-list))))
- (TeX-argument-insert color optional))
- ;; if not empty, insert [<model>] and proceed
- (insert (concat LaTeX-optop model LaTeX-optcl))
- (cond (;; <cmyk> model
- (string-equal model "cmyk")
- (let ((cyan (TeX-read-string "Value Cyan (between 0,1): "))
- (magenta (TeX-read-string "Value Magenta (between 0,1): "))
- (yellow (TeX-read-string "Value Yellow (between 0,1): "))
- (black (TeX-read-string "Value Black (between 0,1): ")))
- (TeX-argument-insert
- (concat cyan "," magenta "," yellow "," black) optional)))
- ;; <rgb> model
- ((string-equal model "rgb")
- (let ((red (TeX-read-string "Value Red (between 0,1): "))
- (green (TeX-read-string "Value Green (between 0,1): "))
- (blue (TeX-read-string "Value Blue (between 0,1): ")))
- (TeX-argument-insert
- (concat red "," green "," blue) optional)))
- ;; <gray> model
- ((string-equal model "gray")
- (let ((grayness (TeX-read-string "Value Gray (between 0,1): ")))
- (TeX-argument-insert grayness optional)))
- ;; <named> model; allowed are dvipsnames.
- ((string-equal model "named")
- (let ((color (completing-read "Named Color: "
- LaTeX-color-dvipsnames-colors)))
- (TeX-argument-insert color optional)))))))
+ ;; \color{<name>} or \color[<model>]{<color spec>} First, ask for
+ ;; <model>. This happens depending on the values of
+ ;; `TeX-insert-macro-default-style' and if `current-prefix-arg'.
+ ;; `named' is removed here from completion if package option is not
+ ;; given.
+ (let* ((last-optional-rejected nil)
+ (model (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t prompt "Color model")
+ (if (not (or (LaTeX-provided-package-options-member "color"
"dvips")
+ (LaTeX-provided-package-options-member "color"
"dvipsnames")))
+ (remove "named" LaTeX-color-colour-models)
+ LaTeX-color-colour-models)))))
+ ;; If <model> is non-nil because of 'mandatory-args-only and not
+ ;; an empty string, then insert it
+ (if (and model (not (string-equal model "")))
+ (progn
+ (insert (concat LaTeX-optop model LaTeX-optcl))
+ (cond (;; <cmyk> model
+ (string-equal model "cmyk")
+ (let ((cyan (TeX-read-string "Value Cyan (between 0,1): "))
+ (magenta (TeX-read-string "Value Magenta (between 0,1):
"))
+ (yellow (TeX-read-string "Value Yellow (between 0,1):
"))
+ (black (TeX-read-string "Value Black (between 0,1):
")))
+ (TeX-argument-insert
+ (concat cyan "," magenta "," yellow "," black) optional)))
+ ;; <rgb> model
+ ((string-equal model "rgb")
+ (let ((red (TeX-read-string "Value Red (between 0,1): "))
+ (green (TeX-read-string "Value Green (between 0,1): "))
+ (blue (TeX-read-string "Value Blue (between 0,1): ")))
+ (TeX-argument-insert
+ (concat red "," green "," blue) optional)))
+ ;; <gray> model
+ ((string-equal model "gray")
+ (let ((grayness (TeX-read-string "Value Gray (between 0,1):
")))
+ (TeX-argument-insert grayness optional)))
+ ;; <named> model; allowed are dvipsnames.
+ ((string-equal model "named")
+ (let ((color (completing-read "Named Color: "
+ LaTeX-color-dvipsnames-colors)))
+ (TeX-argument-insert color optional)))))
+ ;; if empty, ask for <name> with completion
+ (let ((color (completing-read
+ (TeX-argument-prompt optional prompt "Color name")
+ (LaTeX-color-definecolor-list))))
+ (TeX-argument-insert color optional)))))
(defun TeX-arg-color-fcolorbox (optional &optional prompt)
"Insert arguments of `\\fcolorbox' from `color.sty'. "
;; \fcolorbox{<frame color name>}{<box color name>}{<text>} or
;; \fcolorbox[<model>]{<frame color spec>}{<box color spec>}{<text>}
- ;; First, ask for <model>; remove `named' again
- (let ((model (completing-read
- (TeX-argument-prompt t prompt "Color model")
- (if (not (or (LaTeX-provided-package-options-member "color"
"dvips")
- (LaTeX-provided-package-options-member "color"
"dvipsnames")))
- (remove "named" LaTeX-color-colour-models)
- LaTeX-color-colour-models))))
- (if (string-equal model "")
- ;; if empty, ask for <frame color spce> with completion
- (let ((frame-color (completing-read
- (TeX-argument-prompt optional prompt "Frame color
name")
- (LaTeX-color-definecolor-list)))
- (box-color (completing-read
- (TeX-argument-prompt optional prompt "Box color
name")
- (LaTeX-color-definecolor-list))))
- (TeX-argument-insert frame-color optional)
- (TeX-argument-insert box-color optional))
- ;; if not empty, insert [<model>] and cater for 2 mandatory args.
- (insert (concat LaTeX-optop model LaTeX-optcl))
- (cond (;; <cmyk> model
- (string-equal model "cmyk")
- (let ((cyan (TeX-read-string "Frame value Cyan (between 0,1):
"))
- (magenta (TeX-read-string "Frame value Magenta (between
0,1): "))
- (yellow (TeX-read-string "Frame value Yellow (between 0,1):
"))
- (black (TeX-read-string "Frame value Black (between 0,1):
")))
- (TeX-argument-insert
- (concat cyan "," magenta "," yellow "," black) optional))
- (let ((cyan (TeX-read-string "Box value Cyan (between 0,1): "))
- (magenta (TeX-read-string "Box value Magenta (between 0,1):
"))
- (yellow (TeX-read-string "Box value Yellow (between 0,1):
"))
- (black (TeX-read-string "Box value Black (between 0,1):
")))
- (TeX-argument-insert
- (concat cyan "," magenta "," yellow "," black) optional)))
- ;; <rgb> model
- ((string-equal model "rgb")
- (let ((red (TeX-read-string "Frame value Red (between 0,1): "))
- (green (TeX-read-string "Frame value Green (between 0,1): "))
- (blue (TeX-read-string "Frame value Blue (between 0,1): ")))
- (TeX-argument-insert
- (concat red "," green "," blue) optional))
- (let ((red (TeX-read-string "Box value Red (between 0,1): "))
- (green (TeX-read-string "Box value Green (between 0,1): "))
- (blue (TeX-read-string "box value Blue (between 0,1): ")))
- (TeX-argument-insert
- (concat red "," green "," blue) optional)))
- ;; <gray> model
- ((string-equal model "gray")
- (let ((grayness (TeX-read-string "Frame value Gray (between 0,1):
")))
- (TeX-argument-insert grayness optional))
- (let ((grayness (TeX-read-string "Box value Gray (between 0,1):
")))
- (TeX-argument-insert grayness optional)))
- ;; <named> model; allowed are dvipsnames.
- ((string-equal model "named")
- (let ((color (completing-read "Frame named Color: "
- LaTeX-color-dvipsnames-colors)))
- (TeX-argument-insert color optional))
- (let ((color (completing-read "Box named Color: "
- LaTeX-color-dvipsnames-colors)))
- (TeX-argument-insert color optional)))))))
+ ;; First, ask for <model> depending on
+ ;; `TeX-insert-macro-default-style' and `current-prefix-arg'.
+ ;; Remove `named' if necessary.
+ (let* ((last-optional-rejected nil)
+ (model (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t prompt "Color model")
+ (if (not (or (LaTeX-provided-package-options-member "color"
"dvips")
+ (LaTeX-provided-package-options-member "color"
"dvipsnames")))
+ (remove "named" LaTeX-color-colour-models)
+ LaTeX-color-colour-models)))))
+ ;; If <model> is non-nil because of 'mandatory-args-only and not
+ ;; an empty string, then insert [<model>] and cater for 2
+ ;; mandatory args.
+ (if (and model (not (string-equal model "")))
+ (progn
+ (insert (concat LaTeX-optop model LaTeX-optcl))
+ (cond (;; <cmyk> model
+ (string-equal model "cmyk")
+ (let ((cyan (TeX-read-string "Frame value Cyan (between
0,1): "))
+ (magenta (TeX-read-string "Frame value Magenta (between
0,1): "))
+ (yellow (TeX-read-string "Frame value Yellow (between
0,1): "))
+ (black (TeX-read-string "Frame value Black (between
0,1): ")))
+ (TeX-argument-insert
+ (concat cyan "," magenta "," yellow "," black) optional))
+ (let ((cyan (TeX-read-string "Box value Cyan (between 0,1):
"))
+ (magenta (TeX-read-string "Box value Magenta (between
0,1): "))
+ (yellow (TeX-read-string "Box value Yellow (between
0,1): "))
+ (black (TeX-read-string "Box value Black (between
0,1): ")))
+ (TeX-argument-insert
+ (concat cyan "," magenta "," yellow "," black) optional)))
+ ;; <rgb> model
+ ((string-equal model "rgb")
+ (let ((red (TeX-read-string "Frame value Red (between 0,1):
"))
+ (green (TeX-read-string "Frame value Green (between
0,1): "))
+ (blue (TeX-read-string "Frame value Blue (between 0,1):
")))
+ (TeX-argument-insert
+ (concat red "," green "," blue) optional))
+ (let ((red (TeX-read-string "Box value Red (between 0,1): "))
+ (green (TeX-read-string "Box value Green (between 0,1):
"))
+ (blue (TeX-read-string "box value Blue (between 0,1):
")))
+ (TeX-argument-insert
+ (concat red "," green "," blue) optional)))
+ ;; <gray> model
+ ((string-equal model "gray")
+ (let ((grayness (TeX-read-string "Frame value Gray (between
0,1): ")))
+ (TeX-argument-insert grayness optional))
+ (let ((grayness (TeX-read-string "Box value Gray (between
0,1): ")))
+ (TeX-argument-insert grayness optional)))
+ ;; <named> model; allowed are dvipsnames.
+ ((string-equal model "named")
+ (let ((color (completing-read "Frame named Color: "
+ LaTeX-color-dvipsnames-colors)))
+ (TeX-argument-insert color optional))
+ (let ((color (completing-read "Box named Color: "
+ LaTeX-color-dvipsnames-colors)))
+ (TeX-argument-insert color optional)))))
+ ;; if empty, ask for {<frame color spce>}{<box color name>} with
completion
+ (let ((frame-color (completing-read
+ (TeX-argument-prompt optional prompt "Frame color
name")
+ (LaTeX-color-definecolor-list)))
+ (box-color (completing-read
+ (TeX-argument-prompt optional prompt "Box color name")
+ (LaTeX-color-definecolor-list))))
+ (TeX-argument-insert frame-color optional)
+ (TeX-argument-insert box-color optional)))))
(TeX-add-style-hook
"color"
diff --git a/style/floatrow.el b/style/floatrow.el
index 4b917b2..8032cd0 100644
--- a/style/floatrow.el
+++ b/style/floatrow.el
@@ -58,9 +58,10 @@
;;; Code:
-;; Needed for compiling `cl-pushnew':
+;; Needed for compiling `cl-pushnew' &
`LaTeX-check-insert-macro-default-style':
(eval-when-compile
- (require 'cl-lib))
+ (require 'cl-lib)
+ (require 'latex))
;; Needed for auto-parsing.
(require 'tex)
@@ -337,27 +338,33 @@ If OPTIONAL is non-nil, indicate optional argument during
query."
;; `TeX-argument-insert':
(let* ((TeX-arg-opening-brace "[")
(TeX-arg-closing-brace "]")
- (width (completing-read
- (TeX-argument-prompt t nil "Width")
- (mapcar (lambda (x) (concat TeX-esc (car x)))
- (LaTeX-length-list))))
- (height (completing-read
- (TeX-argument-prompt t nil "Height")
- (mapcar (lambda (x) (concat TeX-esc (car x)))
- (LaTeX-length-list))))
- (vertpos (if (string= height "")
- ""
- (completing-read
- (TeX-argument-prompt t nil "Vertical alignment")
- '("t" "c" "b" "s")))))
- (TeX-argument-insert width t)
+ (last-optional-rejected nil)
+ (width (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t nil "Width")
+ (mapcar (lambda (x) (concat TeX-esc (car x)))
+ (LaTeX-length-list)))))
+ (last-optional-rejected (and width (string= width "")))
+ (height (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t nil "Height")
+ (mapcar (lambda (x) (concat TeX-esc (car x)))
+ (LaTeX-length-list)))))
+ (last-optional-rejected (and height (string= height "")))
+ (vertpos (LaTeX-check-insert-macro-default-style
+ (if (string= height "")
+ ""
+ (completing-read
+ (TeX-argument-prompt t nil "Vertical alignment")
+ '("t" "c" "b" "s"))))))
+ (and width (TeX-argument-insert width t))
;; Insert an extra pair of brackets if only `height' is given,
;; otherwise it will become `width'
- (when (and (string= width "")
+ (when (and width (string= width "")
height (not (string= height "")))
(insert "[]"))
- (TeX-argument-insert height t)
- (TeX-argument-insert vertpos t))
+ (and (TeX-argument-insert height t))
+ (and (TeX-argument-insert vertpos t)))
;; Now query for the (short-)caption. Also check for the
;; float-type; if we're inside (sub)?floatrow*?, then check for the
;; next outer environment:
diff --git a/style/xcolor.el b/style/xcolor.el
index 174493f..f7b1b5b 100644
--- a/style/xcolor.el
+++ b/style/xcolor.el
@@ -44,6 +44,9 @@
;;; Code:
+(eval-when-compile
+ (require 'latex))
+
(defvar LaTeX-xcolor-core-color-models
'("rgb" "cmy" "cmyk" "hsb" "gray")
"List of core color models provided by xcolor.sty.")
@@ -274,12 +277,13 @@ xcolor package.")
(add-hook 'TeX-update-style-hook #'TeX-auto-parse t)
(defun TeX-arg-xcolor-definecolor (optional)
- "Insert arguments of \\definecolor and similar macros from
-xcolor.sty."
+ "Insert arguments of \\definecolor and similar macros from xcolor.sty."
;; \definecolor[<type>]{<name>}{<model-list>}{<spec-list>}
- (let* ((xcoltype (completing-read
- (TeX-argument-prompt t nil "Type")
- LaTeX-xcolor-type-color-models))
+ (let* ((last-optional-rejected nil)
+ (xcoltype (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t nil "Type")
+ LaTeX-xcolor-type-color-models)))
(xcolname (TeX-read-string
(TeX-argument-prompt optional nil "Color name")))
(xcolmodel (completing-read
@@ -301,14 +305,15 @@ xcolor.sty."
(TeX-argument-insert xcolspec optional)))
(defun TeX-arg-xcolor-definecolorset (optional)
- "Insert arguments of \\definecolorset and similar macros from
-xcolor.sty."
- (let ((xcoltype (completing-read
- (TeX-argument-prompt t nil "Type")
- LaTeX-xcolor-type-color-models))
- (xcolmodel (completing-read
- (TeX-argument-prompt optional nil "Model")
- (LaTeX-xcolor-color-models t))))
+ "Insert arguments of \\definecolorset and similar macros from xcolor.sty."
+ (let* ((last-optional-rejected nil)
+ (xcoltype (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t nil "Type")
+ LaTeX-xcolor-type-color-models)))
+ (xcolmodel (completing-read
+ (TeX-argument-prompt optional nil "Model")
+ (LaTeX-xcolor-color-models t))))
(when (and xcoltype (not (string= xcoltype "")))
(insert (format "[%s]" xcoltype)))
(TeX-argument-insert xcolmodel optional)))
@@ -316,9 +321,11 @@ xcolor.sty."
(defun TeX-arg-xcolor (optional)
"Insert arguments of various color commands from xcolor.sty."
;; \color{<name>} or \color[<model-list>]{<spec-list>}
- (let* ((xcolmodel (completing-read
- (TeX-argument-prompt t nil "Model (list)")
- (LaTeX-xcolor-color-models t)))
+ (let* ((last-optional-rejected nil)
+ (xcolmodel (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t nil "Model (list)")
+ (LaTeX-xcolor-color-models t))))
(xcolor (if (and xcolmodel (not (string= xcolmodel "")))
(TeX-read-string
(TeX-argument-prompt optional nil (concat xcolmodel "
spec (list)")))
@@ -332,21 +339,29 @@ xcolor.sty."
(defun TeX-arg-xcolor-fcolorbox (optional)
"Insert arguments of \\fcolorbox from xcolor.sty."
;;\fcolorbox[<frame model>]{<frame spec>}[<background model>]{<background
spec>}{<text>}
- (let* ((xfrmodel (completing-read
- (TeX-argument-prompt t nil "(Frame) Color model")
- LaTeX-xcolor-color-models))
- (xfrspec (if (or (string= xfrmodel "")
+ (let* ((last-optional-rejected nil)
+ (xfrmodel (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t nil "(Frame) Color model")
+ LaTeX-xcolor-color-models)))
+ ;; Set `last-optional-rejected' acc. to `xfrmodel'
+ (last-optional-rejected (and xfrmodel (string= xfrmodel "")))
+ (xfrspec (if (or (null xfrmodel)
+ (string= xfrmodel "")
(string= xfrmodel "named"))
(completing-read
(TeX-argument-prompt optional nil "Frame color spec")
(LaTeX-xcolor-definecolor-list))
(TeX-read-string
(TeX-argument-prompt optional nil "Frame color spec"))))
- (xbgmodel (completing-read
- (TeX-argument-prompt t nil "Background Color model")
- LaTeX-xcolor-color-models))
- (xbgspec (if (or (string= xfrmodel "")
+ (xbgmodel (LaTeX-check-insert-macro-default-style
+ (completing-read
+ (TeX-argument-prompt t nil "Background Color model")
+ LaTeX-xcolor-color-models)))
+ (xbgspec (if (or (null xfrmodel)
+ (string= xfrmodel "")
(string= xfrmodel "named")
+ (null xbgmodel)
(string= xbgmodel "")
(string= xbgmodel "named"))
(completing-read
@@ -361,7 +376,6 @@ xcolor.sty."
(insert (format "[%s]" xbgmodel)))
(TeX-argument-insert xbgspec optional)))
-
(TeX-add-style-hook
"xcolor"
(lambda ()
diff --git a/tex.el b/tex.el
index e2a2d45..2e6ec0c 100644
--- a/tex.el
+++ b/tex.el
@@ -3379,6 +3379,9 @@ See `TeX-parse-macro' for details."
(if (vectorp (car args))
;; Maybe get rid of all optional arguments. See `TeX-insert-macro'
;; for more comments. See `TeX-insert-macro-default-style'.
+ ;; The macro `LaTeX-check-insert-macro-default-style' in
+ ;; `latex.el' uses the code inside (unless ...) This macro
+ ;; should be adapted if the code here changs.
(unless (if (eq TeX-insert-macro-default-style
'show-all-optional-args)
(equal current-prefix-arg '(4))
(or
- [elpa] externals/auctex 38d39a6 31/67: Remove compatibility face, (continued)
- [elpa] externals/auctex 38d39a6 31/67: Remove compatibility face, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 9ae66cd 33/67: Remove TeX-replace-regexp-in-string, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 9d8369a 39/67: ; Silence the compiler in styles for `font-latex-update-font-lock', Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 5827aeb 34/67: Remove TeX-mark-active, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex c893152 50/67: Redefine support for \url in hyperref, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 3ce90db 36/67: Remove compatibility code for older emacsen, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 4cfd116 65/67: Add support for w and W column specifiers, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 49720ce 62/67: Remove compatibility code for older emacsen, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 3aef308 58/67: Skip macros and environments from pythontex, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 088e10c 45/67: ; Silence the compiler in styles for various functions and variables, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 40ba5b6 37/67: Improve handling of `TeX-insert-macro-default-style' in styles,
Tassilo Horn <=
- [elpa] externals/auctex 906ac31 55/67: Add new style/pythontex.el, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 88b381c 54/67: Drop xemacs support and mule check from configure and Makefile, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 45ad237 35/67: Remove TeX-maybe-remove-help, TeX-menu-with-help, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex dcfdd69 61/67: Fix test conditions on w32, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 34eab00 66/67: Improve indenting and filling in "Form" environments, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 38f9d72 63/67: Remove compatibility code for older emacsen, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 235f93c 46/67: ; Silence the compiler in styles for pstricks, Tassilo Horn, 2019/02/08
- [elpa] externals/auctex 3d0c445 38/67: ; Silence the compiler in styles for `font-latex-add-keywords'., Tassilo Horn, 2019/02/08
- [elpa] externals/auctex f34ce5a 67/67: Merge remote-tracking branch 'origin/master' into externals/auctex, Tassilo Horn, 2019/02/08