diff docs/yatexadd.doc @ 12:a7f397790cdc

Revise YaTeX-typeset faster. Optimize window selection of error-jump.
author yuuji
date Mon, 25 Oct 1993 14:35:00 +0000
parents c746646cecf5
children b7b023a74293
line wrap: on
line diff
--- a/docs/yatexadd.doc	Mon Sep 20 08:56:09 1993 +0000
+++ b/docs/yatexadd.doc	Mon Oct 25 14:35:00 1993 +0000
@@ -34,15 +34,84 @@
 	を定義するファイル名を yatexadd.el(またはバイトコンパイルした形式
 	のyatexadd.elc)にし、そのファイルを load-path 中に置いておけば、 
 	野鳥が自動的にロードします。それ以外のファイル名にする場合は、
-	yatex-mode-hook に、付加関数を定義する Emacs-Lisp ファイルをロード
-	するような仕掛けを書いておくのがよいでしょう。
+	yatex-mode-hook に付加関数を定義する Emacs-Lisp ファイルをロードす
+	るような仕掛けを書いておくのがよいでしょう。
+
+
+【関数定義】
+
+	  付加関数には、各LaTeXコマンドのオプション引数を返す形式のもの、
+	section型補完の引数を返すもの、の二種類があります。
+
+	  前者は、以下の例のように、begin型補完では\begin{環境名}の直後に
+	付加する文字列、section型補完では LaTeX コマンド名と第一引数の間に
+	位置する文字列、maketitle型補完では LaTeX コマンド名の直後に位置す
+	る文字列を返すような関数です。便宜上この形の付加関数を、追加型付加
+	関数と呼ぶことにします。
+
+	(例)	\begin{table}[ht]	(付加関数名 YaTeX:table)
+		             ~~~~
+		\put(100,200){}		(付加関数名 YaTeX:put)
+		    ~~~~~~~~~
+		\sum_{i=0}^{n}		(付加関数名 YaTeX:sum)
+		    ~~~~~~~~~~
+
+	追加型付加関数は『LaTeXコマンド名の前に YaTeX: をつけた名前』で定
+	義します。
+
+	  後者は、以下のようにsection型コマンドの引数となる文字列を返す
+	関数です。この形の付加関数を引数型付加関数と呼ぶことにします。
+
+	(例)	\newcommand{\foo}{bar}	(付加関数名 YaTeX::newcommand)
+			    ~~~~  ~~~
+
+	引数型付加関数は『LaTeXコマンド名の前に YaTeX:: をつけた名前』で定
+	義します。また引数型付加関数が呼ばれる時には何番目の引数を入力して
+	いるのかが引数として渡されます。したがって、引数型付加関数は整数の
+	引数を一つ取るものとして定義し、その引数の値により処理を決定するこ
+	とになります。
 
 
-【関数名】
+【定義例】
+
+	  例えば、tabular環境のフォーマットとして、いつでも {|c|c|c|} を入
+	れるだけで良いのなら、
+
+		(defun YaTeX:tabular ()
+		  "{|c|c|c|}")
+
+	とだけ書けばよく、前述の、複雑な定型 tabular フォーマットを挿入す
+	るための関数を定義する場合は次のようにします。
+
+		(defun YaTeX:tabular ()
+		  "{@{\\vrule width 1pt\\ }|||@{\\ \\vrule width 1pt}}")
+
+	この時、Emacs-Lisp 中の文字列では、\ 自身は \\ と表記することなど
+	に注意して下さい。
+
+	  また、{} の中を、補完時に直接キーボードから読み込ませたい時は、
 
-	  作成する付加関数名は、補完入力した名前の先頭に YaTeX: を付け足し
-	たものにします。例えば(begin型補完の) tabular 環境に対して付加関数
-	を作成したい場合は YaTeX:tabular という関数名で定義します。
+		(defun YaTeX:tabular ()
+		  (concat "{" (read-string "Rule: ") "}"))
+
+	などとすれば良いでしょう。
+
+	  次に、引数型付加関数として \newcommand の引数を読み込む関数を定
+	義する場合を例示します。\newcommand の第一引数は新たに定義するコマ
+	ンド名なので、必ず先頭に \ が来ます。第二引数はたいていの場合ミニ
+	バッファでは編集しづらいような複雑な定義を書くので、何も補完しない
+	方が良いでしょう。これを考慮して付加関数を定義すると以下のようなも
+	のになるでしょう。
+
+		(defun YaTeX::newcommand (n)	;nは引数の位置
+		  (cond
+		   ((= n 1)			;第一引数ならコマンド名
+		    (concat "\\" (read-string "Command: ")))
+		   ((= n 2) "")			;第二引数なら何も入れない
+		   (t nil)))
+
+	なお、引数型付加関数が nil を返した場合は、通常の引数入力関数が呼
+	ばれます。
 
 
 【呼ばれ方】
@@ -51,42 +120,8 @@
 	入力時に付加関数の存在を調べてから呼び出します。begin型補完の場合 
 	\begin{環境名} が自動入力された直後に呼び出されます。section型補完
 	では第一引数の補完の直前、maketitle型補完の場合は、コマンド名の直
-	後(一つのスペースを挿入する直前)に呼び出されます。
-
-
-【関数定義】
-
-	  begin型補完では、\begin{環境名}の直後に付加する文字列、section型
-	補完では、LaTeXコマンド名と第一引数の間に位置する文字列、maketitle
-	型補完では、LaTeXコマンド名の直後に位置する文字列を返すような関数
-	を定義して下さい。
-	(例)
-		\begin{table}[ht]
-		             ~~~~
-		\put(100,200){}
-		    ~~~~~~~~~
-		\sum_{i=0}^{n} 
-		    ~~~~~~~~~~
-	たんに、いつでも {|c|c|c|} を入れるだけで良いのなら、
-
-		(defun YaTeX:tabular ()
-		  "{|c|c|c|}")
-
-	とだけ、書けばよく、前述の、複雑な定型 tabular フォーマットを挿入
-	するための関数を定義する場合は、次のようにします。
-
-		(defun YaTeX:tabular ()
-		  "{@{\\vrule width 1pt\\ }|||@{\\ \\vrule width 1pt}}")
-
-	この時、Emacs-Lisp 中の文字列では、\ 自身は、\\ と表記することなどに
-	注意して下さい。
-
-	  また、{} の中を、補完時に直接キーボードから読み込ませたい時は、
-
-		(defun YaTeX:tabular ()
-		  (concat "{" (read-string "Rule: ") "}"))
-
-	などとすれば良いでしょう。
+	後(一つのスペースを挿入する直前)に呼び出されます。引数型付加関数は、
+	section型コマンドの引数の入力時にその都度呼ばれます。
 
 
 【参考】

yatex.org