名前: 北見 けん 日時: 2002-07-22 17:57:13 IPアドレス: 211.128.71.*
>>9564 マクロが引数をとるときに、 \macro{...} ならうまくいくが、 \macro\bgroup...} などだとうまくいかない、というような話題だと思います。 \bgroupなどなら定義の中に入れられますが、 バランスの取れていない括弧(例えば開きブレイスだけとか)は入れられませんから、 \bgroupで代用できたほうがいいのですね。 プリミティブのうちのいくつかは例外で、例えば \hbox\bgroup...} などでうまくいきますから、これを使ったのが しっぽ愛好家さんの最初の案でした。 バランスの取れていない括弧を無理やり定義の中に入れてしまうのが第二案ですね。 さて、他の方法として、以下のようなのもあります。 先に触れた例外のプリミティブには、 \toks1=\bgroup...} などというのもありますから、 \makeatletter \def\csABC{\afterassignment\@csABC\toks1=\bgroup} \def\@csABC{\expandafter\@@csABC\expandafter{\the\toks1}\egroup} \def\@@csABC#1{\csA{\csB{\csC#1}}} などとしても良いかと思います。
この書き込みへの返事: