annotate yatex19.el @ 52:5d94deabb9f9

Set YaTeX-indent-line to 'indent-line-function. Revise fill features.
author yuuji
date Sun, 22 Jan 1995 14:20:46 +0000
parents b0371b6ed799
children 5f4b18da14b3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
1 ;;; -*- Emacs-Lisp -*-
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
2 ;;; YaTeX facilities for Emacs 19
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
3 ;;; (c )1994-1995 by HIROSE Yuuji.[yuuji@ae.keio.ac.jp]
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
4 ;;; Last modified Sun Jan 22 23:15:56 1995 on landcruiser
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
5 ;;; $Id$
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
6
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
7 ;;; とりあえず hilit19 を使っている時に色が付くようにして
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
8 ;;; メニューバーでごにょごにょできるようにしただけ。
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
9 ;;; いったい誰がメニューバー使ってLaTeXソース書くんだろうか?
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
10 ;;; まあいいや練習練習。後ろの方にちょっとコメントあり。
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
11
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
12 (require 'yatex)
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
13
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
14 (defun YaTeX-19-define-sub-menu (map vec &rest bindings)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
15 "Define sub-menu-item in MAP at vector VEC as BINDINGS.
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
16 BINDINGS is a form with optional length: (symbol title binding).
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
17 When you defined menu-bar keymap such like:
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
18 (define-key foo-map [menu-bar foo] (make-sparse-keymap \"foo menu\"))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
19 and you want to define sub menu for `foo menu' as followings.
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
20 foo -> menu1 (calling function `func1')
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
21 menu2 (doing interactive call `(func2 ...)'
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
22 Call this function like this:
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
23 (YaTeX-19-define-sub-menu foo-map [menu-bar foo]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
24 '(m1 \"Function 1\" func1)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
25 '(m2 \"Function 2\" (lambda () (interactive) (func2 ...))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
26 where
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
27 `m1' and `m2' are the keymap symbol for sub-menu of `[menu-bar foo].
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
28 `Funtion 1' and `Function 2' are the title strings for sub-menu.
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
29 "
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
30 (let ((i 0) (vec2 (make-vector (1+ (length vec)) nil)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
31 (while (< i (length vec))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
32 (aset vec2 i (aref vec i))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
33 (setq i (1+ i)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
34 (setq bindings (reverse bindings))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
35 (mapcar
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
36 (function
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
37 (lambda (bind)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
38 (aset vec2 (1- (length vec2)) (car bind)) ;set menu-symbol
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
39 (define-key map vec2
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
40 (cons (car (cdr bind))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
41 (car (cdr (cdr bind)))))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
42 bindings)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
43
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
44 ;; Menu for Typeset relating processes ----------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
45 (define-key YaTeX-mode-map [menu-bar yatex]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
46 (cons "YaTeX" (make-sparse-keymap "YaTeX")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
47 (define-key YaTeX-mode-map [menu-bar yatex process]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
48 (cons "Process" (make-sparse-keymap "Process")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
49 (YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
50 YaTeX-mode-map [menu-bar yatex process]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
51 '(buffer "LaTeX" (lambda () (interactive) (YaTeX-typeset-menu nil ?j)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
52 '(kill "Kill LaTeX" (lambda () (interactive) (YaTeX-typeset-menu nil ?k)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
53 '(bibtex "BibTeX" (lambda () (interactive) (YaTeX-typeset-menu nil ?b)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
54 '(makeindex "makeindex" (lambda () (interactive) (YaTeX-typeset-menu nil ?i)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
55 '(preview "Preview" (lambda () (interactive) (YaTeX-typeset-menu nil ?p)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
56 '(lpr "lpr" (lambda () (interactive) (YaTeX-typeset-menu nil ?l)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
57 '(lpq "lpq" (lambda () (interactive) (YaTeX-typeset-menu nil ?q)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
58 )
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
59
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
60 ;; Help for LaTeX ------------------------------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
61 (YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
62 YaTeX-mode-map [menu-bar yatex]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
63 '(sephelp "--")
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
64 '(help "Help on LaTeX commands" YaTeX-help)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
65 '(apropos "Apropos on LaTeX commands" YaTeX-apropos))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
66
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
67 ;; Switch modes --------------------------------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
68 (define-key YaTeX-mode-map [menu-bar yatex switch]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
69 (cons "Switching YaTeX's modes" (make-sparse-keymap "modes")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
70 (or YaTeX-auto-math-mode
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
71 (define-key YaTeX-mode-map [menu-bar yatex switch math]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
72 '("Toggle math mode" . (lambda () (interactive)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
73 (YaTeX-switch-mode-menu nil ?t)))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
74 (define-key YaTeX-mode-map [menu-bar yatex switch mod]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
75 '("Toggle modify mode" . (lambda () (interactive)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
76 (YaTeX-switch-mode-menu nil ?m))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
77
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
78 ;; % menu --------------------------------------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
79 (define-key YaTeX-mode-map [menu-bar yatex percent]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
80 (cons "Edit %# notation" (make-sparse-keymap "Edit %# notation")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
81 (YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
82 YaTeX-mode-map [menu-bar yatex percent]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
83 '(! "Change LaTeX typesetter(%#!)"
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
84 (lambda () (interactive) (YaTeX-%-menu nil nil ?!)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
85 '(begend "Set %#BEGIN-%#END on region"
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
86 (lambda () (interactive) (YaTeX-%-menu nil nil ?b)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
87 '(lpr "Change LPR format"
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
88 (lambda () (interactive) (YaTeX-%-menu nil nil ?l))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
89
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
90 ;; What position -------------------------------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
91 (YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
92 YaTeX-mode-map [menu-bar yatex]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
93 '(what "What column in tabular" YaTeX-what-column))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
94
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
95 ;; Document hierarchy ------------------------------------------------------
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
96 (YaTeX-19-define-sub-menu
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
97 YaTeX-mode-map [menu-bar yatex]
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
98 '(hier "Display document hierarchy" YaTeX-display-hierarchy-directly))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
99
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
100 ;; Jump cursor ---------------------------------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
101 (define-key YaTeX-mode-map [menu-bar yatex jump]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
102 (cons "Jump cursor"
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
103 (make-sparse-keymap "Jump cursor")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
104 (YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
105 YaTeX-mode-map [menu-bar yatex jump]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
106 '(corres "Goto corersponding position" YaTeX-goto-corresponding-*)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
107 '(main "Visit main source" (lambda () (interactive) (YaTeX-visit-main)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
108 '(main-other "Visit main source other window" YaTeX-visit-main-other-window)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
109 )
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
110
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
111 ;; ===========================================================================
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
112 (define-key YaTeX-mode-map [menu-bar yatex sepcom]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
113 '("---" . nil))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
114
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
115 ;; Comment/Uncomment ---------------------------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
116 (YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
117 YaTeX-mode-map [menu-bar yatex]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
118 '(comment "Comment region or environment" YaTeX-comment-region)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
119 '(uncomment "Unomment region or environment" YaTeX-uncomment-region)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
120 '(commentp "Comment paragraph" YaTeX-comment-paragraph)
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
121 '(uncommentp "Uncomment paragraph" YaTeX-uncomment-paragraph)
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
122 '(sepcom "--" nil)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
123 )
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
124
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
125
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
126 ;; ===========================================================================
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
127 ;; Change/Kill/Fill
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
128 (YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
129 YaTeX-mode-map [menu-bar yatex]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
130 '(change "Change macros" YaTeX-change-*)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
131 '(kill "Kill macros" YaTeX-kill-*)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
132 '(fillitem "Fill \\item" YaTeX-fill-item)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
133 '(newline "Newline" YaTeX-intelligent-newline)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
134 '(sepchg "--" nil)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
135 )
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
136
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
137 ;; Menu for completions ------------------------------------------------------
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
138
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
139
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
140 ;;;(YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
141 ;;; YaTeX-mode-map [menu-bar yatex]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
142 ;;; '(secr "Section-type command on region" YaTeX-make-section-region)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
143 ;;; '(sec "Section-type command" YaTeX-make-section))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
144
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
145 (define-key YaTeX-mode-map [menu-bar yatex sectionr]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
146 (cons "Section-type region(long name)"
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
147 (make-sparse-keymap "Enclose region with section-type macro")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
148 (define-key YaTeX-mode-map [menu-bar yatex section]
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
149 (cons "Section-type(long name)"
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
150 (make-sparse-keymap "Section-type macro")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
151 (let ((sorted-section
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
152 (sort
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
153 (delq nil
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
154 (mapcar (function (lambda (s)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
155 (if (> (length (car s)) 5)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
156 (car s))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
157 (append section-table user-section-table)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
158 'string<)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
159 (apply 'YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
160 YaTeX-mode-map [menu-bar yatex section]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
161 (mapcar (function (lambda (secname)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
162 (list (intern secname) secname
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
163 (list 'lambda ()
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
164 (list 'interactive)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
165 (list 'YaTeX-make-section
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
166 nil nil nil secname)))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
167 sorted-section))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
168 (apply 'YaTeX-19-define-sub-menu
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
169 YaTeX-mode-map [menu-bar yatex sectionr]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
170 (mapcar (function (lambda (secname)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
171 (list (intern secname) secname
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
172 (list 'lambda ()
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
173 (list 'interactive)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
174 (list 'YaTeX-make-section
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
175 nil
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
176 (list 'region-beginning)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
177 (list 'region-end)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
178 secname)))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
179 sorted-section)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
180
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
181 (define-key YaTeX-mode-map [menu-bar yatex envr]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
182 (cons "Environment region" (make-sparse-keymap "Environment region")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
183 (define-key YaTeX-mode-map [menu-bar yatex env]
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
184 (cons "Environment" (make-sparse-keymap "Environment")))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
185 (let (prev envname)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
186 (mapcar
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
187 (function
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
188 (lambda (envalist)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
189 (setq envname (car envalist))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
190 (define-key-after
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
191 (lookup-key YaTeX-mode-map [menu-bar yatex env])
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
192 (vector (intern envname))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
193 (cons envname
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
194 (list 'lambda () (list 'interactive)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
195 (list 'YaTeX-insert-begin-end
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
196 envname nil)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
197 prev)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
198 (define-key-after
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
199 (lookup-key YaTeX-mode-map [menu-bar yatex envr])
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
200 (vector (intern envname))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
201 (cons envname
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
202 (list 'lambda () (list 'interactive)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
203 (list 'YaTeX-insert-begin-end
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
204 envname t)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
205 prev)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
206 (setq prev (intern envname))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
207 (sort (append env-table user-env-table)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
208 '(lambda (x y) (string< (car x) (car y))))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
209
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
210 ;; Highlightening
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
211 ;; ローカルなマクロを読み込んだ後 redraw すると
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
212 ;; ローカルマクロを keyword として光らせる(keywordじゃまずいかな…)。
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
213 (defvar YaTeX-hilit-patterns-alist nil
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
214 "*Hiliting pattern alist for LaTeX text.
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
215 Default value is equal to latex-mode's one.")
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
216 (defvar YaTeX-hilit-pattern-adjustment-default
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
217 (list
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
218 ;;\def が define なんだから new* も define でしょう。
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
219 '("\\\\\\(re\\)?new\\(environment\\|command\\){" "}" define)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
220 '("\\\\new\\(length\\|theorem\\|counter\\){" "}" define)
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
221 ;;セクションコマンドが単なるキーワードってことはないでしょう。
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
222 ;;(list
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
223 ;;(concat "\\\\\\(" YaTeX-sectioning-regexp "\\){") "}"
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
224 ;;'sectioning)
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
225 ;;eqnarray などの数式環境が入ってないみたい…
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
226 '("\\\\begin{\\(eqnarray\\*?\\|equation\\*?\\)}"
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
227 "\\\\end{\\(eqnarray\\*?\\|equation\\*?\\)}"
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
228 formula))
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
229 "Adjustment for hilit19's LaTeX hilit pattern.")
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
230 (defvar YaTeX-hilit-pattern-adjustment-private nil
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
231 "*Private variable, same purpose as YaTeX-hilit-pattern-adjustment-default.")
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
232 (defvar YaTeX-hilit-sectioning-face
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
233 '(yellow/dodgerblue yellow/cornflowerblue)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
234 "*Hilightening face for sectioning unit. '(FaceForLight FaceForDark)")
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
235 (defvar YaTeX-sectioning-patterns-alist nil
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
236 "Hilightening patterns for sectioning units.")
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
237 (defvar YaTeX-hilit-singlecmd-face
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
238 '(slateblue2 aquamarine)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
239 "*Hilightening face for maketitle type. '(FaceForLight FaceForDark)")
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
240
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
241 ;;; セクションコマンドを、構造レベルの高さに応じて色の濃度を変える
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
242 ;;; 背景が黒でないと何が嬉しいのか分からないに違いない.
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
243 (let*((sectface
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
244 (car (if (eq hilit-background-mode 'dark)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
245 (cdr YaTeX-hilit-sectioning-face)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
246 YaTeX-hilit-sectioning-face)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
247 (sectcol (symbol-name sectface))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
248 sect-pat-alist)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
249 (if (string-match "/" sectcol)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
250 (let (colorvalue fR fG fB bR bG bB list pat fg bg level from face)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
251 (require 'yatexsec)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
252 (setq fg (substring sectcol 0 (string-match "/" sectcol))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
253 bg (substring sectcol (1+ (string-match "/" sectcol)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
254 colorvalue (x-color-values fg)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
255 fR (/ (nth 0 colorvalue) 256)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
256 fG (/ (nth 1 colorvalue) 256)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
257 fB (/ (nth 2 colorvalue) 256)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
258 colorvalue (x-color-values bg)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
259 bR (/ (nth 0 colorvalue) 256)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
260 bG (/ (nth 1 colorvalue) 256)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
261 bB (/ (nth 2 colorvalue) 256)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
262 list YaTeX-sectioning-level)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
263 (while list
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
264 (setq pat (concat YaTeX-ec-regexp (car (car list)) "\\*?{")
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
265 level (cdr (car list))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
266 fg (format "hex-%02x%02x%02x"
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
267 (- fR (/ (* level fR) 40)) ;40 musn't be constant
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
268 (- fG (/ (* level fG) 40))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
269 (- fB (/ (* level fB) 40)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
270 bg (format "hex-%02x%02x%02x"
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
271 (- bR (/ (* level bR) 15)) ;20 musn't be constant
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
272 (- bG (/ (* level bG) 15))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
273 (- bB (/ (* level bB) 15)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
274 from (intern (format "sectioning-%d" level))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
275 face (intern (concat fg "/" bg)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
276 (hilit-translate from face)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
277 (setq sect-pat-alist
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
278 (cons (list pat "}" face)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
279 sect-pat-alist))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
280 (setq list (cdr list)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
281 (setq YaTeX-sectioning-patterns-alist sect-pat-alist))))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
282
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
283 (defun YaTeX-19-collect-macro ()
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
284 (cond
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
285 ((and (featurep 'hilit19) (fboundp 'hilit-translate))
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
286 (or YaTeX-hilit-patterns-alist
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
287 (let ((alist (cdr (assq 'latex-mode hilit-patterns-alist))))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
288 (setcar (assoc "\\\\item\\(\\[[^]]*\\]\\)?" alist)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
289 (concat YaTeX-item-regexp "\\b\\(\\[[^]]*\\]\\)?"))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
290 (setq YaTeX-hilit-patterns-alist alist)))
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
291 (let ((get-face
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
292 (function
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
293 (lambda (table)
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
294 (cond
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
295 ((eq hilit-background-mode 'light) (car table))
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
296 ((eq hilit-background-mode 'dark) (car (cdr table)))
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
297 (t nil))))))
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
298 (hilit-translate
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
299 ;;sectioning (funcall get-face YaTeX-hilit-sectioning-face)
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
300 macro (funcall get-face YaTeX-hilit-singlecmd-face)))
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
301 (setq hilit-patterns-alist ;Remove at first.
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
302 (delq 'yatex-mode hilit-patterns-alist)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
303 hilit-patterns-alist
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
304 (cons
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
305 (cons 'yatex-mode
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
306 (append
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
307 YaTeX-sectioning-patterns-alist
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
308 YaTeX-hilit-pattern-adjustment-private
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
309 YaTeX-hilit-pattern-adjustment-default
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
310 YaTeX-hilit-patterns-alist
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
311 (list
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
312 (list
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
313 (concat "\\\\\\("
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
314 (mapconcat
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
315 (function (lambda (s) (regexp-quote (car s))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
316 (append user-section-table tmp-section-table)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
317 "\\|")
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
318 "\\){")
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
319 "}" 'keyword)
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
320 (list
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
321 (concat "\\\\\\("
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
322 (mapconcat
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
323 (function (lambda (s) (regexp-quote (car s))))
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
324 (append user-singlecmd-table tmp-singlecmd-table)
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
325 "\\|")
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
326 "\\)\\b")
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
327 0 'macro))))
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
328 hilit-patterns-alist)))))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
329 (YaTeX-19-collect-macro)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
330 (defun YaTeX-hilit-recenter (arg)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
331 "Collect current local macro and hilit-recenter."
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
332 (interactive "P")
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
333 (YaTeX-19-collect-macro)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
334 (hilit-recenter arg))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
335 (if (fboundp 'hilit-recenter) ;Replace hilit-recenter with
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
336 (mapcar (function (lambda (key) ;YaTeX-hilit-recenter in yatex-mode
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
337 (define-key YaTeX-mode-map key 'YaTeX-hilit-recenter)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
338 (where-is-internal 'hilit-recenter)))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
339
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
340 ;;; reverseVideo にして hilit-background-mode を 'dark
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
341 ;;; にしている人は数式などが暗くなりすぎて見づらいかもしれない。
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
342 ;;; 次のコードを hilit19 をロードしている場所の直後に置くとちょっ
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
343 ;;; とはまし。
46
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
344 ;;; (if (eq hilit-background-mode 'dark)
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
345 ;;; (hilit-translate
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
346 ;;; string 'mediumspringgreen
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
347 ;;; formula 'khaki
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
348 ;;; label 'yellow-underlined))
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
349
cd1b63102eed Support Mule2
yuuji
parents:
diff changeset
350 (provide 'yatex19)

yatex.org