Mercurial > emacs
comparison lisp/textmodes/reftex.el @ 46612:7522419c4db0
Updated to reftex 4.17
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Mon, 22 Jul 2002 10:36:26 +0000 |
parents | 7a94f1c588c4 |
children | 060f433ebf11 |
comparison
equal
deleted
inserted
replaced
46611:ae5b4f42f14c | 46612:7522419c4db0 |
---|---|
1 ;;; reftex.el --- minor mode for doing \label, \ref, \cite, \index in LaTeX | 1 ;;; reftex.el --- minor mode for doing \label, \ref, \cite, \index in LaTeX |
2 ;; Copyright (c) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. | 2 ;; Copyright (c) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. |
3 | 3 |
4 ;; Author: Carsten Dominik <dominik@strw.LeidenUniv.nl> | 4 ;; Author: Carsten Dominik <dominik@science.uva.nl> |
5 ;; Version: 4.16 | 5 ;; Version: 4.17 |
6 ;; Keywords: tex | 6 ;; Keywords: tex |
7 | 7 |
8 ;; This file is part of GNU Emacs. | 8 ;; This file is part of GNU Emacs. |
9 | 9 |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | 10 ;; GNU Emacs is free software; you can redistribute it and/or modify |
298 ;;; ========================================================================= | 298 ;;; ========================================================================= |
299 ;;; | 299 ;;; |
300 ;;; Define the formal stuff for a minor mode named RefTeX. | 300 ;;; Define the formal stuff for a minor mode named RefTeX. |
301 ;;; | 301 ;;; |
302 | 302 |
303 (defconst reftex-version "RefTeX version 4.16" | 303 (defconst reftex-version "RefTeX version 4.17" |
304 "Version string for RefTeX.") | 304 "Version string for RefTeX.") |
305 | 305 |
306 (defvar reftex-mode nil | 306 (defvar reftex-mode nil |
307 "Determines if RefTeX mode is active.") | 307 "Determines if RefTeX mode is active.") |
308 (make-variable-buffer-local 'reftex-mode) | 308 (make-variable-buffer-local 'reftex-mode) |
310 (defvar reftex-mode-map (make-sparse-keymap) | 310 (defvar reftex-mode-map (make-sparse-keymap) |
311 "Keymap for RefTeX mode.") | 311 "Keymap for RefTeX mode.") |
312 | 312 |
313 (defvar reftex-mode-menu nil) | 313 (defvar reftex-mode-menu nil) |
314 (defvar reftex-syntax-table nil) | 314 (defvar reftex-syntax-table nil) |
315 (defvar reftex-syntax-table-for-bib nil) | |
315 | 316 |
316 (defvar reftex-auto-view-crossref-timer nil | 317 (defvar reftex-auto-view-crossref-timer nil |
317 "The timer used for auto-view-crossref.") | 318 "The timer used for auto-view-crossref.") |
318 | 319 |
319 ;;;###autoload | 320 ;;;###autoload |
369 (put 'reftex-auto-view-crossref 'initialized t)) | 370 (put 'reftex-auto-view-crossref 'initialized t)) |
370 (unless reftex-syntax-table | 371 (unless reftex-syntax-table |
371 (setq reftex-syntax-table (copy-syntax-table (syntax-table))) | 372 (setq reftex-syntax-table (copy-syntax-table (syntax-table))) |
372 (modify-syntax-entry ?\( "." reftex-syntax-table) | 373 (modify-syntax-entry ?\( "." reftex-syntax-table) |
373 (modify-syntax-entry ?\) "." reftex-syntax-table)) | 374 (modify-syntax-entry ?\) "." reftex-syntax-table)) |
375 (unless reftex-syntax-table-for-bib | |
376 (setq reftex-syntax-table-for-bib (copy-syntax-table reftex-syntax-table)) | |
377 (modify-syntax-entry ?\' "." reftex-syntax-table-for-bib) | |
378 (modify-syntax-entry ?\" "." reftex-syntax-table-for-bib) | |
379 (modify-syntax-entry ?\[ "." reftex-syntax-table-for-bib) | |
380 (modify-syntax-entry ?\] "." reftex-syntax-table-for-bib)) | |
374 (run-hooks 'reftex-mode-hook)) | 381 (run-hooks 'reftex-mode-hook)) |
375 ;; Mode was turned off | 382 ;; Mode was turned off |
376 (easy-menu-remove reftex-mode-menu))) | 383 (easy-menu-remove reftex-mode-menu))) |
377 | 384 |
378 (if (fboundp 'add-minor-mode) | 385 (if (fboundp 'add-minor-mode) |
608 ;;; Functions to compile the tables, reset the mode etc. | 615 ;;; Functions to compile the tables, reset the mode etc. |
609 | 616 |
610 ;; The following constants are derived from `reftex-label-alist'. | 617 ;; The following constants are derived from `reftex-label-alist'. |
611 | 618 |
612 ;; Prompt used for label type queries directed to the user. | 619 ;; Prompt used for label type queries directed to the user. |
613 (defconst reftex-type-query-prompt nil) | 620 (defvar reftex-type-query-prompt nil) |
614 | 621 |
615 ;; Help string for label type queries. | 622 ;; Help string for label type queries. |
616 (defconst reftex-type-query-help nil) | 623 (defvar reftex-type-query-help nil) |
617 | 624 |
618 ;; Alist relating label type to reference format. | 625 ;; Alist relating label type to reference format. |
619 (defconst reftex-typekey-to-format-alist nil) | 626 (defvar reftex-typekey-to-format-alist nil) |
620 | 627 |
621 ;; Alist relating label type to label prefix. | 628 ;; Alist relating label type to label prefix. |
622 (defconst reftex-typekey-to-prefix-alist nil) | 629 (defvar reftex-typekey-to-prefix-alist nil) |
623 | 630 |
624 ;; Alist relating environments or macros to label type and context regexp. | 631 ;; Alist relating environments or macros to label type and context regexp. |
625 (defconst reftex-env-or-mac-alist nil) | 632 (defvar reftex-env-or-mac-alist nil) |
626 | 633 |
627 ;; List of special environment parser functions | 634 ;; List of special environment parser functions |
628 (defconst reftex-special-env-parsers nil) | 635 (defvar reftex-special-env-parsers nil) |
629 | 636 |
630 ;; List of macros carrying a label. | 637 ;; List of macros carrying a label. |
631 (defconst reftex-label-mac-list nil) | 638 (defvar reftex-label-mac-list nil) |
632 | 639 |
633 ;; List of environments carrying a label. | 640 ;; List of environments carrying a label. |
634 (defconst reftex-label-env-list nil) | 641 (defvar reftex-label-env-list nil) |
635 | 642 |
636 ;; List of all typekey letters in use. | 643 ;; List of all typekey letters in use. |
637 (defconst reftex-typekey-list nil) | 644 (defvar reftex-typekey-list nil) |
638 | 645 |
639 ;; Alist relating magic words to a label type. | 646 ;; Alist relating magic words to a label type. |
640 (defconst reftex-words-to-typekey-alist nil) | 647 (defvar reftex-words-to-typekey-alist nil) |
641 | 648 |
642 ;; The last list-of-labels entry used in a reference. | 649 ;; The last list-of-labels entry used in a reference. |
643 (defvar reftex-last-used-reference (list nil nil nil nil)) | 650 (defvar reftex-last-used-reference (list nil nil nil nil)) |
644 | 651 |
645 ;; Alist relating index macros to other info. | 652 ;; Alist relating index macros to other info. |
646 (defconst reftex-key-to-index-macro-alist nil) | 653 (defvar reftex-key-to-index-macro-alist nil) |
647 ;; Prompt for index macro queries | 654 ;; Prompt for index macro queries |
648 (defconst reftex-query-index-macro-prompt nil) | 655 (defvar reftex-query-index-macro-prompt nil) |
649 ;; Help string for index macro queries | 656 ;; Help string for index macro queries |
650 (defconst reftex-query-index-macro-help nil) | 657 (defvar reftex-query-index-macro-help nil) |
651 | 658 |
652 ;; The message when follow-mode is suspended | 659 ;; The message when follow-mode is suspended |
653 (defconst reftex-no-follow-message | 660 (defvar reftex-no-follow-message |
654 "No follow-mode into unvisited file. Press SPC to visit it.") | 661 "No follow-mode into unvisited file. Press SPC to visit it.") |
655 (defconst reftex-no-info-message | 662 (defvar reftex-no-info-message |
656 "%s: info not available, use `\\[reftex-view-crossref]' to get it.") | 663 "%s: info not available, use `\\[reftex-view-crossref]' to get it.") |
657 | 664 |
658 ;; Global variables used for communication between functions. | 665 ;; Global variables used for communication between functions. |
659 (defvar reftex-default-context-position nil) | 666 (defvar reftex-default-context-position nil) |
660 (defvar reftex-location-start nil) | 667 (defvar reftex-location-start nil) |
1090 (append toc-levels | 1097 (append toc-levels |
1091 (get reftex-docstruct-symbol 'reftex-section-levels) | 1098 (get reftex-docstruct-symbol 'reftex-section-levels) |
1092 reftex-section-levels)) | 1099 reftex-section-levels)) |
1093 | 1100 |
1094 ;; Calculate the regular expressions | 1101 ;; Calculate the regular expressions |
1095 (let* ((wbol "\\(\\`\\|[\n\r]\\)[ \t]*") | 1102 (let* ( |
1103 ; (wbol "\\(\\`\\|[\n\r]\\)[ \t]*") | |
1104 (wbol "\\(\\`\\|[\n\r]\\)[ \t]*") | |
1096 (label-re "\\\\label{\\([^}]*\\)}") | 1105 (label-re "\\\\label{\\([^}]*\\)}") |
1097 (include-re (concat wbol "\\\\\\(include\\|input\\)[{ \t]+\\([^} \t\n\r]+\\)")) | 1106 (include-re (concat wbol |
1107 "\\\\\\(" | |
1108 (mapconcat 'identity | |
1109 reftex-include-file-commands "\\|") | |
1110 "\\)[{ \t]+\\([^} \t\n\r]+\\)")) | |
1098 (section-re | 1111 (section-re |
1099 (concat wbol "\\\\\\(" | 1112 (concat wbol "\\\\\\(" |
1100 (mapconcat (lambda (x) (regexp-quote (car x))) | 1113 (mapconcat (lambda (x) (regexp-quote (car x))) |
1101 reftex-section-levels-all "\\|") | 1114 reftex-section-levels-all "\\|") |
1102 "\\)\\*?\\(\\[[^]]*\\]\\)?[[{ \t\r\n]")) | 1115 "\\)\\*?\\(\\[[^]]*\\]\\)?[[{ \t\r\n]")) |