emath BBS

新規発言一覧最新記事過去一覧検索HOME

No.8216  Re:\perlAddvec*
発言者: tDB
発言日: 2009 06/19 17:07
発言元: ntchba244017.chba.nt.ftth.ppp.infoweb.ne.jp
お示しの例と,私が Wiki に書いた例との違いがポイントです。
すなわち
    \unitlength=5mm
ではなく
    \setunitlength{5mm}
の違いです。
perl を用いる場合は,この違いは譲れません。
理由です。

1)   \unitlength=5mm の場合は,
 この時点で pt 換算による丸めが行われますから,有効数字は6桁となります。

2) \setunitlength{5mm} の場合は,"5mm" という文字列そのものが perl に渡され,
 単位換算も perl が行います。有効数字は perl の桁数です。

折角 perl で高精度の計算が行われても ul が6桁で渡されたのでは意味がありません。
面倒でも \setunitlength コマンドをご利用ください。
((ps)zahyou(*)環境を用いて [ul=...] オプションを与えた場合は,
 その右辺値がそのまま perl に渡されるようになりますから,
 \setunitlength コマンドを持ち出すには及びません。
 ただし,[ul=..] オプションを使わずに \unitlength を設定する場合は
 \setunitlength コマンドを使用しなければなりません。)

Pxy46sty.zip に同梱した emathpl.sty では,\setunitlength コマンドを用いずに
\perlAddvec* を呼び出した場合は,エラー終了するようにしました。メッセージは:
 perl を用いて単位換算を行う場合は,setunitlength コマンドをお使いください

▼関連発言

8214:\perlAddvec* [石原 守] 06/19 14:08
 └8216:Re:\perlAddvec* [tDB] 06/19 17:07
  └8217:Re[2]:\perlAddvec* [石原 守] 06/19 17:40<-last

Pass 保存


CGIROOM