yatex

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 diff
     1.1 --- a/docs/yatexadd.doc	Tue May 04 13:00:17 1993 +0000
     1.2 +++ b/docs/yatexadd.doc	Mon Oct 25 14:35:00 1993 +0000
     1.3 @@ -34,15 +34,84 @@
     1.4  	を定義するファイル名を yatexadd.el(またはバイトコンパイルした形式
     1.5  	のyatexadd.elc)にし、そのファイルを load-path 中に置いておけば、 
     1.6  	野鳥が自動的にロードします。それ以外のファイル名にする場合は、
     1.7 -	yatex-mode-hook に、付加関数を定義する Emacs-Lisp ファイルをロード
     1.8 -	するような仕掛けを書いておくのがよいでしょう。
     1.9 +	yatex-mode-hook に付加関数を定義する Emacs-Lisp ファイルをロードす
    1.10 +	るような仕掛けを書いておくのがよいでしょう。
    1.11  
    1.12  
    1.13 -【関数名】
    1.14 +【関数定義】
    1.15  
    1.16 -	  作成する付加関数名は、補完入力した名前の先頭に YaTeX: を付け足し
    1.17 -	たものにします。例えば(begin型補完の) tabular 環境に対して付加関数
    1.18 -	を作成したい場合は YaTeX:tabular という関数名で定義します。
    1.19 +	  付加関数には、各LaTeXコマンドのオプション引数を返す形式のもの、
    1.20 +	section型補完の引数を返すもの、の二種類があります。
    1.21 +
    1.22 +	  前者は、以下の例のように、begin型補完では\begin{環境名}の直後に
    1.23 +	付加する文字列、section型補完では LaTeX コマンド名と第一引数の間に
    1.24 +	位置する文字列、maketitle型補完では LaTeX コマンド名の直後に位置す
    1.25 +	る文字列を返すような関数です。便宜上この形の付加関数を、追加型付加
    1.26 +	関数と呼ぶことにします。
    1.27 +
    1.28 +	(例)	\begin{table}[ht]	(付加関数名 YaTeX:table)
    1.29 +		             ~~~~
    1.30 +		\put(100,200){}		(付加関数名 YaTeX:put)
    1.31 +		    ~~~~~~~~~
    1.32 +		\sum_{i=0}^{n}		(付加関数名 YaTeX:sum)
    1.33 +		    ~~~~~~~~~~
    1.34 +
    1.35 +	追加型付加関数は『LaTeXコマンド名の前に YaTeX: をつけた名前』で定
    1.36 +	義します。
    1.37 +
    1.38 +	  後者は、以下のようにsection型コマンドの引数となる文字列を返す
    1.39 +	関数です。この形の付加関数を引数型付加関数と呼ぶことにします。
    1.40 +
    1.41 +	(例)	\newcommand{\foo}{bar}	(付加関数名 YaTeX::newcommand)
    1.42 +			    ~~~~  ~~~
    1.43 +
    1.44 +	引数型付加関数は『LaTeXコマンド名の前に YaTeX:: をつけた名前』で定
    1.45 +	義します。また引数型付加関数が呼ばれる時には何番目の引数を入力して
    1.46 +	いるのかが引数として渡されます。したがって、引数型付加関数は整数の
    1.47 +	引数を一つ取るものとして定義し、その引数の値により処理を決定するこ
    1.48 +	とになります。
    1.49 +
    1.50 +
    1.51 +【定義例】
    1.52 +
    1.53 +	  例えば、tabular環境のフォーマットとして、いつでも {|c|c|c|} を入
    1.54 +	れるだけで良いのなら、
    1.55 +
    1.56 +		(defun YaTeX:tabular ()
    1.57 +		  "{|c|c|c|}")
    1.58 +
    1.59 +	とだけ書けばよく、前述の、複雑な定型 tabular フォーマットを挿入す
    1.60 +	るための関数を定義する場合は次のようにします。
    1.61 +
    1.62 +		(defun YaTeX:tabular ()
    1.63 +		  "{@{\\vrule width 1pt\\ }|||@{\\ \\vrule width 1pt}}")
    1.64 +
    1.65 +	この時、Emacs-Lisp 中の文字列では、\ 自身は \\ と表記することなど
    1.66 +	に注意して下さい。
    1.67 +
    1.68 +	  また、{} の中を、補完時に直接キーボードから読み込ませたい時は、
    1.69 +
    1.70 +		(defun YaTeX:tabular ()
    1.71 +		  (concat "{" (read-string "Rule: ") "}"))
    1.72 +
    1.73 +	などとすれば良いでしょう。
    1.74 +
    1.75 +	  次に、引数型付加関数として \newcommand の引数を読み込む関数を定
    1.76 +	義する場合を例示します。\newcommand の第一引数は新たに定義するコマ
    1.77 +	ンド名なので、必ず先頭に \ が来ます。第二引数はたいていの場合ミニ
    1.78 +	バッファでは編集しづらいような複雑な定義を書くので、何も補完しない
    1.79 +	方が良いでしょう。これを考慮して付加関数を定義すると以下のようなも
    1.80 +	のになるでしょう。
    1.81 +
    1.82 +		(defun YaTeX::newcommand (n)	;nは引数の位置
    1.83 +		  (cond
    1.84 +		   ((= n 1)			;第一引数ならコマンド名
    1.85 +		    (concat "\\" (read-string "Command: ")))
    1.86 +		   ((= n 2) "")			;第二引数なら何も入れない
    1.87 +		   (t nil)))
    1.88 +
    1.89 +	なお、引数型付加関数が nil を返した場合は、通常の引数入力関数が呼
    1.90 +	ばれます。
    1.91  
    1.92  
    1.93  【呼ばれ方】
    1.94 @@ -51,42 +120,8 @@
    1.95  	入力時に付加関数の存在を調べてから呼び出します。begin型補完の場合 
    1.96  	\begin{環境名} が自動入力された直後に呼び出されます。section型補完
    1.97  	では第一引数の補完の直前、maketitle型補完の場合は、コマンド名の直
    1.98 -	後(一つのスペースを挿入する直前)に呼び出されます。
    1.99 -
   1.100 -
   1.101 -【関数定義】
   1.102 -
   1.103 -	  begin型補完では、\begin{環境名}の直後に付加する文字列、section型
   1.104 -	補完では、LaTeXコマンド名と第一引数の間に位置する文字列、maketitle
   1.105 -	型補完では、LaTeXコマンド名の直後に位置する文字列を返すような関数
   1.106 -	を定義して下さい。
   1.107 -	(例)
   1.108 -		\begin{table}[ht]
   1.109 -		             ~~~~
   1.110 -		\put(100,200){}
   1.111 -		    ~~~~~~~~~
   1.112 -		\sum_{i=0}^{n} 
   1.113 -		    ~~~~~~~~~~
   1.114 -	たんに、いつでも {|c|c|c|} を入れるだけで良いのなら、
   1.115 -
   1.116 -		(defun YaTeX:tabular ()
   1.117 -		  "{|c|c|c|}")
   1.118 -
   1.119 -	とだけ、書けばよく、前述の、複雑な定型 tabular フォーマットを挿入
   1.120 -	するための関数を定義する場合は、次のようにします。
   1.121 -
   1.122 -		(defun YaTeX:tabular ()
   1.123 -		  "{@{\\vrule width 1pt\\ }|||@{\\ \\vrule width 1pt}}")
   1.124 -
   1.125 -	この時、Emacs-Lisp 中の文字列では、\ 自身は、\\ と表記することなどに
   1.126 -	注意して下さい。
   1.127 -
   1.128 -	  また、{} の中を、補完時に直接キーボードから読み込ませたい時は、
   1.129 -
   1.130 -		(defun YaTeX:tabular ()
   1.131 -		  (concat "{" (read-string "Rule: ") "}"))
   1.132 -
   1.133 -	などとすれば良いでしょう。
   1.134 +	後(一つのスペースを挿入する直前)に呼び出されます。引数型付加関数は、
   1.135 +	section型コマンドの引数の入力時にその都度呼ばれます。
   1.136  
   1.137  
   1.138  【参考】