auctex-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[AUCTeX-diffs] GNU AUCTeX branch, master, updated. 40ba5b6ca1623bc270d14


From: Arash Esbati
Subject: [AUCTeX-diffs] GNU AUCTeX branch, master, updated. 40ba5b6ca1623bc270d14eaeb5a9f6a197a3ced2
Date: Thu, 6 Dec 2018 15:06:18 -0500 (EST)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU AUCTeX".

The branch, master has been updated
       via  40ba5b6ca1623bc270d14eaeb5a9f6a197a3ced2 (commit)
      from  3ce90dbc3176f434e140cb23552b5f04e50a5693 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 40ba5b6ca1623bc270d14eaeb5a9f6a197a3ced2
Author: Arash Esbati <address@hidden>
Date:   Thu Dec 6 21:05:27 2018 +0100

    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'.

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

-----------------------------------------------------------------------

Summary of changes:
 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(-)


hooks/post-receive
-- 
GNU AUCTeX



reply via email to

[Prev in Thread] Current Thread [Next in Thread]