# HG changeset patch # User Karl Heuer # Date 877722823 0 # Node ID 6ebc3e300106495ebe26c336c3b9aa0f13f0ca85 # Parent fb907b54fe2621ebe92ca1135d3c05abf77b37f8 The menu now used toggle and radio for some items. (reftex-default-context-regexps): `caption' now prefers the optional short caption. (reftex-offer-label-menu): Fixed bug which could kill master buffer of external document. (reftex-select-item,reftex-get-buffer-visiting): Compatibility code works now the other way round. (reftex-select-external-document): Now gives a message when no external documents are available. (reftex-find-duplicate-labels): Single key strokes to exit or to do a query replace. Made more user friendly in general. (reftex-section-levels,reftex-default-context-regexps): Move definition of these variables to configuration section. diff -r fb907b54fe26 -r 6ebc3e300106 lisp/textmodes/reftex.el --- a/lisp/textmodes/reftex.el Fri Oct 24 19:50:35 1997 +0000 +++ b/lisp/textmodes/reftex.el Fri Oct 24 19:53:43 1997 +0000 @@ -304,9 +304,9 @@ ;; ;; Defining label environments ;; reftex-default-label-alist-entries ;; reftex-label-alist -;; reftex-use-text-after-label-as-context ;; reftex-section-levels ;; reftex-default-context-regexps +;; reftex-use-text-after-label-as-context ;; ;; Label insertion ;; reftex-insert-label-flags ;; reftex-derive-label-parameters @@ -424,7 +424,7 @@ ;; ;; The default settings of RefTeX ensure a safe ride for beginners and ;; casual users. However, when using RefTeX for a large project and/or on -;; a small computer, there are ways to improve speed and memory usage. +;; a small computer, there are ways to improve speed or memory usage. ;; ;; o RefTeX will load other parts of a multifile document as well as BibTeX ;; database files for lookup purposes. These buffers are kept, so that @@ -451,7 +451,7 @@ ;; o Even with partial scans enabled, RefTeX still has to make one full ;; scan, when you start working with a document. To avoid this, parsing ;; information can stored in a file. The file `MASTER.rel' is used for -;; storing information about a document with master file MASTER.tex. +;; storing information about a document with master file `MASTER.tex'. ;; It is written each time RefTeX parses (part of) the document, and ;; restored when you begin working with a document in a new editing ;; session. To use this feature, put into .emacs: @@ -940,7 +940,7 @@ 1000 means to get text after the last macro argument. - If a string, use as regexp to search *backward* from the label. Context is then the text following the end of the match. E.g. putting this to - \"\\\\\\\\caption{\" will use the caption in a figure or table + \"\\\\\\\\caption[[{]\" will use the caption in a figure or table environment. \"\\\\\\\\begin{eqnarray}\\\\|\\\\\\\\\\\\\\\\\" works for eqnarrays. - If any of `caption', `item', `eqnarray-like', `alignat-like', this @@ -1022,6 +1022,39 @@ (nth 0 x)))) reftex-label-alist-builtin))))) +;; LaTeX section commands and level numbers +(defcustom reftex-section-levels + '( + ("part" . 0) + ("chapter" . 1) + ("section" . 2) + ("subsection" . 3) + ("subsubsection" . 4) + ("paragraph" . 5) + ("subparagraph" . 6) + ("subsubparagraph" . 7) + ) + "Commands and levels used for defining sections in the document. +The car of each cons cell is the name of the section macro. The cdr is a +number indicating its level." + :group 'reftex-defining-label-environments + :set 'reftex-set-dirty + :type '(repeat + (cons (string :tag "sectioning macro" "") + (number :tag "level " 0)))) + +(defcustom reftex-default-context-regexps + '((caption . "\\\\\\(rot\\)?caption\\*?[[{]") + (item . "\\\\item\\(\\[[^]]*\\]\\)?") + (eqnarray-like . "\\\\begin{%s}\\|\\\\\\\\") + (alignat-like . "\\\\begin{%s}{[0-9]*}\\|\\\\\\\\")) +"Alist with default regular expressions for finding context. +The form (format regexp (regexp-quote environment)) is used to calculate +the final regular expression - so %s will be replaced with the environment +or macro." + :group 'reftex-defining-label-environments + :type '(repeat (cons (symbol) (regexp)))) + (defcustom reftex-use-text-after-label-as-context nil "*t means, grab context from directly after the \\label{..} macro. This is the fastest method for obtaining context of the label definition, but @@ -1477,6 +1510,8 @@ ;;; Define the formal stuff for a minor mode named RefTeX. ;;; +;; This file corresponds to RefTeX version 3.7 + (defvar reftex-mode nil "Determines if RefTeX minor mode is active.") (make-variable-buffer-local 'reftex-mode) @@ -1923,27 +1958,6 @@ (defvar reftex-find-label-regexp-format nil) (defvar reftex-find-label-regexp-format2 nil) -;; LaTeX section commands and level numbers -(defcustom reftex-section-levels - '( - ("part" . 0) - ("chapter" . 1) - ("section" . 2) - ("subsection" . 3) - ("subsubsection" . 4) - ("paragraph" . 5) - ("subparagraph" . 6) - ("subsubparagraph" . 7) - ) - "Commands and levels used for defining sections in the document. -The car of each cons cell is the name of the section macro. The cdr is a -number indicating its level." - :group 'reftex-defining-label-environments - :set 'reftex-set-dirty - :type '(repeat - (cons (string :tag "sectioning macro" "") - (number :tag "level " 0)))) - ;; The parser functions ---------------------------------- (defvar reftex-memory nil @@ -2728,7 +2742,7 @@ (setq xr-index (reftex-select-external-document xr-alist xr-index)) (setq buf (or (reftex-get-file-buffer-force - (cdr (nth xr-index xr-alist)) t) + (cdr (nth xr-index xr-alist))) (error "Cannot switch document")) prefix (or (car (nth xr-index xr-alist)) "") offset nil)) @@ -2752,6 +2766,7 @@ ;; Return index of an external document. (cond ((= (length xr-alist) 1) + (message "No external douments available") (ding) 0) ((= (length xr-alist) 2) (- 1 xr-index)) @@ -3380,6 +3395,7 @@ (reftex-access-scan-info t) (let ((master (reftex-TeX-master-file)) + (cnt 0) (dlist (mapcar '(lambda(x) @@ -3398,6 +3414,7 @@ (abbreviate-file-name (nth 3 x))) x1)) (list nil)))))) (reftex-uniquify (symbol-value reftex-docstruct-symbol))))) + (setq dlist (reftex-uniquify dlist)) (if (null dlist) (error "No duplicate labels in document")) (switch-to-buffer-other-window "*Duplicate Labels*") @@ -3405,16 +3422,26 @@ (setq TeX-master master) (erase-buffer) (insert " MULTIPLE LABELS IN CURRENT DOCUMENT:\n") - (insert " Move point to label and type `M-x reftex-change-label'\n" - " This will run a query-replace on the label and its references\n") + (insert + " Move point to label and type `r' to run a query-replace on the label\n" + " and its references. Type `q' to exit this buffer.\n\n") (insert " LABEL FILE\n") (insert " -------------------------------------------------------------\n") + (use-local-map (make-sparse-keymap)) + (local-set-key [?q] '(lambda () (interactive) + (kill-buffer (current-buffer)) (delete-window))) + (local-set-key [?r] 'reftex-change-label) (while dlist (when (and (car (car dlist)) (cdr (car dlist))) + (incf cnt) (insert (mapconcat '(lambda(x) x) (car dlist) "\n ") "\n")) (pop dlist)) - (goto-char (point-min)))) + (goto-char (point-min)) + (when (= cnt 0) + (kill-buffer (current-buffer)) + (delete-window) + (message "Document does not contain duplicate labels.")))) (defun reftex-all-assq (key list) ;; Return a list of all associations of KEY in LIST. Comparison with string= @@ -4555,10 +4582,10 @@ (setq last-key key) (setq key (car (cond + ((fboundp 'event-to-character) ; XEmacs + (mapcar 'event-to-character key-sq)) ((fboundp 'listify-key-sequence) ; Emacs (listify-key-sequence key-sq)) - ((fboundp 'event-to-character) ; XEmacs - (mapcar 'event-to-character key-sq)) (t (error "Please report this problem to dominik@strw.leidenuniv.nl"))))) (setq cmd (key-binding key-sq)) @@ -4939,6 +4966,7 @@ (progn (skip-chars-backward class) (point)) (progn (skip-chars-forward class) (point))))) +(defvar enable-multibyte-characters) (defun reftex-truncate (string ncols &optional ellipses padding) ;; Truncate a string to NCHAR characters. ;; Works fast with ASCII and correctly with Mule characters. @@ -5099,11 +5127,11 @@ (defun reftex-get-buffer-visiting (file) ;; return a buffer visiting FILE (cond - ((fboundp 'find-buffer-visiting) ; Emacs - (find-buffer-visiting file)) ((boundp 'find-file-compare-truenames) ; XEmacs (let ((find-file-compare-truenames t)) (get-file-buffer file))) + ((fboundp 'find-buffer-visiting) ; Emacs + (find-buffer-visiting file)) (t (error "Please report this problem to dominik@strw.leidenuniv.nl")))) (defun reftex-get-file-buffer-force (file &optional mark-to-kill) @@ -5283,18 +5311,6 @@ (not (null (symbol-value symbol)))) (set (symbol-value symbol) nil))))) -(defcustom reftex-default-context-regexps - '((caption . "\\\\\\(rot\\)?caption\\*?\\(\\[[^]]*\\]\\)?{") - (item . "\\\\item\\(\\[[^]]*\\]\\)?") - (eqnarray-like . "\\\\begin{%s}\\|\\\\\\\\") - (alignat-like . "\\\\begin{%s}{[0-9]*}\\|\\\\\\\\")) -"Alist with default regular expressions for finding context. -The form (format regexp (regexp-quote environment)) is used to calculate -the final regular expression - so %s will be replaced with the environment -or macro." - :group 'reftex-defining-label-environments - :type '(repeat (cons (symbol) (regexp)))) - (defun reftex-compute-ref-cite-tables () ;; Update ref and cite tables @@ -5490,6 +5506,22 @@ ["\\cite" reftex-citation t] ["View Crossref" reftex-view-crossref t] "----" + ("Parse Document" + ["Only this File" reftex-parse-one t] + ["Entire Document" reftex-parse-all (reftex-is-multi)] + ["Save to File" (reftex-access-parse-file 'write) + (> (length (symbol-value reftex-docstruct-symbol)) 0)] + ["Restore from File" (reftex-access-parse-file 'restore) + (reftex-access-parse-file 'readable)] + "----" + ["Enable Partial Scans" + (setq reftex-enable-partial-scans (not reftex-enable-partial-scans)) + :style toggle :selected reftex-enable-partial-scans] + ["Auto-Save Parse Info" + (setq reftex-save-parse-info (not reftex-save-parse-info)) + :style toggle :selected reftex-save-parse-info] + "---" + ["Reset RefTeX Mode" reftex-reset-mode t]) ("Multifile" ["Search Whole Document" reftex-search-document t] ["Replace in Document" reftex-query-replace-document t] @@ -5499,37 +5531,34 @@ "----" ["Find Duplicate Labels" reftex-find-duplicate-labels t] ["Change Label and Refs" reftex-change-label t]) - ("Parse Document" - ["Only this File" reftex-parse-one t] - ["Entire Document" reftex-parse-all (reftex-is-multi)] - ["Save to file" (reftex-access-parse-file 'write) - (> (length (symbol-value reftex-docstruct-symbol)) 0)] - ["Restore from File" (reftex-access-parse-file 'restore) - (reftex-access-parse-file 'readable)] - "----" - ["Turn Auto-Save On" (setq reftex-save-parse-info t) - (not reftex-save-parse-info)] - ["Turn Auto-Save Off" (setq reftex-save-parse-info nil) - reftex-save-parse-info] - "---" - ["Reset RefTeX Mode" reftex-reset-mode t]) - "----" - ["Customize RefTeX" reftex-customize t] - ("Set Citation Format" + ("Citation Options" + "Citation Style" ,@(mapcar (function (lambda (x) (vector (symbol-name (car x)) (list 'setq 'reftex-cite-format (list 'quote (car x))) - (list 'not (list 'eq 'reftex-cite-format - (list 'quote (car x))))))) - reftex-cite-format-builtin) + :style 'radio :selected + (list 'eq 'reftex-cite-format (list 'quote (car x)))))) + reftex-cite-format-builtin) "----" - ["Turn Comments On" (setq reftex-comment-citations t) - (not reftex-comment-citations)] - ["Turn Comments Off" (setq reftex-comment-citations nil) - reftex-comment-citations]) + "Bibinfo in Comments" + ["Attach Comments" + (setq reftex-comment-citations (not reftex-comment-citations)) + :style toggle :selected reftex-comment-citations] + "---" + "Sort Database Matches" + ["by Author" (setq reftex-sort-bibtex-matches 'author) + :style radio :selected (eq reftex-sort-bibtex-matches 'author)] + ["by Year" (setq reftex-sort-bibtex-matches 'year) + :style radio :selected (eq reftex-sort-bibtex-matches 'year)] + ["by Year, reversed" (setq reftex-sort-bibtex-matches 'reverse-year) + :style radio :selected (eq reftex-sort-bibtex-matches 'reverse-year)] + ["Not" (setq reftex-sort-bibtex-matches nil) + :style radio :selected (eq reftex-sort-bibtex-matches nil)]) + "----" + ["Customize RefTeX" reftex-customize t] "----" ["Show Documentation" reftex-show-commentary t]))