[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[AUCTeX-diffs] [elpa] externals/auctex 8530cd0 45/80: Support cleveref l
From: |
Tassilo Horn |
Subject: |
[AUCTeX-diffs] [elpa] externals/auctex 8530cd0 45/80: Support cleveref labels |
Date: |
Wed, 16 Oct 2019 11:07:15 -0400 (EDT) |
branch: externals/auctex
commit 8530cd0c25d07c182ccef54bee5645cc309cce62
Author: Arash Esbati <address@hidden>
Commit: Arash Esbati <address@hidden>
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)
---
style/cleveref.el | 141 ++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 115 insertions(+), 26 deletions(-)
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\[[^]]*\]{\([^
%\{}]+\)}" 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:[^
%\{}]+\)}"))
+ (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.
- [AUCTeX-diffs] [elpa] externals/auctex d4660dd 18/80: * style/xparse.el ("xparse"): Fix fontification of alternatives., (continued)
- [AUCTeX-diffs] [elpa] externals/auctex d4660dd 18/80: * style/xparse.el ("xparse"): Fix fontification of alternatives., Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex cd39966 14/80: ; Fix typos, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 1a83f1b 09/80: ; Remove `eval-when-compile' for latex.el, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 2a642a4 19/80: Add support for ChangeLog entries for LaTeX files, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 5592f7d 17/80: Reset `TeX-PDF-from-DVI' if xetex engine is in use, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 18a09f0 03/80: * auctex.el: Add requireds, keywords, and trailer, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 1b6e513 22/80: ; Use `LaTeX-extract-key-value-label', Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex ab57cb0 21/80: Add new function `LaTeX-extract-key-value-label', Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex ddd7894 20/80: ; Fix last commit, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex af15814 42/80: ; * style/babel.el: Fix typo, remove code remainder., Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 8530cd0 45/80: Support cleveref labels,
Tassilo Horn <=
- [AUCTeX-diffs] [elpa] externals/auctex 4611580 32/80: * tex-jp.el (AUCTeX-jp): Add keyword :link to info node., Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex a9eb155 37/80: Fix regression, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 4776fd0 25/80: ; Remove compatibility code for older emacsen, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 400b002 28/80: Remove obsolete codes, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex a8bbd1f 31/80: ; Fix document, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex ff688b9 33/80: Stop depreciated usage of undeclared dynamic variable, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 945ffaf 40/80: Update style/babel.el to package version 3.31, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 1b88eda 38/80: Fix autoload generation code (bug#35758), Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex b141ded 27/80: Remove compatibility code for xemacs, Tassilo Horn, 2019/10/16
- [AUCTeX-diffs] [elpa] externals/auctex 92c090d 30/80: Fix treatment of class and package options, Tassilo Horn, 2019/10/16