# HG changeset patch # User yuuji # Date 730379093 0 # Node ID 49be9ccb0b65ba12d0a70ed0c40f34b3628fb767 # Parent 370a391533fd48129591fc6e6a8679098c99e934 Temporary dictionary. Learn the number of argument(section-type completion). Override kill-emacs. Patched posted to fj.sources,fj.editor.emacs,fj.comp.texhax diff -r 370a391533fd -r 49be9ccb0b65 docs/yatexadd.doc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/yatexadd.doc Mon Feb 22 11:04:53 1993 +0000 @@ -0,0 +1,74 @@ +------------------------------------------------------------------------ + 野鳥用付加関数の作成方法 +------------------------------------------------------------------------ +筆者註: ・付加関数の呼び出し方の仕様は、まだ模索段階です。 + ・yatexadd.el のサンプル関数仕様も、大きく変更する可能性があります。 + ・もし、本バージョンの yatexadd を手にされた場合は、今後の付加関数 + の仕様について、御意見をお聞かせください。 + ・とりあえず、begin型補完のみの対応です。 + + +【付加関数とは】 + + begin 型補完で、tabular 環境を入力している時に、「"c|c|c" とか、 + また、table 環境の入力時に"[tbp]" とかも一緒に入力すればいいのに」 + などと思うことはありませんか。もちろんこれを自動入力する関数は簡単 + にサポートできるでしょう。 + + しかし、tabular 環境に限らず、LaTeX の環境の引数には、各人お決ま + りのフォーマットがあるものです。たとえば凝った表を書く時の tabular + 環境の引数は、かなり複雑なので、上のような自動入力関数よりも、 + + "{@{\vrule width 1pt\ }|||@{\vrule width 1pt}}" + + を挿入するだけの単純な関数のほうが、嬉しい人もいるでしょう。あるい + は、「そんなの要らない。他の tabular をコピーして来たほうが早い。」 + と思う人もいるでしょう。 + + YaTeX の付加関数は、あらかじめ○○環境用のお仕着せの特別関数を用 + 意しておくのではなく、○○環境用の特別関数が欲しくなったら独自の関 + 数を定義する、というコンセプトに基づくもので、付加関数の登録のため + の手続きをすることなく、関数を定義したその瞬間から使えるようになり + ます。「必要なのは、defun だけ」です。 + + +【準備】 + + さすがに、関数を書くだけでは使えません:-)。yatex-mode 起動時には、 + その関数を定義したファイルがロードされていなくてはなりません。 + yatex-mode-hook に、付加関数を定義する Emacs-Lisp ファイルをロード + するような仕掛けを書いておくのがよいでしょう。 + + +【関数名】 + + 作成する付加関数名は、補完入力した名前の先頭に YaTeX: を付け足し + たものにします。例えば(begin型補完の) tabular 環境に対して付加関数 + を作成したい場合は YaTeX:tabular という関数名で定義します。 + + +【呼ばれ方】 + + begin型補完の場合 \begin{環境名} が自動入力された直後に呼び出さ + れます。 + + +【参考】 + + 付加関数の定義の例を yatexadd.el に用意しました。実際に独自の付 + 加関数を定義する時の参考として下さい。 + + +【最後に】 + + 快適な関数を定義したなら、そしてそれを公開してもよいと思われたな + ら、筆者までお送り下さい。次の yatexadd.el に取り込んで行きたいと + 思います。 + +【註】 + + yatexadd は βversionです。 + + 広瀬雄二 + yuujI@ae.keio.ac.jp + pcs39334(ASCII-NET) diff -r 370a391533fd -r 49be9ccb0b65 yatex.el Binary file yatex.el has changed diff -r 370a391533fd -r 49be9ccb0b65 yatex.new --- a/yatex.new Tue Feb 16 08:51:15 1993 +0000 +++ b/yatex.new Mon Feb 22 11:04:53 1993 +0000 @@ -2,6 +2,13 @@ Yet Another tex-mode for Emacs yatex.el 各バージョンの変更点について。 +1.38: YaTeX-nervous が t の時、一時的、またはカレントディレクトリでのみ + 有効なテンポラリ辞書が利用可能。 + section型補完に引数の数も埋め込み、これも学習する。 + lprフォーマットに %f,%t がないときは、From,To を聞かない。 + \includeonlyで指定した二つ目以降のファイルへもジャンプ可能に。 + [prefix] i の桁揃え時に検索するitemの正規表現を指定可能にした。 + 1.37: YaTeX-kill-* の、%#BEGIN/%#END対応。 対応する環境へのジャンプで、ネストした環境を正しく検出。 verbatim 環境では " は " のまま入力。 diff -r 370a391533fd -r 49be9ccb0b65 yatexadd.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/yatexadd.el Mon Feb 22 11:04:53 1993 +0000 @@ -0,0 +1,59 @@ +;;; -*- Emacs-Lisp -*- +;;; YaTeX add in functions. +;;; yatexadd.el rev.2 +;;; (c)1991-1993 by HIROSE Yuuji.[yuuji@ae.keio.ac.jp] +;;; Last modified Fri Feb 5 09:36:06 1993 on gloria + +(provide 'yatexadd) + +;;; +;;Sample functions for LaTeX environment. +;;; +(defvar YaTeX:tabular-default-rule + "@{\\vrule width 1pt\\ }c|c|c@{\\ \\vrule width 1pt}" + "*Your favorite default rule format." +) +(defun YaTeX:tabular () + "YaTeX add in function for tabular environment." + (let (bars (rule "") (j 0) loc) + (setq bars (string-to-int (read-string "Number of `|': "))) + (if (> bars 0) + (while (< j bars) (setq rule (concat rule "|")) (setq j (1+ j))) + (setq rule YaTeX:tabular-default-rule)) + (setq rule (read-string "rule format: " rule)) + + (insert (format "{%s}" rule)) + (message "")) +) + +(defun YaTeX:table () + (let ((pos "")) + (message "Position []:") + (while (not (string-match + (setq loc (read-key-sequence (format "Position [%s]: " pos))) + "\r\^g\n")) + (cond + ((string-match loc "htbp") + (if (not (string-match loc pos)) + (setq pos (concat pos loc)))) + ((and (string-match loc "\C-h\C-?") (> (length pos) 0)) + (setq pos (substring pos 0 (1- (length pos))))) + (t + (ding) + (message "Please input one of `htbp'.") + (sit-for 3)))) + (if (string= pos "") nil + (insert "[" pos "]"))) +) + +(defun YaTeX:description () + "Truly poor service:-)" + (setq single-command "item[]") +) + +(defun YaTeX:itemize () + "It's also poor service." + (setq single-command "item") +) + +(fset 'YaTeX:enumerate 'YaTeX:itemize)