名前: トノ 日時: 2001-10-02 12:19:17 IPアドレス: 150.35.254.*
>>2569 とりあえず気がつくのは、マクロ定義が「\hbox0」で 終わっているので、マクロの直後に数字がくると それがレジスター番号の一部と認識されてしまうことですね。 解決策は、定義の最後に空白を1つでしょうか。 また、スクリプト中で使用すると、行列が上にずれたり、 括弧の丸みが違ってきたりします。これは、 マクロ定義の最初の方でボックス・レジスターに代入するときに、 無条件にテキストスタイルで組んでいるからでしょう。 こちらも修正するとなると、次のようになるでしょうか。 \makeatletter \def\tr#1{\mathchoice{\tr@0{#1}}{\tr@1{#1}}{\tr@2{#1}}{\tr@3{#1}}} \def\tr@#1#2{\setbox0\hbox{$ \ifcase#1 \displaystyle\or\textstyle\or \scriptstyle\or\scriptscriptstyle\fi #2 $} \setbox2\null \ht2\ht0 \dp2\dp0 \box2^t \! \box0 } \makeatother 奥村先生は \makeatletter を使わずにすませるように 書かれたのだと思いますが、下請けマクロを使うようにしたので、 私の方はあえて \makeatletter しています。 \mathchoice なんて殆ど使ったことがないので、あまり自信が ありませんが・・・
この書き込みへの返事: