annotate yatexmth.el @ 14:b7b023a74293

Region-based section-type completion. Kill section-type command and parens (sometimes with font) with [prefix] k. Rewrite error-jump functions. Fix the bug of recursive section-type completion.
author yuuji
date Fri, 22 Apr 1994 17:35:25 +0000
parents eafae54794a0
children b00c74813e56
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
1 ;;; -*- Emacs-Lisp -*-
390df0e505da Label completion works.
yuuji
parents:
diff changeset
2 ;;; YaTeX interface for math-mode.
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
3 ;;; yatexmth.el rev.2
14
b7b023a74293 Region-based section-type completion.
yuuji
parents: 13
diff changeset
4 ;;; (c )1993-1994 by HIROSE Yuuji [yuuji@ae.keio.ac.jp]
b7b023a74293 Region-based section-type completion.
yuuji
parents: 13
diff changeset
5 ;;; Last modified Sat Apr 23 02:26:57 1994 on pajero
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
6 ;;; $Id$
390df0e505da Label completion works.
yuuji
parents:
diff changeset
7
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
8 ;;; [Customization guide]
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
9 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
10 ;;; By default, you can use two completion groups in YaTeX math
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
11 ;;; mode, `,' for mathematical signs and `/' for greek letters. But
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
12 ;;; you can add other completion groups by defining the alist of
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
13 ;;; `prefix key' vs `completion list' into the variable
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
14 ;;; YaTeX-math-key-list-private. If you wish to accomplish the
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
15 ;;; completion as follows(prefix key is `;'):
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
16 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
17 ;;; KEY COMPLETION
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
18 ;;; s \sin
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
19 ;;; S \arcsin
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
20 ;;; c \cos
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
21 ;;; C \arccos
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
22 ;;; :
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
23 ;;; T \arctan
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
24 ;;; l \log
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
25 ;;; hs \sinh
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
26 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
27 ;;; Typing `s' after `;' makes `\sin', `hs' after `;' makes `\sinh'
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
28 ;;; and so on. First, you have to define list of key-completion
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
29 ;;; pairs. Variable name(YaTeX-math-funcs-list) is arbitrary.
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
30 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
31 ;;; (setq YaTeX-math-funcs-list
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
32 ;;; '(("s" "sin")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
33 ;;; ("S" "arcsin")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
34 ;;; :
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
35 ;;; ("hs" "sinh")))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
36 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
37 ;;; Next, define the list of prefix-key vs completion list(defined
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
38 ;;; above) into the variable YaTeX-math-key-list-private.
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
39 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
40 ;;; (setq YaTeX-math-key-list-private
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
41 ;;; '((";" . YaTeX-math-funcs-list)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
42 ;;; ("'" . Other-List-if-any)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
43 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
44 ;;; Put these expressions into your ~/.emacs, and you can use this
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
45 ;;; completion in the YaTeX-math-mode.
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
46 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
47 ;;; And you can add your favorite completion sequences to the
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
48 ;;; default completion list invoked with `,', by defining those lists
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
49 ;;; into variable YaTeX-math-sign-alist-private.
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
50
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
51 ;;; 【イメージ補完の追加方法】
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
52 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
53 ;;; 標準のイメージ補完では、「,」で始まる数式記号補完と、「/」で始
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
54 ;;; まるギリシャ文字補完が使用可能ですが、これ以外の文字で始まる補完
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
55 ;;; シリーズも定義することができます。例えば、「;」で始まる次のよう
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
56 ;;; な補完シリーズを定義する場合を考えてみます。
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
57 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
58 ;;; 補完キー 補完結果
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
59 ;;; s \sin
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
60 ;;; S \arcsin
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
61 ;;; c \cos
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
62 ;;; C \arccos
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
63 ;;; :
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
64 ;;; T \arctan
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
65 ;;; l \log
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
66 ;;; hs \sinh
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
67 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
68 ;;; 「;」のあとに s を押すと \sin が、hs を押すと \sinh が入力されま
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
69 ;;; す。このような補完リストの登録は以下のようにします(変数名は任意)。
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
70 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
71 ;;; (setq YaTeX-math-funcs-list
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
72 ;;; '(("s" "sin")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
73 ;;; ("S" "arcsin")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
74 ;;; :
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
75 ;;; ("hs" "sinh")))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
76 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
77 ;;; さらに、「;」を押した時にイメージ補完が始まるよう次の変数に、起動キー
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
78 ;;; と上で定義した補完用変数の登録を行ないます。
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
79 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
80 ;;; (setq YaTeX-math-key-list-private
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
81 ;;; '((";" . YaTeX-math-funcs-list)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
82 ;;; ("'" . ほかに定義したいシリーズがあれば…)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
83 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
84 ;;; これらを ~/.emacs に書いておけば、野鳥の math-mode で自分専用の
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
85 ;;; イメージ補完が利用できます。
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
86
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
87 (defvar YaTeX-jisold
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
88 (and (boundp 'dos-machine-type)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
89 (eq dos-machine-type 'pc98)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
90
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
91 (defmacro YaTeX-setq-math-sym (sym old new)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
92 (list 'setq sym (list 'if 'YaTeX-jisold old new)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
93
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
94 (YaTeX-setq-math-sym YaTeX-image-in "E" "∈")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
95 (YaTeX-setq-math-sym YaTeX-image-ni "ヨ" "∋")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
96 (YaTeX-setq-math-sym YaTeX-image-subset " _\n(\n ~" "⊂")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
97 (YaTeX-setq-math-sym YaTeX-image-subseteq " _\n(_\n ~" "⊆")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
98 (YaTeX-setq-math-sym YaTeX-image-supset "_\n )\n~" "⊃")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
99 (YaTeX-setq-math-sym YaTeX-image-supseteq "_\n_)\n~" "⊇")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
100 (YaTeX-setq-math-sym YaTeX-image-nabla "___\n\\\\/" "∇")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
101 (YaTeX-setq-math-sym YaTeX-image-partial " -+\n+-+\n+-+" "∂")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
102 (YaTeX-setq-math-sym YaTeX-image-dagger "+\n|" "†")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
103 (YaTeX-setq-math-sym YaTeX-image-ddagger "+\n+\n|" "‡")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
104 (YaTeX-setq-math-sym YaTeX-image-equiv "=\n ̄" "≡")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
105 (YaTeX-setq-math-sym YaTeX-image-int " /\\\n \\\n\\/" "∫")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
106 (YaTeX-setq-math-sym YaTeX-image-bot "|\n ̄" "⊥")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
107 (YaTeX-setq-math-sym YaTeX-image-neg "イ" "¬")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
108 (YaTeX-setq-math-sym YaTeX-image-flat "b" "♭")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
109
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
110 (setq
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
111 YaTeX-math-sign-alist-default
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
112 '(
390df0e505da Label completion works.
yuuji
parents:
diff changeset
113 ;frequently used
390df0e505da Label completion works.
yuuji
parents:
diff changeset
114 ("||" "|" ("||" "‖"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
115 ("sum" "sum" ("\\-+\n >\n/-+" "Σ"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
116 ("sigma" "sum" ("\\-+\n >\n/-+" "Σ"))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
117 ("integral" "int" (" /\\\n \\\n\\/" YaTeX-image-int))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
118 ("ointegral" "oint" " /\\\n(\\)\n\\/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
119 ("A" "forall" "|_|\nV")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
120 ("E" "exists" "-+\n-+\n-+")
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
121 ("!" "neg" ("--+\n |" YaTeX-image-neg))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
122 ("oo" "infty" ("oo" "∞"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
123 ("\\" "backslash" ("\\" "\"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
124
390df0e505da Label completion works.
yuuji
parents:
diff changeset
125 ;;binary operators
390df0e505da Label completion works.
yuuji
parents:
diff changeset
126 ("+-" "pm" ("+\n-" "±"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
127 ("-+" "mp" "-\n+")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
128 ("x" "times" ("x" "×"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
129 ("/" "div" (",\n-\n'" "÷"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
130 ("*" "ast" "*")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
131 ("#" "star" ("_/\\_\n\\ /\n//\\\\" "★"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
132 ("o" "circ" "o")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
133 ("o*" "bullet" " _\n(*)\n ~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
134 ("." "cdot" ".")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
135 ("cap" "cap" "/-\\\n| |")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
136 ("cup" "cup" "| |\n\\-/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
137 ("u+" "uplus" "|+|\n\\-/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
138 ("|~|" "sqcap" "|~|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
139 ("|_|" "sqcup" "|_|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
140 ("v" "vee" "v")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
141 ("^" "wedge" "^")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
142 ("\\\\" "setminus" "\\")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
143 (")(" "wr" " )\n(")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
144 ("<>" "diamond" "<>")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
145 ("/\-" "bigtriangleup" ("/\\\n~~" "△"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
146 ("-\\/" "bigtriangledown" ("__\n\\/" "▽"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
147 ("<|" "triangleleft" "<|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
148 ("|>" "triangleright" "|>")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
149 ("<||" "lhd" "/|\n\\|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
150 ("||>" "rhd" "|\\\n|/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
151 ("<|-" "unlhd" "<|\n~~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
152 ("|>-" "unrhd" "|>\n~~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
153 ("o+" "oplus" " _\n(+)\n ~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
154 ("o-" "ominus" " _\n(-)\n ~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
155 ("ox" "otimes" " _\n(x)\n ~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
156 ("o/" "oslash" " _\n(/)\n ~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
157 ("o." "odot" "(.)")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
158 ("O" "bigcirc" "O")
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
159 ("t" "dagger" ("+\n|" YaTeX-image-dagger))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
160 ("tt" "ddagger" ("+\n+\n|" YaTeX-image-ddagger))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
161 ("II" "amalg" "II")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
162 ; :
390df0e505da Label completion works.
yuuji
parents:
diff changeset
163 ;;relational operators
390df0e505da Label completion works.
yuuji
parents:
diff changeset
164 ("<" "leq" ("<\n-" "≦"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
165 (">" "geq" (">\n-" "≧"))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
166 ("-=" "equiv" ("=\n-" YaTeX-image-equiv))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
167 ("=-" "equiv" ("=\n-" YaTeX-image-equiv))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
168 ("---" "equiv" ("=\n-" YaTeX-image-equiv))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
169 ("(" "subset" (" _\n(\n ~" YaTeX-image-subset))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
170 ("(-" "subseteq" (" _\n(_\n ~" YaTeX-image-subseteq))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
171 (")" "supset" ("_\n )\n~" YaTeX-image-supset))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
172 (")-" "supseteq" ("_\n_)\n~" YaTeX-image-supseteq))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
173 ("[" "sqsubset" "[")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
174 ("[-" "sqsubseteq" "[\n~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
175 ("]" "sqsupset" "]")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
176 ("]-" "sqsupseteq" "]\n~")
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
177 ("{" "in" ("(-" YaTeX-image-in))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
178 ("}" "ni" ("-)" YaTeX-image-ni))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
179 ("|-" "vdash" "|-")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
180 ("-|" "dashv" "-|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
181 ("~" "sim" "~(tild)")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
182 ("~-" "simeq" "~\n-")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
183 ("asymp" "asymp" "v\n^")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
184 ("~~" "approx" "~\n~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
185 ("~=" "cong" "~\n=")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
186 ("=/" "neq" ("=/=" "≠"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
187 (".=" "doteq" ".\n=")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
188 ("o<" "propto" "o<")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
189 ("|=" "models" "|=")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
190 ("_|_" "perp" "_|_")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
191 ("|" "mid" "|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
192 ("||" "parallel" "||")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
193 ("bowtie" "bowtie" "|><|(wide)")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
194 ("|><|" "join" "|><|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
195 ("\\_/" "smile" "\\_/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
196 ("/~\\" "frown" "/~~\\")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
197 ("-<" "prec" ("-<" "く"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
198 ("-<=" "preceq" ("-<\n-" "く\n="))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
199 ("<<" "ll" ("<<" "《"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
200 ; :
390df0e505da Label completion works.
yuuji
parents:
diff changeset
201 ;;arrows
390df0e505da Label completion works.
yuuji
parents:
diff changeset
202 ("<-" "leftarrow" ("<-" "←"))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
203 ("\C-b" "leftarrow" ("<-" "←"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
204 ("<--" "longleftarrow" ("<--" "←--"))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
205 ("<=" "Leftarrow" "<=")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
206 ("<==" "Longleftarrow" "<==")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
207 ("->" "rightarrow" ("->" "→"))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
208 ("\C-f" "rightarrow" ("->" "→"))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
209 ("-->" "longrightarrow" ("-->" "--→"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
210 ("==>" "Longrightarrow" "==>")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
211 ("<->" "leftrightarrow" ("<->" "←→"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
212 ("<-->" "longleftrightarrow" ("<---->" "←--→"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
213 ("<=>" "leftrightarrow" "<=>")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
214 ("<==>" "Longleftrightarrow" "<==>")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
215 ("^|" "uparrow" ("^\n|" "↑"))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
216 ("\C-p" "uparrow" ("^\n|" "↑"))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
217 ("^||" "Uparrow" "/\\\n||")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
218 ("\C-n" "downarrow" ("|\nv" "↓"))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
219 ("v|" "downarrow" ("|\nv" "↓"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
220 ("v||" "Downarrow" "||\n\\/")
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
221 ("|->" "mapsto" ("|->" "|→"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
222 ("<-)" "hookleftarrow" (" ,\n<--+" " ヽ\n<--/"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
223 ("/-" "leftharpoonup" "/\n~~~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
224 ("\\-" "leftharpoondown" "__\n\\")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
225 ("-/" "rightharpoondown" "__\n/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
226 ("-\\" "rightharpoonup" "~~\n\\")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
227 ;other marks
390df0e505da Label completion works.
yuuji
parents:
diff changeset
228 ("Z" "aleph" "|\\|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
229 ("|\\|" "aleph" "|\\|")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
230 ("h-" "hbar" "_\nh")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
231 ("i" "imath" "i")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
232 ("j" "jmath" "j")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
233 ("l" "ell" "l")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
234 ("wp" "wp" "???")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
235 ("R" "Re" ")R")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
236 ("Im" "Im" "???")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
237 ("mho" "mho" "~|_|~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
238 ("'" "prime" "'")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
239 ("0" "emptyset" "0")
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
240 ("nabla" "nabla" ("___\n\\\\/" YaTeX-image-nabla))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
241 ("\\/" "surd" "-\\/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
242 ("surd" "surd" "-\\/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
243 ("top" "top" "T")
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
244 ("bot" "bot" ("_|_" YaTeX-image-bot))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
245 ("b" "flat" ("b" YaTeX-image-flat))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
246 ("LT" "natural" "|\nLT\n |")
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
247 ("6" "partial" (" -+\n+-+\n+-+" YaTeX-image-partial))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
248 ("partial" "partial" (" -+\n+-+\n+-+" YaTeX-image-partial))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
249 ("round" "partial" (" -+\n+-+\n+-+" YaTeX-image-partial))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
250 ("[]" "box" "[]")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
251 ("Diamond" "Diamond" "/\\\n\\/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
252 ("3" "triangle" "/\\\n~~")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
253 ("C" "clubsuit" " o\no+o\n |")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
254 ("D" "diamondsuit" "/\\\n\\/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
255 ("H" "heartsuit" "<^^>\n \\/")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
256 ("S" "spadesuit" " /\\\n<++>\n /\\")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
257
390df0e505da Label completion works.
yuuji
parents:
diff changeset
258 ))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
259
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
260 (defvar YaTeX-math-sign-alist-private nil
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
261 "*User definable key vs LaTeX-math-command alist.")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
262
390df0e505da Label completion works.
yuuji
parents:
diff changeset
263 (defvar YaTeX-math-quit-with-strict-match nil
390df0e505da Label completion works.
yuuji
parents:
diff changeset
264 "*T for quitting completion as soon as strict-match is found.")
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
265 (setq YaTeX-math-sign-alist
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
266 (append YaTeX-math-sign-alist-private YaTeX-math-sign-alist-default))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
267
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
268 ;;(defun YaTeX-math-alist2array (alist array)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
269 ;; (set array
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
270 ;; (let ((array (make-vector (length alist) "")) (list alist) (i 0))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
271 ;; (while list
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
272 ;; (aset array i (car (car list)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
273 ;; (setq i (1+ i) list (cdr list)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
274 ;; array))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
275 ;;)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
276
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
277 (setq YaTeX-greek-key-alist-default
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
278 '(
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
279 ("a" "alpha" ("a" "α"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
280 ("b" "beta" ("|>\n|>\n|" "β"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
281 ("g" "gamma" ("~r" "γ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
282 ("G" "Gamma" ("|~" "Γ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
283 ("d" "delta" ("<~\n<>" "δ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
284 ("D" "Delta" ("/\\\n~~" "Δ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
285 ("e" "epsilon" "<\n<~")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
286 ("e-" "varepsilon" ("(\n(~" "ε"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
287 ("z" "zeta" ("(~\n >" "ζ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
288 ("et" "eta" ("n\n/" "η"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
289 ("th" "theta" ("8" "θ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
290 ("Th" "Theta" ("(8)" "Θ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
291 ("th-" "vartheta" ("-8" "-θ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
292 ("i" "iota" ("i\n\\_/" "ι"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
293 ("k" "kappa" ("k" "κ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
294 ("l" "lambda" ("\\n/\\" "λ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
295 ("L" "Lambda" ("/\\" "Λ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
296 ("m" "mu" (" u_\n/" "μ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
297 ("n" "nu" ("|/" "ν"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
298 ("x" "xi" ("E\n >" "ξ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
299 ("X" "Xi" ("---\n -\n---" "Ξ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
300 ("p" "pi" ("__\n)(" "π"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
301 ("P" "Pi" ("__\n||" "Π"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
302 ("p-" "varpi" ("_\nw" "__\nω"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
303 ("r" "rho" ("/O" "ρ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
304 ("r-" "varrho" ("/O\n~~" "ρ\n~~"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
305 ("s" "sigma" ("o~" "σ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
306 ("S" "Sigma" ("\\-+\n >\n/-+" "Σ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
307 ("s-" "varsigma" "(~~ \n>")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
308 ("t" "tau" ("__\n(" "τ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
309 ("u" "upsilon" ("~v" "υ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
310 ("y" "upsilon" ("~v" "υ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
311 ("U" "Upsilon" ("~Y~" "Υ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
312 ("Y" "Upsilon" ("~Y~" "Υ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
313 ("ph" "phi" (" /\n(/)\n/" "φ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
314 ("Ph" "Phi" (" _\n(|)\n ~" "Φ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
315 ("ph-" "varphi" "\\O\n|")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
316 ("c" "chi" ("x" "χ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
317 ("ps" "psi" ("\\|/\\n |" "ψ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
318 ("Ps" "Psi" (" ~\n\\|/\\n |" "Ψ"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
319 ("o" "omega" ("w" "ω"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
320 ("w" "omega" ("w" "ω"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
321 ("O" "Omega" ("(~)\n~ ~" "Ω"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
322 ("W" "Omega" ("(~)\n~ ~" "Ω"))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
323 ("f" "foo")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
324 )
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
325 )
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
326
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
327 (defvar YaTeX-greek-key-alist-private nil
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
328 "*User definable key vs LaTeX-math-command alist.")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
329
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
330 (setq YaTeX-greek-key-alist
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
331 (append YaTeX-greek-key-alist-private YaTeX-greek-key-alist-default))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
332
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
333 ;;(mapcar (function (lambda (x) (YaTeX-math-alist2array x)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
334 ;; YaTeX-math-key-list)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
335
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
336 (setq YaTeX-math-indicator
390df0e505da Label completion works.
yuuji
parents:
diff changeset
337 "KEY\tLaTeX sequence\t\tsign")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
338
390df0e505da Label completion works.
yuuji
parents:
diff changeset
339 (defvar YaTeX-math-need-image t
390df0e505da Label completion works.
yuuji
parents:
diff changeset
340 "*T for displaying pseudo image momentarily.")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
341 (defvar YaTeX-math-max-key 8)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
342 (defvar YaTeX-math-max-seq
390df0e505da Label completion works.
yuuji
parents:
diff changeset
343 (* 8 (1+ (/ (length "\\longleftrightarrow") 8))))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
344 (defvar YaTeX-math-max-sign 5)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
345 (defvar YaTeX-math-sign-width
390df0e505da Label completion works.
yuuji
parents:
diff changeset
346 (+ YaTeX-math-max-key YaTeX-math-max-seq YaTeX-math-max-sign))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
347 (defvar YaTeX-math-display-width
390df0e505da Label completion works.
yuuji
parents:
diff changeset
348 (* 8 (1+ (/ YaTeX-math-sign-width 8))))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
349 (defvar YaTeX-math-menu-map nil
390df0e505da Label completion works.
yuuji
parents:
diff changeset
350 "Keymap used in YaTeX mathematical sign menu mode."
390df0e505da Label completion works.
yuuji
parents:
diff changeset
351 )
390df0e505da Label completion works.
yuuji
parents:
diff changeset
352 (if YaTeX-math-menu-map nil
390df0e505da Label completion works.
yuuji
parents:
diff changeset
353 (setq YaTeX-math-menu-map (make-sparse-keymap))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
354 (define-key YaTeX-math-menu-map "n" 'next-line)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
355 (define-key YaTeX-math-menu-map "p" 'previous-line)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
356 (define-key YaTeX-math-menu-map "f" 'YaTeX-math-forward)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
357 (define-key YaTeX-math-menu-map "b" 'YaTeX-math-backward)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
358 (define-key YaTeX-math-menu-map "v" 'scroll-up)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
359 (define-key YaTeX-math-menu-map " " 'scroll-up)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
360 (define-key YaTeX-math-menu-map "c" 'scroll-up)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
361 (define-key YaTeX-math-menu-map "V" 'scroll-down)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
362 (define-key YaTeX-math-menu-map "r" 'scroll-down)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
363 (define-key YaTeX-math-menu-map "\^h" 'scroll-down)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
364 (define-key YaTeX-math-menu-map "<" 'beginning-of-buffer)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
365 (define-key YaTeX-math-menu-map ">" 'end-of-buffer)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
366 (define-key YaTeX-math-menu-map "\^m" 'exit-recursive-edit)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
367 (define-key YaTeX-math-menu-map "q" 'abort-recursive-edit))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
368
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
369 (defvar YaTeX-math-key-list-default
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
370 '(("," . YaTeX-math-sign-alist)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
371 ("/" . YaTeX-greek-key-alist))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
372 "Default key sequence to invoke math-mode's image completion."
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
373 )
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
374 (defvar YaTeX-math-key-list-private nil
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
375 "*User defined alist, math-mode-prefix vs completion alist"
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
376 )
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
377 (defvar YaTeX-math-key-list
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
378 (append YaTeX-math-key-list-private YaTeX-math-key-list-default)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
379 "Key sequence to invoke math-mode's image completion."
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
380 )
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
381 (defvar YaTeX-math-exit-key "\e"
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
382 "*Key sequence after prefix key of YaTeX-math-mode to exit from math-mode."
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
383 )
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
384
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
385 (defmacro YaTeX-math-japanese-sign (list)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
386 (list 'nth 1 list))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
387
390df0e505da Label completion works.
yuuji
parents:
diff changeset
388 (defvar YaTeX-math-cmd-regexp (concat (regexp-quote YaTeX-ec) "[A-z]"))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
389
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
390 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
391 ;;YaTeX math-mode functions
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
392 ;;;
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
393 ;##autoload from yatex.el
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
394 (defun YaTeX-toggle-math-mode (&optional arg)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
395 (interactive "P")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
396 (require 'yatexmth)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
397 (or (memq 'YaTeX-math-mode mode-line-format) nil
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
398 (setq mode-line-format
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
399 (append (list "" 'YaTeX-math-mode) mode-line-format)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
400 (if (or arg (null YaTeX-math-mode))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
401 (let ((keys ""))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
402 (setq YaTeX-math-mode "math:")
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
403 (mapcar
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
404 (function (lambda (x)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
405 (let ((key (car x)) (list (cdr x)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
406 (setq keys (concat keys " " key))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
407 (put 'YaTeX-math-key-list list (key-binding key))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
408 (define-key YaTeX-mode-map key
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
409 'YaTeX-math-insert-sequence))))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
410 YaTeX-math-key-list)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
411 (message "Turn on math mode. Prefix keys are %s" keys)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
412 (sit-for 3)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
413 (message
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
414 (concat "To exit from math-mode, type `ESC' after prefix, "
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
415 "or type `"
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
416 (key-description
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
417 (car
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
418 (where-is-internal 'YaTeX-switch-mode-menu YaTeX-mode-map)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
419 " $'")))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
420 (setq YaTeX-math-mode nil)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
421 (mapcar
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
422 (function (lambda (x)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
423 (let ((key (car x)) (list (cdr x)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
424 (define-key YaTeX-mode-map key
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
425 (get 'YaTeX-math-key-list list)))))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
426 YaTeX-math-key-list)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
427 (setq YaTeX-math-mode nil)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
428 (message "Exit from math mode."))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
429 (set-buffer-modified-p (buffer-modified-p))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
430 )
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
431
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
432 (defun YaTeX-math-forward (arg)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
433 (interactive "p")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
434 (re-search-forward YaTeX-math-cmd-regexp nil t arg))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
435
390df0e505da Label completion works.
yuuji
parents:
diff changeset
436 (defun YaTeX-math-backward (arg)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
437 (interactive "p")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
438 (re-search-backward YaTeX-math-cmd-regexp nil t arg))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
439
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
440 (defun YaTeX-math-gets (sign)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
441 (cond
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
442 ((null sign) nil)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
443 ((listp sign)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
444 (setq sign
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
445 (cond
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
446 (YaTeX-japan (YaTeX-math-japanese-sign sign))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
447 (t (car sign))))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
448 (YaTeX-math-gets sign))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
449 ((symbolp sign)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
450 (YaTeX-math-gets (symbol-value sign)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
451 (t sign))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
452 )
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
453
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
454 (defun YaTeX-math-get-sign (list)
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
455 (YaTeX-math-gets (car (cdr-safe (cdr-safe list))))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
456 )
390df0e505da Label completion works.
yuuji
parents:
diff changeset
457
390df0e505da Label completion works.
yuuji
parents:
diff changeset
458 (defun YaTeX-math-display-list (list cols)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
459 (goto-char (point-max))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
460 (if (= cols 0) (if (not (eolp)) (newline 1))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
461 (forward-line -1)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
462 (while (looking-at "[ \t\n]") (forward-line -1)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
463 (end-of-line)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
464 (let ((indent (* YaTeX-math-display-width cols)) sign str to)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
465 (indent-to indent)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
466 (insert (car list))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
467 (indent-to (setq indent (+ indent YaTeX-math-max-key)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
468 (insert "\\" (car (cdr list)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
469 (setq indent (+ indent YaTeX-math-max-seq))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
470 (setq sign (YaTeX-math-get-sign list))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
471 (while (and sign (not (string= "" sign)))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
472 (setq to (string-match "\n" sign)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
473 str (if to (substring sign 0 to) sign))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
474 (end-of-line)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
475 (indent-to indent)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
476 (insert str)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
477 (cond ((eobp) (newline 1))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
478 ((> cols 0) (forward-line 1)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
479 (setq sign (if to (substring sign (1+ to)) "")))))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
480
390df0e505da Label completion works.
yuuji
parents:
diff changeset
481 (defvar YaTeX-math-menu-buffer "*math-mode-signs*")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
482
390df0e505da Label completion works.
yuuji
parents:
diff changeset
483 (defun YaTeX-math-show-menu (match-str)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
484 (save-window-excursion
390df0e505da Label completion works.
yuuji
parents:
diff changeset
485 (pop-to-buffer YaTeX-math-menu-buffer)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
486 (let ((maxcols (max 1 (/ (screen-width) YaTeX-math-sign-width)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
487 (case-fold-search nil)
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
488 (cols 0) (list alist) command)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
489 (erase-buffer)
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
490 (insert
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
491 "Candidates of sign. [n:next p:prev f:forw b:back q:quit RET:select]\n")
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
492 (insert YaTeX-math-indicator "\t")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
493 (insert YaTeX-math-indicator)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
494 (newline 1)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
495 (insert-char ?- (1- (screen-width)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
496 (newline 1)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
497 (while list
390df0e505da Label completion works.
yuuji
parents:
diff changeset
498 (if (string-match match-str (car (car list)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
499 (progn (YaTeX-math-display-list (car list) cols)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
500 (setq cols (% (1+ cols) maxcols))))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
501 (setq list (cdr list)))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
502 (goto-line 4)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
503 (use-local-map YaTeX-math-menu-map)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
504 (unwind-protect
390df0e505da Label completion works.
yuuji
parents:
diff changeset
505 (recursive-edit)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
506 (skip-chars-backward "^ \t\n")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
507 (setq command
390df0e505da Label completion works.
yuuji
parents:
diff changeset
508 (if (re-search-forward YaTeX-math-cmd-regexp nil t)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
509 (buffer-substring
390df0e505da Label completion works.
yuuji
parents:
diff changeset
510 (match-beginning 0)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
511 (prog2 (skip-chars-forward "^ \t\n") (point)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
512 nil))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
513 (kill-buffer YaTeX-math-menu-buffer))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
514 command))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
515 )
390df0e505da Label completion works.
yuuji
parents:
diff changeset
516
390df0e505da Label completion works.
yuuji
parents:
diff changeset
517 ;
390df0e505da Label completion works.
yuuji
parents:
diff changeset
518 (defun YaTeX-math-show-image (image &optional exit-char)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
519 "Momentarily display IMAGE at the beginning of the next line;
390df0e505da Label completion works.
yuuji
parents:
diff changeset
520 erase it on the next keystroke. The window is recentered if necessary
390df0e505da Label completion works.
yuuji
parents:
diff changeset
521 to make the whole string visible. If the window isn't large enough,
390df0e505da Label completion works.
yuuji
parents:
diff changeset
522 at least you get to read the beginning."
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
523 (if (and image (not (string= image "")))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
524 (let ((buffer-read-only nil)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
525 (modified (buffer-modified-p))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
526 (name buffer-file-name)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
527 insert-start
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
528 insert-end)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
529 (unwind-protect
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
530 (progn
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
531 (save-excursion
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
532 ;; defeat file locking... don't try this at home, kids!
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
533 (setq buffer-file-name nil)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
534 (forward-line 1)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
535 (setq insert-start (point))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
536 (if (eobp) (newline))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
537 (insert image)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
538 (setq insert-end (point)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
539 ; make sure the whole string is visible
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
540 (if (not (pos-visible-in-window-p insert-end))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
541 (recenter (max 0
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
542 (- (window-height)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
543 (count-lines insert-start insert-end)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
544 2))))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
545 (let ((char (read-char)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
546 (or (eq char exit-char)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
547 (setq unread-command-char char))))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
548 (if insert-end
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
549 (save-excursion
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
550 (delete-region insert-start insert-end)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
551 (setq buffer-file-name name)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
552 (set-buffer-modified-p modified)))))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
553
390df0e505da Label completion works.
yuuji
parents:
diff changeset
554 (defun YaTeX-math-insert-sequence ()
390df0e505da Label completion works.
yuuji
parents:
diff changeset
555 (interactive)
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
556 (let*((key "") regkey str last-char list i
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
557 (case-fold-search nil) match sign
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
558 (this-key (char-to-string last-command-char))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
559 (alist (symbol-value (cdr (assoc this-key YaTeX-math-key-list))))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
560 (n (length alist)) (beg (point)) result)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
561 (setq result
390df0e505da Label completion works.
yuuji
parents:
diff changeset
562 (catch 'complete
390df0e505da Label completion works.
yuuji
parents:
diff changeset
563 (while t
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
564 (message "Sequence: %s" key)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
565 (setq last-char (read-char)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
566 key (concat key (char-to-string last-char))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
567 i 0)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
568 (cond
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
569 ((string= key this-key) ;;invoke key itself
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
570 (throw 'complete 'escape))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
571 ((string= key YaTeX-math-exit-key) ;;exit from math-mode
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
572 (throw 'complete 'exit))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
573 ((string-match "[\C-g\C-c]" key) (throw 'complete 'abort))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
574 ((string-match "[\n\r]" key) (throw 'complete 'menu))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
575 ((string-match "[\C-h\C-?]" key)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
576 (if (string= key "") (throw 'complete 'abort))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
577 (setq key (substring key 0 -2))))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
578
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
579 (setq regkey (concat "^" (regexp-quote key)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
580 (message "Sequence: %s" key)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
581 (if
390df0e505da Label completion works.
yuuji
parents:
diff changeset
582 (catch 'found
390df0e505da Label completion works.
yuuji
parents:
diff changeset
583 ;;(1)input string strictly matches with alist
390df0e505da Label completion works.
yuuji
parents:
diff changeset
584 (setq single-command (car (cdr match))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
585 ;;remember previous match
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
586 match (assoc key alist))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
587 ;;(2)search partial match into alist
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
588 (setq list alist)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
589 (while (< i n)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
590 (if (string-match
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
591 regkey
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
592 ;;(aref array i)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
593 ;;(car (nth i alist))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
594 (car (car list))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
595 )
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
596 (progn
390df0e505da Label completion works.
yuuji
parents:
diff changeset
597 (or match
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
598 ;;(setq match (nth i alist))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
599 (setq match (car list)))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
600 (throw 'found t)))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
601 (setq i (1+ i) list (cdr list)))) ;catch 'found
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
602 nil ;;if any match, continue reading
390df0e505da Label completion works.
yuuji
parents:
diff changeset
603 ;;else reading of sequence has been done.
390df0e505da Label completion works.
yuuji
parents:
diff changeset
604 (message "complete.")
390df0e505da Label completion works.
yuuji
parents:
diff changeset
605 (throw 'complete t)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
606 )
390df0e505da Label completion works.
yuuji
parents:
diff changeset
607 (if match
390df0e505da Label completion works.
yuuji
parents:
diff changeset
608 (progn (delete-region beg (point))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
609 (insert YaTeX-ec (car (cdr match)))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
610 (if (and YaTeX-math-need-image
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
611 (setq sign (YaTeX-math-get-sign match)))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
612 (YaTeX-math-show-image (concat sign "\n")))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
613 )
390df0e505da Label completion works.
yuuji
parents:
diff changeset
614 nil)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
615 )))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
616 (cond
390df0e505da Label completion works.
yuuji
parents:
diff changeset
617 ((eq result t)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
618 (setq YaTeX-current-completion-type 'maketitle)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
619 (if t nil
390df0e505da Label completion works.
yuuji
parents:
diff changeset
620 (delete-region beg (point))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
621 (setq single-command (car (cdr match)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
622 ;;(recursive-edit)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
623 (insert YaTeX-ec single-command)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
624 )
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
625 ;;;(sit-for 1)
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
626 (setq unread-command-char last-char)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
627 (insert (YaTeX-addin single-command)))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
628 ((eq result 'abort)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
629 (delete-region beg (point))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
630 (message "Abort."))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
631 ((eq result 'escape)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
632 (delete-region beg (point))
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
633 (insert this-key))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
634 ((eq result 'exit)
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
635 (delete-region beg (point))
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
636 (YaTeX-toggle-math-mode))
11
390df0e505da Label completion works.
yuuji
parents:
diff changeset
637 ((eq result 'menu)
390df0e505da Label completion works.
yuuji
parents:
diff changeset
638 (delete-region beg (point))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
639 (setq key (concat "^" (regexp-quote (substring key 0 -1))))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
640 (insert (YaTeX-math-show-menu key)))))
390df0e505da Label completion works.
yuuji
parents:
diff changeset
641 )
390df0e505da Label completion works.
yuuji
parents:
diff changeset
642 ;;
390df0e505da Label completion works.
yuuji
parents:
diff changeset
643 (provide 'yatexmth)
13
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
644
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
645 ; Local variables:
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
646 ; fill-prefix: ";;; "
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
647 ; paragraph-start: "^$\\| \\|;;;$"
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
648 ; paragraph-separate: "^$\\| \\|;;;$"
eafae54794a0 Show message at comment-region on begin/end mode.
yuuji
parents: 11
diff changeset
649 ; End:

yatex.org