Mercurial > emacs
annotate lisp/textmodes/reftex.el @ 23607:6b2444d06348
(fortran-end-prog-re1): Fix the regexp.
author | Dave Love <fx@gnu.org> |
---|---|
date | Sun, 01 Nov 1998 16:52:39 +0000 |
parents | 608bc56ca20e |
children | b0fe513da546 |
rev | line source |
---|---|
22388 | 1 ;;; reftex.el --- Minor mode for doing \label, \ref and \cite in LaTeX |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2 ;; Copyright (c) 1997, 1998 Free Software Foundation, Inc. |
18050 | 3 |
4 ;; Author: Carsten Dominik <dominik@strw.LeidenUniv.nl> | |
5 ;; Keywords: tex | |
6 | |
7 ;; This file is part of GNU Emacs. | |
8 | |
9 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
10 ;; it under the terms of the GNU General Public License as published by | |
11 ;; the Free Software Foundation; either version 2, or (at your option) | |
12 ;; any later version. | |
13 | |
14 ;; GNU Emacs is distributed in the hope that it will be useful, | |
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 ;; GNU General Public License for more details. | |
18 | |
19 ;; You should have received a copy of the GNU General Public License | |
20 ;; along with GNU Emacs; see the file COPYING. If not, write to the | |
21 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
22 ;; Boston, MA 02111-1307, USA. | |
23 | |
24 ;;--------------------------------------------------------------------------- | |
25 ;; | |
26 ;;; Commentary: | |
27 ;; | |
18123 | 28 ;; RefTeX is a minor mode with distinct support for \ref, \label and |
29 ;; \cite commands in (multi-file) LaTeX documents. | |
18050 | 30 ;; Labels are created semi-automatically. Definition context of labels is |
31 ;; provided when creating a reference. Citations are simplified with | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
32 ;; efficient database lookup. A table of contents buffer provides easy |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
33 ;; access to any part of a document. |
18050 | 34 ;; |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
35 ;; |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
36 ;; INSTALLATION |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
37 ;; ------------ |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
38 ;; |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
39 ;; If you got reftex.el with an Emacs distribution, it is already |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
40 ;; installed. If not, follow the instructions in the INSTALL file of |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
41 ;; the distribution. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
42 ;; |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
43 ;; To turn RefTeX Mode on and off in a particular buffer, use |
18050 | 44 ;; `M-x reftex-mode'. |
45 ;; | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
46 ;; To turn on RefTeX Mode for all LaTeX files, add one of the following |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
47 ;; lines to your .emacs file: |
18050 | 48 ;; |
49 ;; (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode | |
50 ;; (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode | |
51 ;; | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
52 ;; |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
53 ;; DOCUMENTATION |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
54 ;; ------------- |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
55 ;; |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
56 ;; See below for a short summary of how to use RefTeX. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
57 ;; |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
58 ;; There is an extensive texinfo document describing RefTeX in detail. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
59 ;; When you are getting reftex.el with the Emacs distribution, the |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
60 ;; info files should already be installed. To view this |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
61 ;; documentation, use `M-x reftex-info RET'. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
62 ;; |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
63 ;; The documentation in various formats is also available at |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
64 ;; |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
65 ;; http://www.strw.leidenuniv.nl/~dominik/Tools/ |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
66 ;; |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
67 ;;--------------------------------------------------------------------------- |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
68 ;; |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
69 ;; RefTeX in a Nutshell |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
70 ;; ==================== |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
71 ;; |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
72 ;; 1. Labels and References |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
73 ;; RefTeX distinguishes labels for different environments. It knows |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
74 ;; about all standard environments (and many others), and can be |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
75 ;; configured to recognize any additional labeled environments you |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
76 ;; have defined yourself (variable REFTEX-LABEL-ALIST). |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
77 ;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
78 ;; * Creating Labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
79 ;; Type `C-c (' (`reftex-label') to insert a label at point. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
80 ;; RefTeX will either |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
81 ;; - derive a label from context (default for section labels) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
82 ;; - prompt for a label string (default for figures and |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
83 ;; tables) or |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
84 ;; - insert a simple label made of a prefix and a number (all |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
85 ;; other environments). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
86 ;; Which labels are created how is configurable (variable |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
87 ;; REFTEX-INSERT-LABEL-FLAGS). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
88 ;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
89 ;; * Referencing Labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
90 ;; In order to make a reference, type `C-c )' |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
91 ;; (`reftex-reference'). This shows an outline of the document |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
92 ;; with all labels of a certain type (figure, equation,...) and |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
93 ;; context of the label definition. Selecting a label inserts a |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
94 ;; `\ref{LABEL}' macro into the original buffer. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
95 ;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
96 ;; 2. Citations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
97 ;; After typing `C-c [' (`reftex-citation'), RefTeX will let you |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
98 ;; specify a regular expression to search in current BibTeX database |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
99 ;; files (as specified in the `\bibliography' command) and pull out a |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
100 ;; list of matches for you to choose from. The list is *formatted* |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
101 ;; and sorted. The selected article is referenced as `\cite{KEY}' |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
102 ;; (customizable with variable REFTEX-CITE-FORMAT). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
103 ;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
104 ;; 3. Viewing Cross References |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
105 ;; When no other message occupies the echo area and point is idle on |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
106 ;; the argument of a `\ref' or `\cite' macro, the echo area will |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
107 ;; display information about the citation/cross reference. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
108 ;; With point on the argument of such a macro, press `C-c &' |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
109 ;; (`reftex-view-crossref'), or click with `S-mouse-2' on the macro |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
110 ;; argument. This will display the corresponding label definition or |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
111 ;; BibTeX database entry in another window. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
112 ;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
113 ;; 4. Table of Contents |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
114 ;; Typing `C-c =' (`reftex-toc') will show a table of contents of the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
115 ;; document. From that buffer, you can jump quickly to every part of |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
116 ;; your document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
117 ;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
118 ;; 5. Multifile Documents |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
119 ;; Multifile Documents are fully supported. RefTeX will provide cross |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
120 ;; referencing information from all files which are part of the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
121 ;; document, and even across document borders (`xr.sty'). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
122 ;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
123 ;; 6. Document Parsing |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
124 ;; RefTeX needs to parse the document in order to find labels and |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
125 ;; other information. It does it automatically once, when you start |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
126 ;; working with a document. RefTeX updates its lists internally when |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
127 ;; you make a new label with `reftex-label'. To enforce reparsing, |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
128 ;; call any of the commands described above with a raw `C-u' prefix, |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
129 ;; or press the `r' key in the label selection buffer or the table of |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
130 ;; contents buffer. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
131 ;; |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
132 ;; 7. Useful Settings |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
133 ;; To make RefTeX faster for large documents include, and to integrate |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
134 ;; it with AUCTeX, try these: |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
135 ;; |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
136 ;; (setq reftex-enable-partial-scans t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
137 ;; (setq reftex-save-parse-info t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
138 ;; (setq reftex-use-multiple-selection-buffers t) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
139 ;; (setq reftex-plug-into-AUCTeX t) |
18050 | 140 ;; |
141 ;;--------------------------------------------------------------------------- | |
142 ;; | |
143 ;; AUTHOR | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
144 ;; ====== |
18050 | 145 ;; |
146 ;; Carsten Dominik <dominik@strw.LeidenUniv.nl> | |
147 ;; | |
148 ;; with contributions from Stephen Eglen | |
149 ;; | |
150 ;; The newest version of RefTeX can be found at | |
151 ;; | |
152 ;; http://www.strw.leidenuniv.nl/~dominik/Tools/ | |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
153 ;; ftp://ftp.strw.leidenuniv.nl/pub/dominik/ |
18050 | 154 ;; |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
155 ;; At that site you can also get version 3.22 of RefTeX which is still |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
156 ;; compatible with Emacs 19. The file you are reading now as well as the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
157 ;; ones distributed with Emacs 20 are not. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
158 ;; |
18050 | 159 ;; THANKS TO: |
160 ;; --------- | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
161 ;; Thanks to the people on the Net who have used RefTeX and helped |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
162 ;; developing it with their reports. In particular thanks to |
18050 | 163 ;; |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
164 ;; F. Burstall, Alastair Burt, Soren Dayton, Stephen Eglen, |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
165 ;; Karl Eichwalder, Peter Galbraith, Dieter Kraft, Kai Grossjohann, |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
166 ;; Adrian Lanz, Rory Molinari, Laurent Mugnier, Sudeep Kumar Palat, |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
167 ;; Daniel Polani, Robin Socha, Richard Stanton, Allan Strand, |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
168 ;; Jan Vroonhof, Christoph Wedler, Alan Williams. |
18050 | 169 ;; |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
170 ;; Finally thanks to Uwe Bolick who first got me (some years ago) into |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
171 ;; supporting LaTeX labels and references with an Editor (which was |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
172 ;; MicroEmacs at the time). |
18219
aaeaae005e98
Updated documentation at several points in the file.
Richard M. Stallman <rms@gnu.org>
parents:
18123
diff
changeset
|
173 ;; |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
174 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
175 ;; |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
176 ;;;;;; |
18050 | 177 |
178 ;;; Code: | |
179 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
180 (eval-when-compile (require 'cl)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
181 |
18050 | 182 ;; Stuff that needs to be there when we use defcustom |
183 (require 'custom) | |
184 | |
185 (defvar reftex-tables-dirty t | |
186 "Flag showing if tables need to be re-computed.") | |
187 | |
188 (eval-and-compile | |
189 (defun reftex-set-dirty (symbol value) | |
190 (setq reftex-tables-dirty t) | |
191 (set symbol value))) | |
192 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
193 ;;; ====================================================================== |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
194 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
195 ;;; Configuration Section |
18050 | 196 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
197 ;; Define the two constants which are needed during compilation |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
198 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
199 (eval-and-compile |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
200 (defconst reftex-label-alist-builtin |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
201 '( |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
202 ;; Some aliases, mostly for backward compatibility |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
203 (Sideways "Alias for -->rotating" (rotating)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
204 (AMSTeX "amsmath with eqref macro" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
205 ((nil ?e nil "~\\eqref{%s}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
206 amsmath)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
207 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
208 ;; Individual package defaults |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
209 (amsmath "AMS-LaTeX math environments" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
210 (("align" ?e nil nil eqnarray-like) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
211 ("gather" ?e nil nil eqnarray-like) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
212 ("multline" ?e nil nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
213 ("flalign" ?e nil nil eqnarray-like) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
214 ("alignat" ?e nil nil alignat-like) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
215 ("xalignat" ?e nil nil alignat-like) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
216 ("xxalignat" ?e nil nil alignat-like) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
217 ("subequations" ?e nil nil t))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
218 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
219 (endnotes "The \\endnote macro" |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
220 (("\\endnote[]{}" ?n nil nil 2 (regexp "Endnotes?")))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
221 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
222 (fancybox "The Beqnarray environment" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
223 (("Beqnarray" ?e nil nil eqnarray-like))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
224 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
225 (floatfig "The floatingfigure environment" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
226 (("floatingfigure" ?f nil nil caption))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
227 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
228 (longtable "The longtable environment" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
229 (("longtable" ?t nil nil caption))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
230 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
231 (picinpar "The figwindow and tabwindow environments" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
232 (("figwindow" ?f nil nil 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
233 ("tabwindow" ?f nil nil 1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
234 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
235 (rotating "Sidewaysfigure and table" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
236 (("sidewaysfigure" ?f nil nil caption) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
237 ("sidewaystable" ?t nil nil caption))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
238 |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
239 (sidecap "CSfigure and SCtable" |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
240 (("SCfigure" ?f nil nil caption) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
241 ("SCtable" ?t nil nil caption))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
242 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
243 (subfigure "Subfigure environments/macro" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
244 (("subfigure" ?f nil nil caption) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
245 ("subfigure*" ?f nil nil caption) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
246 ("\\subfigure[]{}" ?f nil nil 1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
247 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
248 (supertab "Supertabular environment" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
249 (("supertabular" ?t nil nil "\\tablecaption{"))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
250 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
251 (wrapfig "The wrapfigure environment" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
252 (("wrapfigure" ?f nil nil caption))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
253 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
254 ;; The LaTeX core stuff |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
255 (LaTeX "LaTeX default environments" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
256 (("section" ?s "sec:" "~\\ref{%s}" (nil . t) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
257 (regexp "parts?" "chapters?" "chap\\." "sections?" "sect?\\." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
258 "paragraphs?" "par\\." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
259 "\\\\S" "\247" "Teile?" "Kapitel" "Kap\\." "Abschnitte?" |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
260 "appendi\\(x\\|ces\\)" "App\\." "Anh\"?ange?" "Anh\\.")) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
261 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
262 ("enumerate" ?i "item:" "~\\ref{%s}" item |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
263 (regexp "items?" "Punkte?")) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
264 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
265 ("equation" ?e "eq:" "~(\\ref{%s})" t |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
266 (regexp "equations?" "eqs?\\." "eqn\\." "Gleichung\\(en\\)?" "Gl\\.")) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
267 ("eqnarray" ?e "eq:" nil eqnarray-like) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
268 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
269 ("figure" ?f "fig:" "~\\ref{%s}" caption |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
270 (regexp "figure?[sn]?" "figs?\\." "Abbildung\\(en\\)?" "Abb\\.")) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
271 ("figure*" ?f nil nil caption) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
272 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
273 ("table" ?t "tab:" "~\\ref{%s}" caption |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
274 (regexp "tables?" "tab\\." "Tabellen?")) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
275 ("table*" ?t nil nil caption) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
276 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
277 ("\\footnote[]{}" ?n "note:" "~\\ref{%s}" 2 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
278 (regexp "footnotes?" "notes?" "Anmerkung\\(en\\)?" "Anm\\.")) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
279 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
280 ("any" ?\ " " "~\\ref{%s}" nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
281 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
282 ;; The label macro is hard coded, but it *could* be defined like this: |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
283 ;;("\\label{*}" nil nil nil nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
284 )) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
285 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
286 ) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
287 "The default label environment descriptions. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
288 Lower-case symbols correspond to a style file of the same name in the LaTeX |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
289 distribution. Mixed-case symbols are convenience aliases.") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
290 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
291 (defconst reftex-cite-format-builtin |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
292 '( |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
293 (default "Default macro \\cite{%l}" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
294 "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
295 (natbib "The Natbib package" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
296 ((?\C-m . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
297 (?t . "\\citet{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
298 (?T . "\\citet*{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
299 (?p . "\\citep{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
300 (?P . "\\citep*{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
301 (?e . "\\citep[e.g.][]{%l}") |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
302 (?s . "\\citep[see][]{%l}") |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
303 (?a . "\\citeauthor{%l}") |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
304 (?A . "\\citeauthor*{%l}") |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
305 (?y . "\\citeyear{%l}"))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
306 (harvard "The Harvard package" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
307 ((?\C-m . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
308 (?p . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
309 (?t . "\\citeasnoun{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
310 (?n . "\\citeasnoun{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
311 (?s . "\\possessivecite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
312 (?e . "\\citeaffixed{%l}{?}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
313 (?y . "\\citeyear{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
314 (?a . "\\citename{%l}"))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
315 (chicago "The Chicago package" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
316 ((?\C-m . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
317 (?t . "\\citeN{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
318 (?T . "\\shortciteN{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
319 (?p . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
320 (?P . "\\shortcite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
321 (?a . "\\citeA{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
322 (?A . "\\shortciteA{%l}") |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
323 (?y . "\\citeyear{%l}"))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
324 (astron "The Astron package" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
325 ((?\C-m . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
326 (?p . "\\cite{%l}" ) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
327 (?t . "%2a (\\cite{%l})"))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
328 (author-year "Do-it-yourself Author-year" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
329 ((?\C-m . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
330 (?t . "%2a (%y)\\nocite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
331 (?p . "(%2a %y\\nocite{%l})"))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
332 (locally "Full info in parenthesis" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
333 "(%2a %y, %j %v, %P, %e: %b, %u, %s %<)") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
334 ) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
335 "Builtin versions of the citation format. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
336 The following conventions are valid for all alist entries: |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
337 `?\C-m' should always point to a straight \\cite{%l} macro. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
338 `?t' should point to a textual citation (citation as a noun). |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
339 `?p' should point to a parenthetical citation.") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
340 ) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
341 |
18050 | 342 ;; Configuration Variables and User Options for RefTeX ------------------ |
343 | |
344 (defgroup reftex nil | |
345 "LaTeX label and citation support." | |
346 :tag "RefTeX" | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
347 :link '(url-link :tag "Home Page" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
348 "http://strw.leidenuniv.nl/~dominik/Tools/") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
349 :link '(emacs-commentary-link :tag "Commentary in reftex.el" "reftex.el") |
18050 | 350 :prefix "reftex-" |
351 :group 'tex) | |
352 | |
353 (defgroup reftex-label-support nil | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
354 "Support for creation, insertion and referencing of labels in LaTeX." |
18050 | 355 :group 'reftex) |
356 | |
357 (defgroup reftex-defining-label-environments nil | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
358 "Definition of environments and macros to do with label." |
18050 | 359 :group 'reftex-label-support) |
360 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
361 (defcustom reftex-default-label-alist-entries |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
362 '(amsmath endnotes fancybox floatfig longtable picinpar |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
363 rotating sidecap subfigure supertab wrapfig LaTeX) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
364 "Default label alist specifications. LaTeX should be the last entry. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
365 This list describes the default label environments RefTeX should always use. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
366 It is probably a mistake to remove the LaTeX symbol from this list. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
367 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
368 The options include: |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
369 LaTeX The standard LaTeX environments. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
370 Sideways The sidewaysfigure and sidewaystable environments. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
371 AMSTeX The math environments in the AMS-LaTeX amsmath package. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
372 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
373 For the full list of options, try |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
374 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
375 M-x customize-variable RET reftex-default-label-alist-entries RET." |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
376 :group 'reftex-defining-label-environments |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
377 :set 'reftex-set-dirty |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
378 :type `(set |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
379 :indent 4 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
380 :inline t |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
381 :greedy t |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
382 ,@(mapcar |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
383 (function |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
384 (lambda (x) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
385 (list 'const ':tag (concat (symbol-name (nth 0 x)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
386 ": " (nth 1 x)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
387 (nth 0 x)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
388 reftex-label-alist-builtin))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
389 |
18050 | 390 (defcustom reftex-label-alist nil |
18123 | 391 "Alist with information on environments for \\label-\\ref use. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
392 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
393 This docstring is easier to understand after reading the configuration |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
394 examples in `reftex.el'. Looking at the builtin defaults in the constant |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
395 `reftex-label-alist-builtin' may also be instructive. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
396 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
397 Set this variable to define additions and changes to the default. The only |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
398 things you MUST NOT change is that `?s' is the type indicator for section |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
399 labels, and SPC for the `any' label type. These are hard-coded at other |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
400 places in the code. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
401 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
402 Each list entry describes either an environment carrying a counter for use |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
403 with \\label and \\ref, or a LaTeX macro defining a label as (or inside) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
404 one of its arguments. The elements of each list entry are: |
18050 | 405 |
406 0. Name of the environment (like \"table\") or macro (like \"\\\\myfig\"). | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
407 For macros, indicate the macro arguments for best results, as in |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
408 \"\\\\myfig[]{}{}{*}{}\". Use square brackets for optional arguments, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
409 a star to mark the label argument, if any. The macro does not have to |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
410 have a label argument - you could also use \\label{..} inside one of |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
411 its arguments. |
18050 | 412 Special names: `section' for section labels, `any' to define a group |
413 which contains all labels. | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
414 This may also be nil if the entry is only meant to change some settings |
18050 | 415 associated with the type indicator character (see below). |
416 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
417 1. Type indicator character, like `?t', must be a printable ASCII character. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
418 The type indicator is a single character which defines a label type. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
419 Any label inside the environment or macro is assumed to belong to this |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
420 type. The same character may occur several times in this list, to cover |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
421 cases in which different environments carry the same label type (like |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
422 `equation' and `eqnarray'). |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
423 If the type indicator is nil and the macro has a label argument {*}, |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
424 the macro defines neutral labels just like \label. In this case |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
425 the reminder of this entry is ignored. |
18050 | 426 |
427 2. Label prefix string, like \"tab:\". | |
18220
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
428 The prefix is a short string used as the start of a label. It may be the |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
429 empty string. The prefix may contain the following `%' escapes: |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
430 %f Current file name with directory and extension stripped. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
431 %F Current file name relative to directory of master file. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
432 %u User login name, on systems which support this. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
433 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
434 Example: In a file `intro.tex', \"eq:%f:\" will become \"eq:intro:\"). |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
435 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
436 3. Format string for reference insert in buffer. `%s' will be replaced by |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
437 the label. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
438 When the format starts with `~', the `~' will only be inserted if |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
439 there is not already a whitespace before point. |
18050 | 440 |
441 4. Indication on how to find the short context. | |
18220
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
442 - If nil, use the text following the \\label{...} macro. |
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
443 - If t, use |
18050 | 444 - the section heading for section labels. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
445 - text following the \\begin{...} statement of environments. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
446 (not a good choice for environments like eqnarray or enumerate, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
447 where one has several labels in a single environment). |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
448 - text after the macro name (starting with the first arg) for macros. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
449 - If an integer, use the nth argument of the macro. As a special case, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
450 1000 means to get text after the last macro argument. |
18220
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
451 - If a string, use as regexp to search *backward* from the label. Context |
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
452 is then the text following the end of the match. E.g. putting this to |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
453 \"\\\\\\\\caption[[{]\" will use the caption in a figure or table |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
454 environment. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
455 \"\\\\\\\\begin{eqnarray}\\\\|\\\\\\\\\\\\\\\\\" works for eqnarrays. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
456 - If any of `caption', `item', `eqnarray-like', `alignat-like', this |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
457 symbol will internally be translated into an appropriate regexp |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
458 (see also the variable `reftex-default-context-regexps'). |
18050 | 459 - If a function, call this function with the name of the environment/macro |
18220
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
460 as argument. On call, point will be just after the \\label macro. The |
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
461 function is expected to return a suitable context string. It should |
18050 | 462 throw an exception (error) when failing to find context. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
463 As an example, here is a function returning the 10 chars following |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
464 the label macro as context: |
18050 | 465 |
466 (defun my-context-function (env-or-mac) | |
467 (if (> (point-max) (+ 10 (point))) | |
468 (buffer-substring (point) (+ 10 (point))) | |
469 (error \"Buffer too small\"))) | |
470 | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
471 Label context is used in two ways by RefTeX: For display in the label |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
472 menu, and to derive a label string. If you want to use a different |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
473 method for each of these, specify them as a dotted pair. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
474 E.g. `(nil . t)' uses the text after the label (nil) for display, and |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
475 text from the default position (t) to derive a label string. This is |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
476 actually used for section labels. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
477 |
18220
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
478 Setting the variable `reftex-use-text-after-label-as-context' to t |
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
479 overrides the setting here. |
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
480 |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
481 5. List of magic words which identify a reference to be of this type. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
482 If the word before point is equal to one of these words when calling |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
483 `reftex-reference', the label list offered will be automatically |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
484 restricted to labels of the correct type. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
485 If the first element of this wordlist is the symbol `regexp', the |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
486 strings are interpreted as regular expressions. RefTeX will add |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
487 a \"\\\\W\" to the beginning and other stuff to the end of the regexp. |
18050 | 488 |
489 If the type indicator characters of two or more entries are the same, RefTeX | |
490 will use | |
491 - the first non-nil format and prefix | |
492 - the magic words of all involved entries. | |
493 | |
18220
36a61aa59b9d
(tex-main-file, outline-minor-mode): Add defvars.
Richard M. Stallman <rms@gnu.org>
parents:
18219
diff
changeset
|
494 Any list entry may also be a symbol. If that has an association in |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
495 `reftex-label-alist-builtin', the cddr of that association is spliced into the |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
496 list. However, builtin defaults should normally be set with the variable |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
497 `reftex-default-label-alist-entries." |
18050 | 498 :group 'reftex-defining-label-environments |
499 :set 'reftex-set-dirty | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
500 :type |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
501 `(repeat |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
502 (choice :tag "Package or Detailed " |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
503 :value ("" ?a nil nil nil nil) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
504 (list :tag "Detailed Entry" |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
505 :value ("" ?a nil nil nil nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
506 (choice :tag "Environment or \\macro " |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
507 (const :tag "Ignore, just use typekey" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
508 (string "")) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
509 (choice :tag "Type specification " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
510 (const :tag "unspecified, like in \\label" nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
511 (character :tag "Char " ?a)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
512 (choice :tag "Label prefix string " |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
513 (const :tag "Default" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
514 (string :tag "String" "lab:")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
515 (choice :tag "Label reference format" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
516 (const :tag "Default" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
517 (string :tag "String" "~\\ref{%s}")) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
518 (choice :tag "Context method " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
519 (const :tag "Default position" t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
520 (const :tag "After label" nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
521 (number :tag "Macro arg nr" 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
522 (regexp :tag "Regexp" "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
523 (const :tag "Caption in float" caption) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
524 (const :tag "Item in list" item) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
525 (const :tag "Eqnarray-like" eqnarray-like) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
526 (const :tag "Alignat-like" alignat-like) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
527 (symbol :tag "Function" my-func)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
528 (repeat :tag "Magic words" :extra-offset 2 (string))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
529 (choice |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
530 :tag "Package" |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
531 :value AMSTeX |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
532 ,@(mapcar |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
533 (function |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
534 (lambda (x) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
535 (list 'const ':tag (concat (symbol-name (nth 0 x))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
536 (nth 0 x)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
537 reftex-label-alist-builtin))))) |
18050 | 538 |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
539 ;; LaTeX section commands and level numbers |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
540 (defcustom reftex-section-levels |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
541 '( |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
542 ("part" . 0) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
543 ("chapter" . 1) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
544 ("section" . 2) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
545 ("subsection" . 3) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
546 ("subsubsection" . 4) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
547 ("paragraph" . 5) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
548 ("subparagraph" . 6) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
549 ("subsubparagraph" . 7) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
550 ) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
551 "Commands and levels used for defining sections in the document. |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
552 The car of each cons cell is the name of the section macro. The cdr is a |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
553 number indicating its level." |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
554 :group 'reftex-defining-label-environments |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
555 :set 'reftex-set-dirty |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
556 :type '(repeat |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
557 (cons (string :tag "sectioning macro" "") |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
558 (number :tag "level " 0)))) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
559 |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
560 (defcustom reftex-default-context-regexps |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
561 '((caption . "\\\\\\(rot\\)?caption\\*?[[{]") |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
562 (item . "\\\\item\\(\\[[^]]*\\]\\)?") |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
563 (eqnarray-like . "\\\\begin{%s}\\|\\\\\\\\") |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
564 (alignat-like . "\\\\begin{%s}{[0-9]*}\\|\\\\\\\\")) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
565 "Alist with default regular expressions for finding context. |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
566 The form (format regexp (regexp-quote environment)) is used to calculate |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
567 the final regular expression - so %s will be replaced with the environment |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
568 or macro." |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
569 :group 'reftex-defining-label-environments |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
570 :type '(repeat (cons (symbol) (regexp)))) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
571 |
18050 | 572 (defcustom reftex-use-text-after-label-as-context nil |
573 "*t means, grab context from directly after the \\label{..} macro. | |
574 This is the fastest method for obtaining context of the label definition, but | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
575 requires discipline when placing labels. Setting this variable to t takes |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
576 precedence over the individual settings in `reftex-label-alist'. |
18050 | 577 This variable may be set to t, nil, or a string of label type letters |
578 indicating the label types for which it should be true." | |
579 :group 'reftex-defining-label-environments | |
580 :set 'reftex-set-dirty | |
581 :type '(choice | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
582 (const :tag "on" t) (const :tag "off" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
583 (string :tag "Selected label types"))) |
18050 | 584 |
585 ;; Label insertion | |
586 | |
587 (defgroup reftex-making-and-inserting-labels nil | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
588 "Options on how to create new labels." |
18050 | 589 :group 'reftex-label-support) |
590 | |
591 (defcustom reftex-insert-label-flags '("s" "sft") | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
592 "Flags governing label insertion. First flag DERIVE, second flag PROMPT. |
18050 | 593 |
594 If DERIVE is t, RefTeX will try to derive a sensible label from context. | |
595 A section label for example will be derived from the section heading. | |
596 The conversion of the context to a legal label is governed by the | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
597 specifications given in `reftex-derive-label-parameters'. |
18050 | 598 If RefTeX fails to derive a label, it will prompt the user. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
599 If DERIVE is nil, the label generated will consist of the prefix and a |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
600 unique number, like `eq:23'. |
18050 | 601 |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
602 If PROMPT is t, the user will be prompted for a label string. The prompt will |
18050 | 603 already contain the prefix, and (if DERIVE is t) a default label derived from |
604 context. When PROMPT is nil, the default label will be inserted without | |
605 query. | |
606 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
607 So the combination of DERIVE and PROMPT controls label insertion. Here is a |
18050 | 608 table describing all four possibilities: |
609 | |
610 DERIVE PROMPT ACTION | |
611 ------------------------------------------------------------------------- | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
612 nil nil Insert simple label, like eq:22 or sec:13. No query. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
613 nil t Prompt for label. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
614 t nil Derive a label from context and insert without query. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
615 t t Derive a label from context and prompt for confirmation. |
18050 | 616 |
617 Each flag may be set to t, nil, or a string of label type letters | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
618 indicating the label types for which it should be true. The strings work |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
619 like character classes. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
620 Thus, the combination may be set differently for each label type. The |
18050 | 621 default settings \"s\" and \"sft\" mean: Derive section labels from headings |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
622 (with confirmation). Prompt for figure and table labels. Use simple labels |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
623 without confirmation for everything else. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
624 The available label types are: s (section), f (figure), t (table), i (item), |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
625 e (equation), n (footnote), plus any definitions in `reftex-label-alist'." |
18050 | 626 :group 'reftex-making-and-inserting-labels |
627 :type '(list (choice :tag "Derive label from context" | |
628 (const :tag "always" t) | |
629 (const :tag "never" nil) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
630 (string :tag "selected label types" "")) |
18050 | 631 (choice :tag "Prompt for label string " |
632 :entry-format " %b %v" | |
633 (const :tag "always" t) | |
634 (const :tag "never" nil) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
635 (string :tag "selected label types" "")))) |
18050 | 636 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
637 (defcustom reftex-string-to-label-function 'reftex-string-to-label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
638 "Function to turn an arbitrary string into a legal label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
639 RefTeX's default function uses the variable `reftex-derive-label-parameters'." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
640 :group 'reftex-making-and-inserting-labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
641 :type 'symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
642 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
643 (defcustom reftex-translate-to-ascii-function 'reftex-latin1-to-ascii |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
644 "Filter function which will process a context string before it is used |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
645 to derive a label from it. The intended application is to convert ISO or |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
646 Mule characters into something legal in labels. The default function |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
647 removes the accents from Latin-1 characters. X-Symbol (>=2.6) sets this |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
648 variable to the much more general `x-symbol-translate-to-ascii'." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
649 :group 'reftex-making-and-inserting-labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
650 :type 'symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
651 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
652 (defcustom reftex-derive-label-parameters '(3 20 t 1 "-" |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
653 ("the" "on" "in" "off" "a" "for" "by" "of" "and" "is" "to") t) |
18050 | 654 "Parameters for converting a string into a label. |
655 NWORDS Number of words to use. | |
656 MAXCHAR Maximum number of characters in a label string. | |
657 ILLEGAL nil: Throw away any words containing characters illegal in labels. | |
658 t: Throw away only the illegal characters, not the whole word. | |
659 ABBREV nil: Never abbreviate words. | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
660 t: Always abbreviate words (see `reftex-abbrev-parameters'). |
18050 | 661 not t and not nil: Abbreviate words if necessary to shorten |
662 label string below MAXCHAR. | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
663 SEPARATOR String separating different words in the label. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
664 IGNOREWORDS List of words which should not be part of labels. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
665 DOWNCASE t: Downcase words before using them." |
18050 | 666 :group 'reftex-making-and-inserting-labels |
667 :type '(list (integer :tag "Number of words " 3) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
668 (integer :tag "Maximum label length " 20) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
669 (choice :tag "Illegal characters in words" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
670 (const :tag "throw away entire word" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
671 (const :tag "throw away single chars" t)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
672 (choice :tag "Abbreviate words " |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
673 (const :tag "never" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
674 (const :tag "always" t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
675 (const :tag "when label is too long" 1)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
676 (string :tag "Separator between words " "-") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
677 (repeat :tag "Ignore words" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
678 :entry-format " %i %d %v" |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
679 (string :tag "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
680 (option (boolean :tag "Downcase words ")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
681 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
682 (defcustom reftex-label-illegal-re "[^-a-zA-Z0-9_+=:;,.]" |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
683 "Regexp matching characters not legal in labels." |
18050 | 684 :group 'reftex-making-and-inserting-labels |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
685 :type '(regexp :tag "Regular Expression")) |
18050 | 686 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
687 (defcustom reftex-abbrev-parameters '(4 2 "^aeiou" "aeiou") |
18050 | 688 "Parameters for abbreviation of words. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
689 MIN-CHARS Minimum number of characters remaining after abbreviation. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
690 MIN-KILL Minimum number of characters to remove when abbreviating words. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
691 BEFORE Character class before abbrev point in word. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
692 AFTER Character class after abbrev point in word." |
18050 | 693 :group 'reftex-making-and-inserting-labels |
694 :type '(list | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
695 (integer :tag "Minimum chars per word" 4) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
696 (integer :tag "Shorten by at least " 2) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
697 (string :tag "cut before char class " "^saeiou") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
698 (string :tag "cut after char class " "aeiou"))) |
18050 | 699 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
700 (defcustom reftex-format-label-function nil |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
701 "Function which produces the string to insert as a label definition. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
702 Normally should be nil, unless you want to do something fancy. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
703 The function will be called with two arguments, the LABEL and the DEFAULT |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
704 FORMAT, which usually is `\label{%s}'. The function should return the |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
705 string to insert into the buffer." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
706 :group 'reftex-making-and-inserting-labels |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
707 :type 'function) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
708 |
18050 | 709 ;; Label referencing |
710 | |
711 (defgroup reftex-referencing-labels nil | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
712 "Options on how to reference labels." |
18050 | 713 :group 'reftex-label-support) |
714 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
715 (eval-and-compile |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
716 (defconst reftex-tmp |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
717 '((const :tag "on" t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
718 (const :tag "off" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
719 (string :tag "Selected label types")))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
720 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
721 (defcustom reftex-label-menu-flags '(t t nil nil nil nil t nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
722 "List of flags governing the label menu makeup. |
18050 | 723 The flags are: |
724 | |
725 TABLE-OF-CONTENTS Show the labels embedded in a table of context. | |
726 SECTION-NUMBERS Include section numbers (like 4.1.3) in table of contents. | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
727 COUNTERS Show counters. This just numbers the labels in the menu. |
18050 | 728 NO-CONTEXT Non-nil means do NOT show the short context. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
729 FOLLOW Follow full context in other window. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
730 SHOW-COMMENTED Show labels from regions which are commented out. |
21115
fea2f6a2818d
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21114
diff
changeset
|
731 MATCH-IN-TOC Obsolete flag. |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
732 SHOW FILES Show begin and end of included files. |
18050 | 733 |
734 Each of these flags can be set to t or nil, or to a string of type letters | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
735 indicating the label types for which it should be true. These strings work |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
736 like character classes in regular expressions. Thus, setting one of the |
18050 | 737 flags to \"sf\" makes the flag true for section and figure labels, nil |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
738 for everything else. Setting it to \"^sf\" makes it the other way round. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
739 The available label types are: s (section), f (figure), t (table), i (item), |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
740 e (equation), n (footnote), plus any definitions in `reftex-label-alist'. |
18050 | 741 |
742 Most options can also be switched from the label menu itself - so if you | |
743 decide here to not have a table of contents in the label menu, you can still | |
744 get one interactively during selection from the label menu." | |
745 :group 'reftex-referencing-labels | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
746 :type |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
747 `(list |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
748 (choice :tag "Embed in table of contents " ,@reftex-tmp) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
749 (choice :tag "Show section numbers " ,@reftex-tmp) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
750 (choice :tag "Show individual counters " ,@reftex-tmp) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
751 (choice :tag "Hide short context " ,@reftex-tmp) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
752 (choice :tag "Follow context in other window " ,@reftex-tmp) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
753 (choice :tag "Show commented labels " ,@reftex-tmp) |
21115
fea2f6a2818d
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21114
diff
changeset
|
754 (choice :tag "Obsolete flag, Don't use. " ,@reftex-tmp) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
755 (choice :tag "Show begin/end of included files" ,@reftex-tmp))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
756 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
757 (defcustom reftex-vref-is-default nil |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
758 "*Non-nil means, the varioref macro \\vref is used as default. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
759 In the selection buffer, the `v' key toggles the reference macro between |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
760 `\\ref' and `\\vref'. The value of this variable determines the default |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
761 which is active when entering the selection process. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
762 Instead of nil or t, this may also be a string of type letters indicating |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
763 the label types for which it should be true." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
764 :group 'reftex-referencing-labels |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
765 :type `(choice :tag "\\vref is default macro" ,@reftex-tmp)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
766 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
767 (defcustom reftex-level-indent 2 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
768 "*Number of spaces to be used for indentation per section level." |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
769 :group 'reftex-referencing-labels |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
770 :type 'integer) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
771 |
18050 | 772 (defcustom reftex-guess-label-type t |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
773 "*Non-nil means, `reftex-reference' will try to guess the label type. |
18050 | 774 To do that, RefTeX will look at the word before the cursor and compare it with |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
775 the words given in `reftex-label-alist'. When it finds a match, RefTeX will |
18050 | 776 immediately offer the correct label menu - otherwise it will prompt you for |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
777 a label type. If you set this variable to nil, RefTeX will always prompt." |
18050 | 778 :group 'reftex-referencing-labels |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
779 :type 'boolean) |
18050 | 780 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
781 (defcustom reftex-format-ref-function nil |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
782 "Function which produces the string to insert as a reference. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
783 Normally should be nil, because the format to insert a reference can |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
784 already be specified in `reftex-label-alist'. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
785 The function will be called with two arguments, the LABEL and the DEFAULT |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
786 FORMAT, which normally is `~\ref{%s}'. The function should return the |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
787 string to insert into the buffer." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
788 :group 'reftex-referencing-labels |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
789 :type 'function) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
790 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
791 (defcustom reftex-select-label-mode-hook nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
792 "Mode hook for reftex-select-label-mode." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
793 :group 'reftex-referencing-labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
794 :type 'hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
795 |
18050 | 796 ;; BibteX citation configuration ---------------------------------------- |
797 | |
798 (defgroup reftex-citation-support nil | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
799 "Support for referencing bibliographic data with BibTeX." |
18050 | 800 :group 'reftex) |
801 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
802 (defvar reftex-bibfile-ignore-list nil) ; compatibility |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
803 (defcustom reftex-bibfile-ignore-regexps nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
804 "*List of regular expressions to exclude files in \\bibliography{..}. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
805 File names matched by these regexps will not be parsed by RefTeX. |
18050 | 806 Intended for files which contain only `@string' macro definitions and the |
807 like, which are ignored by RefTeX anyway." | |
808 :group 'reftex-citation-support | |
809 :set 'reftex-set-dirty | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
810 :type '(repeat (regexp))) |
18050 | 811 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
812 (defcustom reftex-default-bibliography nil |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
813 "*List of BibTeX database files which should be used if none are specified. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
814 When `reftex-citation' is called from a document which has neither a |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
815 `\bibliography{..}' statement nor a `thebibliography' environment, |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
816 RefTeX will scan these files instead. Intended for using |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
817 `reftex-citation' in non-LaTeX files." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
818 :group 'reftex-citation-support |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
819 :type '(repeat (file))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
820 |
18050 | 821 (defcustom reftex-sort-bibtex-matches 'reverse-year |
822 "*Sorting of the entries found in BibTeX databases by reftex-citation. | |
823 Possible values: | |
824 nil Do not sort entries. | |
825 'author Sort entries by author name. | |
826 'year Sort entries by increasing year. | |
827 'reverse-year Sort entries by decreasing year." | |
828 :group 'reftex-citation-support | |
829 :type '(choice (const :tag "not" nil) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
830 (const :tag "by author" author) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
831 (const :tag "by year" year) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
832 (const :tag "by year, reversed" reverse-year))) |
18050 | 833 |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
834 (defcustom reftex-cite-format 'default |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
835 "*The format of citations to be inserted into the buffer. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
836 It can be a string or an alist. In the simplest case this is just |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
837 the string \"\\cite{%l}\", which is also the default. See the |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
838 definition of `reftex-cite-format-builtin' for more complex examples. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
839 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
840 If `reftex-cite-format' is a string, it will be used as the format. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
841 In the format, the following percent escapes will be expanded. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
842 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
843 %l The BibTeX label of the citation. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
844 %a List of author names, see also `reftex-cite-punctuation. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
845 %2a Like %a, but abbreviate more than 2 authors like Jones et al. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
846 %A First author name only. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
847 %e Works like %a, but on list of editor names. (%2e and %E work a well) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
848 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
849 It is also possible to access all other BibTeX database fields: |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
850 %b booktitle %c chapter %d edition %h howpublished |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
851 %i institution %j journal %k key %m month |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
852 %n number %o organization %p pages %P first page |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
853 %r address %s school %u publisher %t title |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
854 %v volume %y year |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
855 %B booktitle, abbreviated %T title, abbreviated |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
856 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
857 Usually, only %l is needed. The other stuff is mainly for the echo area |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
858 display, and for (setq reftex-comment-citations t). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
859 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
860 %< as a special operator kills punctuation and space around it after the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
861 string has been formatted. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
862 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
863 Beware that all this only works with BibTeX database files. When |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
864 citations are made from the \\bibitems in an explicit thebibliography |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
865 environment, only %l is available. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
866 |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
867 If `reftex-cite-format' is an alist of characters and strings, the user |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
868 will be prompted for a character to select one of the possible format |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
869 strings. |
18050 | 870 In order to configure this variable, you can either set |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
871 `reftex-cite-format' directly yourself or set it to the SYMBOL of one of |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
872 the predefined styles (see `reftex-cite-format-builtin'). E.g.: |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
873 (setq reftex-cite-format 'natbib)" |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
874 :group 'reftex-citation-support |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
875 :type |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
876 `(choice |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
877 :format "%{%t%}: \n%[Value Menu%] %v" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
878 (radio :tag "Symbolic Builtins" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
879 :indent 4 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
880 :value default |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
881 ,@(mapcar |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
882 (function |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
883 (lambda (x) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
884 (list 'const ':tag (concat (symbol-name (nth 0 x)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
885 ": " (nth 1 x)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
886 (nth 0 x)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
887 reftex-cite-format-builtin)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
888 (string :tag "format string" "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
889 (repeat :tag "key-ed format strings" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
890 :value ((?\r . "\\cite{%l}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
891 (?t . "\\cite{%l}") (?p . "\\cite{%l}")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
892 (cons (character :tag "Key character" ?\r) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
893 (string :tag "Format string" ""))))) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
894 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
895 (defcustom reftex-comment-citations nil |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
896 "*Non-nil means add a comment for each citation describing the full entry. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
897 The comment is formatted according to `reftex-cite-comment-format'." |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
898 :group 'reftex-citation-support |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
899 :type 'boolean) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
900 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
901 (defcustom reftex-cite-comment-format |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
902 "%% %2a %y, %j %v, %P, %b, %e, %u, %s %<\n" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
903 "Citation format used for commented citations. Must NOT contain %l. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
904 See the variable `reftex-cite-format' for possible percent escapes." |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
905 :group 'reftex-citation-support |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
906 :type 'string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
907 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
908 (defcustom reftex-cite-view-format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
909 "%2a %y, %T, %B, %j %v:%P, %s %<" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
910 "Citation format used to display citation info in the message area. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
911 Must NOT contain %l. See the variable `reftex-cite-format' for |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
912 possible percent escapes." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
913 :group 'reftex-citation-support |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
914 :group 'reftex-viewing-cross-references-and-citations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
915 :type 'string) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
916 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
917 (defcustom reftex-cite-punctuation '(", " " \\& " " {\\it et al.}") |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
918 "Punctuation for formatting of name lists in citations. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
919 This is a list of 3 strings. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
920 1. normal names separator, like \", \" in Jones, Brown and Miller |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
921 2. final names separator, like \" and \" in Jones, Brown and Miller |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
922 3. The \"et al\" string, like \" {\\it et al.}\" in Jones {\\it et al.}" |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
923 :group 'reftex-citation-support |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
924 :type '(list |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
925 (string :tag "Separator for names ") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
926 (string :tag "Separator for last name in list") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
927 (string :tag "string used as et al. "))) |
18050 | 928 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
929 (defcustom reftex-format-cite-function nil |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
930 "Function which produces the string to insert as a citation. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
931 Normally should be nil, because the format to insert a reference can |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
932 already be specified in `reftex-cite-format'. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
933 The function will be called with two arguments, the CITATION KEY and the |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
934 DEFAULT FORMAT, which is taken from `reftex-cite-format'. The function |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
935 should return the string to insert into the buffer." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
936 :group 'reftex-citation-support |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
937 :type 'function) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
938 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
939 (defcustom reftex-select-bib-mode-hook nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
940 "Mode hook for reftex-select-bib-mode." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
941 :group 'reftex-citation-support |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
942 :type 'hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
943 |
18050 | 944 ;; Table of contents configuration -------------------------------------- |
945 | |
946 (defgroup reftex-table-of-contents-browser nil | |
947 "A multifile table of contents browser." | |
948 :group 'reftex) | |
949 | |
950 (defcustom reftex-toc-follow-mode nil | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
951 "*Non-nil means, point in *toc* buffer will cause other window to follow. |
18050 | 952 The other window will show the corresponding part of the document. |
953 This flag can be toggled from within the *toc* buffer with the `f' key." | |
954 :group 'reftex-table-of-contents-browser | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
955 :type 'boolean) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
956 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
957 (defcustom reftex-revisit-to-follow nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
958 "*Non-nil means, follow-mode will revisit files if necessary. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
959 When nil, follow-mode will be suspended for stuff in unvisited files." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
960 :group 'reftex-table-of-contents-browser |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
961 :group 'reftex-referencing-labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
962 :type 'boolean) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
963 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
964 (defcustom reftex-toc-mode-hook nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
965 "Mode hook for reftex-toc-mode." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
966 :group 'reftex-table-of-contents-browser |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
967 :type 'hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
968 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
969 ;; Viewing Cross References and Citations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
970 (defgroup reftex-viewing-cross-references-and-citations nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
971 "Displaying cross references and citations." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
972 :group 'reftex) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
973 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
974 (defcustom reftex-auto-view-crossref t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
975 "*Non-nil means, initially turn automatic viewing of crossref info on. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
976 Automatic viewing of crossref info normally uses the echo area. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
977 Whenever point is on the argument of a \\ref or \\cite macro, and no |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
978 other message is being displayed, the echo area will display |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
979 information about that cross reference. You can also set the variable |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
980 to the symbol `window'. In this case a small temporary window is |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
981 used for the display. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
982 This feature can be turned on and of from the menu |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
983 (Ref->Options->Crossref Viewing)." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
984 :group 'reftex-viewing-cross-references-and-citations |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
985 :type '(choice (const :tag "off" nil) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
986 (const :tag "in Echo Area" t) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
987 (const :tag "in Other Window" window))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
988 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
989 (defcustom reftex-idle-time 1.2 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
990 "*Time (secs) Emacs has to be idle before automatic crossref display is done." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
991 :group 'reftex-viewing-cross-references-and-citations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
992 :type 'number) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
993 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
994 (defcustom reftex-revisit-to-echo nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
995 "*Non-nil means, automatic citation display will revisit files if necessary. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
996 When nil, citation display in echo area will only be active for cached |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
997 entries and for BibTeX database files with live associated buffers." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
998 :group 'reftex-viewing-cross-references-and-citations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
999 :type 'boolean) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1000 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1001 (defcustom reftex-cache-cite-echo t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1002 "*Non-nil means, the information displayed in the echo area for cite macros |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1003 is cached and even saved along with the parsing information. The cache |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1004 survives document scans. In order to clear it, use M-x reftex-reset-mode." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1005 :group 'reftex-viewing-cross-references-and-citations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1006 :type 'boolean) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1007 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1008 (defcustom reftex-display-copied-context-hook nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1009 "Normal Hook which is run before context is displayed anywhere. Designed |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1010 for X-Symbol, but may have other uses as well." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1011 :group 'reftex-viewing-cross-references-and-citations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1012 :group 'reftex-referencing-labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1013 :type 'hook) |
18050 | 1014 |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1015 ;; Finding Files -------------------------------------------------------- |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1016 |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1017 (defgroup reftex-finding-files nil |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1018 "Displaying cross references and citations." |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1019 :group 'reftex) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1020 |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1021 (defcustom reftex-texpath-environment-variables '("TEXINPUTS") |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1022 "*List of specifications how to retrieve the search path for TeX files. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1023 Several entries are possible. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1024 - If an element is the name of an environment variable, its content is used. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1025 - If an element starts with an exclamation mark, it is used as a command |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1026 to retrieve the path. A typical command with the kpathsearch library would |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1027 be `!kpsewhich -show-path=.tex'. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1028 - Otherwise the element itself is interpreted as a path. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1029 Multiple directories can be separated by the system dependent `path-separator'. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1030 Directories ending in `//' or `!!' will be expanded recursively. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1031 See also `reftex-use-external-file-finders'." |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1032 :group 'reftex-finding-files |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1033 :set 'reftex-set-dirty |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1034 :type '(repeat (string :tag "Specification"))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1035 |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1036 (defcustom reftex-bibpath-environment-variables '("BIBINPUTS" "TEXBIB") |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1037 "*List of specifications how to retrieve search path for .bib database files. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1038 Several entries are possible. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1039 - If an element is the name of an environment variable, its content is used. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1040 - If an element starts with an exclamation mark, it is used as a command |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1041 to retrieve the path. A typical command with the kpathsearch library would |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1042 be `!kpsewhich -show-path=.bib'. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1043 - Otherwise the element itself is interpreted as a path. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1044 Multiple directories can be separated by the system dependent `path-separator'. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1045 Directories ending in `//' or `!!' will be expanded recursively. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1046 See also `reftex-use-external-file-finders'." |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1047 :group 'reftex-citation-support |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1048 :group 'reftex-finding-files |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1049 :set 'reftex-set-dirty |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1050 :type '(repeat (string :tag "Specification"))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1051 |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1052 (defcustom reftex-search-unrecursed-path-first t |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1053 "*Non-nil means, search all specified directories before trying recursion. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1054 Thus, in a path \".//:/tex/\", search first \"./\", then \"/tex/\" and then |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1055 all subdirectories of \"./\". If this option is nil, the subdirectories of |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1056 \"./\" are searched before \"/tex/\". This is mainly for speed - most of the |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1057 time the recursive path is for the system files and not for the user files. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1058 Set this to nil if the default makes RefTeX finding files with equal names |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1059 in wrong sequence." |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1060 :group 'reftex-finding-files |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1061 :type 'boolean) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1062 |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1063 (defcustom reftex-use-external-file-finders nil |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1064 "*Non-nil means, use external programs to find files. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1065 Normally, RefTeX searches the paths given in the environment variables |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1066 TEXINPUTS and BIBINPUTS to find TeX files and BibTeX database files. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1067 With this option turned on, it calls an external program specified in the |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1068 option `reftex-external-file-finders' instead. As a side effect, |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1069 the variables `reftex-texpath-environment-variables' and |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1070 `reftex-bibpath-environment-variables' will be ignored." |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1071 :group 'reftex-finding-files |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1072 :type 'boolean) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1073 |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1074 (defcustom reftex-external-file-finders '(("tex" . "kpsewhich -format=.tex %f") |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1075 ("bib" . "kpsewhich -format=.bib %f")) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1076 "*Association list with external programs to call for finding files. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1077 Each entry is a cons cell (TYPE . PROGRAM). |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1078 Type is either \"tex\" or \"bib\". PROGRAM is the external program to use with |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1079 any arguments. %f will be replaced by the name of the file to be found. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1080 Note that these commands will be executed directly, not via a shell. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1081 Only relevant when `reftex-use-external-file-finders' is non-nil." |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1082 :group 'reftex-finding-files |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1083 :type '(repeat (cons (string :tag "File type") |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1084 (string :tag "Program ")))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1085 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1086 ;; Tuning the parser ---------------------------------------------------- |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1087 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1088 (defgroup reftex-optimizations-for-large-documents nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1089 "Configuration of parser speed and memory usage." |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1090 :group 'reftex) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1091 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1092 (defcustom reftex-keep-temporary-buffers 1 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1093 "*Non-nil means, keep buffers created for parsing and lookup. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1094 RefTeX sometimes needs to visit files related to the current document. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1095 We distinguish files visited for |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1096 PARSING: Parts of a multifile document loaded when (re)-parsing the document. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1097 LOOKUP: BibTeX database files and TeX files loaded to find a reference, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1098 to display label context, etc. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1099 The created buffers can be kept for later use, or be thrown away immediately |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1100 after use, depending on the value of this variable: |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1101 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1102 nil Throw away as much as possible. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1103 t Keep everything. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1104 1 Throw away buffers created for parsing, but keep the ones created |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1105 for lookup. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1106 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1107 If a buffer is to be kept, the file is visited normally (which is potentially |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1108 slow but will happen only once). |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1109 If a buffer is to be thrown away, the initialization of the buffer depends |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1110 upon the variable `reftex-initialize-temporary-buffers'." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1111 :group 'reftex-optimizations-for-large-documents |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1112 :type '(choice |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1113 (const :tag "Throw away everything" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1114 (const :tag "Keep everything" t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1115 (const :tag "Keep lookup buffers only" 1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1116 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1117 (defcustom reftex-initialize-temporary-buffers nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1118 "*Non-nil means do initializations even when visiting file temporarily. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1119 When nil, RefTeX may turn off find-file hooks and other stuff to briefly |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1120 visit a file. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1121 When t, the full default initializations are done (find-file-hook etc.). |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1122 Instead of t or nil, this variable may also be a list of hook functions to |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1123 do a minimal initialization." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1124 :group 'reftex-optimizations-for-large-documents |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1125 :type '(choice |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1126 (const :tag "Read files literally" nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1127 (const :tag "Fully initialize buffers" t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1128 (repeat :tag "Hook functions" :value (nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1129 (function-item)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1130 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1131 (defcustom reftex-no-include-regexps '("\\.pstex_t\\'") |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1132 "*List of regular expressions to exclude certain input files from parsing. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1133 If the name of a file included via \\include or \\input is matched by any |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1134 of the regular expressions in this list, that file is not parsed by RefTeX." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1135 :group 'reftex-optimizations-for-large-documents |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1136 :type '(repeat (regexp))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1137 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1138 (defcustom reftex-enable-partial-scans nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1139 "*Non-nil means, re-parse only 1 file when asked to re-parse. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1140 Re-parsing is normally requested with a `C-u' prefix to many RefTeX commands, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1141 or with the `r' key in menus. When this option is t in a multifile document, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1142 we will only parse the current buffer, or the file associated with the label |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1143 or section heading near point in a menu. Requesting re-parsing of an entire |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1144 multifile document then requires a `C-u C-u' prefix or the capital `R' key |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1145 in menus." |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1146 :group 'reftex-optimizations-for-large-documents |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1147 :type 'boolean) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1148 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1149 (defcustom reftex-allow-automatic-rescan t |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1150 "*Non-nil means, RefTeX may rescan the document when this seems necessary. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1151 Currently this applies only to rescanning after label insertion, when |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1152 the new label cannot be inserted correctly into the internal label |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1153 list." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1154 :group 'reftex-optimizations-for-large-documents |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1155 :type 'boolean) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1156 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1157 (defcustom reftex-save-parse-info nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1158 "*Non-nil means, save information gathered with parsing in a file. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1159 The file MASTER.rel in the same directory as MASTER.tex is used to save the |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1160 information. When this variable is t, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1161 - accessing the parsing information for the first time in an editing session |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1162 will read that file (if available) instead of parsing the document. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1163 - exiting Emacs or killing a buffer in reftex-mode will cause a new version |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1164 of the file to be written." |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1165 :group 'reftex-optimizations-for-large-documents |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1166 :type 'boolean) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1167 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1168 (defcustom reftex-use-multiple-selection-buffers nil |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1169 "*Non-nil means use a separate selection buffer for each label type. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1170 These buffers are kept from one selection to the next and need not to be |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1171 created for each use - so the menu generally comes up faster. The |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1172 selection buffers will be erased (and therefore updated) automatically |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1173 when new labels in its category are added. See the variable |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1174 `reftex-auto-update-selection-buffers'." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1175 :group 'reftex-optimizations-for-large-documents |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1176 :group 'reftex-referencing-labels |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1177 :type 'boolean) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1178 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1179 (defcustom reftex-auto-update-selection-buffers t |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1180 "*Non-nil means, selection buffers will be updated automatically. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1181 When a new label is defined with `reftex-label', all selection buffers |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1182 associated with that label category are emptied, in order to force an |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1183 update upon next use. When nil, the buffers are left alone and have to be |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1184 updated by hand, with the `g' key from the label selection process. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1185 The value of this variable will only have any effect when |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1186 `reftex-use-multiple-selection-buffers' is non-nil." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1187 :group 'reftex-optimizations-for-large-documents |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1188 :group 'reftex-referencing-labels |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1189 :type 'boolean) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1190 |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1191 ;; Fontification and Faces ---------------------------------------------- |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1192 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1193 (defgroup reftex-fontification-configurations nil |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1194 "Options concerning the faces used in RefTeX." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1195 :group 'reftex) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1196 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1197 (defcustom reftex-use-fonts t |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1198 "*Non-nil means, use fonts in *toc* and selection buffers. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1199 Font-lock must be loaded as well to actually get fontified display. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1200 When changing this option, a rescan may be necessary to activate the change." |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1201 :group 'reftex-fontification-configurations |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1202 :type 'boolean) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1203 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1204 (defcustom reftex-refontify-context 1 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1205 "*Non-nil means, re-fontify the context in the label menu with font-lock. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1206 This slightly slows down the creation of the label menu. It is only necessary |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1207 when you definitely want the context fontified. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1208 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1209 This option may have 3 different values: |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1210 nil Never refontify. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1211 t Always refontify. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1212 1 Refontify when absolutely necessary, e.g. when old versions of X-Symbol. |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1213 The option is ignored when `reftex-use-fonts' is nil." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1214 :group 'reftex-fontification-configurations |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1215 :group 'reftex-referencing-labels |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1216 :type '(choice |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1217 (const :tag "Never" nil) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1218 (const :tag "Always" t) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1219 (const :tag "When necessary" 1))) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1220 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1221 (defcustom reftex-highlight-selection 'cursor |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1222 "*Non-nil mean, highlight selected text in selection and *toc* buffers. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1223 Normally, the text near the cursor is the selected text, and it is |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1224 highlighted. This is the entry most keys in the selction and *toc* |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1225 buffers act on. However, if you mainly use the mouse to select an |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1226 item, you may find it nice to have mouse-triggered highlighting |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1227 instead or as well. The variable may have one of these values: |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1228 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1229 nil No highlighting. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1230 cursor Highlighting is cursor driven. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1231 mouse Highlighting is mouse driven. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1232 both Both cursor and mouse trigger highlighting. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1233 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1234 Changing this variable requires to rebuild the selection and *toc* buffers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1235 to become effective (keys `g' or `r')." |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1236 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1237 :type '(choice |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1238 (const :tag "Never" nil) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1239 (const :tag "Cursor driven" cursor) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1240 (const :tag "Mouse driven" mouse) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1241 (const :tag "Mouse and Cursor driven." both))) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1242 |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1243 (defcustom reftex-cursor-selected-face 'highlight |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1244 "Face name to highlight cursor selected item in toc and selection buffers. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1245 See also the variable `reftex-highlight-selection'." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1246 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1247 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1248 (defcustom reftex-mouse-selected-face 'secondary-selection |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1249 "Face name to highlight mouse selected item in toc and selection buffers. |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1250 See also the variable `reftex-highlight-selection'." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1251 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1252 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1253 (defcustom reftex-file-boundary-face 'font-lock-comment-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1254 "Face name for file boundaries in selection buffer." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1255 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1256 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1257 (defcustom reftex-label-face 'font-lock-constant-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1258 "Face name for labels in selection buffer." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1259 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1260 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1261 (defcustom reftex-section-heading-face 'font-lock-function-name-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1262 "Face name for section headings in toc and selection buffers." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1263 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1264 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1265 (defcustom reftex-toc-header-face 'font-lock-comment-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1266 "Face name for the header of a toc buffer." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1267 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1268 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1269 (defcustom reftex-bib-author-face 'font-lock-keyword-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1270 "Face name for author names in bib selection buffer." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1271 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1272 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1273 (defcustom reftex-bib-year-face 'font-lock-comment-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1274 "Face name for year in bib selection buffer." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1275 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1276 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1277 (defcustom reftex-bib-title-face 'font-lock-function-name-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1278 "Face name for article title in bib selection buffer." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1279 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1280 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1281 (defcustom reftex-bib-extra-face 'font-lock-comment-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1282 "Face name for bibliographic information in bib selection buffer." |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1283 :group 'reftex-fontification-configurations |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1284 :type 'symbol) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
1285 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1286 (defcustom reftex-pre-refontification-functions nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1287 "X-Symbol specific hook. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1288 Functions get two arguments, the buffer from where the command started and a |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1289 symbol indicating in what context the hook is called." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1290 :group 'reftex-fontification-configurations |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1291 :type 'hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1292 |
18050 | 1293 ;; Miscellaneous configurations ----------------------------------------- |
1294 | |
1295 (defgroup reftex-miscellaneous-configurations nil | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1296 "Collection of further configurations." |
18050 | 1297 :group 'reftex) |
1298 | |
1299 (defcustom reftex-extra-bindings nil | |
1300 "Non-nil means, make additional key bindings on startup. | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1301 These extra bindings are located in the users `C-c letter' map." |
18050 | 1302 :group 'reftex-miscellaneous-configurations |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1303 :type 'boolean) |
18050 | 1304 |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1305 (defcustom reftex-plug-into-AUCTeX nil |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1306 "*Plug-in flags for AUCTeX interface. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1307 This variable is a list of 4 boolean flags. When a flag is non-nil, |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1308 RefTeX will |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1309 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1310 - supply labels in new sections and environments (flag 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1311 - supply arguments for macros like `\\label'. (flag 2) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1312 - supply arguments for macros like `\\ref'. (flag 3) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1313 - supply arguments for macros like `\\cite'. (flag 4) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1314 |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1315 You may also set the variable itself to t or nil in order to turn all |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1316 plug-ins on or off, respectively. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1317 \\<LaTeX-mode-map>Supplying labels in new sections and environments aplies when creating |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1318 sections with \\[LaTeX-section] and environments with \\[LaTeX-environment]. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1319 Supplying macro arguments applies when you insert such a macro interactively |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1320 with \\[TeX-insert-macro]. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1321 See the AUCTeX documentation for more information. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1322 RefTeX uses `fset' to take over the function calls. Changing the variable |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1323 may require a restart of Emacs in order to become effective." |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1324 :group 'reftex-miscellaneous-configurations |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1325 :group 'LaTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1326 :type '(choice |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1327 (const :tag "No plug-ins" nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1328 (const :tag "All possible plug-ins" t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1329 (list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1330 :tag "Individual choice" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1331 :value (t t t t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1332 (boolean :tag "supply label in new sections and environments") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1333 (boolean :tag "supply argument for macros like `\\label' ") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1334 (boolean :tag "supply argument for macros like `\\ref' ") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1335 (boolean :tag "supply argument for macros like `\\cite' ") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1336 ))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1337 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1338 (defcustom reftex-allow-detached-macro-args nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1339 "*Non-nil means, allow arguments of macros to be detached by whitespace. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1340 When this is t, `aaa' will be considered as argument of \\bb in the following |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1341 construct: \\bbb [xxx] {aaa}." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1342 :group 'texmathp |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1343 :type 'boolean) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1344 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1345 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1346 (defcustom reftex-load-hook nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1347 "Hook which is being run when loading reftex.el." |
18050 | 1348 :group 'reftex-miscellaneous-configurations |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1349 :type 'hook) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1350 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1351 (defcustom reftex-mode-hook nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1352 "Hook which is being run when turning on RefTeX mode." |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1353 :group 'reftex-miscellaneous-configurations |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1354 :type 'hook) |
18050 | 1355 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1356 ;;; ========================================================================= |
18050 | 1357 ;;; |
1358 ;;; Define the formal stuff for a minor mode named RefTeX. | |
1359 ;;; | |
1360 | |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
1361 (defconst reftex-version "RefTeX version 3.41" |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
1362 "Version string for RefTeX.") |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
1363 |
18050 | 1364 (defvar reftex-mode nil |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1365 "Determines if RefTeX mode is active.") |
18050 | 1366 (make-variable-buffer-local 'reftex-mode) |
1367 | |
1368 (defvar reftex-mode-map (make-sparse-keymap) | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1369 "Keymap for RefTeX mode.") |
18050 | 1370 |
1371 (defvar reftex-mode-menu nil) | |
1372 | |
1373 ;;;###autoload | |
1374 (defun turn-on-reftex () | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1375 "Turn on RefTeX mode." |
18050 | 1376 (reftex-mode t)) |
1377 | |
1378 ;;;###autoload | |
1379 (defun reftex-mode (&optional arg) | |
18123 | 1380 "Minor mode with distinct support for \\label, \\ref and \\cite in LaTeX. |
18050 | 1381 |
1382 Labels can be created with `\\[reftex-label]' and referenced with `\\[reftex-reference]'. | |
1383 When referencing, you get a menu with all labels of a given type and | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1384 context of the label definition. The selected label is inserted as a |
18123 | 1385 \\ref macro. |
18050 | 1386 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1387 Citations can be made with `\\[reftex-citation]' which will use a regular expression |
18050 | 1388 to pull out a *formatted* list of articles from your BibTeX |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1389 database. The selected citation is inserted as a \\cite macro. |
18050 | 1390 |
1391 A Table of Contents of the entire (multifile) document with browsing | |
1392 capabilities is available with `\\[reftex-toc]'. | |
1393 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1394 Most command have help available on the fly. This help is accessed by |
18050 | 1395 pressing `?' to any prompt mentioning this feature. |
1396 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1397 Extensive documentation about RefTeX is in the file header of `reftex.el'. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1398 You can view this information with `\\[reftex-show-commentary]'. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1399 |
18050 | 1400 \\{reftex-mode-map} |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1401 Under X, these and other functions will also be available as `Ref' menu |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1402 on the menu bar. |
18050 | 1403 |
1404 ------------------------------------------------------------------------------" | |
1405 | |
1406 (interactive "P") | |
1407 (setq reftex-mode (not (or (and (null arg) reftex-mode) | |
1408 (<= (prefix-numeric-value arg) 0)))) | |
1409 | |
1410 ; Add or remove the menu, and run the hook | |
1411 (if reftex-mode | |
1412 (progn | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1413 (easy-menu-add reftex-mode-menu) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1414 (and reftex-plug-into-AUCTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1415 (reftex-plug-into-AUCTeX)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1416 (run-hooks 'reftex-mode-hook)) |
18050 | 1417 (easy-menu-remove reftex-mode-menu))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1418 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1419 (if (fboundp 'add-minor-mode) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1420 ;; Use it so that we get the extras |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1421 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1422 (put 'reftex-mode ':included '(memq major-mode '(latex-mode tex-mode))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1423 (put 'reftex-mode ':menu-tag "RefTeX Mode") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1424 (add-minor-mode 'reftex-mode " Ref" reftex-mode-map)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1425 ;; The standard way |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1426 (unless (assoc 'reftex-mode minor-mode-alist) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1427 (push '(reftex-mode " Ref") minor-mode-alist)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1428 (unless (assoc 'reftex-mode minor-mode-map-alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1429 (push (cons 'reftex-mode reftex-mode-map) minor-mode-map-alist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1430 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1431 ;;; ========================================================================= |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1432 ;;; |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1433 ;;; Silence warnings about variables in other packages. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1434 (defvar TeX-master) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1435 (defvar LaTeX-section-hook) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1436 (defvar LaTeX-label-function) |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1437 (defvar tex-main-file) |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1438 (defvar outline-minor-mode) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
1439 (defvar font-lock-mode) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1440 (defvar font-lock-fontify-region-function) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1441 (defvar font-lock-syntactic-keywords) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1442 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1443 ;;; ========================================================================= |
18050 | 1444 ;;; |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1445 ;;; Multibuffer Variables |
18050 | 1446 ;;; |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1447 ;;; Technical notes: These work as follows: We keep just one list |
18050 | 1448 ;;; of labels for each master file - this can save a lot of memory. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1449 ;;; `reftex-master-index-list' is an alist which connects the true file name |
18050 | 1450 ;;; of each master file with the symbols holding the information on that |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1451 ;;; document. Each buffer has local variables which point to these symbols. |
18050 | 1452 |
1453 ;; List of variables which handle the multifile stuff. | |
1454 ;; This list is used to tie, untie, and reset these symbols. | |
1455 (defconst reftex-multifile-symbols | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1456 '(reftex-docstruct-symbol)) |
18050 | 1457 |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1458 ;; Alist connecting master file names with the corresponding lisp symbols. |
18050 | 1459 (defvar reftex-master-index-list nil) |
1460 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1461 ;; Last index used for a master file. |
18050 | 1462 (defvar reftex-multifile-index 0) |
1463 | |
1464 ;; Variable holding the symbol with the label list of the document. | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1465 (defvar reftex-docstruct-symbol nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1466 (make-variable-buffer-local 'reftex-docstruct-symbol) |
18050 | 1467 |
1468 (defun reftex-next-multifile-index () | |
1469 ;; Return the next free index for multifile symbols. | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1470 (incf reftex-multifile-index)) |
18050 | 1471 |
1472 (defun reftex-tie-multifile-symbols () | |
1473 ;; Tie the buffer-local symbols to globals connected with the master file. | |
1474 ;; If the symbols for the current master file do not exist, they are created. | |
1475 | |
1476 (let* ((master (file-truename (reftex-TeX-master-file))) | |
1477 (index (assoc master reftex-master-index-list)) | |
1478 (symlist reftex-multifile-symbols) | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1479 symbol symname newflag) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1480 ;; Find the correct index. |
18050 | 1481 (if index |
1482 ;; symbols do exist | |
1483 (setq index (cdr index)) | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1484 ;; Get a new index and add info to the alist. |
18050 | 1485 (setq index (reftex-next-multifile-index) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1486 newflag t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1487 (push (cons master index) reftex-master-index-list)) |
18050 | 1488 |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1489 ;; Get/create symbols and tie them. |
18050 | 1490 (while symlist |
1491 (setq symbol (car symlist) | |
1492 symlist (cdr symlist) | |
1493 symname (symbol-name symbol)) | |
1494 (set symbol (intern (concat symname "-" (int-to-string index)))) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1495 (put (symbol-value symbol) ':master-index index) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1496 ;; Initialize if new symbols. |
18050 | 1497 (if newflag (set (symbol-value symbol) nil))) |
1498 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1499 ;; Return t if the symbols did already exist, nil when we've made them. |
18050 | 1500 (not newflag))) |
1501 | |
1502 (defun reftex-untie-multifile-symbols () | |
1503 ;; Remove ties from multifile symbols, so that next use makes new ones. | |
1504 (let ((symlist reftex-multifile-symbols) | |
1505 (symbol nil)) | |
1506 (while symlist | |
1507 (setq symbol (car symlist) | |
1508 symlist (cdr symlist)) | |
1509 (set symbol nil)))) | |
1510 | |
1511 (defun reftex-TeX-master-file () | |
1512 ;; Return the name of the master file associated with the current buffer. | |
1513 ;; When AUCTeX is loaded, we will use it's more sophisticated method. | |
18219
aaeaae005e98
Updated documentation at several points in the file.
Richard M. Stallman <rms@gnu.org>
parents:
18123
diff
changeset
|
1514 ;; We also support the default TeX and LaTeX modes by checking for a |
aaeaae005e98
Updated documentation at several points in the file.
Richard M. Stallman <rms@gnu.org>
parents:
18123
diff
changeset
|
1515 ;; variable tex-main-file. |
18050 | 1516 (let |
1517 ((master | |
1518 (cond | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1519 ((fboundp 'TeX-master-file) ; AUCTeX is loaded. Use its mechanism. |
18050 | 1520 (TeX-master-file t)) |
1521 ((boundp 'TeX-master) ; The variable is defined - lets use it. | |
1522 (cond | |
1523 ((eq TeX-master t) | |
1524 (buffer-file-name)) | |
1525 ((eq TeX-master 'shared) | |
1526 (setq TeX-master (read-file-name "Master file: " | |
1527 nil nil t nil))) | |
1528 (TeX-master) | |
1529 (t | |
1530 (setq TeX-master (read-file-name "Master file: " | |
1531 nil nil t nil))))) | |
1532 ((boundp 'tex-main-file) | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1533 ;; This is the variable from the default TeX modes. |
18050 | 1534 (cond |
1535 ((stringp tex-main-file) | |
1536 ;; ok, this must be it | |
1537 tex-main-file) | |
1538 (t | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1539 ;; In this case, the buffer is its own master. |
18050 | 1540 (buffer-file-name)))) |
1541 (t | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1542 ;; Know nothing about master file. Assume this is a master file. |
18050 | 1543 (buffer-file-name))))) |
1544 (cond | |
1545 ((null master) | |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
1546 (error "Need a filename for this buffer, please save it first")) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
1547 ((or (file-exists-p (concat master ".tex")) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
1548 (reftex-get-buffer-visiting (concat master ".tex"))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
1549 ;; Ahh, an extra .tex was missing... |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
1550 (setq master (concat master ".tex"))) |
18050 | 1551 ((or (file-exists-p master) |
1552 (reftex-get-buffer-visiting master)) | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1553 ;; We either see the file, or have a buffer on it. OK. |
18050 | 1554 ) |
1555 (t | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1556 ;; Use buffer file name. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1557 (buffer-file-name))) |
18050 | 1558 (expand-file-name master))) |
1559 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1560 ;;; ========================================================================= |
18050 | 1561 ;;; |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1562 ;;; Functions to parse the buffer and to create and reference labels. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1563 |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1564 ;; The following constants are derived from `reftex-label-alist'. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1565 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1566 ;; Prompt used for label type queries directed to the user. |
18050 | 1567 (defconst reftex-type-query-prompt nil) |
1568 | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1569 ;; Help string for label type queries. |
18050 | 1570 (defconst reftex-type-query-help nil) |
1571 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1572 ;; Alist relating label type to reference format. |
18050 | 1573 (defconst reftex-typekey-to-format-alist nil) |
1574 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1575 ;; Alist relating label type to label affix. |
18050 | 1576 (defconst reftex-typekey-to-prefix-alist nil) |
1577 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1578 ;; Alist relating environments or macros to label type and context regexp. |
18050 | 1579 (defconst reftex-env-or-mac-alist nil) |
1580 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1581 ;; List of macros carrying a label. |
18050 | 1582 (defconst reftex-label-mac-list nil) |
1583 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1584 ;; List of environments carrying a label. |
18050 | 1585 (defconst reftex-label-env-list nil) |
1586 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1587 ;; List of all typekey letters in use. |
18050 | 1588 (defconst reftex-typekey-list nil) |
1589 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1590 ;; Alist relating magic words to a label type. |
18050 | 1591 (defconst reftex-words-to-typekey-alist nil) |
1592 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1593 ;; The last list-of-labels entry used in a reference. |
18050 | 1594 (defvar reftex-last-used-reference (list nil nil nil nil)) |
1595 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1596 ;; The message when follow-mode is suspended |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1597 (defconst reftex-no-follow-message |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1598 "No follow-mode into unvisited file. Press SPC to visit it.") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1599 (defconst reftex-no-info-message |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1600 "%s: info not available, use `\\[reftex-view-crossref]' to get it.") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1601 |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1602 ;; Global variables used for communication between functions. |
18050 | 1603 (defvar reftex-default-context-position nil) |
1604 (defvar reftex-location-start nil) | |
1605 (defvar reftex-call-back-to-this-buffer nil) | |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
1606 (defvar reftex-select-return-marker (make-marker)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1607 (defvar reftex-active-toc nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1608 (defvar reftex-tex-path nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1609 (defvar reftex-bib-path nil) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
1610 (defvar reftex-last-follow-point nil) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1611 (defvar reftex-latex-syntax-table nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1612 (defvar reftex-prefix nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1613 (defvar reftex-section-levels-all nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1614 (defvar reftex-buffers-with-changed-invisibility nil) |
18050 | 1615 |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
1616 ;; List of buffers created temporarily for lookup, which should be killed. |
18050 | 1617 (defvar reftex-buffers-to-kill nil) |
1618 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1619 ;; Regexp to find anything. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
1620 (defvar reftex-section-regexp nil) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1621 (defvar reftex-section-or-include-regexp nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1622 (defvar reftex-everything-regexp nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1623 (defvar reftex-find-label-regexp-format nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1624 (defvar reftex-find-label-regexp-format2 nil) |
18050 | 1625 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1626 ;;; The parser functions ----------------------------------------------------- |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1627 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1628 (defvar reftex-memory nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1629 "Memorizes old variable values to indicate changes in these variables.") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1630 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1631 (defun reftex-access-scan-info (&optional rescan file) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1632 "Ensure access to the scanning info for the current file." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1633 ;; When the multifile symbols are not yet tied, |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1634 ;; tie them. When they are empty or RESCAN is non-nil, scan the document. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1635 ;; But, when RESCAN is -1, don't rescan even if docstruct is empty. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1636 ;; When FILE is non-nil, parse only from that file. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1637 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1638 ;; Make sure we have the symbols tied |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1639 (if (eq reftex-docstruct-symbol nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1640 ;; Symbols are not yet tied: Tie them. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1641 (reftex-tie-multifile-symbols)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1642 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1643 (reftex-ensure-compiled-variables) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1644 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1645 (when (or (null (symbol-value reftex-docstruct-symbol)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1646 (member rescan '(t 1 (4) (16)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1647 ;; The docstruct will change: Remove selection buffers. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1648 (save-excursion |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1649 (reftex-erase-all-selection-buffers))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1650 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1651 (if (and (null (symbol-value reftex-docstruct-symbol)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1652 (not (member rescan '(t 1 (4) (16)))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1653 reftex-save-parse-info) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1654 ;; Try to read the stuff from a file |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1655 (reftex-access-parse-file 'read)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1656 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1657 (cond |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1658 ((equal rescan -1)) ;; We are not allowed to scan. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1659 ((not (symbol-value reftex-docstruct-symbol)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1660 ;; Scan the whole document |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1661 (reftex-do-parse 1 file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1662 ((member rescan '(t 1 (4) (16))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1663 ;; Scan whatever was required by the caller. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1664 (reftex-do-parse rescan file)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1665 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1666 (defun reftex-parse-one () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1667 "Re-parse this file." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1668 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1669 (let ((reftex-enable-partial-scans t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1670 (reftex-access-scan-info '(4)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1671 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1672 (defun reftex-parse-all () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1673 "Re-parse entire document." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1674 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1675 (reftex-access-scan-info '(16))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1676 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1677 (defun reftex-do-parse (rescan &optional file) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1678 "Do a document rescan. When allowed, do only a partial scan from FILE." |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1679 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1680 ;; Normalize the rescan argument |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1681 (setq rescan (cond ((eq rescan t) t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1682 ((eq rescan 1) 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1683 ((equal rescan '(4)) t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1684 ((equal rescan '(16)) 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1685 (t 1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1686 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1687 ;; Partial scans only when allowed |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1688 (unless reftex-enable-partial-scans |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1689 (setq rescan 1)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1690 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1691 ;; Do the scanning. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1692 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1693 (let* ((old-list (symbol-value reftex-docstruct-symbol)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1694 (master (reftex-TeX-master-file)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1695 (true-master (file-truename master)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1696 (master-dir (file-name-as-directory (file-name-directory master))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1697 (file (or file (buffer-file-name))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1698 (true-file (file-truename file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1699 (bibview-cache (assq 'bibview-cache old-list)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1700 from-file appendix docstruct tmp) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1701 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1702 ;; Make sure replacement is really an option here |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1703 (when (and (eq rescan t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1704 (not (and (member (list 'bof file) old-list) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1705 (member (list 'eof file) old-list)))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1706 ;; Scan whole document because no such file section exists |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1707 (setq rescan 1)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1708 (when (string= true-file true-master) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1709 ;; Scan whole document because this file is the master |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1710 (setq rescan 1)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1711 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1712 ;; From which file do we start? |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1713 (setq from-file |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1714 (cond ((eq rescan t) (or file master)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1715 ((eq rescan 1) master) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1716 (t (error "This should not happen (reftex-do-parse)")))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1717 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1718 ;; Find active toc entry and initialize section-numbers |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1719 (setq reftex-active-toc (reftex-last-assoc-before-elt |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1720 'toc (list 'bof from-file) old-list) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1721 appendix (reftex-last-assoc-before-elt |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1722 'appendix (list 'bof from-file) old-list)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1723 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1724 (reftex-init-section-numbers reftex-active-toc appendix) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1725 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1726 (if (eq rescan 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1727 (message "Scanning entire document...") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1728 (message "Scanning document from %s..." from-file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1729 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1730 (save-window-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1731 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1732 (unwind-protect |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1733 (setq docstruct |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1734 (reftex-parse-from-file |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1735 from-file docstruct master-dir)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1736 (reftex-kill-temporary-buffers)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1737 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1738 (message "Scanning document... done") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1739 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1740 ;; Turn the list around. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1741 (setq docstruct (nreverse docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1742 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1743 ;; Set or insert |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1744 (setq docstruct (reftex-replace-label-list-segment |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1745 old-list docstruct (eq rescan 1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1746 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1747 ;; Add all missing information |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1748 (unless (assq 'label-numbers docstruct) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1749 (push (cons 'label-numbers nil) docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1750 (unless (assq 'master-dir docstruct) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1751 (push (cons 'master-dir master-dir) docstruct)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1752 (unless (assq 'bibview-cache docstruct) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1753 (push (cons 'bibview-cache (cdr bibview-cache)) docstruct)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1754 (let* ((bof1 (memq (assq 'bof docstruct) docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1755 (bof2 (assq 'bof (cdr bof1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1756 (is-multi (not (not (and bof1 bof2)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1757 (entry (or (assq 'is-multi docstruct) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1758 (car (push (list 'is-multi is-multi) docstruct))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1759 (setcdr entry (cons is-multi nil))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1760 (unless (assq 'xr docstruct) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1761 (let* ((allxr (reftex-all-assq 'xr-doc docstruct)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1762 (alist (mapcar |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1763 (function |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1764 (lambda (x) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1765 (if (setq tmp (reftex-find-tex-file (nth 2 x) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1766 master-dir)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1767 (cons (nth 1 x) tmp) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1768 (message "Can't find external document %s" |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1769 (nth 2 x)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1770 nil))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1771 allxr)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1772 (alist (delq nil alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1773 (allprefix (delq nil (mapcar 'car alist))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1774 (regexp (if allprefix |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1775 (concat "\\`\\(" |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1776 (mapconcat 'identity allprefix "\\|") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1777 "\\)") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1778 "\\\\\\\\\\\\"))) ; this will never match |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1779 (push (list 'xr alist regexp) docstruct))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1780 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1781 (set reftex-docstruct-symbol docstruct) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1782 (put reftex-docstruct-symbol 'modified t))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1783 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1784 (defun reftex-parse-from-file (file docstruct master-dir) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1785 ;; Scan the buffer for labels and save them in a list. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1786 (let ((regexp reftex-everything-regexp) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1787 (bound 0) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1788 file-found tmp include-file |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1789 (level 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1790 (highest-level 100) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1791 toc-entry next-buf buf) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1792 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1793 (catch 'exit |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1794 (setq file-found (reftex-find-tex-file file master-dir)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1795 (if (and (not file-found) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1796 (setq buf (reftex-get-buffer-visiting file))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1797 (setq file-found (buffer-file-name buf))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1798 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1799 (unless file-found |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1800 (push (list 'file-error file) docstruct) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1801 (throw 'exit nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1802 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1803 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1804 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1805 (message "Scanning file %s" file) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1806 (set-buffer |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1807 (setq next-buf |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1808 (reftex-get-file-buffer-force |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1809 file-found |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1810 (not (eq t reftex-keep-temporary-buffers))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1811 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1812 ;; Begin of file mark |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1813 (setq file (buffer-file-name)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1814 (push (list 'bof file) docstruct) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1815 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1816 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1817 (save-restriction |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1818 (widen) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1819 (goto-char 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1820 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1821 (while (re-search-forward regexp nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1822 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1823 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1824 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1825 ((match-end 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1826 ;; It is a label |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1827 (push (reftex-label-info (reftex-match-string 1) file bound) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1828 docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1829 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1830 ((match-end 3) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1831 ;; It is a section |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1832 (setq bound (point)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1833 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1834 ;; Insert in List |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1835 (setq toc-entry (reftex-section-info file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1836 (setq level (nth 5 toc-entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1837 (setq highest-level (min highest-level level)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1838 (if (= level highest-level) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1839 (message |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1840 "Scanning %s %s ..." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1841 (car (rassoc level reftex-section-levels)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1842 (nth 6 toc-entry))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1843 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1844 (push toc-entry docstruct) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1845 (setq reftex-active-toc toc-entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1846 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1847 ((match-end 7) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1848 ;; It's an include or input |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1849 (setq include-file (reftex-match-string 7)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1850 ;; Test if this file should be ignored |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1851 (unless (delq nil (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1852 (lambda (x) (string-match x include-file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1853 reftex-no-include-regexps)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1854 ;; Parse it |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1855 (setq docstruct |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1856 (reftex-parse-from-file |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1857 include-file |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1858 docstruct master-dir)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1859 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1860 ((match-end 9) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1861 ;; Appendix starts here |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1862 (reftex-init-section-numbers nil t) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1863 (push (cons 'appendix t) docstruct)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1864 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1865 ((match-end 10) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1866 ;; A macro with label |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1867 (save-excursion |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1868 (let* ((mac (reftex-match-string 10)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1869 (label (progn (goto-char (match-end 10)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1870 (save-match-data |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1871 (reftex-no-props |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1872 (reftex-nth-arg-wrapper |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1873 mac))))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1874 (typekey (nth 1 (assoc mac reftex-env-or-mac-alist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1875 (entry (progn (if typekey |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1876 ;; A typing macro |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1877 (goto-char (match-end 0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1878 ;; A newtral macro |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1879 (goto-char (match-end 10)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1880 (reftex-move-over-touching-args)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1881 (reftex-label-info |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1882 label file bound nil nil)))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1883 (push entry docstruct)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1884 (t (error "This should not happen (reftex-parse-from-file)"))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1885 ) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1886 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1887 ;; Find bibliography statement |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1888 (when (setq tmp (reftex-locate-bibliography-files master-dir)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1889 (push (cons 'bib tmp) docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1890 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1891 (goto-char 1) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1892 (when (re-search-forward |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1893 "\\(\\`\\|[\n\r]\\)[ \t]*\\\\begin{thebibliography}" nil t) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1894 (push (cons 'thebib file) docstruct)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1895 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1896 ;; Find external document specifications |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1897 (goto-char 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1898 (while (re-search-forward "[\n\r][ \t]*\\\\externaldocument\\(\\[\\([^]]*\\)\\]\\)?{\\([^}]+\\)}" nil t) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1899 (push (list 'xr-doc (reftex-match-string 2) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1900 (reftex-match-string 3)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1901 docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1902 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1903 ;; End of file mark |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1904 (push (list 'eof file) docstruct)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1905 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1906 ;; Kill the scanned buffer |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1907 (reftex-kill-temporary-buffers next-buf)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1908 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1909 ;; Return the list |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1910 docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1911 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1912 (defun reftex-locate-bibliography-files (master-dir) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1913 ;; Scan buffer for bibliography macro and return file list. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1914 (let (files) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1915 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1916 (goto-char (point-min)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1917 (when (re-search-forward |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1918 "\\(\\`\\|[\n\r]\\)[ \t]*\\\\bibliography{[ \t]*\\([^}]+\\)" nil t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1919 (setq files (split-string (reftex-match-string 2) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1920 "[ \t\n\r]*,[ \t\n\r]*")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1921 (setq files |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1922 (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1923 (lambda (x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1924 (if (or (member x reftex-bibfile-ignore-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1925 (delq nil (mapcar (lambda (re) (string-match re x)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1926 reftex-bibfile-ignore-regexps))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1927 ;; excluded file |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1928 nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1929 ;; find the file |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1930 (reftex-find-bib-file |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1931 (if (string-match "\\.bib\\'" x) x (concat x ".bib")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1932 master-dir))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1933 files)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1934 (delq nil files))))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1935 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1936 (defun reftex-replace-label-list-segment (old insert &optional entirely) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1937 ;; Replace the segment in OLD which corresponds to INSERT. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1938 ;; Works with side effects, directly changes old. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1939 ;; If entirely is t, just return INSERT. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1940 ;; This function also makes sure the old toc markers do not point anywhere. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1941 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1942 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1943 (entirely |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1944 (reftex-silence-toc-markers old (length old)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1945 insert) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1946 (t (let* ((new old) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1947 (file (nth 1 (car insert))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1948 (eof-list (member (list 'eof file) old)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1949 (bof-list (member (list 'bof file) old)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1950 n) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1951 (if (not (and bof-list eof-list)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1952 (error "Cannot splice") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1953 ;; Splice |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1954 (reftex-silence-toc-markers bof-list (- (length bof-list) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1955 (length eof-list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1956 (setq n (- (length old) (length bof-list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1957 (setcdr (nthcdr n new) (cdr insert)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1958 (setcdr (nthcdr (1- (length new)) new) (cdr eof-list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1959 new)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1960 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1961 (defun reftex-silence-toc-markers (list n) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1962 ;; Set all toc markers in the first N entries in list to nil |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1963 (while (and list (> (decf n) -1)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1964 (and (eq (car (car list)) 'toc) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1965 (markerp (nth 4 (car list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1966 (set-marker (nth 4 (car list)) nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1967 (pop list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1968 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1969 (defun reftex-access-parse-file (action) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1970 "Perform ACTION on the parse file (the .rel file). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1971 Valid actions are: readable, restore, read, kill, write." |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1972 (let* ((list (symbol-value reftex-docstruct-symbol)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1973 (docstruct-symbol reftex-docstruct-symbol) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1974 (master (reftex-TeX-master-file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1975 (enable-local-variables nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1976 (file (if (string-match "\\.[a-zA-Z]+\\'" master) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1977 (concat (substring master 0 (match-beginning 0)) ".rel") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1978 (concat master ".rel")))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1979 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1980 ((eq action 'readable) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1981 (file-readable-p file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1982 ((eq action 'restore) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1983 (put reftex-docstruct-symbol 'modified nil) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1984 (if (eq reftex-docstruct-symbol nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1985 ;; Symbols are not yet tied: Tie them. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1986 (reftex-tie-multifile-symbols)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1987 (if (file-exists-p file) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1988 ;; load the file and return t for success |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1989 (condition-case nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1990 (progn (load-file file) t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1991 (error (set reftex-docstruct-symbol nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1992 (error "Error while loading file %s" file))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1993 ;; Throw an exception if the file does not exist |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
1994 (error "No restore file %s" file))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1995 ((eq action 'read) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1996 (put reftex-docstruct-symbol 'modified nil) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1997 (if (file-exists-p file) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
1998 ;; load the file and return t for success |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
1999 (condition-case nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2000 (progn (load-file file) t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2001 (error (message "Error while loading file %s" file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2002 (set reftex-docstruct-symbol nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2003 nil)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2004 ;; return nil for failure, but no exception |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2005 nil)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2006 ((eq action 'kill) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2007 ;; Remove the file |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2008 (when (and (file-exists-p file) (file-writable-p file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2009 (message "Unlinking file %s" file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2010 (delete-file file))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2011 (t |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2012 (put docstruct-symbol 'modified nil) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2013 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2014 (if (file-writable-p file) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2015 (progn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2016 (message "Writing parse file %s" (abbreviate-file-name file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2017 (find-file file) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2018 (erase-buffer) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2019 (insert (format ";; RefTeX parse info file\n")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2020 (insert (format ";; File: %s\n" master)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2021 (insert (format ";; User: %s (%s)\n\n" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2022 (user-login-name) (user-full-name))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2023 (insert "(set reftex-docstruct-symbol '(\n\n") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2024 (let ((standard-output (current-buffer))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2025 (mapcar |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2026 (function |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2027 (lambda (x) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2028 (cond ((eq (car x) 'toc) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2029 ;; A toc entry. Do not save the marker. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2030 ;; Save the markers position at position 8 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2031 (print (list 'toc "toc" (nth 2 x) (nth 3 x) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2032 nil (nth 5 x) (nth 6 x) (nth 7 x) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2033 (or (and (markerp (nth 4 x)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2034 (marker-position (nth 4 x))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2035 (nth 8 x))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2036 (t (print x))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2037 list)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2038 (insert "))\n\n") |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2039 (save-buffer 0) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2040 (kill-buffer (current-buffer))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2041 (error "Cannot write to file %s" file))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2042 t)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2043 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2044 (defun reftex-kill-buffer-hook () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2045 "Save RefTeX's parse file for this buffer if the information has changed." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2046 ;; Save the parsing information if it was modified. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2047 ;; This function should be installed in `kill-buffer-hook'. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2048 ;; We are careful to make sure nothing goes wring in this function. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2049 (when (and (boundp 'reftex-mode) reftex-mode |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2050 (boundp 'reftex-save-parse-info) reftex-save-parse-info |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2051 (boundp 'reftex-docstruct-symbol) reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2052 (symbol-value reftex-docstruct-symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2053 (get reftex-docstruct-symbol 'modified)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2054 ;; Write the file. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2055 (condition-case nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2056 (reftex-access-parse-file 'write) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2057 (error nil)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2058 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2059 (defun reftex-kill-emacs-hook () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2060 "Call `reftex-kill-buffer-hook' on all buffers." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2061 ;; This function should be installed in `kill-emacs-hook'. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2062 (save-excursion |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2063 (mapcar (lambda (buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2064 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2065 (reftex-kill-buffer-hook)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2066 (buffer-list)))) |
18050 | 2067 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2068 (defun reftex-section-info (file) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2069 ;; Return a section entry for the current match. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2070 ;; Carefull: This function expects the match-data to be still in place! |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2071 (let* ((marker (set-marker (make-marker) (1- (match-beginning 3)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2072 (macro (reftex-match-string 3)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2073 (star (= ?* (char-after (match-end 3)))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2074 (level (cdr (assoc macro reftex-section-levels-all))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2075 (section-number (reftex-section-number level star)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2076 (text1 (save-match-data (save-excursion (reftex-context-substring)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2077 (literal (buffer-substring-no-properties |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2078 (1- (match-beginning 3)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2079 (min (point-max) (+ (match-end 0) (length text1) 1)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2080 ;; Literal can be too short since text1 too short. No big problem. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2081 (text (reftex-nicify-text text1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2082 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2083 ;; Add section number and indentation |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2084 (setq text |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2085 (concat |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2086 (make-string (* reftex-level-indent level) ?\ ) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2087 (if (nth 1 reftex-label-menu-flags) ; section number flag |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2088 (concat section-number " ")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2089 text)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2090 (list 'toc "toc" text file marker level section-number |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2091 literal (marker-position marker)))) |
18050 | 2092 |
2093 (defun reftex-label-info-update (cell) | |
2094 ;; Update information about just one label in a different file. | |
2095 ;; CELL contains the old info list | |
2096 (let* ((label (nth 0 cell)) | |
2097 (typekey (nth 1 cell)) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2098 ;; (text (nth 2 cell)) |
18050 | 2099 (file (nth 3 cell)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2100 (comment (nth 4 cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2101 (note (nth 5 cell)) |
18050 | 2102 (buf (reftex-get-file-buffer-force |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2103 file (not (eq t reftex-keep-temporary-buffers))))) |
18050 | 2104 (if (not buf) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2105 (list label typekey "" file comment "LOST LABEL. RESCAN TO FIX.") |
18050 | 2106 (save-excursion |
2107 (set-buffer buf) | |
2108 (save-restriction | |
2109 (widen) | |
2110 (goto-char 1) | |
2111 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2112 (if (or (re-search-forward |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2113 (format reftex-find-label-regexp-format |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2114 (regexp-quote label)) nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2115 (re-search-forward |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2116 (format reftex-find-label-regexp-format2 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2117 (regexp-quote label)) nil t)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2118 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2119 (progn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2120 (backward-char 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2121 (append (reftex-label-info label file) (list note))) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
2122 (list label typekey "" file "LOST LABEL. RESCAN TO FIX."))))))) |
18050 | 2123 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2124 (defun reftex-label-info (label &optional file bound derive env-or-mac) |
18050 | 2125 ;; Return info list on LABEL at point. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2126 (let* ((env-or-mac (or env-or-mac (reftex-label-location bound))) |
18050 | 2127 (typekey (nth 1 (assoc env-or-mac reftex-env-or-mac-alist))) |
2128 (file (or file (buffer-file-name))) | |
2129 (parse (if (reftex-typekey-check | |
2130 typekey reftex-use-text-after-label-as-context) | |
2131 nil | |
2132 (nth 2 (assoc env-or-mac reftex-env-or-mac-alist)))) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2133 (text (reftex-short-context env-or-mac parse reftex-location-start |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2134 derive)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2135 (in-comment (reftex-in-comment))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2136 (list label typekey text file in-comment))) |
18050 | 2137 |
2138 (defun reftex-in-comment () | |
2139 (save-excursion | |
2140 (skip-chars-backward "^%\n\r") | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2141 (eq (preceding-char) ?%))) |
18050 | 2142 |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2143 (defun reftex-short-context (env parse &optional bound derive) |
18050 | 2144 ;; Get about one line of useful context for the label definition at point. |
2145 | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2146 (if (consp parse) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2147 (setq parse (if derive (cdr parse) (car parse)))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2148 |
18050 | 2149 (reftex-nicify-text |
2150 | |
2151 (cond | |
2152 | |
2153 ((null parse) | |
2154 (save-excursion | |
2155 (reftex-context-substring))) | |
2156 | |
2157 ((eq parse t) | |
2158 (if (string= env "section") | |
2159 ;; special treatment for section labels | |
2160 (save-excursion | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2161 (if (and (re-search-backward reftex-section-or-include-regexp |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2162 (point-min) t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2163 (match-end 2)) |
18050 | 2164 (progn |
2165 (goto-char (match-end 0)) | |
2166 (reftex-context-substring)) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2167 (if reftex-active-toc |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2168 (progn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2169 (string-match "{\\([^}]*\\)" (nth 7 reftex-active-toc)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2170 (match-string 1 (nth 7 reftex-active-toc))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2171 "SECTION HEADING NOT FOUND"))) |
18050 | 2172 (save-excursion |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2173 (goto-char reftex-default-context-position) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2174 (unless (eq (string-to-char env) ?\\) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2175 (reftex-move-over-touching-args)) |
18050 | 2176 (reftex-context-substring)))) |
2177 | |
2178 ((stringp parse) | |
2179 (save-excursion | |
2180 (if (re-search-backward parse bound t) | |
2181 (progn | |
2182 (goto-char (match-end 0)) | |
2183 (reftex-context-substring)) | |
2184 "NO MATCH FOR CONTEXT REGEXP"))) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2185 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2186 ((integerp parse) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2187 (or (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2188 (goto-char reftex-default-context-position) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2189 (reftex-nth-arg |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2190 parse |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2191 (nth 6 (assoc env reftex-env-or-mac-alist)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2192 "")) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2193 |
18050 | 2194 ((fboundp parse) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
2195 ;; A hook function. Call it. |
18050 | 2196 (save-excursion |
2197 (condition-case error-var | |
2198 (funcall parse env) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2199 (error (format "HOOK ERROR: %s" (cdr error-var)))))) |
18050 | 2200 (t |
2201 "ILLEGAL VALUE OF PARSE")))) | |
2202 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2203 (defun reftex-nicify-text (text) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2204 ;; Make TEXT nice for inclusion as context into label menu |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2205 ;; remove line breaks and extra white space |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2206 (while (string-match "[\n\r\t]\\|[ \t][ \t]+" text) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2207 (setq text (replace-match " " nil t text))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2208 ;; cut before the next `\end{' or `\item' or `\\' |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2209 (if (string-match "\\(\\\\end{\\|\\\\item\\|\\\\\\\\\\).*" text) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2210 (setq text (replace-match "" nil t text))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2211 ;; kill the embedded label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2212 (if (string-match "\\\\label{[^}]*}" text) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2213 (setq text (replace-match "" nil t text))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2214 ;; remove leading garbage |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2215 (if (string-match "\\`[ }]+" text) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2216 (setq text (replace-match "" nil t text))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2217 ;; limit length |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2218 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2219 ((> (length text) 100) (substring text 0 100)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2220 ((= (length text) 0) (make-string 1 ?\ )) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2221 (t text))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2222 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2223 (defun reftex-where-am-I () |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2224 ;; Return the docstruct entry above point. Actually returns a cons |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2225 ;; cell in which the cdr is a flag indicating if the information is |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2226 ;; exact (t) or approximate (nil). |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2227 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2228 (let ((docstruct (symbol-value reftex-docstruct-symbol)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2229 (cnt 0) rtn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2230 found) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2231 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2232 (while (not rtn) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2233 (incf cnt) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2234 (setq found (re-search-backward reftex-everything-regexp nil t)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2235 (setq rtn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2236 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2237 ((not found) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2238 ;; no match |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2239 (or |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2240 (car (member (list 'bof (buffer-file-name)) docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2241 (not (setq cnt 2)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2242 (assq 'bof docstruct) ;; for safety reasons |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2243 'corrupted)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2244 ((match-end 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2245 ;; Label |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2246 (assoc (reftex-match-string 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2247 (symbol-value reftex-docstruct-symbol))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2248 ((match-end 3) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2249 ;; Section |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2250 (goto-char (1- (match-beginning 3))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2251 (let* ((list (member (list 'bof (buffer-file-name)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2252 docstruct)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2253 (endelt (car (member (list 'eof (buffer-file-name)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2254 list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2255 rtn1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2256 (while (and list (not (eq endelt (car list)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2257 (if (and (eq (car (car list)) 'toc) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2258 (string= (buffer-file-name) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2259 (nth 3 (car list)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2260 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2261 ((equal (point) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2262 (or (and (markerp (nth 4 (car list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2263 (marker-position (nth 4 (car list)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2264 (nth 8 (car list)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2265 ;; Fits with marker position or recorded position |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2266 (setq rtn1 (car list) list nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2267 ((looking-at (reftex-make-regexp-allow-for-ctrl-m |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2268 (nth 7 (car list)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2269 ;; Same title |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2270 (setq rtn1 (car list) list nil cnt 2)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2271 (pop list)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2272 rtn1)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2273 ((match-end 7) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2274 ;; Input or include... |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2275 (car |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2276 (member (list 'eof (reftex-find-tex-file |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2277 (reftex-match-string 7) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2278 (cdr (assq 'master-dir docstruct)))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2279 docstruct))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2280 ((match-end 9) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2281 (assq 'appendix (symbol-value reftex-docstruct-symbol))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2282 ((match-end 10) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2283 (save-excursion |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2284 (goto-char (match-end 10)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2285 (assoc (reftex-no-props |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2286 (reftex-nth-arg-wrapper |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2287 (reftex-match-string 10))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2288 (symbol-value reftex-docstruct-symbol)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2289 (t |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2290 (error "This should not happen (reftex-where-am-I)")))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2291 (cons rtn (eq cnt 1)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2292 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2293 (defun reftex-label-location (&optional bound) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2294 "Return the environment or macro which determines the label type at point. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2295 If optional BOUND is an integer, limit backward searches to that point." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2296 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2297 (let* ((loc1 (reftex-what-macro reftex-label-mac-list bound)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2298 (loc2 (reftex-what-environment reftex-label-env-list bound)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2299 (p1 (or (cdr loc1) 0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2300 (p2 (or (cdr loc2) 0))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2301 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2302 (setq reftex-location-start (max p1 p2)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2303 (if (>= p1 p2) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2304 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2305 (setq reftex-default-context-position (+ p1 (length (car loc1)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2306 (or (car loc1) "section")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2307 (setq reftex-default-context-position (+ p2 8 (length (car loc2)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2308 (or (car loc2) "section")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2309 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2310 (defun reftex-parse-args (macro) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2311 ;; Return a list of macro name, nargs, arg-nr which is label and a list of |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2312 ;; optional argument indices. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2313 (if (string-match "[[{]\\*?[]}]" macro) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2314 (progn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2315 (let ((must-match (substring macro 0 (match-beginning 0))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2316 (args (substring macro (match-beginning 0))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2317 opt-list nlabel (cnt 0)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2318 (while (string-match "\\`[[{]\\(\\*\\)?[]}]" args) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2319 (incf cnt) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2320 (when (eq ?\[ (string-to-char args)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2321 (push cnt opt-list)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2322 (when (and (match-end 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2323 (not nlabel)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2324 (setq nlabel cnt)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2325 (setq args (substring args (match-end 0)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2326 (list must-match cnt nlabel opt-list))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2327 nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2328 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2329 (defsubst reftex-move-to-next-arg (&optional ignore) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2330 ;; Assuming that we are at the end of a macro name or a macro argument, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2331 ;; move forward to the opening parenthesis of the next argument. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2332 ;; This function understands the splitting of macros over several lines |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2333 ;; in TeX. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2334 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2335 ;; Just to be quick: |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2336 ((memq (following-char) '(?\[ ?\{))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2337 ;; Do a search |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2338 ((and reftex-allow-detached-macro-args |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2339 (looking-at "[ \t]*[\n\r]?\\([ \t]*%[^\n\r]*[\n\r]\\)*[ \t]*[[{]")) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2340 (goto-char (1- (match-end 0))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2341 t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2342 (t nil))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2343 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2344 (defsubst reftex-move-to-previous-arg (&optional bound) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2345 ;; Assuming that we are in front of a macro argument, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2346 ;; move backward to the closing parenthesis of the previous argument. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2347 ;; This function understands the splitting of macros over several lines |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2348 ;; in TeX. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2349 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2350 ;; Just to be quick: |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2351 ((memq (preceding-char) '(?\] ?\}))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2352 ;; Do a search |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2353 ((and reftex-allow-detached-macro-args |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2354 (re-search-backward |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2355 "[]}][ \t]*[\n\r]?\\([ \t]*%[^\n\r]*[\n\r]\\)*[ \t]*\\=" bound t)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2356 (goto-char (1+ (match-beginning 0))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2357 t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2358 (t nil))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2359 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2360 (defun reftex-nth-arg-wrapper (key) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2361 (let ((entry (assoc key reftex-env-or-mac-alist))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2362 (reftex-nth-arg (nth 5 entry) (nth 6 entry)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2363 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2364 (defun reftex-nth-arg (n &optional opt-args) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2365 ;; Return the nth following {} or [] parentheses content. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2366 ;; OPT-ARGS is a list of argument numbers which are optional. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2367 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2368 ;; If we are sitting at a macro start, skip to end of macro name. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2369 (and (eq (following-char) ?\\) (skip-chars-forward "a-zA-Z*\\\\")) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2370 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2371 (if (= n 1000) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2372 ;; Special case: Skip all touching arguments |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2373 (progn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2374 (reftex-move-over-touching-args) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2375 (reftex-context-substring)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2376 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2377 ;; Do the real thing. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2378 (let ((cnt 1)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2379 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2380 (when (reftex-move-to-next-arg) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2381 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2382 (while (< cnt n) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2383 (while (and (member cnt opt-args) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2384 (eq (following-char) ?\{)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2385 (incf cnt)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2386 (when (< cnt n) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2387 (unless (and (condition-case nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2388 (or (forward-list 1) t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2389 (error nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2390 (reftex-move-to-next-arg) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2391 (incf cnt)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2392 (setq cnt 1000)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2393 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2394 (while (and (memq cnt opt-args) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2395 (eq (following-char) ?\{)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2396 (incf cnt))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2397 (if (and (= n cnt) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2398 (> (skip-chars-forward "{\\[") 0)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2399 (reftex-context-substring) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2400 nil)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2401 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2402 (defun reftex-move-over-touching-args () |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2403 (condition-case nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2404 (while (memq (following-char) '(?\[ ?\{)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2405 (forward-list 1)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2406 (error nil))) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2407 |
18050 | 2408 (defun reftex-context-substring () |
2409 ;; Return up to 100 chars from point | |
2410 ;; When point is just after a { or [, limit string to matching parenthesis | |
2411 (cond | |
2412 ((or (= (preceding-char) ?\{) | |
2413 (= (preceding-char) ?\[)) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2414 ;; Inside a list - get only the list. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2415 (buffer-substring-no-properties |
18050 | 2416 (point) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2417 (min (+ (point) 150) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2418 (point-max) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2419 (condition-case nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2420 (progn |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2421 (up-list 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2422 (1- (point))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2423 (error (point-max)))))) |
18050 | 2424 (t |
2425 ;; no list - just grab 100 characters | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2426 (buffer-substring-no-properties (point) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2427 (min (+ (point) 150) (point-max)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2428 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2429 ;; Variable holding the vector with section numbers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2430 (defvar reftex-section-numbers [0 0 0 0 0 0 0 0]) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2431 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2432 (defun reftex-init-section-numbers (&optional toc-entry appendix) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2433 ;; Initialize the section numbers with zeros or with what is found |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2434 ;; in the toc entry. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2435 (let* ((level (or (nth 5 toc-entry) -1)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2436 (numbers (nreverse (split-string (or (nth 6 toc-entry) "") "\\."))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2437 (depth (1- (length reftex-section-numbers))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2438 (i depth) number-string) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2439 (while (>= i 0) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
2440 (if (> i level) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2441 (aset reftex-section-numbers i 0) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2442 (setq number-string (or (car numbers) "0")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2443 (if (string-match "\\`[A-Z]\\'" number-string) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2444 (aset reftex-section-numbers i |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2445 (- (string-to-char number-string) ?A -1)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2446 (aset reftex-section-numbers i (string-to-int number-string))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2447 (pop numbers)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2448 (decf i))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2449 (put 'reftex-section-numbers 'appendix appendix)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2450 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2451 (defun reftex-section-number (&optional level star) |
18050 | 2452 ;; Return a string with the current section number. |
2453 ;; When LEVEL is non-nil, increase section numbers on that level. | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2454 (let* ((depth (1- (length reftex-section-numbers))) idx n (string "") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2455 (appendix (get 'reftex-section-numbers 'appendix))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2456 (when level |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2457 (when (and (> level -1) (not star)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2458 (aset reftex-section-numbers |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2459 level (1+ (aref reftex-section-numbers level)))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2460 (setq idx (1+ level)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2461 (when (not star) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2462 (while (<= idx depth) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2463 (aset reftex-section-numbers idx 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2464 (incf idx)))) |
18050 | 2465 (setq idx 0) |
2466 (while (<= idx depth) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2467 (setq n (aref reftex-section-numbers idx)) |
18050 | 2468 (setq string (concat string (if (not (string= string "")) "." "") |
2469 (int-to-string n))) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2470 (incf idx)) |
18050 | 2471 (save-match-data |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2472 (if (string-match "\\`\\([@0]\\.\\)+" string) |
18050 | 2473 (setq string (replace-match "" nil nil string))) |
2474 (if (string-match "\\(\\.0\\)+\\'" string) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2475 (setq string (replace-match "" nil nil string))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2476 (if (and appendix |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
2477 (string-match "\\`[0-9]+" string)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2478 (setq string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2479 (concat |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2480 (char-to-string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2481 (1- (+ ?A (string-to-int (match-string 0 string))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2482 (substring string (match-end 0)))))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2483 (if star |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
2484 (concat (make-string (1- (length string)) ?\ ) "*") |
18050 | 2485 string))) |
2486 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2487 (defun reftex-is-multi () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2488 ;; Tell if this is a multifile document. When not sure, say yes. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2489 (let ((entry (assq 'is-multi (symbol-value reftex-docstruct-symbol)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2490 (if entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2491 (nth 1 entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2492 t))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2493 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2494 (defun reftex-typekey-check (typekey conf-variable &optional n) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2495 ;; Check if CONF-VARIABLE is true or contains TYPEKEY |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2496 (and n (setq conf-variable (nth n conf-variable))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2497 (or (eq conf-variable t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2498 (and (stringp conf-variable) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2499 (string-match (concat "[" conf-variable "]") typekey)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2500 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2501 (defun reftex-all-document-files (&optional relative) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2502 "Return a list of all files belonging to the current document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2503 When RELATIVE is non-nil, give file names relative to directory |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2504 of master file." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2505 (let* ((all (symbol-value reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2506 (master-dir (file-name-directory (reftex-TeX-master-file))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2507 (re (concat "\\`" (regexp-quote master-dir))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2508 file-list tmp file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2509 (while (setq tmp (assoc 'bof all)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2510 (setq file (nth 1 tmp) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2511 all (cdr (memq tmp all))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2512 (and relative |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2513 (string-match re file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2514 (setq file (substring file (match-end 0)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2515 (push file file-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2516 (nreverse file-list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2517 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2518 ;;; Creating labels --------------------------------------------------------- |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2519 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2520 (defun reftex-label (&optional environment no-insert) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2521 "Insert a unique label. Return the label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2522 If ENVIRONMENT is given, don't bother to find out yourself. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2523 If NO-INSERT is non-nil, do not insert label into buffer. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2524 With prefix arg, force to rescan document first. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2525 When you are prompted to enter or confirm a label, and you reply with |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2526 just the prefix or an empty string, no label at all will be inserted. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2527 A new label is also recorded into the label list. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2528 This function is controlled by the settings of reftex-insert-label-flags." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2529 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2530 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2531 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2532 ;; Ensure access to scanning info and rescan buffer if prefix are is '(4). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2533 (reftex-access-scan-info current-prefix-arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2534 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2535 ;; Find out what kind of environment this is and abort if necessary. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2536 (if (or (not environment) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2537 (not (assoc environment reftex-env-or-mac-alist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2538 (setq environment (reftex-label-location))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2539 (unless environment |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2540 (error "Can't figure out what kind of label should be inserted")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2541 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2542 ;; Ok, go ahead. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2543 (catch 'exit |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2544 (let* ((entry (assoc environment reftex-env-or-mac-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2545 (typekey (nth 1 entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2546 (format (nth 3 entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2547 (macro-cell (reftex-what-macro 1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2548 (entry1 (assoc (car macro-cell) reftex-env-or-mac-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2549 label naked prefix valid default force-prompt rescan-is-useful) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2550 (when (and (or (nth 5 entry) (nth 5 entry1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2551 (memq (preceding-char) '(?\[ ?\{))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2552 ;; This is an argument of a label macro. Insert naked label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2553 (setq naked t format "%s")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2554 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2555 (setq prefix (or (cdr (assoc typekey reftex-typekey-to-prefix-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2556 (concat typekey "-"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2557 ;; Replace any escapes in the prefix |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2558 (setq prefix (reftex-replace-prefix-escapes prefix)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2559 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2560 ;; Make a default label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2561 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2562 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2563 ((reftex-typekey-check typekey (nth 0 reftex-insert-label-flags)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2564 ;; Derive a label from context. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2565 (setq reftex-active-toc (reftex-last-assoc-before-elt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2566 'toc (car (reftex-where-am-I)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2567 (symbol-value reftex-docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2568 (setq default (reftex-no-props |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2569 (nth 2 (reftex-label-info " " nil nil t)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2570 ;; Catch the cases where the is actually no context available. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2571 (if (or (string-match "NO MATCH FOR CONTEXT REGEXP" default) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2572 (string-match "ILLEGAL VALUE OF PARSE" default) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2573 (string-match "SECTION HEADING NOT FOUND" default) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2574 (string-match "HOOK ERROR" default) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2575 (string-match "^[ \t]*$" default)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2576 (setq default prefix |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2577 force-prompt t) ; need to prompt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2578 (setq default |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2579 (concat prefix |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2580 (funcall reftex-string-to-label-function default))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2581 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2582 ;; Make it unique. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2583 (setq default (reftex-uniquify-label default nil "-")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2584 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2585 ((reftex-typekey-check typekey (nth 1 reftex-insert-label-flags)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2586 ;; Minimal default: the user will be prompted. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2587 (setq default prefix)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2588 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2589 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2590 ;; Make an automatic label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2591 (setq default (reftex-uniquify-label prefix t)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2592 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2593 ;; Should we ask the user? |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2594 (if (or (reftex-typekey-check typekey |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2595 (nth 1 reftex-insert-label-flags)) ; prompt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2596 force-prompt) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2597 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2598 (while (not valid) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2599 ;; iterate until we get a legal label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2600 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2601 (setq label (read-string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2602 (if naked "Naked Label: " "Label: ") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2603 default)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2604 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2605 ;; Lets make sure that this is a legal label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2606 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2607 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2608 ((string-match (concat "\\`\\(" (regexp-quote prefix) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2609 "\\)?[ \t]*\\'") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2610 label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2611 ;; No label at all, please |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2612 (message "No label inserted.") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2613 (throw 'exit nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2614 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2615 ;; Test if label contains strange characters |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2616 ((string-match reftex-label-illegal-re label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2617 (message "Label \"%s\" contains illegal characters" label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2618 (ding) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2619 (sit-for 2)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2620 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2621 ;; Look it up in the label list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2622 ((setq entry (assoc label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2623 (symbol-value reftex-docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2624 (ding) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2625 (if (y-or-n-p |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2626 (format "Label '%s' exists. Use anyway? " label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2627 (setq valid t))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2628 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2629 ;; Label is ok |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2630 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2631 (setq valid t)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2632 (setq label default)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2633 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2634 ;; Insert the label into the label list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2635 (let* ((here-I-am-info |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2636 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2637 (if (and (or naked no-insert) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2638 (integerp (cdr macro-cell))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2639 (goto-char (cdr macro-cell))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2640 (reftex-where-am-I))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2641 (here-I-am (car here-I-am-info)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2642 (note (if (cdr here-I-am-info) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2643 "" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2644 "POSITION UNCERTAIN. RESCAN TO FIX.")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2645 (file (buffer-file-name)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2646 (text nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2647 (tail (memq here-I-am (symbol-value reftex-docstruct-symbol)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2648 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2649 (or (cdr here-I-am-info) (setq rescan-is-useful t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2650 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2651 (when tail |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2652 (push (list label typekey text file nil note) (cdr tail)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2653 (put reftex-docstruct-symbol 'modified t))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2654 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2655 ;; Insert the label into the buffer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2656 (unless no-insert |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2657 (insert |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2658 (if reftex-format-label-function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2659 (funcall reftex-format-label-function label format) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2660 (format format label))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2661 (if (and reftex-plug-into-AUCTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2662 (fboundp 'LaTeX-add-labels)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2663 ;; Tell AUCTeX about this |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2664 (LaTeX-add-labels label))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2665 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2666 ;; Delete the corresponding selection buffers to force update on next use. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2667 (when reftex-auto-update-selection-buffers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2668 (reftex-erase-buffer (reftex-make-selection-buffer-name typekey)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2669 (reftex-erase-buffer (reftex-make-selection-buffer-name " "))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2670 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2671 (when (and rescan-is-useful reftex-allow-automatic-rescan) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2672 (reftex-parse-one)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2673 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2674 ;; return value of the function is the label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2675 label))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2676 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2677 (defun reftex-string-to-label (string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2678 "Convert a string (a sentence) to a label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2679 Uses `reftex-derive-label-parameters' and `reftex-label-illegal-re'. It |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2680 also applies `reftex-translate-to-ascii-function' to the string." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2681 (when (and reftex-translate-to-ascii-function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2682 (fboundp reftex-translate-to-ascii-function)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2683 (setq string (funcall reftex-translate-to-ascii-function string))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2684 (apply 'reftex-convert-string string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2685 "[-~ \t\n\r,;]+" reftex-label-illegal-re nil nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2686 reftex-derive-label-parameters)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2687 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2688 (defun reftex-abbreviate-title (string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2689 (reftex-convert-string string "[-~ \t\n\r,;]" nil t t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2690 5 40 nil 1 " " (nth 5 reftex-derive-label-parameters))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2691 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2692 (defun reftex-convert-string (string split-re illegal-re dot keep-fp |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2693 nwords maxchar illegal abbrev sep |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2694 ignore-words &optional downcase) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2695 "Convert a string (a sentence) to something shorter. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2696 SPLIT-RE is the regular expression used to split the string into words. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2697 ILLEGAL-RE matches characters which are illegal in the final string. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2698 DOT t means add dots to abbreviated words. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2699 KEEP-FP t means to keep a final punctuation when applicable. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2700 NWORDS Number of words to use. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2701 MAXCHAR Maximum number of characters in the final string. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2702 ILLEGAL nil: Throw away any words containing stuff matched with ILLEGAL-RE. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2703 t: Throw away only the matched part, not the whole word. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2704 ABBREV nil: Never abbreviate words. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2705 t: Always abbreviate words (see `reftex-abbrev-parameters'). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2706 not t and not nil: Abbreviate words if necessary to shorten |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2707 string below MAXCHAR. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2708 SEP String separating different words in the output string. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2709 IGNORE-WORDS List of words which should be removed from the string." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2710 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2711 (let* ((words0 (split-string string (or split-re "[ \t\n\r]"))) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2712 (reftex-label-illegal-re (or illegal-re "\000")) |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2713 (abbrev-re (concat |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2714 "\\`\\(" |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2715 (make-string (nth 0 reftex-abbrev-parameters) ?.) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2716 "[" (nth 2 reftex-abbrev-parameters) "]*" |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2717 "\\)" |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2718 "[" (nth 3 reftex-abbrev-parameters) "]" |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2719 (make-string (1- (nth 1 reftex-abbrev-parameters)) ?.))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2720 words word) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2721 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2722 ;; Remove words from the ignore list or with funny characters |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2723 (while (setq word (pop words0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2724 (if downcase (setq word (downcase word))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2725 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2726 ((member (downcase word) ignore-words)) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2727 ((string-match reftex-label-illegal-re word) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2728 (when illegal |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2729 (while (string-match reftex-label-illegal-re word) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2730 (setq word (replace-match "" nil nil word))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2731 (push word words))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2732 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2733 (push word words)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2734 (setq words (nreverse words)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2735 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2736 ;; Restrict number of words |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2737 (if (> (length words) nwords) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2738 (setcdr (nthcdr (1- nwords) words) nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2739 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2740 ;; First, try to use all words |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2741 (setq string (mapconcat 'identity words sep)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2742 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2743 ;; Abbreviate words if enforced by user settings or string length |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2744 (if (or (eq t abbrev) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2745 (and abbrev |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2746 (> (length string) maxchar))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2747 (setq words |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2748 (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2749 (function |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
2750 (lambda (w) (if (string-match abbrev-re w) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2751 (if dot |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2752 (concat (match-string 1 w) ".") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2753 (match-string 1 w)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2754 w))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2755 words) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2756 string (mapconcat 'identity words sep))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2757 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2758 ;; Shorten if still to long |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2759 (setq string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2760 (if (> (length string) maxchar) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2761 (substring string 0 maxchar) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2762 string)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2763 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2764 ;; Delete the final punctuation, if any |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2765 (if (and (not keep-fp) (string-match "\\s.+\\'" string)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2766 (setq string (replace-match "" nil nil string))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2767 string)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2768 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2769 (defun reftex-latin1-to-ascii (string) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2770 ;; Translate the upper 127 chars in the ISO1 charset to ASCII equivalents |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2771 (let ((tab "@@@@@@@@@@@@@@@@@@'@@@@@@@@@@@@@ icLxY|S\"ca<--R-o|23'uq..1o>423?AAAAAAACEEEEIIIIDNOOOOOXOUUUUYP3aaaaaaaceeeeiiiidnooooo:ouuuuypy") c) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2772 (loop for i from 0 to (1- (length string)) do |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2773 (setq c (aref string i)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2774 (cond ((and (> c 127) (< c 256)) ; 8 bit Latin-1 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2775 (aset string i (aref tab (- c 128)))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2776 ((and (> c 2175) (< c 2304)) ; Mule Latin-1, |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2777 (aset string i (aref tab (- c 2176)))))) ; Std. Emacs only |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2778 string)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2779 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2780 (defun reftex-replace-prefix-escapes (prefix) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2781 ;; Replace %escapes in a label prefix |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2782 (save-match-data |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2783 (let (letter (num 0) replace) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2784 (while (string-match "\\%\\([a-zA-Z]\\)" prefix num) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2785 (setq letter (match-string 1 prefix)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2786 (setq replace |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2787 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2788 ((equal letter "f") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2789 (file-name-sans-extension |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2790 (file-name-nondirectory (buffer-file-name)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2791 ((equal letter "F") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2792 (let ((masterdir (file-name-directory (reftex-TeX-master-file))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2793 (file (file-name-sans-extension (buffer-file-name)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2794 (if (string-match (concat "\\`" (regexp-quote masterdir)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2795 file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2796 (substring file (length masterdir)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2797 file))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2798 ((equal letter "u") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2799 (or (user-login-name) "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2800 (t ""))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2801 (setq num (1- (+ (match-beginning 1) (length replace))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2802 prefix (replace-match replace nil nil prefix))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2803 prefix))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2804 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2805 (defun reftex-uniquify-label (label &optional force separator) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2806 ;; Make label unique by appending a number. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2807 ;; Optional FORCE means, force appending a number, even if label is unique. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2808 ;; Optional SEPARATOR is a string to stick between label and number. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2809 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2810 ;; Ensure access to scanning info |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2811 (reftex-access-scan-info) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2812 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2813 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2814 ((and (not force) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2815 (not (assoc label (symbol-value reftex-docstruct-symbol)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2816 label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2817 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2818 (let* ((label-numbers (assq 'label-numbers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2819 (symbol-value reftex-docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2820 (label-numbers-alist (cdr label-numbers)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2821 (cell (or (assoc label label-numbers-alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2822 (car (setcdr label-numbers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2823 (cons (cons label 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2824 label-numbers-alist))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2825 (num (1+ (cdr cell))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2826 (sep (or separator ""))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2827 (while (assoc (concat label sep (int-to-string num)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2828 (symbol-value reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2829 (incf num)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2830 (setcdr cell num) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2831 (concat label sep (int-to-string num)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2832 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2833 ;;; Referencing labels ------------------------------------------------------ |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2834 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2835 ;; Help string for the reference label menu |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2836 (defconst reftex-select-label-prompt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2837 "Select: [n]ext [p]revious [r]escan [ ]context e[x]tern [q]uit RET [?]HELP+more") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2838 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2839 (defconst reftex-select-label-help |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2840 " n / p Go to next/previous label (Cursor motion works as well) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2841 C-c C-n/p Go to next/previous section heading. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2842 b / l Jump back to previous selection / Reuse last referenced label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2843 C-s / C-r Search forward/backward. Use repeated C-s/C-r as in isearch. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2844 g / s Update menu / Switch label type |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2845 r / R Reparse document / Reparse entire document |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2846 x Switch to label menu of external document (with LaTeX package `xr') |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2847 t i c # % Toggle: [i]ncl. file borders, [t]able of contents, [c]ontext |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2848 [#] label counters, [%] labels in comments |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2849 SPC / f Show full context in other window / Toggle follow mode |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2850 v / . Toggle \\ref <-> \\vref / Show insertion point in other window |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2851 TAB Enter a label with completion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2852 q / RET Quit without referencing / Accept current label (also on mouse-2)") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2853 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2854 (defvar reftex-select-label-map nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2855 "Keymap used for *RefTeX Select* buffer, when selecting a label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2856 This keymap can be used to configure the label selection process which is |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2857 started with the command \\[reftex-reference].") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2858 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2859 (defun reftex-select-label-mode () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2860 "Major mode for selecting a label in a LaTeX document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2861 This buffer was created with RefTeX. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2862 It only has a meaningful keymap when you are in the middle of a |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2863 selection process. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2864 To select a label, move the cursor to it and press RET. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2865 Press `?' for a summary of important key bindings. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2866 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2867 During a selection process, these are the local bindings. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2868 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2869 \\{reftex-select-label-map}" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2870 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2871 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2872 (kill-all-local-variables) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2873 (make-local-hook 'pre-command-hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2874 (make-local-hook 'post-command-hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2875 (setq major-mode 'reftex-select-label-mode |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2876 mode-name "RefTeX Select Label") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2877 (when (syntax-table-p reftex-latex-syntax-table) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2878 (set-syntax-table reftex-latex-syntax-table)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2879 ;; We do not set a local map - reftex-select-item does this. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2880 (run-hooks 'reftex-select-label-mode-hook)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2881 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2882 (defun reftex-reference (&optional type no-insert cut) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2883 "Make a LaTeX reference. Look only for labels of a certain TYPE. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2884 With prefix arg, force to rescan buffer for labels. This should only be |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2885 necessary if you have recently entered labels yourself without using |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2886 reftex-label. Rescanning of the buffer can also be requested from the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2887 label selection menu. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2888 The function returns the selected label or nil. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2889 If NO-INSERT is non-nil, do not insert \\ref command, just return label. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2890 When called with 2 C-u prefix args, disable magic word recognition." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2891 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2892 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2893 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2894 ;; check for active recursive edits |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2895 (reftex-check-recursive-edit) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2896 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2897 ;; Ensure access to scanning info and rescan buffer if prefix are is '(4) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2898 (reftex-access-scan-info current-prefix-arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2899 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2900 (unless type |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2901 ;; guess type from context |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2902 (if (and reftex-guess-label-type |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2903 (setq type (reftex-guess-label-type))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2904 (setq cut (cdr type) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2905 type (car type)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2906 (setq type (reftex-query-label-type)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2907 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2908 (let* ((varioref (if (reftex-typekey-check |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2909 type reftex-vref-is-default) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2910 "\\vref" "\\ref")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2911 (form "\\ref{%s}") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2912 label pair) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2913 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2914 ;; Have the user select a label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2915 (set-marker reftex-select-return-marker (point)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2916 (setq pair (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2917 (reftex-offer-label-menu type))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2918 (reftex-ensure-compiled-variables) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2919 (set-marker reftex-select-return-marker nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2920 (setq label (car pair) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2921 type (cdr pair) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2922 form (or (cdr (assoc type reftex-typekey-to-format-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2923 form)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2924 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2925 (if (and label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2926 (not no-insert)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2927 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2928 (if cut (backward-delete-char cut)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2929 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2930 ;; remove ~ if we do already have a space |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2931 (when (and (= ?~ (string-to-char form)) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
2932 (member (preceding-char) '(?\ ?\t ?\n))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2933 (setq form (substring form 1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2934 ;; do we need to switch from \ref to \vref? |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2935 (when (string= varioref "\\vref") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2936 (while (string-match "\\\\ref{" form) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2937 (setq form (replace-match "\\vref{" t t form)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2938 ;; ok, insert the reference |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2939 (insert |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2940 (if reftex-format-ref-function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2941 (funcall reftex-format-ref-function label form) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2942 (format form label label))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2943 (message "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2944 (message "Quit")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2945 ;; return the label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2946 label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2947 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2948 (defun reftex-guess-label-type () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2949 ;; Examine context to guess what a \ref might want to reference. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2950 (let ((words reftex-words-to-typekey-alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2951 (case-fold-search t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2952 (bound (max (point-min) (- (point) 35))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2953 matched cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2954 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2955 (while (and (setq cell (pop words)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2956 (not (setq matched |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2957 (re-search-backward (car cell) bound t)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2958 (if matched |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2959 (cons (cdr cell) (- (match-end 0) (match-end 1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2960 nil))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2961 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2962 (defun reftex-offer-label-menu (typekey) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2963 ;; Offer a menu with the appropriate labels. Return (label . typekey). |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2964 (let* ((buf (current-buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2965 (xr-data (assq 'xr (symbol-value reftex-docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2966 (xr-alist (cons (cons "" (buffer-file-name)) (nth 1 xr-data))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2967 (xr-index 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2968 (here-I-am (car (reftex-where-am-I))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2969 (here-I-am1 here-I-am) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2970 (toc (reftex-typekey-check typekey reftex-label-menu-flags 0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2971 (files (reftex-typekey-check typekey reftex-label-menu-flags 7)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2972 (context (not (reftex-typekey-check |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2973 typekey reftex-label-menu-flags 3))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2974 (counter (reftex-typekey-check |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2975 typekey reftex-label-menu-flags 2)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2976 (follow (reftex-typekey-check |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2977 typekey reftex-label-menu-flags 4)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2978 (commented (nth 5 reftex-label-menu-flags)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2979 (prefix "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2980 selection-buffers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2981 offset rtn key data last-data entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2982 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2983 (setq entry (cons nil nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2984 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2985 (unwind-protect |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2986 (catch 'exit |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2987 (while t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2988 (save-window-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2989 (delete-other-windows) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2990 (setq reftex-call-back-to-this-buffer buf |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2991 reftex-latex-syntax-table (syntax-table)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2992 (let ((default-major-mode 'reftex-select-label-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2993 (if reftex-use-multiple-selection-buffers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2994 (switch-to-buffer-other-window |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2995 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2996 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2997 (reftex-make-selection-buffer-name typekey))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2998 (switch-to-buffer-other-window "*RefTeX Select*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
2999 (reftex-erase-buffer))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3000 (unless (eq major-mode 'reftex-select-label-mode) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3001 (reftex-select-label-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3002 (add-to-list 'selection-buffers (current-buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3003 (setq truncate-lines t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3004 (setq mode-line-format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3005 (list "---- " 'mode-line-buffer-identification |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3006 " " 'varioref |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3007 " " (abbreviate-file-name |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3008 (buffer-file-name buf)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3009 " -%-")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3010 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3011 ((= 0 (buffer-size)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3012 (let ((buffer-read-only nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3013 (setq offset (reftex-make-and-insert-label-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3014 typekey buf toc files context counter commented |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3015 (or here-I-am offset) prefix)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3016 (here-I-am |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3017 (setq offset (reftex-get-offset buf here-I-am typekey))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3018 (t (setq offset t))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3019 (setq buffer-read-only t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3020 (setq offset (or offset t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3021 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3022 (setq here-I-am nil) ; turn off determination of offset |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3023 (setq rtn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3024 (reftex-select-item |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3025 reftex-select-label-prompt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3026 reftex-select-label-help |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3027 reftex-select-label-map |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3028 offset |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3029 'reftex-select-label-callback follow)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3030 (setq key (car rtn) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3031 data (nth 1 rtn) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3032 last-data (nth 2 rtn) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3033 offset t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3034 (unless key (throw 'exit nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3035 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3036 ((eq key ?g) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3037 ;; update buffer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3038 (reftex-erase-buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3039 ((or (eq key ?r) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3040 (eq key ?R)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3041 ;; rescan buffer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3042 (reftex-erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3043 (reftex-reparse-document buf last-data key)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3044 ((eq key ?c) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3045 ;; toggle context mode |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3046 (reftex-erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3047 (setq context (not context))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3048 ((eq key ?s) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3049 ;; switch type |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3050 (setq here-I-am here-I-am1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3051 (setq typekey (reftex-query-label-type))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3052 ((eq key ?t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3053 ;; toggle table of contents display |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3054 (reftex-erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3055 (setq toc (not toc))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3056 ((eq key ?i) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3057 ;; toggle display of included file borders |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3058 (reftex-erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3059 (setq files (not files))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3060 ((eq key ?#) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3061 ;; toggle counter display |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3062 (reftex-erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3063 (setq counter (not counter))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3064 ((eq key ?%) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3065 ;; toggle display of commented labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3066 (reftex-erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3067 (setq commented (not commented))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3068 ((eq key ?l) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3069 ;; reuse the last referenced label again |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3070 (setq entry reftex-last-used-reference) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3071 (throw 'exit t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3072 ((eq key ?x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3073 ;; select an external document |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3074 (setq xr-index (reftex-select-external-document |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3075 xr-alist xr-index)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3076 (setq buf (or (reftex-get-file-buffer-force |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3077 (cdr (nth xr-index xr-alist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3078 (error "Cannot switch document")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3079 prefix (or (car (nth xr-index xr-alist)) "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3080 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3081 (reftex-access-scan-info)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3082 ((stringp key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3083 (setq entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3084 (or (assoc key (symbol-value reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3085 (list key typekey))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3086 (throw 'exit t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3087 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3088 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3089 (if data |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3090 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3091 (setq entry data) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3092 (setq reftex-last-used-reference entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3093 (setq entry nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3094 (throw 'exit t)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3095 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3096 (while reftex-buffers-with-changed-invisibility |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3097 (set-buffer (car (car reftex-buffers-with-changed-invisibility))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3098 (setq buffer-invisibility-spec |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3099 (cdr (pop reftex-buffers-with-changed-invisibility))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3100 (mapcar (function (lambda (buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3101 (and (buffer-live-p buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3102 (bury-buffer buf)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3103 selection-buffers) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3104 (reftex-kill-temporary-buffers)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3105 (cons (if (nth 0 entry) (concat prefix (nth 0 entry)) nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3106 (nth 1 entry)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3107 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3108 (defun reftex-select-external-document (xr-alist xr-index) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3109 ;; Return index of an external document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3110 (let* ((len (length xr-alist)) (highest (1- (+ ?0 len))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3111 (prompt (format "[%c-%c] Select TAB: Read prefix with completion" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3112 ?0 highest)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3113 key prefix) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3114 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3115 ((= len 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3116 (message "No external documents available") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3117 (ding) (sit-for 1) 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3118 ((= len 2) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3119 (- 1 xr-index)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3120 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3121 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3122 (let* ((length (apply 'max (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3123 (lambda(x) (length (car x))) xr-alist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3124 (fmt (format " [%%c] %%-%ds %%s\n" length)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3125 (n (1- ?0))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3126 (setq key |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3127 (reftex-select-with-char |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3128 prompt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3129 (concat |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3130 "SELECT EXTERNAL DOCUMENT\n------------------------\n" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3131 (mapconcat |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3132 (function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3133 (lambda (x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3134 (format fmt (incf n) (or (car x) "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3135 (abbreviate-file-name (cdr x))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3136 xr-alist "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3137 nil t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3138 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3139 ((and (>= key ?0) (<= key highest)) (- key ?0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3140 ((= key ?\C-i) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3141 (setq prefix (completing-read "Prefix: " xr-alist nil t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3142 (- len (length (memq (assoc prefix xr-alist) xr-alist)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3143 (t (error "Illegal document selection [%c]" key))))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3144 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3145 (defun reftex-reparse-document (&optional buffer data key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3146 ;; Rescan the document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3147 (save-window-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3148 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3149 (if buffer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3150 (if (not (bufferp buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3151 (error "No such buffer %s" (buffer-name buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3152 (set-buffer buffer))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3153 (let ((arg (if (eq key ?R) '(16) '(4))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3154 (file (nth 3 data))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3155 (reftex-access-scan-info arg file))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3156 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3157 (defun reftex-make-selection-buffer-name (type &optional index) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3158 ;; Make unique name for a selection buffer. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3159 (format " *RefTeX[%s][%d]*" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3160 type (or index (get reftex-docstruct-symbol ':master-index) 0))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3161 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3162 (defun reftex-get-offset (buf here-am-I typekey) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3163 ;; Find the correct offset data, like make-and-insert would, but faster. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3164 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3165 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3166 (reftex-access-scan-info) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3167 (let* ((rest (memq here-am-I (symbol-value reftex-docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3168 entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3169 (while (and (setq entry (pop rest)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3170 (not (and (stringp (car entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3171 (equal typekey (nth 1 entry)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3172 entry))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3173 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3174 (defun reftex-make-and-insert-label-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3175 (typekey0 buf toc files context counter show-commented here-I-am xr-prefix) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3176 ;; Insert a menu of all labels in buffer BUF into current buffer. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3177 ;; Return the data property of the entry corresponding to HERE-I-AM. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3178 (let* ((font (reftex-use-fonts)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3179 (cnt 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3180 (index -1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3181 (toc-indent " ") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3182 (label-indent |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3183 (concat "> " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3184 (if toc (make-string (* 7 reftex-level-indent) ?\ ) ""))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3185 (context-indent |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3186 (concat ". " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3187 (if toc (make-string (* 7 reftex-level-indent) ?\ ) ""))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3188 (mouse-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3189 (if (memq reftex-highlight-selection '(mouse both)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3190 reftex-mouse-selected-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3191 nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3192 (label-face (reftex-verified-face reftex-label-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3193 'font-lock-constant-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3194 'font-lock-reference-face)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3195 all cell text label typekey note comment master-dir-re |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3196 offset from to docstruct-symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3197 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3198 (message "Creating Selection Buffer...") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3199 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3200 ;; Pop to buffer buf to get the correct buffer-local variables |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3201 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3202 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3203 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3204 ;; Ensure access to scanning info |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3205 (reftex-access-scan-info) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3206 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3207 (setq docstruct-symbol reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3208 all (symbol-value reftex-docstruct-symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3209 reftex-active-toc nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3210 master-dir-re |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3211 (concat "\\`" (regexp-quote |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3212 (file-name-directory (reftex-TeX-master-file)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3213 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3214 (set (make-local-variable 'reftex-docstruct-symbol) docstruct-symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3215 (set (make-local-variable 'reftex-prefix) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3216 (cdr (assoc typekey0 reftex-typekey-to-prefix-alist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3217 (if (equal reftex-prefix " ") (setq reftex-prefix nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3218 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3219 ;; Walk the docstruct and insert the appropriate stuff |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3220 (while (setq cell (pop all)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3221 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3222 (incf index) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3223 (setq from (point)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3224 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3225 (if (eq cell here-I-am) (setq offset 'attention)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3226 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3227 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3228 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3229 ((memq (car cell) '(bib thebib label-numbers appendix |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3230 master-dir bibview-cache is-multi xr xr-doc))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3231 ;; These are currently ignored |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3232 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3233 ((memq (car cell) '(bof eof file-error)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3234 ;; Beginning or end of a file |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3235 (when files |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3236 (insert |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3237 " File " (if (string-match master-dir-re (nth 1 cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3238 (substring (nth 1 cell) (match-end 0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3239 (nth 1 cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3240 (cond ((eq (car cell) 'bof) " starts here\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3241 ((eq (car cell) 'eof) " ends here\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3242 ((eq (car cell) 'file-error) " was not found\n"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3243 (when font |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3244 (put-text-property from (point) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3245 'face reftex-file-boundary-face)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3246 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3247 ((eq (car cell) 'toc) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3248 ;; a table of contents entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3249 (when toc |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3250 (setq reftex-active-toc cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3251 (insert (concat toc-indent (nth 2 cell) "\n")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3252 (setq to (point)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3253 (when font |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3254 (put-text-property from to |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3255 'face reftex-section-heading-face)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3256 (goto-char to))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3257 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3258 ((stringp (car cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3259 ;; a label |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3260 (when (null (nth 2 cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3261 ;; No context yet. Quick update. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3262 (setcdr cell (cdr (reftex-label-info-update cell))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3263 (put docstruct-symbol 'modified t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3264 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3265 (setq label (car cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3266 typekey (nth 1 cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3267 text (nth 2 cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3268 comment (nth 4 cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3269 note (nth 5 cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3270 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3271 (when (and (or (string= typekey typekey0) (string= typekey0 " ")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3272 (or show-commented (null comment))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3273 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3274 ;; Yes we want this one |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3275 (incf cnt) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3276 (if (eq offset 'attention) (setq offset cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3277 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3278 (setq label (concat xr-prefix label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3279 (when comment (setq label (concat "% " label))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3280 (insert label-indent label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3281 (when font |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3282 (setq to (point)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3283 (put-text-property |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3284 (- (point) (length label)) to |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3285 'face (if comment |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3286 'font-lock-comment-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3287 label-face)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3288 (goto-char to)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3289 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3290 (insert (if counter (format " (%d) " cnt) "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3291 (if comment " LABEL IS COMMENTED OUT " "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3292 (if (stringp note) (concat " " note) "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3293 "\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3294 (setq to (point)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3295 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3296 (when context |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3297 (insert context-indent text "\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3298 (setq to (point))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3299 (put-text-property from to ':data cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3300 (when mouse-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3301 (put-text-property from (1- to) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3302 'mouse-face mouse-face)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3303 (goto-char to))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3304 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3305 (when (reftex-refontify) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3306 (reftex-fontify-select-label-buffer buf)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3307 (run-hooks 'reftex-display-copied-context-hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3308 offset)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3309 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3310 (defun reftex-query-label-type () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3311 ;; Ask for label type |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3312 (let ((key (reftex-select-with-char |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3313 reftex-type-query-prompt reftex-type-query-help 3))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3314 (unless (member (char-to-string key) reftex-typekey-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3315 (error "No such label type: %s" (char-to-string key))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3316 (char-to-string key))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3317 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3318 (defun reftex-select-label-callback (data forward no-revisit) |
18050 | 3319 ;; Callback function called from the label selection in order to |
3320 ;; show context in another window | |
3321 (let* ((this-window (selected-window)) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3322 label file buffer re found) |
18050 | 3323 ;; pop to original buffer in order to get correct variables |
3324 (catch 'exit | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3325 (setq label (nth 0 data) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3326 file (nth 3 data)) |
18050 | 3327 |
3328 ;; goto the file in another window | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3329 (setq buffer |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3330 (if no-revisit |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3331 (reftex-get-buffer-visiting file) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3332 (reftex-get-file-buffer-force |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3333 file (not reftex-keep-temporary-buffers)))) |
18050 | 3334 (if buffer |
3335 ;; good - the file is available | |
3336 (switch-to-buffer-other-window buffer) | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
3337 ;; we have got a problem here. The file does not exist. |
18050 | 3338 ;; Let' get out of here.. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3339 ;; (ding) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3340 (message reftex-no-follow-message) |
18050 | 3341 (throw 'exit nil)) |
3342 | |
3343 ;; search for that label | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3344 (setq re (format reftex-find-label-regexp-format (regexp-quote label))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3345 (setq found |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3346 (if forward |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3347 (re-search-forward re nil t) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3348 (re-search-backward re nil t))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3349 (unless found |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3350 (goto-char (point-min)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3351 (unless (re-search-forward re nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3352 ;; Ooops. Must be in a macro with distributed args. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3353 (re-search-forward (format reftex-find-label-regexp-format2 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3354 (regexp-quote label)) nil t))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3355 (when (match-end 3) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3356 (setq reftex-latex-syntax-table (syntax-table)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3357 (reftex-highlight 0 (match-beginning 3) (match-end 3)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3358 (reftex-show-entry (match-beginning 3) (match-end 3)) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3359 (recenter '(4))) |
18050 | 3360 (select-window this-window)))) |
3361 | |
3362 (defun reftex-pop-to-label (label file-list &optional mark-to-kill highlight) | |
3363 ;; Find LABEL in any file in FILE-LIST in another window. | |
3364 ;; If mark-to-kill is non-nil, mark new buffer for killing. | |
3365 ;; If HIGHLIGHT is non-nil, highlight the label definition. | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3366 (let* ((re1 (format reftex-find-label-regexp-format (regexp-quote label))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3367 (re2 (format reftex-find-label-regexp-format2 (regexp-quote label))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3368 (re-list (list re1 re2)) re |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3369 (file-list-1 file-list) |
18050 | 3370 file buf) |
3371 (catch 'exit | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3372 (while (setq re (pop re-list)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3373 (setq file-list file-list-1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3374 (while (setq file (pop file-list)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3375 (unless (setq buf (reftex-get-file-buffer-force file mark-to-kill)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3376 (error "No such file %s" file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3377 (set-buffer buf) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3378 (widen) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3379 (goto-char (point-min)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3380 (when (re-search-forward re nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3381 (switch-to-buffer-other-window buf) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3382 (goto-char (match-beginning 0)) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3383 (recenter '(4)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3384 (if highlight |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3385 (reftex-highlight 0 (match-beginning 3) (match-end 3))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3386 (throw 'exit (selected-window))))) |
18050 | 3387 (error "Label %s not found" label)))) |
3388 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3389 (defun reftex-show-entry (beg-hlt end-hlt) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3390 ;; Show entry if point is hidden |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3391 (let* ((n (/ (window-height) 2)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3392 (beg (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3393 (re-search-backward "[\n\r]" nil 1 n) (point))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3394 (end (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3395 (re-search-forward "[\n\r]" nil 1 n) (point)))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3396 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3397 ((and (boundp 'buffer-invisibility-spec) buffer-invisibility-spec |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3398 (get-char-property (1+ beg-hlt) 'invisible)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3399 ;; Invisible with text properties. That is easy to change. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3400 (push (cons (current-buffer) buffer-invisibility-spec) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3401 reftex-buffers-with-changed-invisibility) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3402 (setq buffer-invisibility-spec nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3403 ((string-match "\r" (buffer-substring beg end)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3404 ;; Invisible with selective display. We need to copy it. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3405 (let ((string (buffer-substring-no-properties beg end))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3406 (switch-to-buffer "*RefTeX Context Copy*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3407 (setq buffer-read-only nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3408 (erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3409 (insert string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3410 (subst-char-in-region (point-min) (point-max) ?\r ?\n t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3411 (goto-char (- beg-hlt beg)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3412 (reftex-highlight 0 (1+ (- beg-hlt beg)) (1+ (- end-hlt beg))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3413 (if (reftex-refontify) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3414 (when (or (not (eq major-mode 'latex-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3415 (not font-lock-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3416 (latex-mode) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3417 (run-hook-with-args |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3418 'reftex-pre-refontification-functions |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3419 reftex-call-back-to-this-buffer 'reftex-hidden) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3420 (turn-on-font-lock)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3421 (when (or (not (eq major-mode 'fundamental-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3422 font-lock-mode) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3423 (fundamental-mode))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3424 (run-hooks 'reftex-display-copied-context-hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3425 (setq buffer-read-only t)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3426 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3427 ;;; ========================================================================= |
18050 | 3428 ;;; |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3429 ;;; Table of contents |
18050 | 3430 |
3431 ;; We keep at most one *toc* buffer - it is easy to make them | |
3432 | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3433 (defvar reftex-toc-map (make-sparse-keymap) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3434 "Keymap used for *toc* buffer.") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3435 |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3436 (defun reftex-toc-mode () |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3437 "Major mode for managing Table of Contents for LaTeX files. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3438 This buffer was created with RefTeX. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3439 Press `?' for a summary of important key bindings. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3440 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3441 Here are all local bindings. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3442 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3443 \\{reftex-toc-map}" |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3444 (interactive) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3445 (kill-all-local-variables) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3446 (setq major-mode 'reftex-toc-mode |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3447 mode-name "RefTeX Table of Contents") |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3448 (use-local-map reftex-toc-map) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3449 (set (make-local-variable 'revert-buffer-function) 'reftex-toc-revert) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3450 (setq truncate-lines t) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3451 (make-local-hook 'post-command-hook) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3452 (make-local-hook 'pre-command-hook) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3453 (make-local-variable 'reftex-last-follow-point) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3454 (add-hook 'post-command-hook 'reftex-toc-post-command-hook nil t) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3455 (add-hook 'pre-command-hook 'reftex-toc-pre-command-hook nil t) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3456 (run-hooks 'reftex-toc-mode-hook)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3457 |
18050 | 3458 (defvar reftex-last-toc-master nil |
3459 "Stores the name of the tex file that `reftex-toc' was last run on.") | |
3460 | |
3461 (defvar reftex-last-toc-file nil | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
3462 "Stores the file name from which `reftex-toc' was called. For redo command.") |
18050 | 3463 |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3464 (defvar reftex-last-window-height nil) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3465 |
18050 | 3466 (defvar reftex-toc-return-marker (make-marker) |
3467 "Marker which makes it possible to return from toc to old position.") | |
3468 | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3469 (defconst reftex-toc-help |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3470 " AVAILABLE KEYS IN TOC BUFFER |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3471 ============================ |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3472 n / p next-line / previous-line |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3473 SPC Show the corresponding section of the LaTeX document. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3474 TAB Goto the section. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3475 RET Goto the section and hide the *toc* buffer (also on mouse-2). |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3476 q / Q Hide/Kill *toc* buffer, return to position of last reftex-toc command. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3477 f / g Toggle follow mode on and off / Refresh *toc* buffer. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3478 r / R Reparse the LaTeX document / Reparse entire LaTeX document. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3479 . In other window, show position from where `reftex-toc' was called. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3480 x Switch to TOC of external document (with LaTeX package `xr').") |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3481 |
18050 | 3482 (defun reftex-toc () |
3483 "Show the table of contents for the current document. | |
3484 When called with a raw C-u prefix, rescan the document first." | |
3485 | |
3486 (interactive) | |
3487 | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3488 (if (or (not (string= reftex-last-toc-master (reftex-TeX-master-file))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3489 current-prefix-arg) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3490 (reftex-erase-buffer "*toc*")) |
18050 | 3491 |
3492 (setq reftex-last-toc-file (buffer-file-name)) | |
3493 (setq reftex-last-toc-master (reftex-TeX-master-file)) | |
3494 | |
3495 (set-marker reftex-toc-return-marker (point)) | |
3496 | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3497 ;; If follow mode is active, arrange to delay it one command |
18050 | 3498 (if reftex-toc-follow-mode |
3499 (setq reftex-toc-follow-mode 1)) | |
3500 | |
3501 ;; Ensure access to scanning info and rescan buffer if prefix are is '(4) | |
3502 (reftex-access-scan-info current-prefix-arg) | |
3503 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3504 (let* ((all (symbol-value reftex-docstruct-symbol)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3505 (xr-data (assq 'xr all)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3506 (xr-alist (cons (cons "" (buffer-file-name)) (nth 1 xr-data))) |
18050 | 3507 (where (reftex-nearest-section)) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
3508 (mouse-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
3509 (if (memq reftex-highlight-selection '(mouse both)) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
3510 reftex-mouse-selected-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
3511 nil)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3512 (fontify (reftex-use-fonts)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3513 toc1 cell startpos) |
18050 | 3514 |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3515 (if (get-buffer-window "*toc*") |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3516 (select-window (get-buffer-window "*toc*")) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3517 (when (< (window-height) (* 2 window-min-height)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3518 (delete-other-windows)) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3519 (setq reftex-last-window-height (window-height)) ; remember |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3520 (split-window) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3521 (let ((default-major-mode 'reftex-toc-mode)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3522 (switch-to-buffer "*toc*"))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3523 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3524 (or (eq major-mode 'reftex-toc-mode) (reftex-toc-mode)) |
18050 | 3525 |
3526 (cond | |
3527 ;; buffer is empty - fill it with the table of contents | |
3528 ((= (buffer-size) 0) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3529 (message "Building *toc* buffer...") |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3530 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3531 (setq buffer-read-only nil) |
18050 | 3532 (insert (format |
3533 "TABLE-OF-CONTENTS on %s | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3534 SPC=view TAB=goto RET=goto+hide [q]uit [r]escan [f]ollow-mode e[x]tern [?]Help |
18050 | 3535 ------------------------------------------------------------------------------- |
3536 " (abbreviate-file-name reftex-last-toc-master))) | |
3537 (setq startpos (point)) | |
3538 | |
3539 (if (reftex-use-fonts) | |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
3540 (put-text-property 1 (point) 'face reftex-toc-header-face)) |
18050 | 3541 (put-text-property 1 (point) 'intangible t) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3542 (put-text-property 1 2 'xr-alist xr-alist) |
18050 | 3543 |
3544 (while all | |
3545 (setq cell (car all) | |
3546 all (cdr all)) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3547 (when (eq (car cell) 'toc) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3548 (setq toc1 (concat (nth 2 cell) "\n")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3549 (put-text-property 0 (length toc1) 'toc cell toc1) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3550 (when fontify |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3551 (put-text-property 0 (length toc1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3552 'face reftex-section-heading-face toc1)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3553 (when mouse-face |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3554 (put-text-property 0 (1- (length toc1)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3555 'mouse-face mouse-face toc1)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3556 (insert toc1))) |
18050 | 3557 |
3558 (backward-delete-char 1) | |
3559 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3560 (run-hooks 'reftex-display-copied-context-hook) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3561 (message "Building *toc* buffer...done.") |
18050 | 3562 (setq buffer-read-only t)) |
3563 (t | |
3564 (goto-line 3) | |
3565 (beginning-of-line) | |
3566 (setq startpos (point)))) | |
3567 | |
3568 ;; Find the correct section | |
3569 (goto-char (point-max)) | |
3570 (beginning-of-line) | |
3571 (while (and (> (point) startpos) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3572 (not (eq (get-text-property (point) 'toc) where))) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3573 (beginning-of-line 0)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3574 (setq reftex-last-follow-point (point)))) |
18050 | 3575 |
3576 (defun reftex-nearest-section () | |
3577 ;; Return (file . find) of nearest section command | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3578 (let* ((here-I-am (car (reftex-where-am-I)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3579 (reftex-last-assoc-before-elt |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3580 'toc here-I-am (symbol-value reftex-docstruct-symbol)))) |
18050 | 3581 |
3582 (defun reftex-toc-pre-command-hook () | |
3583 ;; used as pre command hook in *toc* buffer | |
3584 (reftex-unhighlight 0) | |
3585 (reftex-unhighlight 1)) | |
3586 | |
3587 (defun reftex-toc-post-command-hook () | |
3588 ;; used in the post-command-hook for the *toc* buffer | |
3589 (and (> (point) 1) | |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3590 (memq reftex-highlight-selection '(cursor both)) |
18050 | 3591 (save-excursion |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3592 (reftex-highlight 1 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3593 (progn (beginning-of-line) (point)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3594 (progn (end-of-line) (point))))) |
18050 | 3595 (cond |
3596 ((integerp reftex-toc-follow-mode) | |
3597 ;; remove delayed action | |
3598 (setq reftex-toc-follow-mode t)) | |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3599 ((and reftex-toc-follow-mode |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3600 (not (equal reftex-last-follow-point (point)))) |
18050 | 3601 ;; show context in other window |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3602 (setq reftex-last-follow-point (point)) |
18050 | 3603 (condition-case nil |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3604 (reftex-toc-visit-line nil (not reftex-revisit-to-follow)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3605 (error t))))) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3606 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3607 (defun reftex-re-enlarge () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3608 ;; Enlarge windiw to a remembered size |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3609 (enlarge-window |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3610 (max 0 (- (or reftex-last-window-height (window-height)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3611 (window-height))))) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3612 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3613 (defun reftex-toc-show-help () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3614 "Show a summary of special key bindings." |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3615 (interactive) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3616 (with-output-to-temp-buffer "*RefTeX Help*" |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3617 (princ reftex-toc-help)) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3618 ;; If follow mode is active, arrange to delay it one command |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3619 (if reftex-toc-follow-mode |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3620 (setq reftex-toc-follow-mode 1))) |
18050 | 3621 |
3622 (defun reftex-toc-toggle-follow () | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3623 "Toggle toc-follow mode. (It is not really a mode, just a flag)." |
18050 | 3624 (interactive) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3625 (setq reftex-last-follow-point -1) |
18050 | 3626 (setq reftex-toc-follow-mode (not reftex-toc-follow-mode))) |
3627 (defun reftex-toc-view-line () | |
3628 "View document location in other window." | |
3629 (interactive) | |
3630 (reftex-toc-visit-line)) | |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3631 (defun reftex-toc-mouse-view-line (ev) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3632 "View document location in other window." |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3633 (interactive "e") |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3634 (mouse-set-point ev) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3635 (reftex-toc-visit-line)) |
18050 | 3636 (defun reftex-toc-goto-line-and-hide () |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
3637 "Go to document location in other window. Hide the *toc* window." |
18050 | 3638 (interactive) |
3639 (reftex-toc-visit-line 'hide)) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3640 (defun reftex-toc-goto-line () |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3641 "Go to document location in other window. Hide the *toc* window." |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3642 (interactive) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3643 (reftex-toc-visit-line t)) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3644 (defun reftex-toc-mouse-goto-line-and-hide (ev) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3645 "Go to document location in other window. Hide the *toc* window." |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3646 (interactive "e") |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3647 (mouse-set-point ev) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3648 (reftex-toc-visit-line 'hide)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3649 (defun reftex-toc-show-insertion-point () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3650 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3651 (let ((this-window (selected-window))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3652 (unwind-protect |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3653 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3654 (switch-to-buffer-other-window |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3655 (marker-buffer reftex-toc-return-marker)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3656 (goto-char (marker-position reftex-toc-return-marker)) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3657 (recenter '(4))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3658 (select-window this-window)))) |
18050 | 3659 (defun reftex-toc-quit () |
3660 "Hide the *toc* window and do not move point." | |
3661 (interactive) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3662 (or (one-window-p) (delete-window)) |
18050 | 3663 (switch-to-buffer (marker-buffer reftex-toc-return-marker)) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3664 (reftex-re-enlarge) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3665 (goto-char (or (marker-position reftex-toc-return-marker) (point)))) |
18050 | 3666 (defun reftex-toc-quit-and-kill () |
3667 "Kill the *toc* buffer." | |
3668 (interactive) | |
3669 (kill-buffer "*toc*") | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3670 (or (one-window-p) (delete-window)) |
18050 | 3671 (switch-to-buffer (marker-buffer reftex-toc-return-marker)) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3672 (reftex-re-enlarge) |
18050 | 3673 (goto-char (marker-position reftex-toc-return-marker))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3674 (defun reftex-toc-rescan (&rest ignore) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3675 "Regenerate the *toc* buffer by reparsing file of section at point." |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3676 (interactive) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3677 (if reftex-enable-partial-scans |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3678 (let ((file (nth 3 (get-text-property (point) 'toc)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3679 (if (not file) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3680 (error "Don't know which file to rescan. Try `R'") |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3681 (switch-to-buffer-other-window |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3682 (reftex-get-file-buffer-force file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3683 (setq current-prefix-arg '(4)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3684 (reftex-toc))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3685 (reftex-toc-Rescan)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3686 (reftex-kill-temporary-buffers)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3687 (defun reftex-toc-Rescan (&rest ignore) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3688 "Regenerate the *toc* buffer by reparsing the entire document." |
18050 | 3689 (interactive) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3690 (switch-to-buffer-other-window |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3691 (reftex-get-file-buffer-force reftex-last-toc-file)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3692 (setq current-prefix-arg '(16)) |
18050 | 3693 (reftex-toc)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3694 (defun reftex-toc-revert (&rest ignore) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3695 "Regenerate the *toc* from the internal lists." |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3696 (interactive) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3697 (switch-to-buffer-other-window |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3698 (reftex-get-file-buffer-force reftex-last-toc-file)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3699 (reftex-erase-buffer "*toc*") |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3700 (setq current-prefix-arg nil) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3701 (reftex-toc)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3702 (defun reftex-toc-external (&rest ignore) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3703 "Switch to table of contents of an external document." |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3704 (interactive) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3705 (let* ((old-buf (current-buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3706 (xr-alist (get-text-property 1 'xr-alist)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3707 (xr-index (reftex-select-external-document |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3708 xr-alist 0))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3709 (switch-to-buffer-other-window (or (reftex-get-file-buffer-force |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3710 (cdr (nth xr-index xr-alist))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3711 (error "Cannot switch document"))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3712 (reftex-toc) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3713 (if (equal old-buf (current-buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3714 (message "") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3715 (message "Switched document")))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3716 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3717 (defun reftex-toc-visit-line (&optional final no-revisit) |
18050 | 3718 ;; Visit the tex file corresponding to the toc entry on the current line. |
3719 ;; If FINAL is t, stay there | |
3720 ;; If FINAL is 'hide, hide the *toc* window. | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3721 ;; Otherwise, move cursor back into *toc* window. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3722 ;; This function is pretty clever about finding back a section heading, |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3723 ;; even if the buffer is not live, or things like outline, x-symbol etc. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3724 ;; have been active. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3725 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3726 (let* ((toc (get-text-property (point) 'toc)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3727 (file (nth 3 toc)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3728 (marker (nth 4 toc)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3729 (level (nth 5 toc)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3730 (literal (nth 7 toc)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3731 (emergency-point (nth 8 toc)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3732 (toc-window (selected-window)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3733 show-window show-buffer match) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3734 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3735 (unless toc (error "Don't know which toc line to visit")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3736 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3737 (setq match |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3738 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3739 ((and (markerp marker) (marker-buffer marker)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3740 ;; Buffer is still live and we have the marker. Should be easy. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3741 (switch-to-buffer-other-window (marker-buffer marker)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3742 (goto-char (marker-position marker)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3743 (or (looking-at (regexp-quote literal)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3744 (looking-at (reftex-make-regexp-allow-for-ctrl-m literal)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3745 (looking-at (reftex-make-desperate-section-regexp literal)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3746 (looking-at (concat "\\\\" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3747 (regexp-quote |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3748 (car (rassq level |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3749 reftex-section-levels-all))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3750 "[[{]")))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3751 ((or (not no-revisit) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3752 (reftex-get-buffer-visiting file)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3753 ;; Marker is lost. Use the backup method. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3754 (switch-to-buffer-other-window |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3755 (reftex-get-file-buffer-force file nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3756 (goto-char (or emergency-point (point-min))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3757 (or (looking-at (regexp-quote literal)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3758 (let ((pos (point))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3759 (re-search-backward "\\`\\|[\r\n][ \t]*[\r\n]" nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3760 (or (reftex-nearest-match (regexp-quote literal) pos) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3761 (reftex-nearest-match |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3762 (reftex-make-regexp-allow-for-ctrl-m literal) pos) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3763 (reftex-nearest-match |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3764 (reftex-make-desperate-section-regexp literal) pos))))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3765 (t (message reftex-no-follow-message) nil) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3766 )) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3767 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3768 (setq show-window (selected-window) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3769 show-buffer (current-buffer)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3770 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3771 (unless match |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3772 (select-window toc-window) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3773 (error "Cannot find line")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3774 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3775 (goto-char (match-beginning 0)) |
18050 | 3776 (recenter 1) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3777 (reftex-highlight 0 (match-beginning 0) (match-end 0) (current-buffer)) |
18050 | 3778 |
3779 (select-window toc-window) | |
3780 | |
3781 ;; use the `final' parameter to decide what to do next | |
3782 (cond | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3783 ((eq final t) |
18050 | 3784 (reftex-unhighlight 0) |
3785 (select-window show-window)) | |
3786 ((eq final 'hide) | |
3787 (reftex-unhighlight 0) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3788 (or (one-window-p) (delete-window)) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3789 (switch-to-buffer show-buffer) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3790 (reftex-re-enlarge)) |
18050 | 3791 (t nil)))) |
3792 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3793 (defun reftex-make-desperate-section-regexp (old) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3794 ;; Return a regexp which will still match a section statement even if |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3795 ;; x-symbol or isotex or the like have been at work in the mean time. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3796 (let* ((n (1+ (string-match "[[{]" old))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3797 (new (regexp-quote (substring old 0 (1+ (string-match "[[{]" old))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3798 (old (substring old n))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3799 (while (string-match |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3800 "\\([\r\n]\\)\\|\\(\\`\\|[ \t\n\r]\\)\\([a-zA-Z0-9]+\\)\\([ \t\n\r]\\|}\\'\\)" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3801 old) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3802 (if (match-beginning 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3803 (setq new (concat new "[^\n\r]*[\n\r]")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3804 (setq new (concat new "[^\n\r]*" (match-string 3 old)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3805 (setq old (substring old (match-end 0)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3806 new)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3807 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3808 ;;; ========================================================================= |
18050 | 3809 ;;; |
3810 ;;; BibTeX citations. | |
3811 | |
3812 ;; Variables and constants | |
3813 | |
3814 ;; The history list of regular expressions used for citations | |
3815 (defvar reftex-cite-regexp-hist nil) | |
3816 | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3817 ;; Prompt and help string for citation selection |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3818 (defconst reftex-citation-prompt |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3819 "Select: [n]ext [p]revious [r]estrict [ ]full_entry [q]uit RET [?]Help+more") |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3820 |
18050 | 3821 (defconst reftex-citation-help |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3822 " n / p Go to next/previous entry (Cursor motion works as well). |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3823 C-s / C-r Search forward/backward. Use repeated C-s/C-r as in isearch. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3824 g / r Start over with new regexp / Refine with additional regexp. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3825 SPC Show full database entry in other window. |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3826 f Toggle follow mode: Other window will follow with full db entry. |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3827 . Show insertion point. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
3828 q Quit without inserting \\cite macro into buffer. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3829 TAB Enter citation key with completion. |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3830 RET Accept current entry (also on mouse-2) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3831 a / A Put all entries into single \cite / into many cite commands.") |
18050 | 3832 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3833 (defvar reftex-select-bib-map nil |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3834 "Keymap used for *RefTeX Select* buffer, when selecting a BibTeX entry. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3835 This keymap can be used to configure the BibTeX selection process which is |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3836 started with the command \\[reftex-citation].") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3837 |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3838 (defun reftex-select-bib-mode () |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3839 "Major mode for selecting a citation key in a LaTeX document. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3840 This buffer was created with RefTeX. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3841 It only has a meaningful keymap when you are in the middle of a |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3842 selection process. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3843 In order to select a citation, move the cursor to it and press RET. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3844 Press `?' for a summary of important key bindings. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3845 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3846 During a selection process, these are the local bindings. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3847 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3848 \\{reftex-select-label-map}" |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3849 (interactive) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3850 (kill-all-local-variables) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3851 (make-local-hook 'pre-command-hook) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3852 (make-local-hook 'post-command-hook) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3853 (setq major-mode 'reftex-select-bib-mode |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3854 mode-name "RefTeX Select Bib") |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3855 ;; We do not set a local map - reftex-select-item does this. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3856 (run-hooks 'reftex-select-bib-mode-hook)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
3857 |
18050 | 3858 ;; Find bibtex files |
3859 | |
3860 (defun reftex-get-bibfile-list () | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3861 ;; Return list of bibfiles for current document. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3862 ;; When using the chapterbib or bibunits package you should either |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3863 ;; use the same database files everywhere, or separate parts using |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3864 ;; different databases into different files (included into the mater file). |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3865 ;; Then this function will return the applicable database files. |
18050 | 3866 |
3867 ;; Ensure access to scanning info | |
3868 (reftex-access-scan-info) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3869 (or |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3870 ;; Try inside this file (and its includes) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3871 (cdr (reftex-last-assoc-before-elt |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3872 'bib (list 'eof (buffer-file-name)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3873 (member (list 'bof (buffer-file-name)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3874 (symbol-value reftex-docstruct-symbol)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3875 ;; Try after the beginning of this file |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3876 (cdr (assq 'bib (member (list 'bof (buffer-file-name)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3877 (symbol-value reftex-docstruct-symbol)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3878 ;; Anywhere in the entire document |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3879 (cdr (assq 'bib (symbol-value reftex-docstruct-symbol))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3880 (error "\\bibliography statement missing or .bib files not found."))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3881 |
18050 | 3882 ;; Find a certain reference in any of the BibTeX files. |
3883 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3884 (defun reftex-pop-to-bibtex-entry (key file-list &optional mark-to-kill |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3885 highlight item return) |
18050 | 3886 ;; Find BibTeX KEY in any file in FILE-LIST in another window. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3887 ;; If MARK-TO-KILL is non-nil, mark new buffer to kill. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3888 ;; If HIGHLIGHT is non-nil, highlight the match. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3889 ;; If ITEM in non-nil, search for bibitem instead of database entry. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3890 ;; If RETURN is non-nil, just return the entry. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3891 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3892 (let* ((re |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3893 (if item |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3894 (concat "\\\\bibitem\\(\\[[^]]*\\]\\)?{" (regexp-quote key) "}") |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3895 (concat "@[a-zA-Z]+[ \t\n\r]*[{(][ \t\n\r]*" (regexp-quote key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3896 "[, \t\r\n}]"))) |
18050 | 3897 (window-conf (current-window-configuration)) |
3898 file buf) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3899 |
18050 | 3900 (catch 'exit |
3901 (switch-to-buffer-other-window (current-buffer)) | |
3902 (while file-list | |
3903 (setq file (car file-list) | |
3904 file-list (cdr file-list)) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3905 (unless (setq buf (reftex-get-file-buffer-force file mark-to-kill)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3906 (error "No such file %s" file)) |
18050 | 3907 (switch-to-buffer buf) |
3908 (widen) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3909 (goto-char (point-min)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3910 (when (re-search-forward re nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3911 (goto-char (match-beginning 0)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3912 (when return |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3913 ;; Just return the relevant entry |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3914 (if item (goto-char (match-end 0))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3915 (setq return (buffer-substring |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3916 (point) (reftex-end-of-bib-entry item))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3917 (set-window-configuration window-conf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3918 (throw 'exit return)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3919 (recenter 0) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3920 (if highlight |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3921 (reftex-highlight 0 (match-beginning 0) (match-end 0))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3922 (throw 'exit (selected-window)))) |
18050 | 3923 (set-window-configuration window-conf) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3924 (if item |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3925 (error "No \\bibitem with citation key %s" key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3926 (error "No BibTeX entry with citation key %s" key))))) |
18050 | 3927 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3928 (defun reftex-end-of-bib-entry (item) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3929 (save-excursion |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3930 (condition-case nil |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3931 (if item |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3932 (progn (end-of-line) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3933 (re-search-forward |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3934 "\\\\bibitem\\|\\end{thebibliography}") |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3935 (1- (match-beginning 0))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3936 (progn (forward-list 1) (point))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3937 (error (min (point-max) (+ 300 (point))))))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
3938 |
18050 | 3939 ;; Parse bibtex buffers |
3940 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3941 (defun reftex-extract-bib-entries (buffers) |
18050 | 3942 ;; Extract bib entries which match regexps from BUFFERS. |
3943 ;; BUFFERS is a list of buffers or file names. | |
3944 ;; Return list with entries." | |
3945 (let* (re-list first-re rest-re | |
3946 (buffer-list (if (listp buffers) buffers (list buffers))) | |
3947 found-list entry buffer1 buffer alist | |
3948 key-point start-point end-point) | |
3949 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3950 ;; Read a regexp, completing on known citation keys. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3951 (setq re-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3952 (split-string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3953 (completing-read |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3954 "RegExp [ && RegExp...]: " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3955 (if (fboundp 'LaTeX-bibitem-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3956 (LaTeX-bibitem-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3957 (cdr (assoc 'bibview-cache |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3958 (symbol-value reftex-docstruct-symbol)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3959 nil nil nil 'reftex-cite-regexp-hist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
3960 "[ \t]*&&[ \t]*")) |
18050 | 3961 |
3962 (setq first-re (car re-list) ; We'll use the first re to find things, | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
3963 rest-re (cdr re-list)) ; the others to narrow down. |
18050 | 3964 (if (string-match "\\`[ \t]*\\'" first-re) |
3965 (error "Empty regular expression")) | |
3966 | |
3967 (save-excursion | |
3968 (save-window-excursion | |
3969 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3970 ;; Walk through all bibtex files |
18050 | 3971 (while buffer-list |
3972 (setq buffer (car buffer-list) | |
3973 buffer-list (cdr buffer-list)) | |
3974 (if (and (bufferp buffer) | |
3975 (buffer-live-p buffer)) | |
3976 (setq buffer1 buffer) | |
3977 (setq buffer1 (reftex-get-file-buffer-force | |
3978 buffer (not reftex-keep-temporary-buffers)))) | |
3979 (if (not buffer1) | |
3980 (error "Cannot find BibTeX file %s" buffer) | |
3981 (message "Scanning bibliography database %s" buffer1)) | |
3982 | |
3983 (set-buffer buffer1) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3984 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3985 (goto-char (point-min)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3986 (while (re-search-forward first-re nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3987 (catch 'search-again |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3988 (setq key-point (point)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3989 (unless (re-search-backward |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3990 "\\(\\`\\|[\n\r]\\)[ \t]*@\\([a-zA-Z]+\\)[ \t\n\r]*[{(]" nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3991 (throw 'search-again nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3992 (setq start-point (point)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3993 (goto-char (match-end 0)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3994 (condition-case nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3995 (up-list 1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3996 (error (goto-char key-point) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3997 (throw 'search-again nil))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3998 (setq end-point (point)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
3999 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4000 ;; Ignore @string, @comment and @c entries or things |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4001 ;; outside entries |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4002 (when (or (string= (downcase (match-string 2)) "string") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4003 (string= (downcase (match-string 2)) "comment") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4004 (string= (downcase (match-string 2)) "c") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4005 (< (point) key-point)) ; this means match not in {} |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4006 (goto-char key-point) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4007 (throw 'search-again nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4008 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4009 ;; Well, we have got a match |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4010 (setq entry (concat |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4011 (buffer-substring start-point (point)) "\n")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4012 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4013 ;; Check if other regexp match as well |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4014 (setq re-list rest-re) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4015 (while re-list |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4016 (unless (string-match (car re-list) entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4017 ;; nope - move on |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4018 (throw 'search-again nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4019 (pop re-list)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4020 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4021 (setq alist (reftex-parse-bibtex-entry |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4022 nil start-point end-point)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4023 (push (cons "&entry" entry) alist) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4024 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4025 ;; check for crossref entries |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4026 (if (assoc "crossref" alist) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4027 (setq alist |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4028 (append |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4029 alist (reftex-get-crossref-alist alist)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4030 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4031 ;; format the entry |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4032 (push (cons "&formatted" (reftex-format-bib-entry alist)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4033 alist) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4034 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4035 ;; make key the first element |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4036 (push (reftex-get-bib-field "&key" alist) alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4037 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4038 ;; add it to the list |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4039 (push alist found-list)))) |
18050 | 4040 (reftex-kill-temporary-buffers)))) |
4041 (setq found-list (nreverse found-list)) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4042 |
18050 | 4043 ;; Sorting |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4044 (cond |
18050 | 4045 ((eq 'author reftex-sort-bibtex-matches) |
4046 (sort found-list 'reftex-bib-sort-author)) | |
4047 ((eq 'year reftex-sort-bibtex-matches) | |
4048 (sort found-list 'reftex-bib-sort-year)) | |
4049 ((eq 'reverse-year reftex-sort-bibtex-matches) | |
4050 (sort found-list 'reftex-bib-sort-year-reverse)) | |
4051 (t found-list)))) | |
4052 | |
4053 (defun reftex-bib-sort-author (e1 e2) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4054 (let ((al1 (reftex-get-bib-names "author" e1)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4055 (al2 (reftex-get-bib-names "author" e2))) |
18050 | 4056 (while (and al1 al2 (string= (car al1) (car al2))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4057 (pop al1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4058 (pop al2)) |
18050 | 4059 (if (and (stringp (car al1)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4060 (stringp (car al2))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4061 (string< (car al1) (car al2)) |
18050 | 4062 (not (stringp (car al1)))))) |
4063 | |
4064 (defun reftex-bib-sort-year (e1 e2) | |
4065 (< (string-to-int (cdr (assoc "year" e1))) | |
4066 (string-to-int (cdr (assoc "year" e2))))) | |
4067 | |
4068 (defun reftex-bib-sort-year-reverse (e1 e2) | |
4069 (> (string-to-int (or (cdr (assoc "year" e1)) "0")) | |
4070 (string-to-int (or (cdr (assoc "year" e2)) "0")))) | |
4071 | |
4072 (defun reftex-get-crossref-alist (entry) | |
4073 ;; return the alist from a crossref entry | |
4074 (let ((crkey (cdr (assoc "crossref" entry))) | |
4075 start) | |
4076 (save-excursion | |
4077 (save-restriction | |
4078 (widen) | |
4079 (if (re-search-forward | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4080 (concat "@\\w+[{(][ \t\n\r]*" (regexp-quote crkey) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4081 "[ \t\n\r]*,") nil t) |
18050 | 4082 (progn |
4083 (setq start (match-beginning 0)) | |
4084 (condition-case nil | |
4085 (up-list 1) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4086 (error nil)) |
18050 | 4087 (reftex-parse-bibtex-entry nil start (point))) |
4088 nil))))) | |
4089 | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4090 ;; Parse the thebibliography environment |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4091 (defun reftex-extract-bib-entries-from-thebibliography (file) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4092 ;; Extract bib-entries from the \begin{thebibliography} environment. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4093 ;; Parsing is not as good as for the BibTeX database stuff. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4094 ;; The environment should be located in file FILE. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4095 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4096 (let* (start end buf entries re re-list) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4097 (unless file |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4098 (error "Need file name to find thebibliography environment")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4099 (setq buf (reftex-get-file-buffer-force |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4100 file (not reftex-keep-temporary-buffers))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4101 (unless buf |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4102 (error "No such file %s" file)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4103 (message "Scanning thebibliography environment in %s" file) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4104 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4105 (save-excursion |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4106 (set-buffer buf) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4107 (save-restriction |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4108 (widen) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4109 (goto-char (point-min)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4110 (if (re-search-forward |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4111 "\\(\\`\\|[\n\r]\\)[ \t]*\\\\begin{thebibliography}" nil t) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4112 (progn |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4113 (beginning-of-line 2) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4114 (setq start (point)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4115 (if (re-search-forward |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4116 "\\(\\`\\|[\n\r]\\)[ \t]*\\\\end{thebibliography}" nil t) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4117 (progn |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4118 (beginning-of-line 1) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4119 (setq end (point)))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4120 (when (and start end) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4121 (setq entries |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4122 (mapcar 'reftex-parse-bibitem |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4123 (delete "" |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4124 (split-string |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4125 (buffer-substring-no-properties start end) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4126 "[ \t\n\r]*\\\\bibitem\\(\\[[^]]*]\\)*"))))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4127 (unless entries |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4128 (error "No bibitems found")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4129 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4130 (setq re-list (split-string |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4131 (read-string "RegExp [ && RegExp...]: " |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4132 nil 'reftex-cite-regexp-hist) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4133 "[ \t]*&&[ \t]*")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4134 (if (string-match "\\`[ \t]*\\'" (car re-list)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4135 (error "Empty regular expression")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4136 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4137 (while (and (setq re (pop re-list)) entries) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4138 (setq entries |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4139 (delq nil (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4140 (function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4141 (lambda (x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4142 (if (string-match re (cdr (assoc "&entry" x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4143 x nil))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4144 entries)))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4145 (setq entries |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4146 (mapcar |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4147 (lambda (x) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4148 (push (cons "&formatted" (reftex-format-bibitem x)) x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4149 (push (reftex-get-bib-field "&key" x) x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4150 x) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4151 entries)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4152 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4153 entries)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4154 |
18050 | 4155 ;; Parse and format individual entries |
4156 | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4157 (defun reftex-get-bib-names (field entry) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4158 ;; Return a list with the author or editor names in ENTRY |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4159 (let ((names (reftex-get-bib-field field entry))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4160 (if (equal "" names) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4161 (setq names (reftex-get-bib-field "editor" entry))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4162 (while (string-match "\\band\\b[ \t]*" names) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4163 (setq names (replace-match "\n" nil t names))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4164 (while (string-match "[\\.a-zA-Z\\-]+\\.[ \t]*\\|,.*\\|[{}]+" names) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4165 (setq names (replace-match "" nil t names))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4166 (while (string-match "^[ \t]+\\|[ \t]+$" names) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4167 (setq names (replace-match "" nil t names))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4168 (while (string-match "[ \t][ \t]+" names) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4169 (setq names (replace-match " " nil t names))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4170 (split-string names "\n"))) |
18050 | 4171 |
4172 (defun reftex-parse-bibtex-entry (entry &optional from to) | |
4173 (let (alist key start field) | |
4174 (save-excursion | |
4175 (save-restriction | |
4176 (if entry | |
4177 (progn | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4178 (set-buffer (get-buffer-create " *RefTeX-scratch*")) |
18050 | 4179 (fundamental-mode) |
4180 (erase-buffer) | |
4181 (insert entry)) | |
4182 (widen) | |
4183 (narrow-to-region from to)) | |
4184 (goto-char (point-min)) | |
4185 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4186 (if (re-search-forward |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4187 "@\\(\\w+\\)[ \t\n\r]*[{(][ \t\n\r]*\\([^ \t\n\r,]+\\)" nil t) |
18050 | 4188 (setq alist |
4189 (list | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4190 (cons "&type" (downcase (reftex-match-string 1))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4191 (cons "&key" (reftex-match-string 2))))) |
18050 | 4192 (while (re-search-forward "\\(\\w+\\)[ \t\n\r]*=[ \t\n\r]*" nil t) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4193 (setq key (downcase (reftex-match-string 1))) |
18050 | 4194 (cond |
4195 ((= (following-char) ?{) | |
4196 (forward-char 1) | |
4197 (setq start (point)) | |
4198 (condition-case nil | |
4199 (up-list 1) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4200 (error nil))) |
18050 | 4201 ((= (following-char) ?\") |
4202 (forward-char 1) | |
4203 (setq start (point)) | |
4204 (while (and (search-forward "\"" nil t) | |
4205 (= ?\\ (char-after (- (point) 2)))))) | |
4206 (t | |
4207 (setq start (point)) | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4208 (re-search-forward "[ \t]*[\n\r,}]" nil 1))) |
18050 | 4209 (setq field (buffer-substring-no-properties start (1- (point)))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4210 ;; remove extra whitespace |
18050 | 4211 (while (string-match "[\n\t\r]\\|[ \t][ \t]+" field) |
4212 (setq field (replace-match " " nil t field))) | |
4213 ;; remove leading garbage | |
4214 (if (string-match "^[ \t{]+" field) | |
4215 (setq field (replace-match "" nil t field))) | |
4216 ;; remove trailing garbage | |
4217 (if (string-match "[ \t}]+$" field) | |
4218 (setq field (replace-match "" nil t field))) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4219 (push (cons key field) alist)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4220 alist)) |
18050 | 4221 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4222 (defun reftex-get-bib-field (fieldname entry &optional format) |
18050 | 4223 ;; Extract the field FIELDNAME from an ENTRY |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4224 (let ((cell (assoc fieldname entry))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4225 (if cell |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4226 (if format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4227 (format format (cdr cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4228 (cdr cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4229 ""))) |
18050 | 4230 |
4231 (defun reftex-format-bib-entry (entry) | |
4232 ;; Format a BibTeX ENTRY so that it is nice to look at | |
4233 (let* | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4234 ((auth-list (reftex-get-bib-names "author" entry)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4235 (authors (mapconcat 'identity auth-list ", ")) |
18050 | 4236 (year (reftex-get-bib-field "year" entry)) |
4237 (title (reftex-get-bib-field "title" entry)) | |
4238 (type (reftex-get-bib-field "&type" entry)) | |
4239 (key (reftex-get-bib-field "&key" entry)) | |
4240 (extra | |
4241 (cond | |
4242 ((equal type "article") | |
4243 (concat (reftex-get-bib-field "journal" entry) " " | |
4244 (reftex-get-bib-field "volume" entry) ", " | |
4245 (reftex-get-bib-field "pages" entry))) | |
4246 ((equal type "book") | |
4247 (concat "book (" (reftex-get-bib-field "publisher" entry) ")")) | |
4248 ((equal type "phdthesis") | |
4249 (concat "PhD: " (reftex-get-bib-field "school" entry))) | |
4250 ((equal type "mastersthesis") | |
4251 (concat "Master: " (reftex-get-bib-field "school" entry))) | |
4252 ((equal type "inbook") | |
4253 (concat "Chap: " (reftex-get-bib-field "chapter" entry) | |
4254 ", pp. " (reftex-get-bib-field "pages" entry))) | |
4255 ((or (equal type "conference") | |
4256 (equal type "incollection") | |
4257 (equal type "inproceedings")) | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4258 (reftex-get-bib-field "booktitle" entry "in: %s")) |
18050 | 4259 (t "")))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4260 (setq authors (reftex-truncate authors 30 t t)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4261 (when (reftex-use-fonts) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4262 (put-text-property 0 (length key) 'face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4263 (reftex-verified-face reftex-label-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4264 'font-lock-constant-face |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4265 'font-lock-reference-face) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4266 key) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4267 (put-text-property 0 (length authors) 'face reftex-bib-author-face |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4268 authors) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4269 (put-text-property 0 (length year) 'face reftex-bib-year-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4270 year) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4271 (put-text-property 0 (length title) 'face reftex-bib-title-face |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4272 title) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4273 (put-text-property 0 (length extra) 'face reftex-bib-extra-face |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4274 extra)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4275 (concat key "\n " authors " " year " " extra "\n " title "\n\n"))) |
18050 | 4276 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4277 (defun reftex-parse-bibitem (item) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4278 ;; Parse a \bibitem entry |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4279 (let ((key "") (text "")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4280 (when (string-match "\\`{\\([^}]+\\)}\\([\001-\255]*\\)" item) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4281 (setq key (match-string 1 item) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4282 text (match-string 2 item))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4283 ;; Clean up the text a little bit |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4284 (while (string-match "[\n\r\t]\\|[ \t][ \t]+" text) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4285 (setq text (replace-match " " nil t text))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4286 (if (string-match "\\`[ \t]+" text) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4287 (setq text (replace-match "" nil t text))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4288 (list |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4289 (cons "&key" key) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4290 (cons "&text" text) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4291 (cons "&entry" (concat key " " text))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4292 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4293 (defun reftex-format-bibitem (item) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4294 ;; Format a \bibitem entry so that it is (relatively) nice to look at. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4295 (let ((text (reftex-get-bib-field "&text" item)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4296 (key (reftex-get-bib-field "&key" item)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4297 (lines nil)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4298 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4299 ;; Wrap the text into several lines. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4300 (while (and (> (length text) 70) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4301 (string-match " " (substring text 60))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4302 (push (substring text 0 (+ 60 (match-beginning 0))) lines) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4303 (setq text (substring text (+ 61 (match-beginning 0))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4304 (push text lines) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4305 (setq text (mapconcat 'identity (nreverse lines) "\n ")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4306 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4307 (when (reftex-use-fonts) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4308 (put-text-property 0 (length text) 'face reftex-bib-author-face text)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4309 (concat key "\n " text "\n\n"))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4310 |
18050 | 4311 ;; Make a citation |
4312 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4313 ;;;###autoload |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4314 (defun reftex-citation (&optional no-insert) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4315 "Make a citation using BibTeX database files. |
18050 | 4316 After asking for a Regular Expression, it scans the buffers with |
4317 bibtex entries (taken from the \\bibliography command) and offers the | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4318 matching entries for selection. The selected entry is formated according |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4319 to `reftex-cite-format' and inserted into the buffer. |
18050 | 4320 If NO-INSERT is non-nil, nothing is inserted, only the selected key returned. |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4321 The regular expression uses an expanded syntax: && is interpreted as `and'. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4322 Thus, `aaaa&&bbb' matches entries which contain both `aaaa' and `bbb'. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4323 While entering the regexp, completion on knows citation keys is possible. |
18123 | 4324 When this function is called with point inside the braces of a \\cite |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4325 command, it will add another key, ignoring the value of `reftex-cite-format'. |
18050 | 4326 When called with a numeric prefix, that many citations will be made and all |
18123 | 4327 put into the same \\cite command. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4328 When called with just or two C-u as prefix, enforces rescan of buffer for |
18050 | 4329 bibliography statement (e.g. if it was changed)." |
4330 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4331 (interactive) |
18050 | 4332 |
4333 ;; check for recursive edit | |
4334 (reftex-check-recursive-edit) | |
4335 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4336 ;; This function may also be called outside reftex-mode. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4337 ;; Thus look for the scanning info only if in reftex-mode. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4338 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4339 (when reftex-mode |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4340 (reftex-access-scan-info current-prefix-arg)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4341 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4342 ;; Call reftex-do-citation, but protected |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4343 (unwind-protect |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4344 (reftex-do-citation current-prefix-arg no-insert) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4345 (reftex-kill-temporary-buffers))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4346 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4347 (defun reftex-do-citation (&optional arg no-insert) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4348 ;; This really does the work of reftex-citation. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4349 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4350 (let* ((format (reftex-figure-out-cite-format arg no-insert)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4351 (docstruct-symbol reftex-docstruct-symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4352 (selected-entries (reftex-offer-bib-menu)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4353 (insert-entries selected-entries) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4354 entry string cite-view) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4355 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4356 (unless selected-entries (error "Quit")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4357 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4358 (if (stringp selected-entries) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4359 ;; Nonexistent entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4360 (setq selected-entries nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4361 insert-entries (list (list selected-entries |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4362 (cons "&key" selected-entries)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4363 ;; It makes sense to compute the cite-view strings. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4364 (setq cite-view t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4365 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4366 (when (eq (car selected-entries) 'concat) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4367 ;; All keys go into a single command - we need to trick a little |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4368 (pop selected-entries) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4369 (let ((concat-keys (mapconcat 'car selected-entries ","))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4370 (setq insert-entries |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4371 (list (list concat-keys (cons "&key" concat-keys)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4372 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4373 (unless no-insert |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4374 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4375 ;; We shall insert this into the buffer... |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4376 (message "Formatting...") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4377 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4378 (while (setq entry (pop insert-entries)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4379 ;; Format the citation and insert it |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4380 (setq string (if reftex-format-cite-function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4381 (funcall reftex-format-cite-function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4382 (reftex-get-bib-field "&key" entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4383 format) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4384 (reftex-format-citation entry format))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4385 (insert string)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4386 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4387 ;; Reposition cursor? |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4388 (when (string-match "\\?" string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4389 (search-backward "?") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4390 (delete-char 1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4391 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4392 ;; Tell AUCTeX |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4393 (when (and reftex-mode |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4394 (fboundp 'LaTeX-add-bibitems) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4395 reftex-plug-into-AUCTeX) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4396 (apply 'LaTeX-add-bibitems (mapcar 'car selected-entries))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4397 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4398 ;; Produce the cite-view strings |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4399 (when (and reftex-mode reftex-cache-cite-echo cite-view) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4400 (mapcar (lambda (entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4401 (reftex-make-cite-echo-string entry docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4402 selected-entries)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4403 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4404 (message "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4405 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4406 (set-marker reftex-select-return-marker nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4407 (reftex-kill-buffer "*RefTeX Select*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4408 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4409 ;; Check if the prefix arg was numeric, and call recursively |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4410 (when (integerp arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4411 (if (> arg 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4412 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4413 (skip-chars-backward "}") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4414 (decf arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4415 (reftex-do-citation arg)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4416 (forward-char 1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4417 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4418 ;; Return the citation key |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4419 (car (car selected-entries)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4420 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4421 (defun reftex-figure-out-cite-format (arg no-insert) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4422 ;; Check if there is already a cite command at point and change cite format |
18050 | 4423 ;; in order to only add another reference in the same cite command. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4424 (let ((macro (car (reftex-what-macro 1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4425 (cite-format-value (reftex-get-cite-format)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4426 key format) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4427 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4428 (no-insert |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4429 ;; Format does not really matter because nothing will be inserted. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4430 (setq format "%l")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4431 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4432 ((and (stringp macro) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4433 (string-match "\\`\\\\cite\\|cite\\'" macro)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4434 ;; We are already inside a cite macro |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4435 (if (or (not arg) (not (listp arg))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4436 (setq format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4437 (concat |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4438 (if (member (preceding-char) '(?\{ ?,)) "" ",") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4439 "%l" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4440 (if (member (following-char) '(?\} ?,)) "" ","))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4441 (setq format "%l"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4442 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4443 ;; Figure out the correct format |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4444 (setq format |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4445 (if (and (symbolp cite-format-value) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4446 (assq cite-format-value reftex-cite-format-builtin)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4447 (nth 2 (assq cite-format-value reftex-cite-format-builtin)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4448 cite-format-value)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4449 (when (listp format) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4450 (setq key |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4451 (reftex-select-with-char |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4452 "" (concat "SELECT A CITATION FORMAT\n\n" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4453 (mapconcat |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4454 (lambda (x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4455 (format "[%c] %s %s" (car x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4456 (if (> (car x) 31) " " "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4457 (cdr x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4458 format "\n")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4459 (if (assq key format) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4460 (setq format (cdr (assq key format))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4461 (error "No citation format associated with key `%c'" key))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4462 format)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4463 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4464 (defun reftex-get-cite-format () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4465 ;; Return the current citation format. Either the document-local value in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4466 ;; reftex-cite-format-symbol, or the global value in reftex-cite-format. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4467 (if (and reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4468 (symbolp reftex-docstruct-symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4469 (get reftex-docstruct-symbol 'reftex-cite-format)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4470 (get reftex-docstruct-symbol 'reftex-cite-format) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4471 reftex-cite-format)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4472 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4473 (defun reftex-offer-bib-menu () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4474 ;; Offer bib menu and return list of selected items |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4475 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4476 (let (found-list rtn key data selected-entries) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4477 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4478 (while |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4479 (not |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4480 (catch 'done |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4481 ;; Scan bibtex files |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4482 (setq found-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4483 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4484 ((assq 'bib (symbol-value reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4485 ;; using BibTeX database files. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4486 (reftex-extract-bib-entries (reftex-get-bibfile-list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4487 ((assq 'thebib (symbol-value reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4488 ;; using thebibliography environment. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4489 (reftex-extract-bib-entries-from-thebibliography |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4490 (cdr (assq 'thebib (symbol-value reftex-docstruct-symbol))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4491 (reftex-default-bibliography |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4492 (message "Using default bibliography") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4493 (reftex-extract-bib-entries reftex-default-bibliography)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4494 (t (error "No valid bibliography in this document, and no default available")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4495 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4496 (unless found-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4497 (error "Sorry, no matches found")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4498 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4499 ;; Remember where we came from |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4500 (setq reftex-call-back-to-this-buffer (current-buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4501 (set-marker reftex-select-return-marker (point)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4502 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4503 ;; Offer selection |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4504 (save-window-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4505 (delete-other-windows) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4506 (let ((default-major-mode 'reftex-select-bib-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4507 (reftex-kill-buffer "*RefTeX Select*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4508 (switch-to-buffer-other-window "*RefTeX Select*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4509 (unless (eq major-mode 'reftex-select-bib-mode) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4510 (reftex-select-bib-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4511 (let ((buffer-read-only nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4512 (erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4513 (reftex-insert-bib-matches found-list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4514 (setq buffer-read-only t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4515 (if (= 0 (buffer-size)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4516 (error "Sorry, no matches found")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4517 (setq truncate-lines t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4518 (goto-char 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4519 (while t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4520 (setq rtn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4521 (reftex-select-item |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4522 reftex-citation-prompt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4523 reftex-citation-help |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4524 reftex-select-bib-map |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4525 nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4526 'reftex-bibtex-selection-callback nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4527 (setq key (car rtn) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4528 data (nth 1 rtn)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4529 (unless key (throw 'done t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4530 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4531 ((eq key ?g) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4532 ;; Start over |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4533 (throw 'done nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4534 ((eq key ?r) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4535 ;; Restrict with new regular expression |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4536 (setq found-list (reftex-restrict-bib-matches found-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4537 (let ((buffer-read-only nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4538 (erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4539 (reftex-insert-bib-matches found-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4540 (goto-char 1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4541 ((eq key ?A) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4542 ;; Take all |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4543 (setq selected-entries found-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4544 (throw 'done t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4545 ((eq key ?a) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4546 ;; Take all |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4547 (setq selected-entries (cons 'concat found-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4548 (throw 'done t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4549 ((or (eq key ?\C-m) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4550 (eq key 'return)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4551 ;; Take selected |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4552 (setq selected-entries (if data (list data) nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4553 (throw 'done t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4554 ((stringp key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4555 ;; Got this one with completion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4556 (setq selected-entries key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4557 (throw 'done t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4558 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4559 (ding)))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4560 selected-entries)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4561 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4562 (defun reftex-restrict-bib-matches (found-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4563 ;; Limit FOUND-LIST with more regular expressions |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4564 (let ((re-list (split-string (read-string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4565 "RegExp [ && RegExp...]: " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4566 nil 'reftex-cite-regexp-hist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4567 "[ \t]*&&[ \t]*")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4568 (found-list-r found-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4569 re) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4570 (while (setq re (pop re-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4571 (setq found-list-r |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4572 (delq nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4573 (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4574 (lambda (x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4575 (if (string-match |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4576 re (cdr (assoc "&entry" x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4577 x |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4578 nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4579 found-list-r)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4580 (if found-list-r |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4581 found-list-r |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4582 (ding) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4583 found-list))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4584 |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4585 (defun reftex-insert-bib-matches (list) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4586 ;; Insert the bib matches and number them correctly |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4587 (let ((mouse-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4588 (if (memq reftex-highlight-selection '(mouse both)) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4589 reftex-mouse-selected-face |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4590 nil)) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
4591 tmp len) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4592 (mapcar |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4593 (function |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4594 (lambda (x) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4595 (setq tmp (cdr (assoc "&formatted" x)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4596 len (length tmp)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4597 (put-text-property 0 len ':data x tmp) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4598 (put-text-property 0 (1- len) 'mouse-face mouse-face tmp) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4599 (insert tmp))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4600 list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4601 (run-hooks 'reftex-display-copied-context-hook)) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4602 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4603 (defun reftex-format-names (namelist n) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4604 (let (last (len (length namelist))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4605 (cond |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4606 ((< len 1) "") |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4607 ((= 1 len) (car namelist)) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4608 ((> len n) (concat (car namelist) (nth 2 reftex-cite-punctuation))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4609 (t |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4610 (setq n (min len n) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4611 last (nth (1- n) namelist)) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4612 (setcdr (nthcdr (- n 2) namelist) nil) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4613 (concat |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4614 (mapconcat 'identity namelist (nth 0 reftex-cite-punctuation)) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4615 (nth 1 reftex-cite-punctuation) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4616 last))))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4617 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4618 (defun reftex-format-citation (entry format) |
18050 | 4619 ;; Format a citation from the info in the BibTeX ENTRY |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4620 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4621 (unless (stringp format) (setq format "\\cite{%l}")) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4622 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4623 (if (and reftex-comment-citations |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4624 (string-match "%l" reftex-cite-comment-format)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4625 (error "reftex-cite-comment-format contains illegal %%l")) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4626 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4627 (while (string-match |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4628 "\\(\\`\\|[^%]\\)\\(\\(%\\([0-9]*\\)\\([a-zA-Z]\\)\\)[.,;: ]*\\)" |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4629 format) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4630 (let ((n (string-to-int (match-string 4 format))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4631 (l (string-to-char (match-string 5 format))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4632 rpl b e) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4633 (save-match-data |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4634 (setq rpl |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4635 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4636 ((= l ?l) (concat |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4637 (reftex-get-bib-field "&key" entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4638 (if reftex-comment-citations |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4639 reftex-cite-comment-format |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4640 ""))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4641 ((= l ?a) (reftex-format-names |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4642 (reftex-get-bib-names "author" entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4643 (or n 2))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4644 ((= l ?A) (car (reftex-get-bib-names "author" entry))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4645 ((= l ?b) (reftex-get-bib-field "booktitle" entry "in: %s")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4646 ((= l ?B) (reftex-abbreviate-title |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4647 (reftex-get-bib-field "booktitle" entry "in: %s"))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4648 ((= l ?c) (reftex-get-bib-field "chapter" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4649 ((= l ?d) (reftex-get-bib-field "edition" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4650 ((= l ?e) (reftex-format-names |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4651 (reftex-get-bib-names "editor" entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4652 (or n 2))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4653 ((= l ?E) (car (reftex-get-bib-names "editor" entry))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4654 ((= l ?h) (reftex-get-bib-field "howpublished" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4655 ((= l ?i) (reftex-get-bib-field "institution" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4656 ((= l ?j) (reftex-get-bib-field "journal" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4657 ((= l ?k) (reftex-get-bib-field "key" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4658 ((= l ?m) (reftex-get-bib-field "month" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4659 ((= l ?n) (reftex-get-bib-field "number" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4660 ((= l ?o) (reftex-get-bib-field "organization" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4661 ((= l ?p) (reftex-get-bib-field "pages" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4662 ((= l ?P) (car (split-string |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4663 (reftex-get-bib-field "pages" entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4664 "[- .]+"))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4665 ((= l ?s) (reftex-get-bib-field "school" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4666 ((= l ?u) (reftex-get-bib-field "publisher" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4667 ((= l ?r) (reftex-get-bib-field "address" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4668 ((= l ?t) (reftex-get-bib-field "title" entry)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4669 ((= l ?T) (reftex-abbreviate-title |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4670 (reftex-get-bib-field "title" entry))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4671 ((= l ?v) (reftex-get-bib-field "volume" entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4672 ((= l ?y) (reftex-get-bib-field "year" entry))))) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4673 |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4674 (if (string= rpl "") |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4675 (setq b (match-beginning 2) e (match-end 2)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4676 (setq b (match-beginning 3) e (match-end 3))) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4677 (setq format (concat (substring format 0 b) rpl (substring format e))))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4678 (while (string-match "%%" format) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4679 (setq format (replace-match "%" t t format))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4680 (while (string-match "[ ,.;:]*%<" format) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4681 (setq format (replace-match "" t t format))) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4682 format) |
18050 | 4683 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4684 (defun reftex-bibtex-selection-callback (data ignore no-revisit) |
18050 | 4685 ;; Callback function to be called from the BibTeX selection, in |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4686 ;; order to display context. This function is relatively slow and not |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4687 ;; recommended for follow mode. It works OK for individual lookups. |
18050 | 4688 (let ((win (selected-window)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4689 (key (reftex-get-bib-field "&key" data)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4690 bibfile-list item tmp) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4691 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4692 (catch 'exit |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4693 (save-excursion |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4694 (set-buffer reftex-call-back-to-this-buffer) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4695 (cond |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4696 ((assq 'bib (symbol-value reftex-docstruct-symbol)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4697 (setq bibfile-list (reftex-get-bibfile-list))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4698 ((setq tmp (assq 'thebib (symbol-value reftex-docstruct-symbol))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4699 (setq bibfile-list (list (cdr tmp)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4700 item t)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4701 (reftex-default-bibliography |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4702 (setq bibfile-list reftex-default-bibliography)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4703 (t (ding) (throw 'exit)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4704 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4705 (when no-revisit |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4706 (setq bibfile-list (reftex-visited-files bibfile-list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4707 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4708 (condition-case nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4709 (reftex-pop-to-bibtex-entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4710 key bibfile-list (not reftex-keep-temporary-buffers) t item) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4711 (error (ding)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4712 |
18050 | 4713 (select-window win))) |
4714 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4715 ;;; ========================================================================= |
18050 | 4716 ;;; |
4717 ;;; Here is the routine used for selection | |
4718 | |
4719 ;; Marker for return point from recursive edit | |
4720 (defvar reftex-recursive-edit-marker (make-marker)) | |
4721 | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4722 (defvar reftex-last-data nil) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4723 (defvar reftex-last-line nil) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4724 |
18050 | 4725 (defun reftex-check-recursive-edit () |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
4726 ;; Check if we are already in a recursive edit. Abort with helpful |
18050 | 4727 ;; message if so. |
4728 (if (marker-position reftex-recursive-edit-marker) | |
4729 (error | |
4730 (substitute-command-keys | |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4731 "In unfinished selection process. Finish, or abort with \\[abort-recursive-edit].")))) |
18050 | 4732 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4733 (defun reftex-select-item (prompt help-string keymap |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4734 &optional offset |
21115
fea2f6a2818d
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21114
diff
changeset
|
4735 call-back cb-flag) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4736 ;; Select an item, using PROMPT. The function returns a key indicating |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4737 ;; an exit status, along with a data structure indicating which item was |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4738 ;; selected. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4739 ;; HELP-STRING contains help. KEYMAP is a keymap with the available |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4740 ;; selection commands. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4741 ;; OFFSET can be a label list item which will be selected at start. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4742 ;; When it is t, point will start out at the beginning of the buffer. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4743 ;; Any other value will cause restart where last selection left off. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4744 ;; When CALL-BACK is given, it is a function which is called with the index |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4745 ;; of the element. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4746 ;; CB-FLAG is the initial value of that flag. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4747 |
21075
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4748 (let* (ev data last-data callback-fwd (selection-buffer (current-buffer))) |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
4749 |
18050 | 4750 (setq ev |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4751 (catch 'myexit |
18050 | 4752 (save-window-excursion |
4753 (setq truncate-lines t) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4754 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4755 ;; Find a good starting point |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4756 (cond |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4757 (offset |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4758 (goto-char |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4759 (or (and (listp offset) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4760 (text-property-any (point-min) (point-max) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4761 ':data offset)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4762 (and (local-variable-p 'reftex-last-data (current-buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4763 (boundp 'reftex-last-data) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4764 (listp reftex-last-data) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4765 (text-property-any (point-min) (point-max) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4766 ':data reftex-last-data)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4767 (and (local-variable-p 'reftex-last-line (current-buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4768 (boundp 'reftex-last-line) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4769 (integerp reftex-last-line) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4770 (progn (goto-line reftex-last-line) (point))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4771 (point-min)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4772 (t (goto-char (point-min)))) |
18050 | 4773 (beginning-of-line 1) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4774 (set (make-local-variable 'reftex-last-follow-point) (point)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4775 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4776 (unwind-protect |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4777 (progn |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4778 (use-local-map keymap) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4779 (add-hook 'pre-command-hook 'reftex-select-pre-command-hook nil t) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4780 (add-hook 'post-command-hook 'reftex-select-post-command-hook nil t) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4781 (princ prompt) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4782 (set-marker reftex-recursive-edit-marker (point)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4783 ;; XEmacs does not run post-command-hook here |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4784 (and (featurep 'xemacs) (run-hooks 'post-command-hook)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4785 (recursive-edit)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4786 |
21075
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4787 (set-marker reftex-recursive-edit-marker nil) |
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4788 (save-excursion |
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4789 (set-buffer selection-buffer) |
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4790 (use-local-map nil) |
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4791 (remove-hook 'pre-command-hook 'reftex-select-pre-command-hook t) |
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4792 (remove-hook 'post-command-hook |
0c95fb73e090
1998-03-06 Carsten Dominik <cd@delysid.gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21002
diff
changeset
|
4793 'reftex-select-post-command-hook t)))))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4794 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4795 (set (make-local-variable 'reftex-last-line) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4796 (+ (count-lines (point-min) (point)) (if (bolp) 1 0))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4797 (set (make-local-variable 'reftex-last-data) last-data) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4798 (reftex-kill-buffer "*RefTeX Help*") |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4799 (setq callback-fwd (not callback-fwd)) ;; ;-))) |
18050 | 4800 (message "") |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4801 (list ev data last-data))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4802 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4803 ;; The following variables are all bound dynamically in `reftex-select-item'. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4804 ;; The defvars are here only to silence the byte compiler. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4805 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4806 (defvar found-list) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4807 (defvar cb-flag) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4808 (defvar data) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4809 (defvar prompt) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4810 (defvar last-data) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4811 (defvar call-back) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4812 (defvar help-string) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4813 (defvar callback-fwd) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4814 (defvar varioref) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4815 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4816 ;; The selection commands |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4817 |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4818 (defun reftex-select-pre-command-hook () |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4819 (reftex-unhighlight 1) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4820 (reftex-unhighlight 0)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4821 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4822 (defun reftex-select-post-command-hook () |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4823 (let (b e) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4824 (setq data (get-text-property (point) ':data)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4825 (setq last-data (or data last-data)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4826 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4827 (when (and data cb-flag |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4828 (not (equal reftex-last-follow-point (point)))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4829 (setq reftex-last-follow-point (point)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4830 (funcall call-back data callback-fwd |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4831 (not reftex-revisit-to-follow))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4832 (if data |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4833 (setq b (or (previous-single-property-change |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4834 (1+ (point)) ':data) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4835 (point-min)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4836 e (or (next-single-property-change |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4837 (point) ':data) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4838 (point-max))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4839 (setq b (point) e (point))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4840 (and (memq reftex-highlight-selection '(cursor both)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4841 (reftex-highlight 1 b e)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4842 (if (or (not (pos-visible-in-window-p b)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4843 (not (pos-visible-in-window-p e))) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4844 (recenter '(4))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4845 (unless (current-message) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4846 (princ prompt)))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4847 |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4848 (defun reftex-select-next (&optional arg) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4849 "Move to next selectable item." |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4850 (interactive "p") |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4851 (setq callback-fwd t) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4852 (or (eobp) (forward-char 1)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4853 (re-search-forward "^[^. \t\n\r]" nil t arg) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4854 (beginning-of-line 1)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4855 (defun reftex-select-previous (&optional arg) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4856 "Move to previous selectable item." |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4857 (interactive "p") |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4858 (setq callback-fwd nil) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4859 (re-search-backward "^[^. \t\n\r]" nil t arg)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4860 (defun reftex-select-next-heading (&optional arg) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4861 "Move to next table of contentes line." |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4862 (interactive "p") |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4863 (end-of-line) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4864 (re-search-forward "^ " nil t arg) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4865 (beginning-of-line)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4866 (defun reftex-select-previous-heading (&optional arg) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4867 "Move to previous table of contentes line." |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4868 (interactive "p") |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4869 (re-search-backward "^ " nil t arg)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4870 (defun reftex-select-quit () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4871 "Abort selection process." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4872 (interactive) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4873 (throw 'myexit nil)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4874 (defun reftex-select-keyboard-quit () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4875 "Abort selection process." |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4876 (interactive) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4877 (throw 'exit t)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4878 (defun reftex-select-jump-to-previous () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4879 "Jump back to where previous selection process left off." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4880 (interactive) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4881 (let (pos) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4882 (cond |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4883 ((and (local-variable-p 'reftex-last-data (current-buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4884 reftex-last-data |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4885 (setq pos (text-property-any (point-min) (point-max) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4886 ':data reftex-last-data))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4887 (goto-char pos)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4888 ((and (local-variable-p 'reftex-last-line (current-buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4889 (integerp reftex-last-line)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4890 (goto-line reftex-last-line)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4891 (t (ding))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4892 (defun reftex-select-toggle-follow () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4893 "Toggle follow mode: Other window follows with full context." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4894 (interactive) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4895 (setq reftex-last-follow-point -1) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4896 (setq cb-flag (not cb-flag))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4897 (defun reftex-select-toggle-varioref () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4898 "Toggle the macro used for referencing the label between \\ref and \\vref." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4899 (interactive) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4900 (if (string= varioref "\\ref") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4901 (setq varioref "\\vref") |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4902 (setq varioref "\\ref")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4903 (force-mode-line-update)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4904 (defun reftex-select-show-insertion-point () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4905 "Show the point from where selection was started in another window." |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4906 (interactive) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4907 (let ((this-window (selected-window))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4908 (unwind-protect |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4909 (progn |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4910 (switch-to-buffer-other-window |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4911 (marker-buffer reftex-select-return-marker)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4912 (goto-char (marker-position reftex-select-return-marker)) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4913 (recenter '(4))) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4914 (select-window this-window)))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4915 (defun reftex-select-callback () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4916 "Show full context in another window." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4917 (interactive) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4918 (if data (funcall call-back data callback-fwd nil) (ding))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4919 (defun reftex-select-accept () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4920 "Accept the currently selected item." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4921 (interactive) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4922 (throw 'myexit 'return)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4923 (defun reftex-select-mouse-accept (ev) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4924 "Accept the item at the mouse click." |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4925 (interactive "e") |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4926 (mouse-set-point ev) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4927 (setq data (get-text-property (point) ':data)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4928 (setq last-data (or data last-data)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4929 (throw 'myexit 'return)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4930 (defun reftex-select-read-label () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4931 "Use minibuffer to read a label to reference, with completion." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4932 (interactive) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4933 (let ((label (completing-read |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4934 "Label: " (symbol-value reftex-docstruct-symbol) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4935 nil nil reftex-prefix))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4936 (unless (or (equal label "") (equal label reftex-prefix)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4937 (throw 'myexit label)))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4938 (defun reftex-select-read-cite () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4939 "Use minibuffer to read a citation key with completion." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4940 (interactive) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4941 (let* ((key (completing-read "Citation key: " found-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4942 (entry (assoc key found-list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4943 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4944 ((or (null key) (equal key ""))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4945 (entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4946 (setq data entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4947 (setq last-data data) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4948 (throw 'myexit 'return)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4949 (t (throw 'myexit key))))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4950 (defun reftex-select-help () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4951 "Display a summary of the special key bindings." |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4952 (interactive) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4953 (with-output-to-temp-buffer "*RefTeX Help*" |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4954 (princ help-string)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
4955 (reftex-enlarge-to-fit "*RefTeX Help*" t)) |
18050 | 4956 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4957 ;;; ========================================================================= |
18050 | 4958 ;;; |
4959 ;;; View cross references | |
4960 | |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4961 (defun reftex-view-crossref (&optional arg how) |
18123 | 4962 "View cross reference of \\ref or \\cite macro at point. |
4963 If the macro at point is a \\ref, show the corresponding label definition. | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4964 If it is a \\cite, show the BibTeX database entry or the \\bibitem. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4965 To cope with the plethora of variations in packages, this |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4966 function assumes any macro either starting with or ending in `ref' or |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4967 `cite' to contain cross references. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4968 When the LaTeX package `xr' is being used, this command will also view |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4969 crossreferences in external documents. However, this works correctly only |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4970 when the \\externaldocument macros are used with the optional label prefix |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4971 argument. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
4972 With one or two C-u prefixes, enforce rescanning of the document. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4973 With argument 2, select the window showing the cross reference. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4974 When HOW is 'echo, call the corresponding echo function. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4975 When HOW is 'tmp-window, make the pop-up window as small as possible and |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4976 arrange for its removal before the next command." |
18050 | 4977 |
4978 (interactive "P") | |
4979 | |
4980 ;; See where we are. | |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4981 (let* ((macro (car (reftex-what-macro 1))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4982 (key (reftex-this-word "^{}%\n\r,"))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
4983 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4984 (setq reftex-call-back-to-this-buffer (current-buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4985 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4986 (if (and macro |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4987 (string-match "\\`\\\\cite\\|\\`\\\\ref\\|cite\\'\\|ref\\'" |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4988 macro)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4989 (and (setq macro (match-string 0 macro)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4990 (string-match "\\`\\\\" macro) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4991 (setq macro (substring macro 1))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4992 (setq macro nil)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4993 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4994 (if (or (null macro) (reftex-in-comment)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4995 (error "No cross reference to display")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
4996 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4997 (if (eq how 'tmp-window) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4998 ;; Remember the window configuration |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
4999 (put 'reftex-auto-view-crossref 'last-window-conf |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5000 (current-window-configuration))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5001 (cond |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5002 ((string= macro "cite") |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5003 (reftex-view-cr-cite arg key how)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5004 ((string= macro "ref") |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5005 (reftex-view-cr-ref arg key how)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5006 (t |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5007 (error "Cannot display crossref\n"))))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5008 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5009 (defun reftex-view-cr-cite (arg key how) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5010 ;; View crossreference of a ref cite. HOW can have the values |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5011 ;; nil: Show in another window. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5012 ;; echo: Show one-line info in echo area. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5013 ;; tmp-window: Show in small window and arrange for window to disappear. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5014 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5015 ;; Ensure access to scanning info |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5016 (reftex-access-scan-info (or arg current-prefix-arg)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5017 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5018 (let (files size item (pos (point)) (win (selected-window)) pop-win) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5019 ;; Find the citation mode and the file list |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5020 (cond |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5021 ((assq 'bib (symbol-value reftex-docstruct-symbol)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5022 (setq item nil |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5023 files (reftex-get-bibfile-list))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5024 ((assq 'thebib (symbol-value reftex-docstruct-symbol)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5025 (setq item t |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5026 files (list (cdr (assq 'thebib |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5027 (symbol-value reftex-docstruct-symbol)))))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5028 (reftex-default-bibliography |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5029 (setq item nil |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5030 files reftex-default-bibliography)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5031 (how) ;; don't throw for special display |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5032 (t (error "Cannot display crossref"))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5033 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5034 (if (eq how 'echo) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5035 ;; Display in Echo area |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5036 (reftex-echo-cite key files item) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5037 ;; Display in a window |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5038 (if (not (eq how 'tmp-window)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5039 ;; Normal display |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5040 (reftex-pop-to-bibtex-entry key files nil t item) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5041 ;; A temporary window |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5042 (condition-case nil |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5043 (reftex-pop-to-bibtex-entry key files nil t item) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5044 (error (goto-char pos) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5045 (message "cite: no such citation key %s" key) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5046 (error ""))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5047 ;; Resize the window |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5048 (setq size (max 1 (count-lines (point) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5049 (reftex-end-of-bib-entry item)))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5050 (let ((window-min-height 2)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5051 (shrink-window (1- (- (window-height) size))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5052 (recenter 0)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5053 ;; Arrange restoration |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5054 (add-hook 'pre-command-hook 'reftex-restore-window-conf)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5055 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5056 ;; Normal display in other window |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5057 (add-hook 'pre-command-hook 'reftex-highlight-shall-die) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5058 (setq pop-win (selected-window)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5059 (select-window win) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5060 (goto-char pos) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5061 (when (equal arg 2) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5062 (select-window pop-win))))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5063 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5064 (defun reftex-view-cr-ref (arg label how) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5065 ;; View crossreference of a ref macro. HOW can have the values |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5066 ;; nil: Show in another window. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5067 ;; echo: Show one-line info in echo area. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5068 ;; tmp-window: Show in small window and arrange for window to disappear. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5069 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5070 ;; Ensure access to scanning info |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5071 (reftex-access-scan-info (or arg current-prefix-arg)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5072 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5073 (let* ((xr-data (assoc 'xr (symbol-value reftex-docstruct-symbol))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5074 (xr-re (nth 2 xr-data)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5075 (entry (assoc label (symbol-value reftex-docstruct-symbol))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5076 (win (selected-window)) pop-win (pos (point))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5077 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5078 (if (and (not entry) (stringp label) xr-re (string-match xr-re label)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5079 ;; Label is defined in external document |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5080 (save-excursion |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5081 (save-match-data |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5082 (set-buffer |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5083 (or (reftex-get-file-buffer-force |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5084 (cdr (assoc (match-string 1 label) (nth 1 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5085 xr-data)))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5086 (error "Problem with external label %s" label)))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5087 (setq label (substring label (match-end 1))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5088 (reftex-access-scan-info) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5089 (setq entry |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5090 (assoc label (symbol-value reftex-docstruct-symbol))))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5091 (if (eq how 'echo) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5092 (reftex-echo-ref label entry (symbol-value reftex-docstruct-symbol)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5093 (unless entry |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5094 (message "Label %s not known - reparse document might help" label)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5095 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5096 (reftex-pop-to-label label (list (nth 3 entry)) nil t) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5097 (add-hook 'pre-command-hook 'reftex-highlight-shall-die) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5098 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5099 (when (eq how 'tmp-window) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5100 ;; Resize window and arrange restauration |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5101 (shrink-window (1- (- (window-height) 9))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5102 (recenter '(4)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5103 (add-hook 'pre-command-hook 'reftex-restore-window-conf)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5104 (setq pop-win (selected-window)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5105 (select-window win) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5106 (goto-char pos) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5107 (when (equal arg 2) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5108 (select-window pop-win))))) |
18050 | 5109 |
5110 (defun reftex-mouse-view-crossref (ev) | |
18123 | 5111 "View cross reference of \\ref or \\cite macro where you click. |
5112 If the macro at point is a \\ref, show the corresponding label definition. | |
5113 If it is a \\cite, show the BibTeX database entry. | |
18050 | 5114 If there is no such macro at point, search forward to find one. |
5115 With argument, actually select the window showing the cross reference." | |
5116 (interactive "e") | |
5117 (mouse-set-point ev) | |
5118 (reftex-view-crossref current-prefix-arg)) | |
5119 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5120 (defvar reftex-auto-view-crossref-timer nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5121 "The timer used for auto-view-crossref.") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5122 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5123 (defun reftex-view-crossref-when-idle () |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5124 ;; Display info about crossref at point in echo area or a window. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5125 ;; This function was desigend to work with an idle timer. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5126 ;; We try to get out of here as quickly as possible if the call is useless. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5127 (and reftex-mode |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5128 ;; Quick precheck if this might be a relevant spot |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5129 ;; FIXME: failes with backslash in comment |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5130 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5131 (search-backward "\\" nil t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5132 (looking-at "\\\\[a-zA-Z]*\\(cite\\|ref\\)")) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5133 ;; Make sure message area is free if we need it. |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5134 (or (eq reftex-auto-view-crossref 'window) (not (current-message))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5135 ;; Make sure we are not already displaying this one |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5136 (not (memq last-command '(reftex-view-crossref |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5137 reftex-mouse-view-crossref))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5138 (condition-case nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5139 (let ((current-prefix-arg nil)) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5140 (cond |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5141 ((eq reftex-auto-view-crossref t) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5142 (reftex-view-crossref -1 'echo)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5143 ((eq reftex-auto-view-crossref 'window) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5144 (reftex-view-crossref -1 'tmp-window)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5145 (t nil))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5146 (error nil)))) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5147 |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5148 (defun reftex-restore-window-conf () |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5149 (set-window-configuration (get 'reftex-auto-view-crossref 'last-window-conf)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5150 (put 'reftex-auto-view-crossref 'last-window-conf nil) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5151 (remove-hook 'pre-command-hook 'reftex-restore-window-conf)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5152 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5153 (defun reftex-echo-ref (label entry docstruct) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5154 ;; Display crossref info in echo area. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5155 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5156 ((null docstruct) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5157 (message (substitute-command-keys (format reftex-no-info-message "ref")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5158 ((null entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5159 (message "ref: unknown label: %s" label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5160 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5161 (when (stringp (nth 2 entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5162 (message "ref(%s): %s" (nth 1 entry) (nth 2 entry))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5163 (let ((buf (get-buffer " *Echo Area*"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5164 (when buf |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5165 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5166 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5167 (run-hooks 'reftex-display-copied-context-hook))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5168 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5169 (defun reftex-echo-cite (key files item) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5170 ;; Display citation info in echo area. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5171 (let* ((cache (assq 'bibview-cache (symbol-value reftex-docstruct-symbol))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5172 (cache-entry (assoc key (cdr cache))) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5173 entry string buf (all-files files)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5174 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5175 (if (and reftex-cache-cite-echo cache-entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5176 ;; We can just use the cache |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5177 (setq string (cdr cache-entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5178 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5179 ;; Need to look in the database |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5180 (unless reftex-revisit-to-echo |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5181 (setq files (reftex-visited-files files))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5182 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5183 (setq entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5184 (condition-case nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5185 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5186 (reftex-pop-to-bibtex-entry key files nil nil item t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5187 (error |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5188 (if (and files (= (length all-files) (length files))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5189 (message "cite: no such database entry: %s" key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5190 (message (substitute-command-keys |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5191 (format reftex-no-info-message "cite")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5192 nil))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5193 (when entry |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5194 (if item |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5195 (setq string (reftex-nicify-text entry)) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5196 (setq string (reftex-make-cite-echo-string |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5197 (reftex-parse-bibtex-entry entry) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5198 reftex-docstruct-symbol))))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5199 (unless (or (null string) (equal string "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5200 (message "cite: %s" string)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5201 (when (setq buf (get-buffer " *Echo Area*")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5202 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5203 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5204 (run-hooks 'reftex-display-copied-context-hook))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5205 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5206 (defun reftex-make-cite-echo-string (entry docstruct-symbol) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5207 ;; Format a bibtex entry for the echo area and cache the result. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5208 (let* ((key (reftex-get-bib-field "&key" entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5209 (string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5210 (let* ((reftex-cite-punctuation '(" " " & " " etal."))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5211 (reftex-format-citation entry reftex-cite-view-format))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5212 (cache (assq 'bibview-cache (symbol-value docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5213 (cache-entry (assoc key (cdr cache)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5214 (unless cache |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5215 ;; This docstruct has no cache - make one. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5216 (set docstruct-symbol (cons (cons 'bibview-cache nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5217 (symbol-value docstruct-symbol)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5218 (when reftex-cache-cite-echo |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5219 (setq key (copy-sequence key)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5220 (set-text-properties 0 (length key) nil key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5221 (set-text-properties 0 (length string) nil string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5222 (if cache-entry |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5223 (unless (string= (cdr cache-entry) string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5224 (setcdr cache-entry string) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5225 (put reftex-docstruct-symbol 'modified t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5226 (push (cons key string) (cdr cache)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5227 (put reftex-docstruct-symbol 'modified t))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5228 string)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5229 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5230 (defvar reftex-use-itimer-in-xemacs nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5231 "*Non-nil means use the idle timers in XEmacs for crossref display. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5232 Currently, idle timer restart is broken and we use the post-command-hook.") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5233 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5234 (defun reftex-toggle-auto-view-crossref () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5235 "Toggle the automatic display of crossref information in the echo area. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5236 When active, leaving point idle in the argument of a \\ref or \\cite macro |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5237 will display info in the echo area." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5238 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5239 (if reftex-auto-view-crossref-timer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5240 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5241 (if (featurep 'xemacs) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5242 (if reftex-use-itimer-in-xemacs |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5243 (delete-itimer reftex-auto-view-crossref-timer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5244 (remove-hook 'post-command-hook 'reftex-start-itimer-once)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5245 (cancel-timer reftex-auto-view-crossref-timer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5246 (setq reftex-auto-view-crossref-timer nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5247 (message "Automatic display of crossref information was turned off")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5248 (setq reftex-auto-view-crossref-timer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5249 (if (featurep 'xemacs) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5250 (if reftex-use-itimer-in-xemacs |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5251 (start-itimer "RefTeX Idle Timer" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5252 'reftex-view-crossref-when-idle |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5253 reftex-idle-time reftex-idle-time t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5254 (add-hook 'post-command-hook 'reftex-start-itimer-once) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5255 nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5256 (run-with-idle-timer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5257 reftex-idle-time t 'reftex-view-crossref-when-idle))) |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5258 (unless reftex-auto-view-crossref |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5259 (setq reftex-auto-view-crossref t)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5260 (message "Automatic display of crossref information was turned on"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5261 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5262 (defun reftex-start-itimer-once () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5263 (and reftex-mode |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5264 (not (itimer-live-p reftex-auto-view-crossref-timer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5265 (setq reftex-auto-view-crossref-timer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5266 (start-itimer "RefTeX Idle Timer" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5267 'reftex-view-crossref-when-idle |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5268 reftex-idle-time nil t)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5269 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5270 ;;; ========================================================================= |
18050 | 5271 ;;; |
5272 ;;; Functions that check out the surroundings | |
5273 | |
5274 (defun reftex-what-macro (which &optional bound) | |
5275 ;; Find out if point is within the arguments of any TeX-macro. | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5276 ;; The return value is either ("\\macro" . (point)) or a list of them. |
18050 | 5277 |
5278 ;; If WHICH is nil, immediately return nil. | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5279 ;; If WHICH is 1, return innermost enclosing macro. |
18050 | 5280 ;; If WHICH is t, return list of all macros enclosing point. |
5281 ;; If WHICH is a list of macros, look only for those macros and return the | |
5282 ;; name of the first macro in this list found to enclose point. | |
5283 ;; If the optional BOUND is an integer, bound backwards directed | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5284 ;; searches to this point. If it is nil, limit to nearest \section - |
18050 | 5285 ;; like statement. |
5286 | |
5287 ;; This function is pretty stable, but can be fooled if the text contains | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5288 ;; things like \macro{aa}{bb} where \macro is defined to take only one |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5289 ;; argument. As RefTeX cannot know this, the string "bb" would still be |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5290 ;; considered an argument of macro \macro. |
18050 | 5291 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5292 (unless reftex-section-regexp (reftex-compile-variables)) |
18050 | 5293 (catch 'exit |
5294 (if (null which) (throw 'exit nil)) | |
5295 (let ((bound (or bound (save-excursion (re-search-backward | |
5296 reftex-section-regexp nil 1) | |
5297 (point)))) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5298 pos cmd-list cmd cnt cnt-opt entry) |
18050 | 5299 (save-restriction |
5300 (save-excursion | |
5301 (narrow-to-region (max 1 bound) (point-max)) | |
5302 ;; move back out of the current parenthesis | |
5303 (while (condition-case nil | |
5304 (progn (up-list -1) t) | |
5305 (error nil)) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5306 (setq cnt 1 cnt-opt 0) |
18050 | 5307 ;; move back over any touching sexps |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5308 (while (and (reftex-move-to-previous-arg bound) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5309 (condition-case nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5310 (progn (backward-sexp) t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5311 (error nil))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5312 (if (eq (following-char) ?\[) (incf cnt-opt)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5313 (incf cnt)) |
18050 | 5314 (setq pos (point)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5315 (when (and (or (= (following-char) ?\[) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5316 (= (following-char) ?\{)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5317 (re-search-backward "\\\\[*a-zA-Z]+\\=" nil t)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5318 (setq cmd (reftex-match-string 0)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5319 (when (looking-at "\\\\begin{[^}]*}") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5320 (setq cmd (reftex-match-string 0) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5321 cnt (1- cnt))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5322 ;; This does ignore optional arguments. Very hard to fix. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5323 (when (setq entry (assoc cmd reftex-env-or-mac-alist)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5324 (if (> cnt (or (nth 4 entry) 100)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5325 (setq cmd nil))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5326 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5327 ((null cmd)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5328 ((eq t which) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5329 (push (cons cmd (point)) cmd-list)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5330 ((or (eq 1 which) (member cmd which)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5331 (throw 'exit (cons cmd (point)))))) |
18050 | 5332 (goto-char pos))) |
5333 (nreverse cmd-list))))) | |
5334 | |
5335 (defun reftex-what-environment (which &optional bound) | |
5336 ;; Find out if point is inside a LaTeX environment. | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5337 ;; The return value is (e.g.) either ("equation" . (point)) or a list of |
18050 | 5338 ;; them. |
5339 | |
5340 ;; If WHICH is nil, immediately return nil. | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5341 ;; If WHICH is 1, return innermost enclosing environment. |
18050 | 5342 ;; If WHICH is t, return list of all environments enclosing point. |
5343 ;; If WHICH is a list of environments, look only for those environments and | |
5344 ;; return the name of the first environment in this list found to enclose | |
5345 ;; point. | |
5346 | |
5347 ;; If the optional BOUND is an integer, bound backwards directed searches to | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5348 ;; this point. If it is nil, limit to nearest \section - like statement. |
18050 | 5349 |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5350 (unless reftex-section-regexp (reftex-compile-variables)) |
18050 | 5351 (catch 'exit |
5352 (save-excursion | |
5353 (if (null which) (throw 'exit nil)) | |
5354 (let ((bound (or bound (save-excursion (re-search-backward | |
5355 reftex-section-regexp nil 1) | |
5356 (point)))) | |
5357 env-list end-list env) | |
5358 (while (re-search-backward "\\\\\\(begin\\|end\\){\\([^}]+\\)}" | |
5359 bound t) | |
5360 (setq env (buffer-substring-no-properties | |
5361 (match-beginning 2) (match-end 2))) | |
5362 (cond | |
5363 ((string= (match-string 1) "end") | |
5364 (add-to-list 'end-list env)) | |
5365 ((member env end-list) | |
5366 (setq end-list (delete env end-list))) | |
5367 ((eq t which) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5368 (push (cons env (point)) env-list)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5369 ((or (eq 1 which) (member env which)) |
18050 | 5370 (throw 'exit (cons env (point)))))) |
5371 (nreverse env-list))))) | |
5372 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5373 ;;; ========================================================================= |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5374 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5375 ;;; Finding files |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5376 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5377 (defun reftex-find-tex-file (file master-dir &optional die) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5378 ;; Find FILE in MASTER-DIR or on reftex-tex-path. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5379 ;; FILE may be given with or without the .tex extension. |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5380 (let ((rec-values (if reftex-search-unrecursed-path-first '(nil t) '(t))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5381 path file1 old-path) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5382 (cond |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5383 ((file-name-absolute-p file) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5384 (if (file-regular-p (concat file ".tex")) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5385 (setq file1 (concat file ".tex")) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5386 (if (file-regular-p file) (setq file1 file)))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5387 ((and reftex-use-external-file-finders |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5388 (assoc "tex" reftex-external-file-finders)) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5389 (setq file1 (reftex-find-file-externally file "tex" master-dir))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5390 (t |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5391 (while (and (null file1) rec-values) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5392 (setq path (reftex-access-search-path |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5393 "tex" (pop rec-values) master-dir file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5394 (if (or (null old-path) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5395 (not (eq old-path path))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5396 (setq old-path path |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5397 path (cons master-dir path) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5398 file1 (or (reftex-find-file-on-path |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5399 (concat file ".tex") path master-dir) |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5400 (reftex-find-file-on-path file path master-dir))))))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5401 (cond (file1 file1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5402 (die (error "No such file: %s" file) nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5403 (t (message "No such file: %s (ignored)" file) nil)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5404 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5405 (defun reftex-find-bib-file (file master-dir &optional die) |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5406 ;; Find FILE in MASTER-DIR or on reftex-bib-path. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5407 ;; File must be given already with the .bib extension. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5408 (let ((rec-values (if reftex-search-unrecursed-path-first '(nil t) '(t))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5409 path file1 old-path) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5410 (cond |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5411 ((file-name-absolute-p file) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5412 (if (file-regular-p file) (setq file1 file))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5413 ((and reftex-use-external-file-finders |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5414 (assoc "bib" reftex-external-file-finders)) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5415 (setq file1 (reftex-find-file-externally file "bib" master-dir))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5416 (t |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5417 (while (and (null file1) rec-values) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5418 (setq path (reftex-access-search-path |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5419 "bib" (pop rec-values) master-dir file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5420 (if (or (null old-path) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5421 (not (eq old-path path))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5422 (setq old-path path |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5423 path (cons master-dir path) |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5424 file1 (reftex-find-file-on-path file path master-dir)))))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5425 (cond (file1 file1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5426 (die (error "No such file: %s" file) nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5427 (t (message "No such file: %s (ignored)" file) nil)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5428 |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5429 (defun reftex-find-file-externally (file type &optional master-dir) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5430 ;; Use external program to find FILE. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5431 ;; The program is the association of TYPE in `reftex-external-file-finders'. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5432 ;; Interprete relative path definitions starting from MASTER-DIR. |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5433 (let ((default-directory (or master-dir default-directory)) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5434 (prg (cdr (assoc type reftex-external-file-finders))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5435 out) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5436 (if (string-match "%f" prg) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5437 (setq prg (replace-match file t t prg))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5438 (setq out (apply 'reftex-process-string (split-string prg))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5439 (if (string-match "[ \t\n]+\\'" out) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5440 (setq out (replace-match "" nil nil out))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5441 (cond ((equal out "") nil) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5442 ((file-regular-p out) out) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5443 (t nil)))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5444 |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5445 (defun reftex-process-string (program &rest args) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5446 "Execute PROGRAM with arguments ARGS and return its STDOUT as a string." |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5447 (with-output-to-string |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5448 (with-current-buffer |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5449 standard-output |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5450 (apply 'call-process program nil '(t nil) nil args)))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5451 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5452 (defun reftex-access-search-path (which &optional recurse master-dir file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5453 ;; Access path from environment variables. WHICH is either "tex" or "bib". |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5454 ;; When RECURSE is t, expand path elements ending in `//' recursively. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5455 ;; Relative path elements are left as they are. However, relative recursive |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5456 ;; elements are expanded with MASTER-DIR as default directory. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5457 ;; The expanded path is cached for the next search. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5458 ;; FILE is just for the progress message. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5459 ;; Returns the derived path. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5460 (let* ((pathvar (intern (concat "reftex-" which "-path")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5461 (when (null (get pathvar 'status)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5462 ;; Get basic path from environment |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5463 (let ((env-vars (if (equal which "tex") |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5464 reftex-texpath-environment-variables |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5465 reftex-bibpath-environment-variables))) |
23344
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5466 (set pathvar |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5467 (reftex-parse-colon-path |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5468 (mapconcat |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5469 (lambda(x) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5470 (if (string-match "^!" x) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5471 (apply 'reftex-process-string |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5472 (split-string (substring x 1))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5473 (or (getenv x) x))) |
608bc56ca20e
(reftex-finding-files): New customize group.
Carsten Dominik <dominik@science.uva.nl>
parents:
23200
diff
changeset
|
5474 env-vars path-separator)))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5475 (put pathvar 'status 'split) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5476 ;; Check if we have recursive elements |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5477 (let ((path (symbol-value pathvar)) dir rec) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5478 (while (setq dir (pop path)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5479 (when (string= (substring dir -2) "//") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5480 (if (file-name-absolute-p dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5481 (setq rec (or rec 'absolute)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5482 (setq rec 'relative)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5483 (put pathvar 'rec-type rec))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5484 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5485 (if recurse |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5486 ;; Return the recursive expansion of the path |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5487 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5488 ((not (get pathvar 'rec-type)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5489 ;; Path does not contain recursive elements - use simple path |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5490 (symbol-value pathvar)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5491 ((or (not (get pathvar 'recursive-path)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5492 (and (eq (get pathvar 'rec-type) 'relative) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5493 (not (equal master-dir (get pathvar 'master-dir))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5494 ;; Either: We don't have a recursive expansion yet. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5495 ;; or: Relative recursive path elements need to be expanded |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5496 ;; relative to new default directory |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5497 (message "Expanding search path to find %s file: %s ..." which file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5498 (put pathvar 'recursive-path |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5499 (reftex-expand-path (symbol-value pathvar) master-dir)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5500 (put pathvar 'master-dir master-dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5501 (get pathvar 'recursive-path)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5502 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5503 ;; Recursive path computed earlier is still OK. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5504 (get pathvar 'recursive-path))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5505 ;; The simple path was requested |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5506 (symbol-value pathvar)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5507 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5508 (defun reftex-find-file-on-path (file path &optional def-dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5509 ;; Find FILE along the directory list PATH. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5510 ;; DEF-DIR is the default directory for expanding relative path elements. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5511 (catch 'exit |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5512 (when (file-name-absolute-p file) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5513 (if (file-regular-p file) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5514 (throw 'exit file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5515 (throw 'exit nil))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5516 (let* ((thepath path) file1 dir ) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5517 (while (setq dir (pop thepath)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5518 (when (string= (substring dir -2) "//") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5519 (setq dir (substring dir 0 -1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5520 (setq file1 (expand-file-name file (expand-file-name dir def-dir))) |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5521 (if (file-regular-p file1) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5522 (throw 'exit file1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5523 ;; No such file |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5524 nil))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5525 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5526 (defun reftex-parse-colon-path (path) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5527 ;; Like parse-colon-parse, but // or /~ are left alone. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5528 ;; Trailing ! or !! will be converted into `//' (emTeX convention) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5529 (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5530 (lambda (dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5531 (if (string-match "\\(//+\\|/*!+\\)\\'" dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5532 (setq dir (replace-match "//" t t dir))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5533 (file-name-as-directory dir)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5534 (delete "" (split-string path (concat path-separator "+"))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5535 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5536 (defun reftex-expand-path (path &optional default-dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5537 ;; Expand parts of path ending in `//' recursively into directory list. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5538 ;; Relative recursive path elements are expanded relative to DEFAULT-DIR. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5539 (let (path1 dir recursive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5540 (while (setq dir (pop path)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5541 (if (setq recursive (string= (substring dir -2) "//")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5542 (setq dir (substring dir 0 -1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5543 (if (and recursive |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5544 (not (file-name-absolute-p dir))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5545 (setq dir (expand-file-name dir default-dir))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5546 (if recursive |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5547 ;; Expand recursively |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5548 (setq path1 (append (reftex-recursive-directory-list dir) path1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5549 ;; Keep unchanged |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5550 (push dir path1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5551 (nreverse path1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5552 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5553 (defun reftex-recursive-directory-list (dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5554 ;; Return a list of all directories below DIR, including DIR itself |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5555 (let ((path (list dir)) path1 file files) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5556 (while (setq dir (pop path)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5557 (when (file-directory-p dir) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5558 (setq files (nreverse (directory-files dir t "[^.]"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5559 (while (setq file (pop files)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5560 (if (file-directory-p file) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5561 (push (file-name-as-directory file) path))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5562 (push dir path1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5563 path1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5564 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5565 ;;; ========================================================================= |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5566 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5567 ;;; Some generally useful functions |
18050 | 5568 |
5569 (defun reftex-no-props (string) | |
5570 ;; Return STRING with all text properties removed | |
5571 (and (stringp string) | |
5572 (set-text-properties 0 (length string) nil string)) | |
5573 string) | |
5574 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5575 (defun reftex-match-string (n) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5576 ;; Match string without properties |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5577 (when (match-beginning n) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5578 (buffer-substring-no-properties (match-beginning n) (match-end n)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5579 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5580 (defun reftex-kill-buffer (buffer) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5581 ;; Kill buffer if it exists. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5582 (and (setq buffer (get-buffer buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5583 (kill-buffer buffer))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5584 |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5585 (defun reftex-erase-buffer (&optional buffer) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5586 ;; Erase BUFFER if it exists. BUFFER defaults to current buffer. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5587 ;; This even erases read-only buffers. |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5588 (cond |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5589 ((null buffer) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5590 ;; erase current buffer |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5591 (let ((buffer-read-only nil)) (erase-buffer))) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5592 ((setq buffer (get-buffer buffer)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5593 ;; buffer exists |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5594 (save-excursion |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5595 (set-buffer buffer) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5596 (let ((buffer-read-only nil)) (erase-buffer)))))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5597 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5598 (defun reftex-this-word (&optional class) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5599 ;; Grab the word around point. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5600 (setq class (or class "-a-zA-Z0-9:_/.*;|")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5601 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5602 (buffer-substring-no-properties |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5603 (progn (skip-chars-backward class) (point)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5604 (progn (skip-chars-forward class) (point))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5605 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5606 (defun reftex-all-assq (key list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5607 ;; Return a list of all associations of KEY in LIST. Comparison with eq. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5608 (let (rtn) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5609 (while (setq list (memq (assq key list) list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5610 (push (car list) rtn) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5611 (pop list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5612 (nreverse rtn))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5613 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5614 (defun reftex-all-assoc-string (key list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5615 ;; Return a list of all associations of KEY in LIST. Comparison with string=. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5616 (let (rtn) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5617 (while list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5618 (if (string= (car (car list)) key) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5619 (push (car list) rtn)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5620 (pop list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5621 (nreverse rtn))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5622 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5623 (defun reftex-last-assoc-before-elt (key elt list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5624 ;; Find the last association of KEY in LIST before or at ELT |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5625 ;; ELT is found in LIST with equal, not eq. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5626 ;; Returns nil when either KEY or elt are not found in LIST. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5627 ;; On success, returns the association. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5628 (let* ((elt (car (member elt list))) ass last-ass) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5629 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5630 (while (and (setq ass (assoc key list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5631 (setq list (memq ass list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5632 (memq elt list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5633 (setq last-ass ass |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5634 list (cdr list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5635 last-ass)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5636 |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
5637 (defvar enable-multibyte-characters) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5638 (defun reftex-truncate (string ncols &optional ellipses padding) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5639 ;; Truncate a string to NCHAR characters. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5640 ;; Works fast with ASCII and correctly with Mule characters. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5641 ;; When ELLIPSES is non-nil, put three dots at the end of the string. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5642 ;; When padding is non-nil, fills with white space to NCOLS characters. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5643 (setq string |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5644 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5645 ((and (boundp 'enable-multibyte-characters) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5646 enable-multibyte-characters |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
5647 (fboundp 'string-width) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5648 (fboundp 'truncate-string-to-width)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5649 (if (<= (string-width string) ncols) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5650 string |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5651 (if ellipses |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5652 (concat (truncate-string-to-width string (- ncols 3)) "...") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5653 (truncate-string-to-width string ncols)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5654 (t |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5655 (if (<= (length string) ncols) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5656 string |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5657 (if ellipses |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5658 (concat (substring string 0 (- ncols 3)) "...") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5659 (substring string 0 ncols)))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5660 (if padding |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5661 (format (format "%%-%ds" ncols) string) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5662 string)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5663 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5664 (defun reftex-nearest-match (regexp &optional pos) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5665 ;; Find the nearest match of REGEXP. Set the match data. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5666 ;; If POS is given, calculate distances relative to it. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5667 ;; Return nil if there is no match. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5668 (let ((start (point)) (pos (or pos (point))) match1 match2 match) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5669 (goto-char start) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5670 (when (re-search-backward regexp nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5671 (setq match1 (match-data))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5672 (goto-char start) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5673 (when (re-search-forward regexp nil t) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5674 (setq match2 (match-data))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5675 (goto-char start) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5676 (setq match |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5677 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5678 ((not match1) match2) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5679 ((not match2) match1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5680 ((< (abs (- pos (car match1))) (abs (- pos (car match2)))) match1) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5681 (t match2))) |
21170
dbe101f49d57
(reftex-nearest-match): store-match-data => set-match-data.
Richard M. Stallman <rms@gnu.org>
parents:
21130
diff
changeset
|
5682 (if match (progn (set-match-data match) t) nil))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5683 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5684 (defun reftex-auto-mode-alist () |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5685 ;; Return an `auto-mode-alist' with only the .gz (etc) thingies. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5686 ;; Stolen from gnus nnheader. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5687 (let ((alist auto-mode-alist) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5688 out) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5689 (while alist |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5690 (when (listp (cdr (car alist))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5691 (push (car alist) out)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5692 (pop alist)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5693 (nreverse out))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5694 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5695 (defun reftex-enlarge-to-fit (buf2 &optional keep-current) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5696 ;; Enlarge other window displaying buffer to show whole buffer if possible. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5697 ;; If KEEP-CURRENT in non-nil, current buffer must remain visible. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5698 (let* ((win1 (selected-window)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5699 (buf1 (current-buffer)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5700 (win2 (get-buffer-window buf2))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5701 (when win2 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5702 (select-window win2) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5703 (unless (and (pos-visible-in-window-p 1) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5704 (pos-visible-in-window-p (point-max))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5705 (enlarge-window (1+ (- (count-lines 1 (point-max)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5706 (window-height)))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5707 (cond |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5708 ((window-live-p win1) (select-window win1)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5709 (keep-current |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5710 ;; we must have the old buffer! |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5711 (switch-to-buffer-other-window buf1) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5712 (shrink-window (- (window-height) window-min-height)))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5713 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5714 (defun reftex-select-with-char (prompt help-string &optional delay-time scroll) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5715 ;; Offer to select something with PROMPT and, after DELAY-TIME seconds, |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5716 ;; also with HELP-STRING. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5717 ;; When SCROLL is non-nil, use SPC and DEL to scroll help window. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5718 (let ((char ?\?)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5719 (save-window-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5720 (catch 'exit |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5721 (message (concat prompt " (?=Help)")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5722 (when (or (sit-for (or delay-time 0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5723 (= ?\? (setq char (read-char-exclusive)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5724 (with-output-to-temp-buffer " *RefTeX Help*" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5725 (princ help-string)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5726 (reftex-enlarge-to-fit " *RefTeX Help*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5727 (select-window (get-buffer-window " *RefTeX Help*")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5728 (setq truncate-lines t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5729 (setq prompt (concat prompt (if scroll " (SPC/DEL=Scroll)" ""))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5730 (message prompt) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5731 (and (equal char ?\?) (setq char (read-char-exclusive))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5732 (while t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5733 (cond ((equal char ?\C-g) (keyboard-quit)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5734 ((equal char ?\?)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5735 ((and scroll (equal char ?\ )) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5736 (condition-case nil (scroll-up) (error nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5737 (message prompt)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5738 ((and scroll (equal char ?\C-? )) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5739 (condition-case nil (scroll-down) (error nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5740 (message prompt)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5741 (t (throw 'exit char))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5742 (setq char (read-char-exclusive))))))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5743 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5744 (defun reftex-make-regexp-allow-for-ctrl-m (string) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5745 ;; convert STRING into a regexp, allowing ^M for \n and vice versa |
18050 | 5746 (let ((start -2)) |
5747 (setq string (regexp-quote string)) | |
5748 (while (setq start (string-match "[\n\r]" string (+ 3 start))) | |
5749 (setq string (replace-match "[\n\r]" nil t string))) | |
5750 string)) | |
5751 | |
5752 (defun reftex-get-buffer-visiting (file) | |
5753 ;; return a buffer visiting FILE | |
5754 (cond | |
5755 ((boundp 'find-file-compare-truenames) ; XEmacs | |
5756 (let ((find-file-compare-truenames t)) | |
5757 (get-file-buffer file))) | |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
5758 ((fboundp 'find-buffer-visiting) ; Emacs |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
5759 (find-buffer-visiting file)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5760 (t (error "This should not happen (reftex-get-buffer-visiting)")))) |
18050 | 5761 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5762 ;; Define `current-message' for compatibility with XEmacs prior to 20.4 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5763 (defvar message-stack) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5764 (if (and (featurep 'xemacs) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5765 (not (fboundp 'current-message))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5766 (defun current-message (&optional frame) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5767 (cdr (car message-stack)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5768 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5769 (defun reftex-visited-files (list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5770 ;; Takes a list of filenames and returns the buffers of those already visited |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5771 (delq nil (mapcar (lambda (x) (if (reftex-get-buffer-visiting x) x nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5772 list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5773 |
18050 | 5774 (defun reftex-get-file-buffer-force (file &optional mark-to-kill) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5775 ;; Return a buffer visiting file. Make one, if necessary. |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5776 ;; If neither such a buffer nor the file exist, return nil. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5777 ;; If MARK-TO-KILL is t and there is no live buffer, visit the file with |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5778 ;; initializations according to `reftex-initialize-temporary-buffers', |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5779 ;; and mark the buffer to be killed after use. |
18050 | 5780 |
5781 (let ((buf (reftex-get-buffer-visiting file))) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5782 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5783 (cond (buf |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5784 ;; We have it already as a buffer - just return it |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5785 buf) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5786 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5787 ((file-readable-p file) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5788 ;; At least there is such a file and we can read it. |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5789 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5790 (if (or (not mark-to-kill) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5791 (eq t reftex-initialize-temporary-buffers)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5792 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5793 ;; Visit the file with full magic |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5794 (setq buf (find-file-noselect file)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5795 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5796 ;; Else: Visit the file just briefly, without or |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5797 ;; with limited Magic |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5798 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5799 ;; The magic goes away |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5800 (let ((format-alist nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5801 (auto-mode-alist (reftex-auto-mode-alist)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5802 (default-major-mode 'fundamental-mode) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5803 (enable-local-variables nil) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5804 (after-insert-file-functions nil)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5805 (setq buf (find-file-noselect file))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5806 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5807 ;; Is there a hook to run? |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5808 (when (listp reftex-initialize-temporary-buffers) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5809 (save-excursion |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5810 (set-buffer buf) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5811 (run-hooks 'reftex-initialize-temporary-buffers)))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5812 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5813 ;; Lets see if we got a license to kill :-| |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5814 (and mark-to-kill |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5815 (add-to-list 'reftex-buffers-to-kill buf)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5816 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5817 ;; Return the new buffer |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5818 buf) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5819 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5820 ;; If no such file exists, return nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5821 (t nil)))) |
18050 | 5822 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5823 (defun reftex-kill-temporary-buffers (&optional buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5824 ;; Kill all buffers in the list reftex-kill-temporary-buffers. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5825 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5826 (buffer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5827 (when (member buffer reftex-buffers-to-kill) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5828 (kill-buffer buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5829 (setq reftex-buffers-to-kill |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5830 (delete buffer reftex-buffers-to-kill)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5831 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5832 (while (setq buffer (pop reftex-buffers-to-kill)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5833 (when (bufferp buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5834 (and (buffer-modified-p buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5835 (y-or-n-p (format "Save file %s? " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5836 (buffer-file-name buffer))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5837 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5838 (set-buffer buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5839 (save-buffer))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5840 (kill-buffer buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5841 (pop reftex-buffers-to-kill))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5842 |
18050 | 5843 (defun reftex-splice-symbols-into-list (list alist) |
5844 ;; Splice the association in ALIST of any symbols in LIST into the list. | |
5845 ;; Return new list. | |
5846 (let (rtn tmp) | |
5847 (while list | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5848 (while (and (not (null (car list))) ;; keep list elements nil |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5849 (symbolp (car list))) |
18050 | 5850 (setq tmp (car list)) |
5851 (cond | |
5852 ((assoc tmp alist) | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
5853 (setq list (append (nth 2 (assoc tmp alist)) (cdr list)))) |
18050 | 5854 (t |
5855 (error "Cannot treat symbol %s in reftex-label-alist" | |
5856 (symbol-name tmp))))) | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5857 (push (pop list) rtn)) |
18050 | 5858 (nreverse rtn))) |
5859 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5860 (defun reftex-uniquify-by-car (alist &optional keep-list) |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5861 ;; Return a list of all elements in ALIST, but each car only once. |
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5862 ;; Elements of KEEP-LIST are not removed even if duplicate. |
18050 | 5863 (let (new elm) |
5864 (while alist | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5865 (setq elm (pop alist)) |
18050 | 5866 (if (or (member (car elm) keep-list) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5867 (not (assoc (car elm) new))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5868 (push elm new))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5869 (nreverse new))) |
18050 | 5870 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5871 ;;; ========================================================================= |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5872 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5873 ;;; Fontification and Highlighting |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5874 |
18050 | 5875 (defun reftex-use-fonts () |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5876 ;; Return t if we can and want to use fonts. |
18050 | 5877 (and window-system |
5878 reftex-use-fonts | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5879 (featurep 'font-lock))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5880 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5881 (defun reftex-refontify () |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5882 ;; Return t if we need to refontify context |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5883 (and (reftex-use-fonts) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5884 (or (eq t reftex-refontify-context) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
5885 (and (eq 1 reftex-refontify-context) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5886 ;; Test of we use the font-lock version of x-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5887 (and (featurep 'x-symbol-tex) (not (boundp 'x-symbol-mode))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5888 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5889 (defun reftex-fontify-select-label-buffer (parent-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5890 ;; Fontify the `*RefTeX Select*' buffer. Buffer is temporarily renamed to |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5891 ;; start with none-SPC char, beacuse Font-Lock otherwise refuses operation. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5892 (run-hook-with-args 'reftex-pre-refontification-functions |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5893 parent-buffer 'reftex-ref) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5894 (let* ((oldname (buffer-name)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5895 (newname (concat "Fontify-me-" oldname))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5896 (unwind-protect |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5897 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5898 ;; Rename buffer temporarily to start w/o space (because of font-lock) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5899 (rename-buffer newname t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5900 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5901 ((fboundp 'font-lock-default-fontify-region) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5902 ;; Good: we have the indirection functions |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5903 (set (make-local-variable 'font-lock-fontify-region-function) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5904 'reftex-select-font-lock-fontify-region) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5905 (let ((major-mode 'latex-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5906 (font-lock-mode 1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5907 ((fboundp 'font-lock-set-defaults-1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5908 ;; Looks like the XEmacs font-lock stuff. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5909 ;; FIXME: this is still kind of a hack. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5910 (set (make-local-variable 'font-lock-keywords) nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5911 (let ((major-mode 'latex-mode) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5912 (font-lock-defaults-computed nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5913 (font-lock-set-defaults-1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5914 (reftex-select-font-lock-fontify-region (point-min) (point-max)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5915 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5916 ;; Oops? |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5917 (message "Sorry: cannot refontify RefTeX Select buffer.")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5918 (rename-buffer oldname)))) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5919 |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5920 (defun reftex-select-font-lock-fontify-region (beg end &optional loudly) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5921 ;; Fontify a region, but only lines starting with a dot. |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5922 (let ((func (if (fboundp 'font-lock-default-fontify-region) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5923 'font-lock-default-fontify-region |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5924 'font-lock-fontify-region)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5925 beg1 end1) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5926 (goto-char beg) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5927 (while (re-search-forward "^\\." end t) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5928 (setq beg1 (point) end1 (progn (skip-chars-forward "^\n") (point))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5929 (funcall func beg1 end1 nil) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5930 (goto-char end1)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5931 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5932 (defun reftex-select-font-lock-unfontify (&rest ignore) t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5933 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5934 (defun reftex-verified-face (&rest faces) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5935 ;; Return the first valid face in FACES, or nil if none is valid. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5936 ;; Also, when finding a nil element in FACES, return nil. This |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5937 ;; function is just a safety net to catch name changes of builtin |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5938 ;; fonts. Currently it is only used for reftex-label-face, which has |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5939 ;; as default font-lock-reference-face, which was recently renamed |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5940 ;; to font-lock-constant-face. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5941 (let (face) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5942 (catch 'exit |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5943 (while (setq face (pop faces)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5944 (if (featurep 'xemacs) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5945 (if (find-face face) (throw 'exit face)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5946 (if (facep face) (throw 'exit face))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5947 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5948 ;; Highlighting uses overlays. For XEmacs, we need the emulation. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5949 (if (featurep 'xemacs) (require 'overlay)) |
18050 | 5950 |
5951 ;; We keep a vector with several different overlays to do our highlighting. | |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
5952 (defvar reftex-highlight-overlays [nil nil]) |
18050 | 5953 |
5954 ;; Initialize the overlays | |
5955 (aset reftex-highlight-overlays 0 (make-overlay 1 1)) | |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
5956 (overlay-put (aref reftex-highlight-overlays 0) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
5957 'face 'highlight) |
18050 | 5958 (aset reftex-highlight-overlays 1 (make-overlay 1 1)) |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
5959 (overlay-put (aref reftex-highlight-overlays 1) |
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
5960 'face reftex-cursor-selected-face) |
18050 | 5961 |
5962 ;; Two functions for activating and deactivation highlight overlays | |
5963 (defun reftex-highlight (index begin end &optional buffer) | |
5964 "Highlight a region with overlay INDEX." | |
5965 (move-overlay (aref reftex-highlight-overlays index) | |
5966 begin end (or buffer (current-buffer)))) | |
5967 (defun reftex-unhighlight (index) | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
5968 "Detach overlay INDEX." |
18050 | 5969 (delete-overlay (aref reftex-highlight-overlays index))) |
5970 | |
5971 (defun reftex-highlight-shall-die () | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
5972 ;; Function used in pre-command-hook to remove highlights. |
18050 | 5973 (remove-hook 'pre-command-hook 'reftex-highlight-shall-die) |
5974 (reftex-unhighlight 0)) | |
5975 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5976 ;;; ========================================================================= |
18050 | 5977 ;;; |
5978 ;;; Functions to compile the tables, reset the mode etc. | |
5979 | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5980 ;; A list of all variables in the cache. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5981 ;; The cache is used to save the compiled versions of some variables. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5982 (defconst reftex-cache-variables |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5983 '(reftex-memory ;; This MUST ALWAYS be the first! |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5984 reftex-env-or-mac-alist reftex-everything-regexp |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5985 reftex-find-label-regexp-format reftex-find-label-regexp-format2 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5986 reftex-label-env-list reftex-label-mac-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5987 reftex-section-or-include-regexp reftex-section-levels-all |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5988 reftex-section-regexp reftex-type-query-help |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5989 reftex-type-query-prompt reftex-typekey-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5990 reftex-typekey-to-format-alist reftex-typekey-to-prefix-alist |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5991 reftex-words-to-typekey-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5992 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5993 (defun reftex-ensure-compiled-variables () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5994 ;; Recompile the label alist when necessary |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5995 (let* ((mem reftex-memory) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5996 (cache (get reftex-docstruct-symbol 'reftex-cache)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5997 (cmem (car cache)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5998 (alist reftex-label-alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
5999 (levels (get reftex-docstruct-symbol 'reftex-section-levels)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6000 (style (get reftex-docstruct-symbol 'reftex-label-alist-style)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6001 (default reftex-default-label-alist-entries)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6002 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6003 (reftex-tables-dirty (reftex-compile-variables)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6004 ((and (eq alist (nth 0 mem)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6005 (eq levels (nth 1 mem)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6006 (eq style (nth 2 mem)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6007 (eq default (nth 3 mem)))) ;; everything is OK |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6008 ((and (eq alist (nth 0 cmem)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6009 (eq levels (nth 1 cmem)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6010 (eq style (nth 2 cmem)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6011 (eq default (nth 2 cmem))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6012 ;; restore the cache |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6013 (message "Restoring cache") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6014 (mapcar (lambda (sym) (set sym (pop cache))) reftex-cache-variables)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6015 (t (reftex-compile-variables))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6016 |
18050 | 6017 (defun reftex-reset-mode () |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6018 "Reset RefTeX Mode. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6019 This will re-compile the configuration information and remove all |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6020 current scanning information and the parse file to enforce a rescan |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6021 on next use." |
18050 | 6022 (interactive) |
6023 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6024 ;; Reset the file search path variables |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6025 (loop for prop in '(status master-dir recursive-path rec-type) do |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6026 (put 'reftex-tex-path prop nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6027 (put 'reftex-bib-path prop nil)) |
18050 | 6028 |
18219
aaeaae005e98
Updated documentation at several points in the file.
Richard M. Stallman <rms@gnu.org>
parents:
18123
diff
changeset
|
6029 ;; Kill temporary buffers associated with RefTeX - just in case they |
aaeaae005e98
Updated documentation at several points in the file.
Richard M. Stallman <rms@gnu.org>
parents:
18123
diff
changeset
|
6030 ;; were not cleaned up properly |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6031 (save-excursion |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6032 (let ((buffer-list '("*RefTeX Help*" "*RefTeX Select*" |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6033 "*Duplicate Labels*" "*toc*" " *RefTeX-scratch*")) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6034 buf) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6035 (while (setq buf (pop buffer-list)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6036 (if (get-buffer buf) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6037 (kill-buffer buf)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6038 (reftex-erase-all-selection-buffers)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6039 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6040 ;; Make sure the current document will be rescanned soon. |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
6041 (reftex-reset-scanning-information) |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
6042 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6043 ;; Remove any parse info file |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6044 (reftex-access-parse-file 'kill) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6045 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6046 ;; Plug functions into AUCTeX if the user option says so. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6047 (and reftex-plug-into-AUCTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6048 (reftex-plug-into-AUCTeX)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6049 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6050 (reftex-compile-variables)) |
18050 | 6051 |
6052 (defun reftex-reset-scanning-information () | |
6053 "Reset the symbols containing information from buffer scanning. | |
6054 This enforces rescanning the buffer on next use." | |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
6055 (if (string= reftex-last-toc-master (reftex-TeX-master-file)) |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
6056 (reftex-erase-buffer "*toc*")) |
18050 | 6057 (let ((symlist reftex-multifile-symbols) |
6058 symbol) | |
6059 (while symlist | |
6060 (setq symbol (car symlist) | |
6061 symlist (cdr symlist)) | |
6062 (if (and (symbolp (symbol-value symbol)) | |
6063 (not (null (symbol-value symbol)))) | |
6064 (set (symbol-value symbol) nil))))) | |
6065 | |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6066 (defun reftex-erase-all-selection-buffers () |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6067 ;; Remove all selection buffers associated with current document. |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6068 (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6069 (lambda (type) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6070 (reftex-erase-buffer (reftex-make-selection-buffer-name type))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6071 reftex-typekey-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6072 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6073 (defun reftex-compile-variables () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6074 ;; Compile the information in reftex-label-alist & Co. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6075 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6076 (message "Compiling label environment definitions...") |
18050 | 6077 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6078 ;; Update AUCTeX style information |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6079 (when (and (featurep 'tex-site) (fboundp 'TeX-update-style)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6080 (condition-case nil (TeX-update-style) (error nil))) |
18050 | 6081 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6082 ;; Record that we have done this, and what we have used. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6083 (setq reftex-tables-dirty nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6084 (setq reftex-memory |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6085 (list reftex-label-alist |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6086 (get reftex-docstruct-symbol 'reftex-section-levels) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6087 (get reftex-docstruct-symbol 'reftex-label-alist-style) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6088 reftex-default-label-alist-entries)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6089 |
18050 | 6090 ;; Compile information in reftex-label-alist |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6091 (let ((all (reftex-uniquify-by-car |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6092 (reftex-splice-symbols-into-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6093 (append reftex-label-alist |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6094 (get reftex-docstruct-symbol 'reftex-label-alist-style) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6095 reftex-default-label-alist-entries) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6096 reftex-label-alist-builtin) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6097 '(nil))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6098 entry env-or-mac typekeychar typekey prefix context word |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6099 fmt reffmt labelfmt wordlist qh-list macros-with-labels |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6100 nargs nlabel opt-args cell sum i) |
18050 | 6101 |
6102 (setq reftex-words-to-typekey-alist nil | |
6103 reftex-typekey-list nil | |
6104 reftex-typekey-to-format-alist nil | |
6105 reftex-typekey-to-prefix-alist nil | |
6106 reftex-env-or-mac-alist nil | |
6107 reftex-label-env-list nil | |
6108 reftex-label-mac-list nil) | |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6109 (while all |
18050 | 6110 (catch 'next-entry |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6111 (setq entry (car all) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6112 env-or-mac (car entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6113 entry (cdr entry) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6114 all (cdr all)) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6115 (if (null env-or-mac) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6116 (setq env-or-mac "")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6117 (if (stringp (car entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6118 ;; This is before version 2.00 - convert entry to new format |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6119 ;; This is just to keep old users happy |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6120 (setq entry (cons (string-to-char (car entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6121 (cons (concat (car entry) ":") |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6122 (cdr entry))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6123 (setq typekeychar (nth 0 entry) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6124 typekey (if typekeychar (char-to-string typekeychar) nil) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6125 prefix (nth 1 entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6126 fmt (nth 2 entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6127 context (nth 3 entry) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6128 wordlist (nth 4 entry)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6129 (if (stringp wordlist) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6130 ;; This is before version 2.04 - convert to new format |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6131 (setq wordlist (nthcdr 4 entry))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6132 |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6133 (if (and (stringp fmt) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6134 (string-match "@" fmt)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6135 ;; Special syntax for specifying a label format |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6136 (setq fmt (split-string fmt "@+")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6137 (setq fmt (list "\\label{%s}" fmt))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6138 (setq labelfmt (car fmt) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6139 reffmt (nth 1 fmt)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6140 ;; Note a new typekey |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6141 (if typekey |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6142 (add-to-list 'reftex-typekey-list typekey)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6143 (if (and typekey prefix |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6144 (not (assoc typekey reftex-typekey-to-prefix-alist))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6145 (add-to-list 'reftex-typekey-to-prefix-alist |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6146 (cons typekey prefix))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6147 ;; Check if this is a macro or environment |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6148 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6149 ((string-match "\\`\\\\" env-or-mac) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6150 ;; It's a macro |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6151 (let ((result (reftex-parse-args env-or-mac))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6152 (setq env-or-mac (or (first result) env-or-mac) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6153 nargs (second result) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6154 nlabel (third result) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6155 opt-args (fourth result)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6156 (if nlabel (add-to-list 'macros-with-labels env-or-mac))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6157 (if typekey (add-to-list 'reftex-label-mac-list env-or-mac))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6158 (t |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6159 ;; It's an environment |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6160 (setq nargs nil nlabel nil opt-args nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6161 (cond ((string= env-or-mac "any")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6162 ((string= env-or-mac "")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6163 ((string= env-or-mac "section")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6164 (t |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6165 (add-to-list 'reftex-label-env-list env-or-mac))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6166 ;; Translate some special context cases |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6167 (when (assq context reftex-default-context-regexps) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6168 (setq context |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6169 (format |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6170 (cdr (assq context reftex-default-context-regexps)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6171 (regexp-quote env-or-mac)))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6172 ;; See if this is the first format for this typekey |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6173 (and reffmt |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6174 (not (assoc typekey reftex-typekey-to-format-alist)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6175 (push (cons typekey reffmt) reftex-typekey-to-format-alist)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6176 ;; See if this is the first definition for this env-or-mac |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6177 (and (not (string= env-or-mac "any")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6178 (not (string= env-or-mac "")) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6179 (not (assoc env-or-mac reftex-env-or-mac-alist)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6180 (push (list env-or-mac typekey context labelfmt |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6181 nargs nlabel opt-args) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6182 reftex-env-or-mac-alist)) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6183 ;; Are the magic words regular expressions? Quote normal words. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6184 (if (eq (car wordlist) 'regexp) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6185 (setq wordlist (cdr wordlist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6186 (setq wordlist (mapcar 'regexp-quote wordlist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6187 ;; Remember the first association of each word. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6188 (while (stringp (setq word (pop wordlist))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6189 (or (assoc word reftex-words-to-typekey-alist) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6190 (push (cons word typekey) reftex-words-to-typekey-alist))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6191 (cond |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6192 ((string= "" env-or-mac) nil) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6193 ((setq cell (assoc typekey qh-list)) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6194 (push env-or-mac (cdr cell))) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6195 (typekey |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6196 (push (list typekey env-or-mac) qh-list))))) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6197 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6198 (setq reftex-typekey-to-prefix-alist |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6199 (nreverse reftex-typekey-to-prefix-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6200 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6201 ;; Prepare the typekey query prompt and help string. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6202 (setq qh-list |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6203 (sort qh-list (function |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6204 (lambda (x1 x2) (string< (car x1) (car x2)))))) |
18050 | 6205 (setq reftex-type-query-prompt |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6206 (concat "Label type: [" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6207 (mapconcat (function (lambda(x) (format "%s" (car x)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6208 qh-list "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6209 "]")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6210 ;; In the help string, we need to wrap lines... |
18050 | 6211 (setq reftex-type-query-help |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6212 (concat |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6213 "SELECT A LABEL TYPE:\n--------------------\n" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6214 (mapconcat |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6215 (lambda(x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6216 (setq sum 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6217 (format " [%s] %s" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6218 (car x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6219 (mapconcat (lambda(env) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6220 (setq sum (+ sum (length env))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6221 (if (< sum 60) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6222 env |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6223 (setq sum 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6224 (concat "\n " env))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6225 (cdr x) " "))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6226 qh-list "\n"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6227 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6228 ;; Convert magic words to regular expressions. We make regular expressions |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6229 ;; which allow for some chars from the ref format to be in the buffer. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6230 ;; These characters will be seen and removed. |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6231 (setq reftex-words-to-typekey-alist |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6232 (mapcar |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6233 (lambda (x) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6234 (setq word (car x) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6235 typekey (cdr x) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6236 fmt (cdr (assoc typekey reftex-typekey-to-format-alist))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6237 (setq word (concat "\\W\\(" word "[ \t\n\r]*\\)\\(")) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6238 (setq i 0) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6239 (while (and (< i 10) ; maximum number of format chars allowed |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6240 (< i (length fmt)) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6241 (not (member (aref fmt i) '(?%)))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6242 (setq word (concat word "\\|" (regexp-quote |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6243 (substring fmt 0 (1+ i))))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6244 (incf i)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6245 (cons (concat word "\\)\\=") typekey)) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6246 (nreverse reftex-words-to-typekey-alist))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6247 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6248 ;; Make the full list of section levels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6249 (setq reftex-section-levels-all |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6250 (append (get reftex-docstruct-symbol 'reftex-section-levels) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6251 reftex-section-levels)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6252 |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6253 ;; Calculate the regular expressions |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6254 (let* ((wbol "\\(\\`\\|[\n\r]\\)[ \t]*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6255 (label-re "\\\\label{\\([^}]*\\)}") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6256 (include-re (concat wbol "\\\\\\(include\\|input\\)[{ \t]+\\([^} \t\n\r]+\\)")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6257 (section-re |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6258 (concat wbol "\\\\\\(" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6259 (mapconcat 'car reftex-section-levels-all "\\|") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6260 "\\)\\*?\\(\\[[^]]*\\]\\)?{")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6261 (appendix-re (concat wbol "\\(\\\\appendix\\)")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6262 (macro-re |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6263 (if macros-with-labels |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6264 (concat "\\(" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6265 (mapconcat 'regexp-quote macros-with-labels "\\|") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6266 "\\)[[{]") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6267 "")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6268 (find-label-re-format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6269 (concat "\\(" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6270 (mapconcat 'regexp-quote (append '("\\label") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6271 macros-with-labels) "\\|") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6272 "\\)\\([[{][^]}]*[]}]\\)*[[{]\\(%s\\)[]}]"))) |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6273 (setq reftex-section-regexp section-re |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6274 reftex-section-or-include-regexp |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6275 (concat section-re "\\|" include-re) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6276 reftex-everything-regexp |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6277 (concat label-re "\\|" section-re "\\|" include-re |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6278 "\\|" appendix-re |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6279 (if macros-with-labels "\\|" "") macro-re) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6280 reftex-find-label-regexp-format find-label-re-format |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6281 reftex-find-label-regexp-format2 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6282 "\\([]} \t\n\r]\\)\\([[{]\\)\\(%s\\)[]}]") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6283 (message "Compiling label environment definitions...done"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6284 (put reftex-docstruct-symbol 'reftex-cache |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6285 (mapcar 'symbol-value reftex-cache-variables))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6286 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6287 ;;; ========================================================================= |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6288 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6289 ;;; Operations on entire Multifile documents |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6290 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6291 (defun reftex-create-tags-file () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6292 "Create TAGS file by running `etags' on the current document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6293 The TAGS file is also immediately visited with `visit-tags-table'." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6294 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6295 (reftex-access-scan-info current-prefix-arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6296 (let* ((master (reftex-TeX-master-file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6297 (files (reftex-all-document-files)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6298 (cmd (format "etags %s" (mapconcat 'identity files " ")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6299 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6300 (set-buffer (reftex-get-buffer-visiting master)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6301 (message "Running etags to create TAGS file...") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6302 (shell-command cmd) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6303 (visit-tags-table "TAGS")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6304 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6305 ;; History of grep commands. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6306 (defvar reftex-grep-history nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6307 (defvar reftex-grep-command "grep -n " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6308 "Last grep command used in \\[reftex-grep-document]; default for next grep.") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6309 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6310 (defun reftex-grep-document (grep-cmd) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6311 "Run grep query through all files related to this document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6312 With prefix arg, force to rescan document. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
6313 No active TAGS table is required." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6314 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6315 (interactive |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6316 (list (read-from-minibuffer "Run grep on document (like this): " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6317 reftex-grep-command nil nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6318 'reftex-grep-history))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6319 (reftex-access-scan-info current-prefix-arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6320 (let* ((files (reftex-all-document-files t)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6321 (cmd (format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6322 "%s %s" grep-cmd |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6323 (mapconcat 'identity files " ")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6324 (grep cmd))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6325 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6326 (defun reftex-search-document (&optional regexp) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6327 "Regexp search through all files of the current TeX document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6328 Starts always in the master file. Stops when a match is found. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6329 To continue searching for next match, use command \\[tags-loop-continue]. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
6330 No active TAGS table is required." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6331 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6332 (let ((default (reftex-this-word))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6333 (unless regexp |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6334 (setq regexp (read-string (format "Search regexp in document [%s]: " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6335 default)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6336 (if (string= regexp "") (setq regexp (regexp-quote default))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6337 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6338 (reftex-access-scan-info current-prefix-arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6339 (tags-search regexp (list 'reftex-all-document-files)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6340 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6341 (defun reftex-query-replace-document (&optional from to delimited) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6342 "Run a query-replace-regexp of FROM with TO over the entire TeX document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6343 Third arg DELIMITED (prefix arg) means replace only word-delimited matches. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6344 If you exit (\\[keyboard-quit] or ESC), you can resume the query replace |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6345 with the command \\[tags-loop-continue]. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
6346 No active TAGS table is required." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6347 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6348 (let ((default (reftex-this-word))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6349 (unless from |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6350 (setq from (read-string (format "Replace regexp in document [%s]: " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6351 default))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6352 (if (string= from "") (setq from (regexp-quote default)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6353 (unless to |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6354 (setq to (read-string (format "Replace regexp %s with: " from)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6355 (reftex-access-scan-info current-prefix-arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6356 (tags-query-replace from to (or delimited current-prefix-arg) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6357 (list 'reftex-all-document-files)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6358 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6359 (defun reftex-find-duplicate-labels () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6360 "Produce a list of all duplicate labels in the document." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6361 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6362 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6363 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6364 ;; Rescan the document to make sure |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6365 (reftex-access-scan-info t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6366 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6367 (let ((master (reftex-TeX-master-file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6368 (cnt 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6369 (dlist |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6370 (mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6371 (function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6372 (lambda (x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6373 (let (x1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6374 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6375 ((memq (car x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6376 '(toc bof eof bib thebib label-numbers xr xr-doc |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6377 master-dir file-error bibview-cache appendix |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6378 is-multi)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6379 nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6380 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6381 (setq x1 (reftex-all-assoc-string |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6382 (car x) (symbol-value reftex-docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6383 (if (< 1 (length x1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6384 (append (list (car x)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6385 (mapcar (function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6386 (lambda(x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6387 (abbreviate-file-name (nth 3 x)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6388 x1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6389 (list nil))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6390 (reftex-uniquify-by-car (symbol-value reftex-docstruct-symbol))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6391 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6392 (setq dlist (reftex-uniquify-by-car dlist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6393 (if (null dlist) (error "No duplicate labels in document")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6394 (switch-to-buffer-other-window "*Duplicate Labels*") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6395 (make-local-variable 'TeX-master) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6396 (setq TeX-master master) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6397 (erase-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6398 (insert " MULTIPLE LABELS IN CURRENT DOCUMENT:\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6399 (insert |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6400 " Move point to label and type `r' to run a query-replace on the label\n" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6401 " and its references. Type `q' to exit this buffer.\n\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6402 (insert " LABEL FILE\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6403 (insert " -------------------------------------------------------------\n") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6404 (use-local-map (make-sparse-keymap)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6405 (local-set-key [?q] (function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6406 (lambda () "Kill this buffer." (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6407 (kill-buffer (current-buffer)) (delete-window)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6408 (local-set-key [?r] 'reftex-change-label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6409 (while dlist |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6410 (when (and (car (car dlist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6411 (cdr (car dlist))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6412 (incf cnt) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6413 (insert (mapconcat 'identity (car dlist) "\n ") "\n")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6414 (pop dlist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6415 (goto-char (point-min)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6416 (when (= cnt 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6417 (kill-buffer (current-buffer)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6418 (delete-window) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6419 (message "Document does not contain duplicate labels.")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6420 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6421 (defun reftex-change-label (&optional from to) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6422 "Query replace FROM with TO in all \\label and \\ref commands. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6423 Works on the entire multifile document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6424 If you exit (\\[keyboard-quit] or ESC), you can resume the query replace |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6425 with the command \\[tags-loop-continue]. |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
6426 No active TAGS table is required." |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6427 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6428 (let ((default (reftex-this-word "-a-zA-Z0-9_*.:"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6429 (unless from |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6430 (setq from (read-string (format "Replace label globally [%s]: " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6431 default)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6432 (if (string= from "") (setq from default)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6433 (unless to |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6434 (setq to (read-string (format "Replace label %s with: " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6435 from)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6436 (reftex-query-replace-document |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6437 (concat "\\\\\\(label\\|[a-z]*ref\\){" (regexp-quote from) "}") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6438 (format "\\\\\\1{%s}" to)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6439 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6440 (defun reftex-renumber-simple-labels () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6441 "Renumber all simple labels in the document to make them sequentially. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6442 Simple labels are the ones created by RefTeX, consisting only of the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6443 prefix and a number. After the command completes, all these labels will |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6444 have sequential numbers throughout the document. Any references to |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6445 the labels will be changed as well. For this, RefTeX looks at the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6446 arguments of any macros which either start or end in the string `ref'. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6447 This command should be used with care, in particular in multifile |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6448 documents. You should not use it if another document refers to this |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6449 one with the `xr' package." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6450 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6451 ;; Resan the entire document |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6452 (reftex-access-scan-info 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6453 ;; Get some insurance |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6454 (if (and (reftex-is-multi) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6455 (not (yes-or-no-p "Replacing all simple labels in multiple files is risky. Continue? "))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6456 (error "Abort")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6457 ;; Make the translation list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6458 (let* ((re-core (concat "\\(" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6459 (mapconcat 'cdr reftex-typekey-to-prefix-alist "\\|") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6460 "\\)")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6461 (label-re (concat "\\`" re-core "\\([0-9]+\\)\\'")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6462 (search-re (concat "{\\(" re-core "\\([0-9]+\\)\\)}")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6463 (error-fmt "Undefined label or reference %s. Ignore and continue? ") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6464 (label-numbers-alist (mapcar (lambda (x) (cons (cdr x) 0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6465 reftex-typekey-to-prefix-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6466 (files (reftex-all-document-files)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6467 (list (symbol-value reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6468 translate-alist n entry label new-label nr-cell changed-sequence) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6469 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6470 (while (setq entry (pop list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6471 (when (and (stringp (car entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6472 (string-match label-re (car entry))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6473 (setq label (car entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6474 nr-cell (assoc (match-string 1 (car entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6475 label-numbers-alist)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6476 (if (assoc label translate-alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6477 (error "Duplicate label %s" label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6478 (setq new-label (concat (match-string 1 (car entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6479 (incf (cdr nr-cell)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6480 (push (cons label new-label) translate-alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6481 (or (string= label new-label) (setq changed-sequence t)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6482 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6483 (unless changed-sequence |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6484 (error "Simple labels are already in correct sequence")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6485 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6486 ;; Save all document buffers before this operation |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6487 (reftex-save-all-document-buffers) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6488 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6489 ;; First test to check for erros |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6490 (setq n (reftex-translate |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6491 files search-re translate-alist error-fmt 'test)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6492 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6493 ;; Now the real thing. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6494 (if (yes-or-no-p |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6495 (format "Replace %d items at %d places in %d files? " |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6496 (length translate-alist) n (length files))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6497 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6498 (let ((inhibit-quit t)) ;; Do not disturb... |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6499 (reftex-translate |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6500 files search-re translate-alist error-fmt nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6501 (setq quit-flag nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6502 (if (and (reftex-is-multi) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6503 (yes-or-no-p "Save entire document? ")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6504 (reftex-save-all-document-buffers)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6505 ;; Rescan again... |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6506 (reftex-access-scan-info 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6507 (message "Done replacing simple labels.")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6508 (message "No replacements done")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6509 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6510 (defun reftex-translate (files search-re translate-alist error-fmt test) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6511 ;; In FILES, look for SEARCH-RE and replace match 1 of it with |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6512 ;; its association in TRANSLATE-ALSIT. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6513 ;; If we do not find an association and TEST is non-nil, query |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6514 ;; to ignore the problematic string. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6515 ;; If TEST is nil, it is ignored without query. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6516 ;; Return the number of replacements. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6517 (let ((n 0) file label match-data buf macro pos cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6518 (while (setq file (pop files)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6519 (setq buf (reftex-get-file-buffer-force file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6520 (unless buf |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6521 (error "No such file %s" file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6522 (set-buffer buf) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6523 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6524 (save-restriction |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6525 (widen) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6526 (goto-char (point-min)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6527 (while (re-search-forward search-re nil t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6528 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6529 (backward-char) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6530 (setq label (reftex-match-string 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6531 cell (assoc label translate-alist) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6532 match-data (match-data) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6533 macro (reftex-what-macro 1) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6534 pos (cdr macro)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6535 (goto-char (or pos (point))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6536 (when (and macro |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6537 (or (looking-at "\\\\ref") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6538 (looking-at "\\\\[a-zA-Z]*ref[^a-zA-Z]") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6539 (looking-at "\\\\ref[a-zA-Z]*[^a-zA-Z]") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6540 (looking-at (format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6541 reftex-find-label-regexp-format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6542 (regexp-quote label))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6543 ;; OK, we should replace it. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6544 (set-match-data match-data) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6545 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6546 ((and test (not cell)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6547 ;; We've got a problem |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6548 (unwind-protect |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6549 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6550 (reftex-highlight 1 (match-beginning 0) (match-end 0)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6551 (ding) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6552 (or (y-or-n-p (format error-fmt label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6553 (error "Abort"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6554 (reftex-unhighlight 1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6555 ((and test cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6556 (incf n)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6557 ((and (not test) cell) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6558 ;; Replace |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6559 (goto-char (match-beginning 1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6560 (delete-region (match-beginning 1) (match-end 1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6561 (insert (cdr cell))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6562 (t nil)))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6563 n)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6564 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6565 (defun reftex-save-all-document-buffers () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6566 "Save all documents associated with the current document. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6567 The function is useful after a global action like replacing or renumbering |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6568 labels." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6569 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6570 (let ((files (reftex-all-document-files)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6571 file buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6572 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6573 (while (setq file (pop files)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6574 (setq buffer (reftex-get-buffer-visiting file)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6575 (when buffer |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6576 (set-buffer buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6577 (save-buffer)))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6578 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6579 ;;; ========================================================================= |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6580 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6581 ;;; AUCTeX Interface |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6582 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6583 (defun reftex-plug-flag (which) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6584 ;; Tell if a certain flag is set in reftex-plug-into-AUCTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6585 (or (eq t reftex-plug-into-AUCTeX) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6586 (and (listp reftex-plug-into-AUCTeX) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6587 (nth which reftex-plug-into-AUCTeX)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6588 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6589 (defun reftex-arg-label (optional &optional prompt definition) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6590 "Use `reftex-label', `reftex-reference' or AUCTeX's code to insert label arg. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6591 What is being used depends upon `reftex-plug-into-AUCTeX'." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6592 (let (label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6593 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6594 ((and definition (reftex-plug-flag 1)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6595 ;; Create a new label, with a temporary brace for `reftex-what-macro' |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6596 (unwind-protect |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6597 (progn (insert "{") (setq label (or (reftex-label nil t) ""))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6598 (delete-backward-char 1))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6599 ((and (not definition) (reftex-plug-flag 2)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6600 ;; Reference a label with RefTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6601 (setq label (reftex-reference nil t))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6602 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6603 ;; AUCTeX's default mechanism |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6604 (setq label (completing-read (TeX-argument-prompt optional prompt "Key") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6605 (LaTeX-label-list))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6606 (if (and definition (not (string-equal "" label))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6607 (LaTeX-add-labels label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6608 (TeX-argument-insert label optional optional))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6609 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6610 (defun reftex-arg-cite (optional &optional prompt definition) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6611 "Use `reftex-citation' or AUCTeX's code to insert a cite-key macro argument. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6612 What is being used depends upon `reftex-plug-into-AUCTeX'." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6613 (let (items) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6614 (cond |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6615 ((and (not definition) (reftex-plug-flag 3)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6616 (setq items (list (or (reftex-citation t) "")))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6617 (t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6618 (setq prompt (concat (if optional "(Optional) " "") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6619 (if prompt prompt "Add key") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6620 ": (default none) ")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6621 (setq items (multi-prompt "," t prompt (LaTeX-bibitem-list))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6622 (apply 'LaTeX-add-bibitems items) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6623 (TeX-argument-insert (mapconcat 'identity items ",") optional optional))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6624 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6625 (defun reftex-plug-into-AUCTeX () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6626 ;; Replace AUCTeX functions with RefTeX functions. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6627 ;; Which functions are replaced is controlled by the variable |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6628 ;; `reftex-plug-into-AUCTeX'. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6629 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6630 (if (reftex-plug-flag 0) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6631 (setq LaTeX-label-function 'reftex-label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6632 (setq LaTeX-label-function nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6633 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6634 (if (and (or (reftex-plug-flag 1) (reftex-plug-flag 2)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6635 (fboundp 'TeX-arg-label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6636 (fset 'TeX-arg-label 'reftex-arg-label)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6637 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6638 (if (and (reftex-plug-flag 3) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6639 (fboundp 'TeX-arg-cite)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6640 (fset 'TeX-arg-cite 'reftex-arg-cite))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6641 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6642 (defun reftex-toggle-plug-into-AUCTeX () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6643 "Toggle Interface between AUCTeX and RefTeX on and off." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6644 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6645 (unless (and (featurep 'tex-site) (featurep 'latex)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6646 (error "AUCTeX's LaTeX mode does not seem to be loaded.")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6647 (setq reftex-plug-into-AUCTeX (not reftex-plug-into-AUCTeX)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6648 (reftex-plug-into-AUCTeX) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6649 (if reftex-plug-into-AUCTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6650 (message "RefTeX has been plugged into AUCTeX.") |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6651 (message "RefTeX no longer interacts with AUCTeX."))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6652 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6653 (defun reftex-add-label-environments (entry-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6654 "Add label environment descriptions to `reftex-label-alist-style'. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6655 The format of ENTRY-LIST is exactly like `reftex-label-alist'. See there |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6656 for details. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6657 This function makes it possible to support RefTeX from AUCTeX style files. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6658 The entries in ENTRY-LIST will be processed after the user settings in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6659 `reftex-label-alist', and before the defaults (specified in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6660 `reftex-default-label-alist-entries'). Any changes made to |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6661 `reftex-label-alist-style' will raise a flag to the effect that |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6662 the label information is recompiled on next use." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6663 (unless reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6664 (reftex-tie-multifile-symbols)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6665 (when (and reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6666 (symbolp reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6667 (let ((list (get reftex-docstruct-symbol 'reftex-label-alist-style)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6668 entry changed) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6669 (while entry-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6670 (setq entry (pop entry-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6671 (unless (member entry list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6672 (setq reftex-tables-dirty t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6673 changed t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6674 (push entry list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6675 (when changed |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6676 (put reftex-docstruct-symbol 'reftex-label-alist-style list))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6677 (defalias 'reftex-add-to-label-alist 'reftex-add-label-environments) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6678 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6679 (defun reftex-add-section-levels (entry-list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6680 "Add entries to the value of `reftex-section-levels'. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6681 The added values are kept local to the current document. The format |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6682 of ENTRY-LIST is a list of cons cells (\"MACRONAME\" . LEVEL). See |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6683 `reftex-section-levels' for an example." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6684 (unless reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6685 (reftex-tie-multifile-symbols)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6686 (when (and reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6687 (symbolp reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6688 (let ((list (get reftex-docstruct-symbol 'reftex-section-levels)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6689 entry changed) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6690 (while entry-list |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6691 (setq entry (pop entry-list)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6692 (unless (member entry list) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6693 (setq reftex-tables-dirty t |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6694 changed t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6695 (push entry list))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6696 (when changed |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6697 (put reftex-docstruct-symbol 'reftex-section-levels list))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6698 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6699 (defun reftex-set-cite-format (value) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6700 "Set the document-local value of `reftex-cite-format'. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6701 When such a value exists, it overwrites the setting given with |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6702 `reftex-cite-format'. See the documentation of `reftex-cite-format' |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6703 for possible values. This function should be used from AUCTeX style files." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6704 (unless reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6705 (reftex-tie-multifile-symbols)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6706 (when (and reftex-docstruct-symbol |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6707 (symbolp reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6708 (put reftex-docstruct-symbol 'reftex-cite-format value))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6709 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6710 (defun reftex-notice-new-section () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6711 "Hook to handshake with RefTeX after a new section has been inserted." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6712 ;; Add a new section to the docstruct list and renumber the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6713 ;; following sections. This hook has to be called immediately after |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6714 ;; the new section was inserted into the buffer, and before the |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6715 ;; section label is created. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6716 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6717 (condition-case nil |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6718 (catch 'exit |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6719 (unless reftex-mode (throw 'exit nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6720 (reftex-access-scan-info) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6721 (let* ((docstruct (symbol-value reftex-docstruct-symbol)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6722 here-am-I appendix tail toc-entry star level |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6723 section-number context) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6724 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6725 (save-excursion |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6726 (when (re-search-backward reftex-section-regexp nil t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6727 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6728 ;; Find where we are |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6729 (setq here-am-I (reftex-where-am-I)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6730 (unless (cdr here-am-I) (throw 'exit nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6731 (setq reftex-active-toc (reftex-last-assoc-before-elt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6732 'toc (car here-am-I) docstruct) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6733 appendix (reftex-last-assoc-before-elt |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6734 'appendix (car here-am-I) docstruct)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6735 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6736 ;; Initialize section numbers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6737 (if (eq (car (car here-am-I)) 'appendix) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6738 (reftex-init-section-numbers nil t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6739 (reftex-init-section-numbers reftex-active-toc appendix)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6740 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6741 ;; Match the section command |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6742 (when (and (re-search-forward reftex-everything-regexp nil t) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6743 (match-end 3)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6744 (setq star (= ?* (char-after (match-end 3))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6745 toc-entry (reftex-section-info (buffer-file-name)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6746 level (nth 5 toc-entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6747 tail (memq (car here-am-I) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6748 (symbol-value reftex-docstruct-symbol))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6749 (if tail |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6750 ;; Insert the section info |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6751 (push toc-entry (cdr tail)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6752 (throw 'exit nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6753 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6754 ;; We are done unless we use section numbers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6755 (unless (nth 1 reftex-label-menu-flags) (throw 'exit nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6756 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6757 ;; Update the remaining toc items |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6758 (setq tail (cdr tail)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6759 (while (and (setq tail (memq (assq 'toc (cdr tail)) tail)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6760 (setq toc-entry (car tail)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6761 (>= (nth 5 toc-entry) level)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6762 (setq section-number |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6763 (reftex-section-number (nth 5 toc-entry) star) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6764 context (nth 2 toc-entry)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6765 (when (string-match "\\`\\([ \t]*\\)\\([.0-9A-Z]+\\)\\(.*\\)" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6766 context) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6767 (when (and (not appendix) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6768 (>= (string-to-char (match-string 2)) ?A)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6769 ;; Just entered the appendex. Get out. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6770 (throw 'exit nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6771 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6772 ;; Change the section number. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6773 (setf (nth 2 toc-entry) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6774 (concat (match-string 1 context) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6775 section-number |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6776 (match-string 3 context)))))))))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6777 (error nil)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6778 ) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6779 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6780 ;;; ========================================================================= |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6781 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6782 ;;; Keybindings |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6783 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6784 ;; The default bindings in the mode map. |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6785 (loop for x in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6786 '(("\C-c=" . reftex-toc) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6787 ("\C-c(" . reftex-label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6788 ("\C-c)" . reftex-reference) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6789 ("\C-c[" . reftex-citation) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6790 ("\C-c&" . reftex-view-crossref)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6791 do (define-key reftex-mode-map (car x) (cdr x))) |
18050 | 6792 |
21130
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6793 ;; Bind `reftex-mouse-view-crossref' only when the key is still free |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6794 (if (featurep 'xemacs) |
21130
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6795 (unless (key-binding [(shift button2)]) |
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6796 (define-key reftex-mode-map [(shift button2)] |
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6797 'reftex-mouse-view-crossref)) |
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6798 (unless (key-binding [(shift mouse-2)]) |
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6799 (define-key reftex-mode-map [(shift mouse-2)] |
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6800 'reftex-mouse-view-crossref))) |
60e882bbb28b
Added keybinding for `reftex-mouse-view-crossref' to S-mouse-2.
Carsten Dominik <dominik@science.uva.nl>
parents:
21124
diff
changeset
|
6801 |
18050 | 6802 ;; If the user requests so, she can have a few more bindings: |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6803 (when reftex-extra-bindings |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6804 (loop for x in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6805 '(("\C-ct" . reftex-toc) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6806 ("\C-cl" . reftex-label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6807 ("\C-cr" . reftex-reference) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6808 ("\C-cc" . reftex-citation) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6809 ("\C-cv" . reftex-view-crossref) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6810 ("\C-cg" . reftex-grep-document) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6811 ("\C-cs" . reftex-search-document)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6812 do (define-key reftex-mode-map (car x) (cdr x)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6813 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6814 ;; Common bindings in reftex-select-label-map and reftex-select-bib-map |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6815 (let ((map (make-sparse-keymap))) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6816 (substitute-key-definition |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6817 'next-line 'reftex-select-next map global-map) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6818 (substitute-key-definition |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6819 'previous-line 'reftex-select-previous map global-map) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6820 (substitute-key-definition |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
6821 'keyboard-quit 'reftex-select-keyboard-quit map global-map) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6822 (substitute-key-definition |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6823 'newline 'reftex-select-accept map global-map) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6824 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6825 (loop for x in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6826 '((" " . reftex-select-callback) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6827 ("n" . reftex-select-next) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6828 ([(down)] . reftex-select-next) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6829 ("p" . reftex-select-previous) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6830 ([(up)] . reftex-select-previous) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6831 ("f" . reftex-select-toggle-follow) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6832 ("\C-m" . reftex-select-accept) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6833 ([(return)] . reftex-select-accept) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6834 ("q" . reftex-select-quit) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6835 ("." . reftex-select-show-insertion-point) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6836 ("?" . reftex-select-help)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6837 do (define-key map (car x) (cdr x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6838 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6839 ;; The mouse-2 binding |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6840 (if (featurep 'xemacs) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6841 (define-key map [(button2)] 'reftex-select-mouse-accept) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6842 (define-key map [(mouse-2)] 'reftex-select-mouse-accept)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6843 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6844 ;; Digit arguments |
20979
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
6845 (loop for key across "0123456789" do |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
6846 (define-key map (vector (list key)) 'digit-argument)) |
38e7bcbb3595
(reftex-toc-mode, reftex-select-label-mode):
Karl Heuer <kwzh@gnu.org>
parents:
20953
diff
changeset
|
6847 (define-key map "-" 'negative-argument) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6848 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6849 ;; Make two maps |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6850 (setq reftex-select-label-map map) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6851 (setq reftex-select-bib-map (copy-keymap map))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6852 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6853 ;; Specific bindings in reftex-select-label-map |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6854 (loop for key across "cgilrRstx#%" do |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6855 (define-key reftex-select-label-map (vector (list key)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6856 (list 'lambda '() |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6857 "Press `?' during selection to find out about this key." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6858 '(interactive) (list 'throw '(quote myexit) key)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6859 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6860 (loop for x in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6861 '(("b" . reftex-select-jump-to-previous) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6862 ("v" . reftex-select-toggle-varioref) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6863 ([(tab)] . reftex-select-read-label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6864 ("\C-i" . reftex-select-read-label) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6865 ("\C-c\C-n" . reftex-select-next-heading) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6866 ("\C-c\C-p" . reftex-select-previous-heading)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6867 do |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6868 (define-key reftex-select-label-map (car x) (cdr x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6869 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6870 ;; Specific bindings in reftex-select-bib-map |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6871 (loop for key across "grRaA" do |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6872 (define-key reftex-select-bib-map (vector (list key)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6873 (list 'lambda '() |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6874 "Press `?' during selection to find out about this key." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6875 '(interactive) (list 'throw '(quote myexit) key)))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6876 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6877 (loop for x in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6878 '(("\C-i" . reftex-select-read-cite) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6879 ([(tab)] . reftex-select-read-cite)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6880 do (define-key reftex-select-bib-map (car x) (cdr x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6881 |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6882 ;; Table of Contents map |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6883 (if (featurep 'xemacs) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6884 (define-key reftex-toc-map [(button2)] 'reftex-toc-mouse-goto-line-and-hide) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6885 (define-key reftex-toc-map [(mouse-2)] 'reftex-toc-mouse-goto-line-and-hide)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6886 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6887 (loop for x in |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6888 '(("n" . next-line) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6889 ("p" . previous-line) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6890 ("?" . reftex-toc-show-help) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6891 (" " . reftex-toc-view-line) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6892 ("\C-m" . reftex-toc-goto-line-and-hide) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6893 ("\C-i" . reftex-toc-goto-line) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6894 ("r" . reftex-toc-rescan) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6895 ("R" . reftex-toc-Rescan) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6896 ("g" . revert-buffer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6897 ("q" . reftex-toc-quit) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6898 ("Q" . reftex-toc-quit-and-kill) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6899 ("f" . reftex-toc-toggle-follow) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6900 ("x" . reftex-toc-external) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6901 ("." . reftex-toc-show-insertion-point)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6902 do (define-key reftex-toc-map (car x) (cdr x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6903 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6904 (loop for key across "0123456789" do |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6905 (define-key reftex-toc-map (vector (list key)) 'digit-argument)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6906 (define-key reftex-toc-map "-" 'negative-argument) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6907 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6908 ;;; ========================================================================= |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6909 ;;; |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6910 ;;; Menu |
18050 | 6911 |
6912 ;; Define a menu for the menu bar if Emacs is running under X | |
6913 | |
6914 (require 'easymenu) | |
6915 | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6916 (easy-menu-define |
18050 | 6917 reftex-mode-menu reftex-mode-map |
6918 "Menu used in RefTeX mode" | |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6919 `("Ref" |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
6920 ["Table of Contents" reftex-toc t] |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6921 "---" |
19660
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
6922 ["\\label" reftex-label t] |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
6923 ["\\ref" reftex-reference t] |
fa3d4e7a76d9
(reftex-customize): Added call to customize browse.
Richard M. Stallman <rms@gnu.org>
parents:
18321
diff
changeset
|
6924 ["\\cite" reftex-citation t] |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6925 ["View Crossref" reftex-view-crossref t] |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6926 "---" |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6927 ("Parse Document" |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6928 ["Only this File" reftex-parse-one t] |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6929 ["Entire Document" reftex-parse-all (reftex-is-multi)] |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6930 ["Save to File" (reftex-access-parse-file 'write) |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6931 (> (length (symbol-value reftex-docstruct-symbol)) 0)] |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6932 ["Restore from File" (reftex-access-parse-file 'restore) t] |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6933 "---" |
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6934 ["Reset RefTeX Mode" reftex-reset-mode t]) |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6935 ("Global Actions" |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6936 ["Search Whole Document" reftex-search-document t] |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6937 ["Replace in Document" reftex-query-replace-document t] |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6938 ["Grep on Document" reftex-grep-document t] |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6939 "---" |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6940 ["Create TAGS File" reftex-create-tags-file t] |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6941 "---" |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
6942 ["Find Duplicate Labels" reftex-find-duplicate-labels t] |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6943 ["Change Label and Refs" reftex-change-label t] |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6944 ["Renumber Simple Labels" reftex-renumber-simple-labels t] |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6945 "---" |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6946 ["Save document" reftex-save-all-document-buffers t]) |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
6947 "---" |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6948 ("Options" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6949 ("Table of Contents" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6950 ["Follow Mode" (setq reftex-toc-follow-mode (not reftex-toc-follow-mode)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6951 :style toggle :selected reftex-toc-follow-mode] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6952 ["Follow Mode may visit files" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6953 (setq reftex-revisit-to-follow (not reftex-revisit-to-follow)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6954 :style toggle :selected reftex-revisit-to-follow]) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6955 ("References" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6956 ["Guess Label Type" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6957 (setq reftex-guess-label-type (not reftex-guess-label-type)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6958 :style toggle :selected reftex-guess-label-type] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6959 ["Use `\\vref' by Default" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6960 (setq reftex-vref-is-default (not reftex-vref-is-default)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6961 :style toggle :selected reftex-vref-is-default] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6962 "---" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6963 "Selection Buffers" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6964 ["Use Multiple Buffers" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6965 (setq reftex-use-multiple-selection-buffers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6966 (not reftex-use-multiple-selection-buffers)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6967 :style toggle :selected reftex-use-multiple-selection-buffers] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6968 ["Auto Update Buffers" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6969 (setq reftex-auto-update-selection-buffers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6970 (not reftex-auto-update-selection-buffers)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6971 :style toggle :selected reftex-auto-update-selection-buffers]) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6972 ("Citations" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6973 "Citation Style" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6974 ,@(mapcar |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6975 (function |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6976 (lambda (x) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6977 (vector |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6978 (capitalize (symbol-name (car x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6979 (list 'reftex-set-cite-format (list 'quote (car x))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6980 ':style 'radio ':selected |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6981 (list 'eq (list 'reftex-get-cite-format) (list 'quote (car x)))))) |
20177
6ebc3e300106
The menu now used toggle and radio for some items.
Karl Heuer <kwzh@gnu.org>
parents:
20102
diff
changeset
|
6982 reftex-cite-format-builtin) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6983 "---" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6984 "Bibinfo in Comments" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6985 ["Attach Comments" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6986 (setq reftex-comment-citations (not reftex-comment-citations)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6987 :style toggle :selected reftex-comment-citations] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6988 "---" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6989 "Sort Database Matches" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6990 ["by Author" (setq reftex-sort-bibtex-matches 'author) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6991 :style radio :selected (eq reftex-sort-bibtex-matches 'author)] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6992 ["by Year" (setq reftex-sort-bibtex-matches 'year) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6993 :style radio :selected (eq reftex-sort-bibtex-matches 'year)] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6994 ["by Year, reversed" (setq reftex-sort-bibtex-matches 'reverse-year) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6995 :style radio :selected (eq reftex-sort-bibtex-matches 'reverse-year)] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6996 ["Not" (setq reftex-sort-bibtex-matches nil) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6997 :style radio :selected (eq reftex-sort-bibtex-matches nil)]) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
6998 ("Crossref Viewing" |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
6999 ["Automatic Info" reftex-toggle-auto-view-crossref |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7000 :style toggle :selected reftex-auto-view-crossref-timer] |
23200
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
7001 ["...in Echo Area" (setq reftex-auto-view-crossref t) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
7002 :style radio :selected (eq reftex-auto-view-crossref t)] |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
7003 ["...in Other Window" (setq reftex-auto-view-crossref 'window) |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
7004 :style radio :selected (eq reftex-auto-view-crossref 'window)] |
4750ba95a176
(reftex-view-crossref): Split up into several functions. No longer moves
Carsten Dominik <dominik@science.uva.nl>
parents:
22991
diff
changeset
|
7005 "---" |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7006 ["Crossref Echo may visit files" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7007 (setq reftex-revisit-to-echo (not reftex-revisit-to-echo)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7008 :style toggle :selected reftex-revisit-to-echo] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7009 ["Cache Echo strings for \cite" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7010 (setq reftex-cache-cite-echo (not reftex-cache-cite-echo)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7011 :style toggle :selected reftex-cache-cite-echo]) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7012 ("Parser" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7013 "Document Scans" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7014 ["Partial Scans" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7015 (setq reftex-enable-partial-scans (not reftex-enable-partial-scans)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7016 :style toggle :selected reftex-enable-partial-scans] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7017 ["Auto-Save Parse Info" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7018 (setq reftex-save-parse-info (not reftex-save-parse-info)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7019 :style toggle :selected reftex-save-parse-info] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7020 ["Automatic Rescans" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7021 (setq reftex-allow-automatic-rescan (not reftex-allow-automatic-rescan)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7022 :style toggle :selected reftex-allow-automatic-rescan] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7023 "---" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7024 "Temporary Buffers" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7025 ["Keep Buffers" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7026 (setq reftex-keep-temporary-buffers (not reftex-keep-temporary-buffers)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7027 :style toggle :selected reftex-keep-temporary-buffers] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7028 ["Initialize when Visiting" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7029 (setq reftex-initialize-temporary-buffers |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7030 (not reftex-initialize-temporary-buffers)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7031 :style toggle :selected reftex-initialize-temporary-buffers]) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7032 ("AUC TeX" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7033 ["Plug into AUC TeX" reftex-toggle-plug-into-AUCTeX |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7034 :style toggle :selected reftex-plug-into-AUCTeX]) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7035 ("Fontification" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7036 ["Use Fontification" (setq reftex-use-fonts (not reftex-use-fonts)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7037 :style toggle :selected reftex-use-fonts] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7038 ["Fontify Context Display" (setq reftex-refontify-context |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7039 (not (reftex-refontify))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7040 :style toggle :selected (reftex-refontify)])) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7041 ;;"---" |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7042 ("Customize" |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7043 ["Browse RefTeX group" reftex-customize t] |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7044 "---" |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7045 ["Build Full Customize Menu" reftex-create-customize-menu |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7046 (fboundp 'customize-menu-create)]) |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7047 "---" |
20829
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7048 ("Documentation" |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7049 ["Info" reftex-info t] |
f9ac469887a8
(reftex-toc): Fixed bug with split-window. Using
Richard M. Stallman <rms@gnu.org>
parents:
20177
diff
changeset
|
7050 ["Commentary" reftex-show-commentary t]))) |
18050 | 7051 |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7052 (defun reftex-customize () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7053 "Call the customize function with reftex as argument." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7054 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7055 (customize-browse 'reftex)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7056 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7057 (defun reftex-create-customize-menu () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7058 "Create a full customization menu for RefTeX, insert it into the menu." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7059 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7060 (if (fboundp 'customize-menu-create) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7061 (progn |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7062 (easy-menu-change |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7063 '("Ref") "Customize" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7064 `(["Browse RefTeX group" reftex-customize t] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7065 "---" |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7066 ,(customize-menu-create 'reftex) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7067 ["Set" Custom-set t] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7068 ["Save" Custom-save t] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7069 ["Reset to Current" Custom-reset-current t] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7070 ["Reset to Saved" Custom-reset-saved t] |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7071 ["Reset to Standard Settings" Custom-reset-standard t])) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7072 (message "\"Ref\"-menu now contains full customization menu")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7073 (error "Cannot expand menu (outdated version of cus-edit.el)"))) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7074 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7075 (defun reftex-show-commentary () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7076 "Use the finder to view the file documentation from `reftex.el'." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7077 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7078 (require 'finder) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7079 (finder-commentary "reftex.el")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7080 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7081 (defun reftex-info () |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7082 "Read documentation for RefTeX in the info system." |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7083 (interactive) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7084 (require 'info) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7085 (Info-goto-node "(reftex)")) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7086 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7087 ;; Support for \label and \ref -------------------------------------- |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7088 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7089 ;;; Install the kill-buffer and kill-emacs hooks ------------------------------ |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7090 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7091 (add-hook 'kill-buffer-hook 'reftex-kill-buffer-hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7092 (add-hook 'kill-emacs-hook 'reftex-kill-emacs-hook) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7093 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7094 ;;; Install the idle timer if requested --------------------------------------- |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7095 |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7096 (and reftex-auto-view-crossref |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7097 (not reftex-auto-view-crossref-timer) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7098 (reftex-toggle-auto-view-crossref)) |
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7099 |
18050 | 7100 ;;; Run Hook ------------------------------------------------------------------ |
7101 | |
7102 (run-hooks 'reftex-load-hook) | |
7103 | |
7104 ;;; That's it! ---------------------------------------------------------------- | |
7105 | |
21114
3e8ab19bdccb
1998-03-08 Carsten Dominik <cd@gnu.org>
Carsten Dominik <dominik@science.uva.nl>
parents:
21075
diff
changeset
|
7106 (setq reftex-tables-dirty t) ; in case this file is evaluated by hand |
20102
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
7107 (provide 'reftex) |
c00f010468c2
Using cl macros push, pop, when, unless throughout
Karl Heuer <kwzh@gnu.org>
parents:
19660
diff
changeset
|
7108 |
18050 | 7109 ;;;============================================================================ |
7110 | |
18321
0ed97be54a28
Changed all doc strings to comply with conventions.
Richard M. Stallman <rms@gnu.org>
parents:
18220
diff
changeset
|
7111 ;;; reftex.el ends here |
22991
313091cd2751
(reftex-reparse-document): Renamed from `reftex-parse-document'.
Carsten Dominik <dominik@science.uva.nl>
parents:
22388
diff
changeset
|
7112 |