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. 8530cd0c25d07c182ccef


From: Arash Esbati
Subject: [AUCTeX-diffs] GNU AUCTeX branch, master, updated. 8530cd0c25d07c182ccef54bee5645cc309cce62
Date: Fri, 14 Jun 2019 09:34:33 -0400 (EDT)

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  8530cd0c25d07c182ccef54bee5645cc309cce62 (commit)
      from  36d06e2f6cbe21d6cd2e76b5a2b9f89d97635f60 (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 8530cd0c25d07c182ccef54bee5645cc309cce62
Author: Arash Esbati <address@hidden>
Date:   Fri Jun 14 15:31:52 2019 +0200

    Support cleveref labels
    
    * style/cleveref.el (TeX-arg-cleveref-crossref-type): New
    function.
    (LaTeX-cleveref-label-regexp): New variable for parsing \label
    macros with an optional argument.
    ("cleveref"): Add missing package macros.
    Update expert commands and fontification.
    Update `reftex-label-regexps' enabling RefTeX to handle \label
    with an optional argument as well.
    Update description line and add Commentary section.  (bug#36111)

diff --git a/style/cleveref.el b/style/cleveref.el
index 2774dcb..290bc2f 100644
--- a/style/cleveref.el
+++ b/style/cleveref.el
@@ -1,6 +1,6 @@
-;;; cleveref.el --- Style hook for the `cleveref.sty' package.
+;;; cleveref.el --- AUCTeX style for `cleveref.sty' (v0.21.4)
 
-;; Copyright (C) 2014--2016, 2018 Free Software Foundation, Inc.
+;; Copyright (C) 2014--2019 Free Software Foundation, Inc.
 
 ;; Author: Matthew Leach <address@hidden>
 ;; Maintainer: address@hidden
@@ -23,6 +23,11 @@
 ;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 ;; 02110-1301, USA.
 
+;;; Commentary:
+
+;; This file adds support for `cleveref.sty' (v0.21.4), dated
+;; 2018/03/27.
+
 ;;; Code
 
 ;; Silence the compiler:
@@ -47,22 +52,41 @@ string."
           (labels-string (mapconcat #'identity labels ",")))
       (TeX-argument-insert labels-string optional))))
 
+(defun TeX-arg-cleveref-crossref-type (optional &optional prompt)
+  "Insert the cross-reference type for macros of cleveref package.
+If OPTIONAL is non-nil, insert the resulting value in brackets.
+Use PROMPT as the prompt string."
+  (let* ((type (mapcar #'list
+                      '("appendix" "subappendix" "subsubappendix"
+                        "subsubsubappendix" "subfigure" "subtable"
+                        "subequation")))
+        (types (append (LaTeX-counter-list) type)))
+    (TeX-argument-insert
+     (completing-read (TeX-argument-prompt optional prompt "Type") types)
+     optional)))
+
+(defvar LaTeX-cleveref-label-regexp
+  '("\\\\label\\[[^]]*\\]{\\([^\n\r%\\{}]+\\)}" 1 LaTeX-auto-label)
+  "Regexp matching a \\label incl. an optional argument.")
+
 (TeX-add-style-hook
  "cleveref"
  (lambda ()
+
    (TeX-add-symbols
+    ;; 4 Typesetting Cross-References
     '("cref" TeX-arg-cleveref-multiple-labels)
     '("Cref" TeX-arg-cleveref-multiple-labels)
     '("crefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)"))
     '("Crefrange" (TeX-arg-ref "key (first)") (TeX-arg-ref "Key (last)"))
-    '("cpageref" TeX-arg-cleveref-multiple-labels)
-    '("Cpageref" TeX-arg-cleveref-multiple-labels)
-    '("cpagerefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)"))
-    '("Cpagerefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)"))
     '("cref*" TeX-arg-cleveref-multiple-labels)
     '("Cref*" TeX-arg-cleveref-multiple-labels)
     '("crefrange*" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)"))
     '("Crefrange*" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)"))
+    '("cpageref" TeX-arg-cleveref-multiple-labels)
+    '("Cpageref" TeX-arg-cleveref-multiple-labels)
+    '("cpagerefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)"))
+    '("Cpagerefrange" (TeX-arg-ref "Key (first)") (TeX-arg-ref "Key (last)"))
     '("namecref" TeX-arg-ref)
     '("nameCref" TeX-arg-ref)
     '("lcnamecref" TeX-arg-ref)
@@ -70,35 +94,100 @@ string."
     '("nameCrefs" TeX-arg-ref)
     '("lcnamecrefs" TeX-arg-ref)
     '("labelcref" TeX-arg-cleveref-multiple-labels)
-    '("labelcpageref" TeX-arg-cleveref-multiple-labels))
+    '("labelcpageref" TeX-arg-cleveref-multiple-labels)
+    ;; 6 Overriding the Cross-Reference Type
+    '("crefalias" TeX-arg-counter "Type")
+    '("label" [ TeX-arg-cleveref-crossref-type ] TeX-arg-define-label)
+
+    ;; 8.1.1 Global Customisation
+    '("crefdefaultlabelformat" t)
+
+    ;; 8.1.2 Customising Individual Cross-Reference Types
+    '("crefname" TeX-arg-cleveref-crossref-type
+      "Singular name" "Plural name")
+    '("Crefname" TeX-arg-cleveref-crossref-type
+      "Singular name" "Plural name")
+    '("creflabelformat" TeX-arg-cleveref-crossref-type t)
+    '("crefrangelabelformat" TeX-arg-cleveref-crossref-type t)
+
+    ;; 8.2.1 Single Cross-References
+    '("crefformat" TeX-arg-cleveref-crossref-type t)
+    '("Crefformat" TeX-arg-cleveref-crossref-type t)
+
+    ;; 8.2.2 Reference Ranges
+    '("crefrangeformat" TeX-arg-cleveref-crossref-type t)
+    '("Crefrangeformat" TeX-arg-cleveref-crossref-type t)
+
+    ;; 8.2.3 Multiple Cross-References
+    '("crefmultiformat"      TeX-arg-cleveref-crossref-type 4)
+    '("Crefmultiformat"      TeX-arg-cleveref-crossref-type 4)
+    '("crefrangemultiformat" TeX-arg-cleveref-crossref-type 4)
+    '("Crefrangemultiformat" TeX-arg-cleveref-crossref-type 4))
 
    ;; These macros aren't used particularly often during the course of
    ;; normal referencing.
    (TeX-declare-expert-macros
     "cleveref"
     "namecref" "nameCref" "lcnamecref" "namecrefs" "nameCrefs"
-    "lcnamecrefs" "labelcref" "labelcpageref")
+    "lcnamecrefs" "labelcref" "labelcpageref"
+    "crefdefaultlabelformat"
+    "crefname" "Crefname" "creflabelformat" "crefrangelabelformat"
+    "crefformat" "Crefformat"
+    "crefrangeformat" "Crefrangeformat"
+    "crefmultiformat" "Crefmultiformat"
+    "crefrangemultiformat" "Crefrangemultiformat")
+
+   ;; Add \label[type]{label} to AUCTeX parser
+   (TeX-auto-add-regexp LaTeX-cleveref-label-regexp)
+
+   ;; Tell RefTeX.  Check if `reftex-label-regexps' is bound and use a
+   ;; local version of it.  Check if the regexp is already added in
+   ;; order not to run `reftex-compile-variables' every time the style
+   ;; hook runs
+   (when (and (boundp 'reftex-label-regexps)
+             (fboundp 'reftex-compile-variables))
+     (let ((regexp "\\\\label\\[[^]]*\\]{\\(?1:[^\n\r%\\{}]+\\)}"))
+       (unless (member regexp reftex-label-regexps)
+        (add-to-list (make-local-variable 'reftex-label-regexps)
+                     regexp t)
+        (reftex-compile-variables))))
 
    ;; Fontification
    (when (and (fboundp 'font-latex-add-keywords)
              (eq TeX-install-font-lock 'font-latex-setup))
-     (font-latex-add-keywords '(("cref" "*{")
-                               ("Cref" "*{")
-                               ("crefrange" "*{{")
-                               ("Crefrange" "*{{")
-                                ("cpageref" "{")
-                                ("Cpageref" "{")
-                                ("cpagerefrange" "{{")
-                                ("Cpagerefrange" "{{")
-                                ("namecref" "{")
-                                ("nameCref" "{")
-                                ("lcnamecref" "{")
-                                ("namecrefs" "{")
-                                ("nameCrefs" "{")
-                                ("lcnamecrefs" "{")
-                                ("labelcref" "{")
-                                ("labelcpageref" "{"))
-                             'reference))
+     (font-latex-add-keywords '(("cref"          "*{")
+                               ("Cref"          "*{")
+                               ("crefrange"     "*{{")
+                               ("Crefrange"     "*{{")
+                               ("cpageref"      "{")
+                               ("Cpageref"      "{")
+                               ("cpagerefrange" "{{")
+                               ("Cpagerefrange" "{{")
+                               ("namecref"      "{")
+                               ("nameCref"      "{")
+                               ("lcnamecref"    "{")
+                               ("namecrefs"     "{")
+                               ("nameCrefs"     "{")
+                               ("lcnamecrefs"   "{")
+                               ("labelcref"     "{")
+                               ("labelcpageref" "{")
+                               ("label"         "[{"))
+                             'reference)
+     (font-latex-add-keywords '(("crefalias"              "{{")
+                               ("crefname"               "{{{")
+                               ("Crefname"               "{{{")
+                               ("creflabelformat"        "{{")
+                               ("crefrangelabelformat"   "{{")
+                               ("crefdefaultlabelformat" "{")
+                               ("crefformat"             "{{")
+                               ("Crefformat"             "{{")
+                               ("crefrangeformat"        "{{")
+                               ("Crefrangeformat"        "{{")
+                               ("crefmultiformat"        "{{{{{")
+                               ("Crefmultiformat"        "{{{{{")
+                               ("crefrangemultiformat"   "{{{{{")
+                               ("Crefrangemultiformat"   "{{{{{"))
+                             'function))
 
    ;; Activate RefTeX reference style.
    (and LaTeX-reftex-ref-style-auto-activate
@@ -108,6 +197,6 @@ string."
 
 (defvar LaTeX-cleveref-package-options
   '("capitalise" "nameinlink" "noabbrev" "poorman")
-    "Package options for the cleveref package.")
+  "Package options for the cleveref package.")
 
 ;;; cleveref.el ends here.

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

Summary of changes:
 style/cleveref.el | 141 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 115 insertions(+), 26 deletions(-)


hooks/post-receive
-- 
GNU AUCTeX



reply via email to

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