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

yatex.org