\calcval

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

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

emathPl.sty

書式

\calcval[#1]#2#3

  • #1: perl の printf の書式指定
    デフォルトは [f] すなわち固定小数点形式の浮動小数点数
  • #2: perl の計算式
    perl の文法で記述します。 TeX の制御綴りは展開されて perl に引き渡されます。
  • #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
  • 上の例で,\aval も括弧で括って
      \calcval{(\aval)-(\bval)}
    としてもよいわけで,
      perl に渡す制御綴は (....) で括れ
    が安全策です。

書式指定

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

注意事項

  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 コマンド
    のページをご覧ください。

添付ファイル: fileerror02.png 418件 [詳細] fileerror01.png 418件 [詳細] filefp-snap.png 377件 [詳細] fileround.png 433件 [詳細] filecalcval3.png 409件 [詳細] filecalcval2.png 389件 [詳細] filecalcval1.png 412件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-04-20 (土) 01:08:55 (2259d)