名前: みなも 日時: 2006-01-14 19:34:00 IPアドレス: 220.209.225.*
>>40663 多分中級以上の LaTeX 解説書には載っていると思うのですが, \newenvironment{環境名}{開始定義}{終了定義} は,おおざっぱに言って, \def\環境名{開始定義} \def\end環境名{終了定義} と同じです。(実際には \def に \long がついていたりしているのですが, 細かいところは無視します。--- 定義にみだりに \long をつけるのを嫌う 人もいますし --- 僕もだけど。) ですので, \newenvironment{wakut}[1]{開始定義}{終了定義} は \def\wakut#1{開始定義} \def\endwakut{終了定義} と同じと思ってください。実際これで wakut 環境が使えるようになります。 好みの問題かも知れませんが僕自身は \newenvironment をほとんど使いません。 理由はオプションつけまくりのマクロや環境をよく作るためです。 \def で作る方がオプションのデリミタをいじったり,オプションの位置を 変えられたりと,柔軟に対処できるからです。 ( [ ] と < > と ( ) と | = = > ってなオプションをもつマクロまで 作ったことがある^_^;; 図形まわりに手を出すと設定項目が多くて。。。) 安田 さんがどこまで深入りなさる気があるのかで話が変わってきますが, 「既存の出版物をエミュレートするようなスタイルを作りたい」 というのは結構「ディープ」な要求ですので,もしそういった目標があるなら, 中級以上のマクロ作成技術の載った本を熟読されるべきと思います。 (例:吉永さんと本田さんの本 --- LaTeX2e マクロ&クラス プログラミング基礎解説 --- なら,上記の知識は第4章の初めに載ってます) あるいは latex.ltx の中の実際の定義を読んでみるとか。(昔解説本がTeXブック と「オレンジ本」ぐらいしかなかった頃は LaTeX のソースが参考書でした。 事実今回のこの知識は,昔 \newcommand や \newenvironment にオプション引数 がなかった時代に,LaTeX のソースを読んで知った知識です。)
この書き込みへの返事: