9
|
1 -----------------------------------------------------------------------------
|
|
2 野鳥用付加関数を自動的に作ろう!
|
|
3 -----------------------------------------------------------------------------
|
|
4
|
|
5 【はじめに】
|
|
6
|
12
|
7 まず、yatexadd.doc には目を通して下さい。それを読んで、なにか独
|
9
|
8 自の関数をすぐに作りたくなったあなたには、このドキュメントも、
|
|
9 yatexgen.el も必要有りません。しかし、Emacs-Lisp をよく知らないた
|
|
10 め、どのように作ってよいのかピンと来ない方のために、野鳥自身に付加
|
|
11 関数を自動的に作らせる時の説明をするのが、このドキュメントです。
|
|
12
|
|
13 ただ、自動的に作るわけですから、気の利いた関数などは作れません。
|
|
14 \documentstyle{} を入れる時に、オプション([twocolumn,12pt]とか)を
|
|
15 自動的にキーボードから読み込むようにする程度のものだけなので、それ
|
|
16 以上を望む場合は、ちゃんと yatexadd.el を参考にして、すごいのを作
|
|
17 りましょう:-)。
|
|
18
|
|
19
|
25
|
20 【作り方その1】
|
9
|
21
|
25
|
22 Emacs-Lispなんか全然知らないよ〜んという人向け:
|
|
23
|
|
24 M-x YaTeX-generate ぺし
|
9
|
25
|
|
26 あとは、画面に出て来る指示通りに操作して下さい。これを無視してい
|
|
27 いかげんに操作すると、とんでもないことになります(なんだろう?)。失
|
|
28 敗した、と思ったら、^G して最初からやり直すのが無難です。
|
|
29
|
|
30
|
25
|
31 【作り方その2】
|
|
32
|
|
33 他の付加関数を見て何をやってるかの想像が付く人、あるいは
|
|
34 Emacs-Lisp は知ってるが単に作るのが面倒な人向け:
|
|
35
|
|
36 M-x YaTeX-generate-simple RET
|
|
37
|
|
38 こっちでは追加型付加関数と引数型付加関数(yatexadd.docもちゃんと
|
|
39 読んでね;-)の両方が作れます(その1は追加型しか作れない)。
|
|
40
|
|
41 では、例として次のような LaTeX コマンドがあったとしましょう。
|
|
42 (実際にはないよー)
|
|
43
|
|
44 \epsinput[t](250,50){hoge.eps}{plain}{ほげほげの絵}
|
47
|
45 (A) (B) (1) (2) (3)
|
|
46 (A)位置を指定するオプション引数(なくても良い)
|
25
|
47 t(top) b(bottom) l(left) r(right) のどれかが入る
|
47
|
48 (B)枠の最大の大きさ
|
25
|
49 (1)第1引数は取り込むEPSファイル名
|
|
50 (2)第2引数は取り込む時に
|
|
51 plain 何もしない
|
|
52 frame 枠を付ける
|
|
53 dframe 二重枠を付ける
|
|
54 のどれかのスタイルを選べたりする
|
|
55 (3)絵に付けるキャプションを指定
|
|
56
|
|
57 早速付加関数を作りましょう。M-x YaTeX-generate-simple とすると
|
|
58
|
|
59 Making add-in function for (default ???): epsinput RET
|
|
60
|
|
61 と聞いて来るので何用の付加関数を作るか答えます。さらに
|
|
62
|
|
63 (o)追加型? (a)引数型?
|
|
64
|
|
65 と、聞いて来るのでどちらを作るか答えます。ではそれぞれの場合につい
|
|
66 て例を追ってみましょう。
|
|
67
|
|
68 (o)追加型付加関数を作る
|
|
69
|
47
|
70 (A),(B)の部分はオプション引数なので、追加型付加関数で補完します。
|
|
71 (1)〜(3)は実際の引数なので引数型付加関数で補完します。では(A)を補
|
25
|
72 完するための関数を作りましょう。
|
|
73
|
|
74 M-x YaTeX-generate-simple RET
|
|
75 epsinput RET
|
|
76 o
|
|
77
|
|
78 すると次のメニューが出ます。
|
|
79
|
|
80 Read type(1): (S)tring (C)omplete (F)ile ([)option (P)osition co(O)rd. (q)uit
|
|
81
|
|
82 「Read type(1)」というのは「1番目のオプションの補完スタイルはなあ
|
|
83 に?」という意味です。補完スタイルには以下のものがあります。
|
|
84
|
|
85 String 普通の文字列を読み込む
|
|
86 Complete いくつかの候補の中から読み込む
|
|
87 File ファイル名を読み込む
|
|
88 Option オプション引数を読む(省略すると[]がつかない)
|
|
89 Position 場所指定オプションを読む([htbp] みたいなの)
|
|
90 Coord. 座標を読み込む
|
|
91 Quit おしまい
|
|
92
|
47
|
93 さて(A)はEPSファイルを配置する場所指定オプションなので補完タイプは
|
25
|
94 Position、さらにその候補は t, b, l, r のどれかなので、以下のように
|
|
95 操作します。
|
|
96
|
|
97 Read type(1).... p
|
|
98 Acceptable characters: tblr RET
|
|
99
|
47
|
100 次の(B)は座標なので補完タイプは coOrd. 最大サイズと言う意味のプロ
|
25
|
101 ンプトを出したいので次のようにします。
|
|
102
|
|
103 Read type(2).... o
|
|
104 Prompt for coordinates: Max size RET
|
|
105
|
|
106 もうオプション引数はないので、quitを選びます。
|
|
107
|
|
108 Read type(3).... q
|
|
109
|
|
110 これで隣のウィンドウに \epsinput 用の追加型付加関数が生成されます。
|
|
111
|
|
112 (a)引数型付加関数を作る
|
|
113
|
|
114 さて \epsinput の引数の種別は順に、EPSファイル名、枠付スタイル、
|
|
115 キャプション文字列でした。これらを読み込む(引数型)付加関数を作りま
|
|
116 しょう。
|
|
117
|
|
118 M-x YaTeX-generate-simple RET
|
|
119 epsinput RET
|
|
120 a
|
|
121
|
|
122 すると引数の数を聞いて来るのでそれに答えます。
|
|
123
|
|
124 How many arguments?: 3 RET
|
|
125
|
|
126 すると第1引数について補完タイプを聞いて来るので、「ファイル名(f)」
|
|
127 を選び、ファイル名を読む時に出したいプロンプト文字列を入れます。
|
|
128
|
|
129 Read type(1).... f
|
|
130 Prompt for argument#1 EPS file name RET
|
|
131
|
|
132 第2引数は複数候補から選択するので補完タイプは Completion。
|
|
133
|
|
134 Read type(2).... c
|
|
135 Prompt for argument#2 Include style RET
|
|
136
|
|
137 すると全候補の入力を促すので、順次入力し最後にRETを空打ちします。
|
|
138
|
|
139 Item[1](RET to exit): plain RET
|
|
140 Item[2](RET to exit): frame RET
|
|
141 Item[3](RET to exit): dframe RET
|
|
142 Item[4](RET to exit): RET
|
|
143
|
46
|
144 さらに補完候補以外の選択を認めるかを聞いて来るので、y か n で答え
|
|
145 ます。この場合 plain, frame, dframe 以外は選べないので
|
|
146
|
|
147 Require match? (y or n) y
|
|
148
|
|
149 のように y と答えます。
|
|
150
|
25
|
151 最後の引数は単に文字列を読めば良いので、補完タイプは String。
|
|
152 「default:」ではミニバッファで入力する時にデフォルトで入力されてい
|
|
153 る文字列を入れます。必要なければRETを空打ちします。
|
|
154
|
|
155 Read type(3).... s
|
|
156 Prompt for argument#3 Caption RET
|
|
157 default: の絵 RET
|
|
158
|
|
159 これで隣のウィンドウに \epsinput 用の引数型付加関数が生成されま
|
|
160 す。
|
|
161
|
|
162
|
9
|
163 【できあがり】
|
|
164
|
54
|
165 言われた通りに正しく指示を与えると、お望みのお手軽関数が出来上
|
|
166 がります。これを切り取って、~/yatexhks.el にでも放り込みましょう。
|
|
167 本当はこれも自動化しようと思ったのですが、これに失敗すると命がい
|
|
168 くつあっても足りないので、やめておきました。第一それも面倒な人は、
|
|
169 野鳥なんか使っていないよね?
|
9
|
170
|
|
171
|
|
172 【最後に】
|
|
173
|
|
174 快適な関数を定義したなら、そしてそれを公開してもよいと思われたな
|
|
175 ら、幸福感に浸るだけにして、決して筆者まで送ったりしないで下さい。
|
|
176 yatexgen が作るんだから、ろくな関数じゃないことは分かってます:-p。
|
|
177
|
69
|
178 広瀬雄二
|
70
|
179 yuuji@yatex.org
|