Mercurial > hgrepos > hgweb.cgi > 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 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型コマンドの引数の入力時にその都度呼ばれます。 【参考】