名前: 北見 けん 日時: 2006-06-09 15:22:39 IPアドレス: 211.128.71.*
>>43350 > \hogedef の中に長文が入るので環境の方がいいかなと思い, > 上のようにしたのですが, 何がまずいのでしょうか? 問題点が二つあるようですね。 一つ目は、マクロの引数を与えるには \bgroup と \egroup は使えないということです。 ## 明示的なブレイス文字{}でないといけません。 ## さらに閉じブレイスを探しながら展開してくれるわけではないので、 ## 例え \end{hoge} の展開結果に閉じブレイスが現れるようにしてあっても駄目です。 二つ目は、ラベルに番号を割り当てるための \refstepcounter が環境のグループ内に あるので、環境が閉じた後におかれる \label にまでその効力が及ばないということです。 一つ目の問題は、“\end{hoge}”自体を引数の区切りとして利用すれば解決します。 ## 丁寧にやるなら \begin と \end の入れ子対応に注意したりしてけっこう面倒です。 二つ目の方は、\globaldefs に正の値を設定して回避するか、 ## \refstepcounter の内部処理のグローバル化による他への影響を査定する必要があります。 \label 処理を \hogedef の内部に取り込んでしまえば何とかなるでしょう。 ## この場合は本文中のマークアップ仕様を変更するか、厳密化しないといけないでしょう。 うまく説明できているでしょうか。
この書き込みへの返事: