名前: 北見 けん 日時: 2007-11-09 09:50:24 IPアドレス: 211.128.71.*
>>50131 私のところの古い環境では、レジスタの値に変化は出ませんでした。 (c:/usr/local/share/texmf/tex/latex/tools/calc.sty Package: calc 1998/07/07 v4.1b Infix arithmetic (KKT,FJ) という古いものです。この calc.sty の中には \@settodim の書き換えはないようです。 >>50137 > #それにしてもどうしてこういう定義をするかな・・・ どんなものなのか気になりますが、 新しいものをダウンロードが億劫なので今回は見送ります。 >>50139 > 「\dimen@??は別に汎用のレジスタというわけではない」という認識で > よろしいでしょうか. そうではなくて、 「汎用レジスタだから、誰がどこでどう使っているかわかったものじゃない」 ということでしょう。 他の方も仰っていますが、\settoheight などは他人が作ったマクロなので、 内部で汎用レジスタが使われて、値を復元してくれていないかもしれないというわけです。 また、もっと「プリミティブ」に処理する方法というのは素朴に考えるというようなことではなく、 直接プリミティブを使って、 \begingroup \setbox\@tempboxa=\hbox{$\mathstrut$}% \edef\temp{\endgroup \dimen@=\the\ht\@tempboxa \dimen@i=\the\dp\@tempboxa \dimen@ii=\the\ht\@tempboxa }% \temp のようにすればよいということだと思います。 ただし、latex.ltx によると \dimendef\dimen@i=1 % global only などと規定されていますが。
この書き込みへの返事: