Newer
Older
yatex / docs / yatexgen.doc
@yuuji yuuji on 9 Apr 2000 5 KB Fix makefile for Windows
-----------------------------------------------------------------------------
			野鳥用付加関数を自動的に作ろう!
-----------------------------------------------------------------------------

【はじめに】

	  まず、yatexadd.doc には目を通して下さい。それを読んで、なにか独
	自の関数をすぐに作りたくなったあなたには、このドキュメントも、
	yatexgen.el も必要有りません。しかし、Emacs-Lisp をよく知らないた
	め、どのように作ってよいのかピンと来ない方のために、野鳥自身に付加
	関数を自動的に作らせる時の説明をするのが、このドキュメントです。

	  ただ、自動的に作るわけですから、気の利いた関数などは作れません。
	\documentstyle{} を入れる時に、オプション([twocolumn,12pt]とか)を
	自動的にキーボードから読み込むようにする程度のものだけなので、それ
	以上を望む場合は、ちゃんと yatexadd.el を参考にして、すごいのを作
	りましょう:-)。


【作り方その1】

	  Emacs-Lispなんか全然知らないよ〜んという人向け:

		M-x YaTeX-generate ぺし

	  あとは、画面に出て来る指示通りに操作して下さい。これを無視してい
	いかげんに操作すると、とんでもないことになります(なんだろう?)。失
	敗した、と思ったら、^G して最初からやり直すのが無難です。


【作り方その2】

	  他の付加関数を見て何をやってるかの想像が付く人、あるいは 
	Emacs-Lisp は知ってるが単に作るのが面倒な人向け:

		M-x YaTeX-generate-simple RET

	  こっちでは追加型付加関数と引数型付加関数(yatexadd.docもちゃんと
	読んでね;-)の両方が作れます(その1は追加型しか作れない)。

	  では、例として次のような LaTeX コマンドがあったとしましょう。
	(実際にはないよー)

		\epsinput[t](250,50){hoge.eps}{plain}{ほげほげの絵}
		         (A)  (B)     (1)      (2)      (3)
		(A)位置を指定するオプション引数(なくても良い)
		   t(top) b(bottom) l(left) r(right) のどれかが入る
		(B)枠の最大の大きさ
		(1)第1引数は取り込むEPSファイル名
		(2)第2引数は取り込む時に
			plain		何もしない
			frame		枠を付ける
			dframe		二重枠を付ける
		   のどれかのスタイルを選べたりする
		(3)絵に付けるキャプションを指定

	早速付加関数を作りましょう。M-x YaTeX-generate-simple とすると

		Making add-in function for (default ???): epsinput RET

	と聞いて来るので何用の付加関数を作るか答えます。さらに

		(o)追加型? (a)引数型?

	と、聞いて来るのでどちらを作るか答えます。ではそれぞれの場合につい
	て例を追ってみましょう。

  (o)追加型付加関数を作る

	(A),(B)の部分はオプション引数なので、追加型付加関数で補完します。
	(1)〜(3)は実際の引数なので引数型付加関数で補完します。では(A)を補
	完するための関数を作りましょう。

		M-x YaTeX-generate-simple RET
		epsinput RET
		o

	すると次のメニューが出ます。

Read type(1): (S)tring (C)omplete (F)ile ([)option (P)osition co(O)rd. (q)uit

	「Read type(1)」というのは「1番目のオプションの補完スタイルはなあ
	に?」という意味です。補完スタイルには以下のものがあります。

		String		普通の文字列を読み込む
		Complete	いくつかの候補の中から読み込む
		File		ファイル名を読み込む
		Option		オプション引数を読む(省略すると[]がつかない)
		Position	場所指定オプションを読む([htbp] みたいなの)
		Coord.		座標を読み込む
		Quit		おしまい

	さて(A)はEPSファイルを配置する場所指定オプションなので補完タイプは 
	Position、さらにその候補は t, b, l, r のどれかなので、以下のように
	操作します。

		Read type(1).... 		p
		Acceptable characters:		tblr RET

	次の(B)は座標なので補完タイプは coOrd. 最大サイズと言う意味のプロ
	ンプトを出したいので次のようにします。

		Read type(2)....		o
		Prompt for coordinates:		Max size RET

	もうオプション引数はないので、quitを選びます。

		Read type(3)....		q

	これで隣のウィンドウに \epsinput 用の追加型付加関数が生成されます。

  (a)引数型付加関数を作る

	  さて \epsinput の引数の種別は順に、EPSファイル名、枠付スタイル、
	キャプション文字列でした。これらを読み込む(引数型)付加関数を作りま
	しょう。

		M-x YaTeX-generate-simple RET
		epsinput RET
		a

	すると引数の数を聞いて来るのでそれに答えます。

		How many arguments?: 3 RET

	すると第1引数について補完タイプを聞いて来るので、「ファイル名(f)」
	を選び、ファイル名を読む時に出したいプロンプト文字列を入れます。

		Read type(1)....		f
		Prompt for argument#1		EPS file name RET

	第2引数は複数候補から選択するので補完タイプは Completion。

		Read type(2)....		c
		Prompt for argument#2		Include style RET

	すると全候補の入力を促すので、順次入力し最後にRETを空打ちします。

		Item[1](RET to exit):		plain RET
		Item[2](RET to exit):		frame RET
		Item[3](RET to exit):		dframe RET
		Item[4](RET to exit):		RET

	さらに補完候補以外の選択を認めるかを聞いて来るので、y か n で答え
	ます。この場合 plain, frame, dframe 以外は選べないので

		Require match? (y or n)		y

	のように y と答えます。

	最後の引数は単に文字列を読めば良いので、補完タイプは String。
	「default:」ではミニバッファで入力する時にデフォルトで入力されてい
	る文字列を入れます。必要なければRETを空打ちします。

		Read type(3)....		s
		Prompt for argument#3		Caption RET
		default:			の絵 RET

	  これで隣のウィンドウに \epsinput 用の引数型付加関数が生成されま
	す。


【できあがり】

	  言われた通りに正しく指示を与えると、お望みのお手軽関数が出来上
	がります。これを切り取って、~/yatexhks.el にでも放り込みましょう。
	本当はこれも自動化しようと思ったのですが、これに失敗すると命がい
	くつあっても足りないので、やめておきました。第一それも面倒な人は、
	野鳥なんか使っていないよね?


【最後に】

	  快適な関数を定義したなら、そしてそれを公開してもよいと思われたな
	ら、幸福感に浸るだけにして、決して筆者まで送ったりしないで下さい。
	yatexgen が作るんだから、ろくな関数じゃないことは分かってます:-p。

								広瀬雄二
							yuuji@yatex.org