annotate docs/yatexadd.doc @ 436:e78a87bc2c9e dev

current file treated as absolute path(YaTeX-preview-jump-line)
author HIROSE Yuuji <yuuji@gentei.org>
date Fri, 08 Jan 2016 08:18:54 +0859
parents 0734be649cb8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
1 ------------------------------------------------------------------------
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
2 野鳥用付加関数の作成方法
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
3 ------------------------------------------------------------------------
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
4
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
5
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
6 【付加関数とは】
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
7
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 25
diff changeset
8 begin 型補完で、「tabular 環境を入力している時に、わたしの好み
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 25
diff changeset
9 のスタイルが入らないなあ」などと思うことはありませんか。tabular
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 25
diff changeset
10 環境に限らず、LaTeX の環境の引数には、各人お決まりのフォーマット
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 25
diff changeset
11 があるものです。たとえば凝った表を書く時の tabular環境の引数は、
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 25
diff changeset
12 かなり複雑なので、デフォルトの自動入力関数よりも、
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
13
8
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
14 "{@{\vrule width 1pt\ }|||@{\ \vrule width 1pt}}"
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
15
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
16 を挿入するだけの単純な関数のほうが、嬉しい人もいるでしょう。あるい
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
17 は、「そんなの要らない。他の tabular をコピーして来たほうが早い。」
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
18 と思う人もいるでしょう。
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
19
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
20 YaTeX の付加関数は、あらかじめ○○環境用のお仕着せの特別関数を用
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
21 意しておくのではなく、○○環境用の特別関数が欲しくなったら独自の関
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
22 数を定義する、というコンセプトに基づくもので、付加関数の登録のため
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
23 の手続きをすることなく、関数を定義したその瞬間から使えるようになり
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
24 ます。「必要なのは、defun だけ」です。
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
25
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
26
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
27 【準備】
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
28
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
29 さすがに、関数を書くだけでは使えません:-)。yatex-mode 起動時には、
8
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
30 その関数を定義したファイルがロードされていなくてはなりません。関数
25
ab9c4c4f9f7a version 1.50
yuuji
parents: 16
diff changeset
31 を定義するファイル名を yatexhks.el(またはバイトコンパイルした形式
ab9c4c4f9f7a version 1.50
yuuji
parents: 16
diff changeset
32 の yatexhks.elc)にし、そのファイルを load-path 中に置いておけば、
8
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
33 野鳥が自動的にロードします。それ以外のファイル名にする場合は、
16
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
34 yatex-mode-load-hook に付加関数を定義する Emacs-Lisp ファイルをロー
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
35 ドするような仕掛けを書いておくのがよいでしょう。
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
36
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
37
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
38 【関数定義】
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
39
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
40 付加関数には、各LaTeXコマンドのオプション引数を返す形式のもの、
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
41 section型補完の引数を返すもの、リジョン括りsection型補完の引数該当
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
42 部を処理するためのもの、三種類があります。ここでは便宜上その三つを、
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
43
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
44 a. 追加型付加関数
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
45 b. 引数型付加関数
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
46 c. 括り補完時付加関数
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
47
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
48 と呼ぶことにします。
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
49
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
50 a は、以下の例のように、begin型補完では\begin{環境名}の直後に付
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
51 加する文字列、section型補完では LaTeX コマンド名と第一引数の間に位
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
52 置する文字列、maketitle型補完では LaTeX コマンド名の直後に位置する
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
53 文字列を返すような関数です。
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
54
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
55 (例) \begin{table}[ht] (付加関数名 YaTeX:table)
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
56 ~~~~
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
57 \put(100,200){} (付加関数名 YaTeX:put)
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
58 ~~~~~~~~~
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
59 \sum_{i=0}^{n} (付加関数名 YaTeX:sum)
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
60 ~~~~~~~~~~
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
61
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
62 追加型付加関数は『LaTeXコマンド名の前に YaTeX: をつけた名前』で定
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
63 義します。
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
64
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
65 b は、以下のようにsection型コマンドの引数となる文字列を返す関数
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
66 です。
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
67
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
68 (例) \newcommand{\foo}{bar} (付加関数名 YaTeX::newcommand)
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
69 ~~~~ ~~~
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
70
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
71 引数型付加関数は『LaTeXコマンド名の前に YaTeX:: をつけた名前』で定
16
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
72 義します。また引数型付加関数が呼ばれる時にはsection型コマンドの何
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
73 番目の引数を入力しているのかが関数への引数として渡されます。したがっ
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
74 て、引数型付加関数は整数の引数を一つ取るものとして定義し、その引数
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
75 の値により処理を決定することになります。
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
76
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
77 (yatex.1.72の新機能)
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
78 c は、既存テキストの一部をsection型コマンドの引数として括るとき
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
79 に、指定したりジョンの先頭と末尾の各ポイントを引数として呼ばれます。
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
80 たとえば、
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
81
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
82 5/3
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
83
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
84 というテキストをリジョン指定して [prefix] S でセクション型コマンド
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
85 で括りたいときに、括られるテキストに対してなんらかの処理をほどこし
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
86 たいときに呼ばれます。
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
87
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
88 (例) 5/3 ←5/3をリジョン指定し \frac で括る
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
89 \frac{5/3} ←5/3のポイント位置を引数に呼ばれる
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
90 ~~~ (付加関数 YaTeX::frac-region)
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
91
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
92
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
93 【定義例】
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
94
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
95 例えば、tabular環境のフォーマットとして、いつでも {|c|c|c|} を入
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
96 れるだけで良いのなら、
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
97
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
98 (defun YaTeX:tabular ()
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
99 "{|c|c|c|}")
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
100
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
101 とだけ書けばよく、前述の、複雑な定型 tabular フォーマットを挿入す
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
102 るための関数を定義する場合は次のようにします。
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
103
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
104 (defun YaTeX:tabular ()
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
105 "{@{\\vrule width 1pt\\ }|||@{\\ \\vrule width 1pt}}")
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
106
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
107 この時、Emacs-Lisp 中の文字列では、\ 自身は \\ と表記することなど
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
108 に注意して下さい。
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
109
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
110 また、{} の中を、補完時に直接キーボードから読み込ませたい時は、
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
111
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
112 (defun YaTeX:tabular ()
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
113 (concat "{" (read-string "Rule: ") "}"))
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
114
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
115 などとすれば良いでしょう。
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
116
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
117 次に、引数型付加関数として \newcommand の引数を読み込む関数を定
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
118 義する場合を例示します。\newcommand の第一引数は新たに定義するコマ
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
119 ンド名なので、必ず先頭に \ が来ます。第二引数はたいていの場合ミニ
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
120 バッファでは編集しづらいような複雑な定義を書くので、何も補完しない
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
121 方が良いでしょう。これを考慮して付加関数を定義すると以下のようなも
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
122 のになるでしょう。
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
123
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
124 (defun YaTeX::newcommand (n) ;nは引数の位置
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
125 (cond
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
126 ((= n 1) ;第一引数ならコマンド名
16
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
127 (read-string "Command: " "\\")) ;\を初期入力とする
cb9afa9c1213 Auto-indentation at begin-type completion works correctly.
yuuji
parents: 14
diff changeset
128 ((= n 2) "") ;第二引数なら何もしない
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
129 (t nil)))
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
130
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
131 なお、引数型付加関数が nil を返した場合は、通常の引数入力関数が呼
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
132 ばれます。
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
133
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
134 最後に括り補完時付加関数の例として、既存テキストを \frac で括
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
135 る場合の例を示します。\frac は2つの引数を取り、\frac{a}{b} のよ
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
136 うにして、分数を表すときに利用するコマンドです。数学的には
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
137
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
138 a
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
139 a/b ⇔ ----
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
140 b
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
141
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
142 と置き換え可能な記法です。LaTeXソースにa/bと書いたものを野鳥の括
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
143 り補完で\fracに括ると、以下のようになります。
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
144
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
145 \frac{a/b}
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
146
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
147 /の部分を }{ に置き換えれば正しい書き換えになります。このような
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
148 ことを対話的に半自動で行なうアドイン関数は以下のようにします。
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
149
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
150 (defun YaTeX::frac-region (beg end) ;リジョンの先頭と末尾
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
151 (catch 'done
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
152 (while (search-forward "/" end t) ;/がある間繰り返す
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
153 (goto-char (match-beginning 0)) ;/の位置に移動
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
154 (if (y-or-n-p "Replace this slash(/) to `}{'")
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
155 (throw 'done (replace-match "}{"))) ;置き換えて終了
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
156 (goto-char (match-end 0)))))
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
157
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
158
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
159 【呼ばれ方】
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
160
8
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
161 野鳥本体は、begin型補完とsection型補完、およびmaketitle型補完の
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
162 入力時に付加関数の存在を調べてから呼び出します。begin型補完の場合
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
163 \begin{環境名} が自動入力された直後に呼び出されます。section型補完
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
164 では第一引数の補完の直前、maketitle型補完の場合は、コマンド名の直
12
a7f397790cdc Revise YaTeX-typeset faster.
yuuji
parents: 8
diff changeset
165 後(一つのスペースを挿入する直前)に呼び出されます。引数型付加関数は、
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
166 section型コマンドの引数の入力時にその都度呼ばれます。括り補完時付
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 70
diff changeset
167 加関数は、LaTeXコマンドと{}がテキストに挿入された直後に呼ばれます。
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
168
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
169
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
170 【参考】
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
171
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
172 付加関数の定義の例を yatexadd.el に用意しました。実際に独自の付
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
173 加関数を定義する時の参考として下さい。
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
174
8
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
175 有用と思われる関数について、簡単に説明します。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
176
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
177 ・関数 YaTeX:read-position
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
178 引数 [] の中に入れてもよい文字を羅列した文字列。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
179 説明 [htb] などのような location 指定を作成します。何も入力せず
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
180 リターンを押すと、[]自体も省略されます。[]の中に来るべき文
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
181 字が htbp に限られているなら、(YaTeX:read-position "htbp")
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
182 と呼び出します。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
183
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
184 ・関数 YaTeX-cplread-with-learning
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
185 引数 プロンプト
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
186 デフォルト補完テーブル変数シンボル
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
187 ユーザ補完テーブル変数シンボル
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
188 ローカル補完テーブル変数シンボル
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
189 説明 「プロンプト」というプロンプトを出し、補完入力を行います。
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
190 三つの変数のテーブルの値を結合したものが補完候補として用
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
191 いられ、新しい単語を入力すると自動的に学習されます。学習
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
192 結果は ~/.yatexrc か ./.yatexrc に保存されます。使用例と
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
193 して YaTeX::documentstyle 関数の定義をごらんください。
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 49
diff changeset
194
54
2d45e43fb35f Full support of English documents
yuuji
parents: 52
diff changeset
195 ・関数 YaTeX:read-coordinates
2d45e43fb35f Full support of English documents
yuuji
parents: 52
diff changeset
196 引数 基本プロンプト、X座標プロンプト、Y座標プロンプト(全て省略可)
2d45e43fb35f Full support of English documents
yuuji
parents: 52
diff changeset
197 説明 「基本プロンプト X座標プロンプト:」というプロンプトを出し
8
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
198 て、X座標を読み込み、「基本プロンプト Y座標プロンプト:」を
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
199 出して、Y座標を読み込み、(X座標,Y座標) の様な形式を作成します。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
200 何も入力せずリターンを押しても、(,)が返されます。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
201 各プロンプトのデフォルトはそれぞれ、Dimension, X, Y です。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
202
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
203 ・関数 YaTeX:check-comletion-type
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
204 引数 'begin または、'section または、'maketitle
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
205 説明 付加関数が呼ばれる時に、行われている補完の形式が、引数で与
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
206 えたものであるかどうか調べ、そうでない場合にエラー終了する。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
207 なお、変数 YaTeX-current-completion-type に現在の補完の型
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
208 を表わすシンボル(この関数の引数と同様)が格納されています。
c746646cecf5 Restrict YaTeX:framebox in picture environment.
yuuji
parents: 6
diff changeset
209
6
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
210
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
211 【最後に】
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
212
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
213 快適な関数を定義したなら、そしてそれを公開してもよいと思われたな
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
214 ら、筆者までお送り下さい。次の yatexadd.el に取り込んで行きたいと
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
215 思います。
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
216
49be9ccb0b65 Temporary dictionary.
yuuji
parents:
diff changeset
217
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 63
diff changeset
218 広瀬雄二
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
219 yuuji@yatex.org

yatex.org