yatex

view docs/yatexgen.doc @ 545:ea6956f10ce7

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