\calcval

計算を perl に外注し,結果を受け取ります。
 

定義されているスタイルファイル

emathPl.sty

書式

\calcval[#1]#2#3

基本例

perl を起動して計算をさせ,結果を受け取ります。
計算式の部分は,そのまま perl に引き渡されますから,
perl の文法に従って記述します。
calcval1.png

式に制御綴を含む場合

TeX の制御綴は展開されて perl に渡されますが,~
負の数の場合,注意が必要です。~
下の場合,エラーとなります。
error01.png
\aval-\bval は,展開されて 1--2 となって,perl に引き渡されますが,
perl の文法エラーを惹起します。
perl はエラーメッセージを出力しますが,TeX の統合環境の多くはこのエラーを無視します。
正しい perl の式を作るには \bval を (...) で括ってやります。
すなわち \aval-(\bval) とすれば,perl に引き渡される式は 1-(-2) となり,
正しい結果が返ります。
error02.png

書式指定

デフォルトでは,perl の printf の書式指定が %f となっていますが,
これを変更するオプションが [...] です。
... の部分は,perl の printf の書式指定の先頭 `%' を除去したものを与えます。
次の例は [.4f] として,小数点以下4桁を指定しています。
なお,この機能を利用して四捨五入をするのは危険です。
下の注意事項をご覧ください。
calcval2.png
戻り値として整数を指定するには,[d] をオプションに指定します。
なお,整数の桁数が多いときに,3桁ごとにコンマを入れるには
emathKs.sty で定義されている \ketakugiri を用います。
calcval3.png

注意事項

  1. このコマンドは,perl との連携機能を必要とします。
    したがって,platex を起動するさい
       platex -shell-escape hoge.tex
    などど,起動オプション
       -shell-escape
    を付加しなければなりません。
    詳しくはperlとの連携ページをご覧ください。
    (以前は,起動オプションを -sh と省略形で済ますことが出来ましたが,
    最近の platex では,省略形は許されなくなっています。)
  1. 数値計算をするのが前提です。文字列計算などに用いることはできません。
    文字列計算・複雑な計算には\CalcValを利用します。
  2. 四捨五入をするのに書式指定を用いるのは危険です。
    round.png
    • emathパッケージには,\EMround を用意しています。
    • 四捨五入をするには,FPパッケージの利用もあるでしょう。
      fp-snap.png

関連事項

  1. perl の関数 printf の書式指定については,perl の解説書をご覧ください。
    例えば,「初めてのPerl」の場合
      6.3.2 printf を使用した書式指定出力
    のところに解説があります。
  2. perl との連携機能を用いると
      作業用ファイル
    が作成されます。それが煩わしい場合は,それらをサブディレクトリに収納することが出来ます。
      \EMworkfiledir コマンド
    のページをご覧ください。
  3. \CalcVal
  4. EMcallperl環境?
  5. 数値計算
    7520

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS