名前: トノ 日時: 2002-08-03 12:19:29 IPアドレス: 202.219.232.*
>>9866 》 \ruleと\@tempdimaや\@tempdimb,\@tempdimcですが 》 引数にこれらのdimenを使うまずいことが起こりえます. 身に覚えがあります。 今回も「確か \rule の引数に \@tempdima はまずかったはず」と思いながら、 とりあえず書いてみたら期待どおり動いたので、少々怪訝に思いながらもそのま まアップしたような次第です。 改めて latex.ltx での \rule(というより、その下請けマクロの \@rule) の 定義を調べてみると、\rule の第1引数(オプション引数)を \@tempdima に、 第2引数および第3引数をそれぞれ \@tempdimb、\@tempdimc にそのまま代入して います。今回の私のコードは、オプション引数に \@tempdima なので、\rule の 側では \@tempdima の値を \@tempdima に代入することになり、問題は顕在化し なかったということのようです。 この手の落とし穴で、オプション引数をとるコマンドの引数に \reserved@? と いうのもトラブルの元になるとか、いろいろ経験してはいるのですが、なかなか きっちりと頭に入らないので、マクロを書くたびに試行錯誤するような羽目になっ てしまいます。パソコンのメモリーやハードディスクは気軽に増設できますが、 人間の頭もそうなってくれないものでしょうかねぇ。
この書き込みへの返事: