&size(24){''\calcval''};
 計算を perl に外注し,結果を受け取ります。
#contents
#br

*定義されているスタイルファイル [#k5930020]
emathPl.sty

*書式 [#b11c6f2b]
\calcval[#1]#2#3
-[[#1>#format]]: perl の printf の書式指定~
デフォルトは [f] すなわち固定小数点形式の浮動小数点数
-#2: perl の計算式~
perl の文法で記述します。
TeX の制御綴りは展開されて perl に引き渡されます。
-#3: 結果を受け取る制御綴

*例 [#wc876ac3]
**基本例 [#l32076c0]
 perl を起動して計算をさせ,結果を受け取ります。
 計算式の部分は,そのまま perl に引き渡されますから,
 perl の文法に従って記述します。
 
#ref(calcval1.png)
**式に制御綴を含む場合 [#s0a8f97d]
 TeX の制御綴は展開されて perl に渡されますが,
 負の数の場合,注意が必要です。
 下の場合,エラーとなります。
#ref(error01.png)
 \aval-\bval は,展開されて 1--2 となって,perl に引き渡されますが,
 perl の文法エラーを惹起します。
 perl はエラーメッセージを出力しますが,TeX の統合環境の多くはこのエラーを無視します。
 正しい perl の式を作るには \bval を (...) で括ってやります。
 すなわち \aval-(\bval) とすれば,perl に引き渡される式は 1-(-2) となり,
 正しい結果が返ります。
#ref(error02.png)
-上の例で,\aval も括弧で括って~
  \calcval{(\aval)-(\bval)}~
としてもよいわけで,~
  perl に渡す制御綴は (....) で括れ~
が安全策です。

**書式指定 [#format]
 デフォルトでは,perl の printf の書式指定が %f となっていますが,
 これを変更するオプションが [...] です。
 ... の部分は,perl の printf の書式指定の先頭 `%' を除去したものを与えます。
 次の例は [.4f] として,小数点以下4桁を指定しています。
 なお,この機能を利用して四捨五入をするのは危険です。
 下の注意事項をご覧ください。
#ref(calcval2.png)
 戻り値として整数を指定するには,[d] をオプションに指定します。
 なお,整数の桁数が多いときに,3桁ごとにコンマを入れるには
 emathKs.sty で定義されている \ketakugiri を用います。
#ref(calcval3.png)
-perl の関数 printf の書式指定については,perl の解説書をご覧ください。~
例えば,「初めてのPerl」の場合~
  6.3.2 printf を使用した書式指定出力~
のところに解説があります。
 
*注意事項 [#note]
+このコマンドは,perl との連携機能を必要とします。~
したがって,platex を起動するさい~
   platex -shell-escape hoge.tex~
などど,起動オプション~
   -shell-escape~
を付加しなければなりません。~
詳しくは[[perlとの連携]]ページをご覧ください。~
(以前は,起動オプションを -sh と省略形で済ますことが出来ましたが,~
最近の platex では,省略形は許されなくなっています。)

+数値計算をするのが前提です。文字列計算などに用いることはできません。~
文字列計算・複雑な計算には[[\CalcVal>CalcVal]]を利用します。
+四捨五入をするのに書式指定を用いるのは危険です。
#ref(round.png)
--emathパッケージには,[[\EMround>EMround]] を用意しています。
--四捨五入をするには,FPパッケージの利用もあるでしょう。
#ref(fp-snap.png)
*関連事項 [#af900d5b]
+perl の関数 printf の書式指定については,perl の解説書をご覧ください。~
例えば,「初めてのPerl」の場合~
  6.3.2 printf を使用した書式指定出力~
のところに解説があります。
+perl との連携機能を用いると~
  作業用ファイル~
が作成されます。それが煩わしい場合は,それらをサブディレクトリに収納することが出来ます。~
  [[\EMworkfiledir コマンド>EMworkfiledir]]~
のページをご覧ください。
-[[\perlteisuuretu>teisuuretu]] - 複数のperlの計算式を定義
-[[\CalcVal>CalcVal]] - ベクトルなど複雑な計算式を定義
-[[EMcallperl環境]]
-[[数値計算]]
--[[実数計算(有限小数)>数値計算#zissuu]]
---[[\perlteisuuretu>teisuuretu]] - 複数のperlの計算式を定義
---[[\CalcVal>CalcVal]] - ベクトルなど複雑な計算式を定義
-[[点列の定義]]
RIGHT:&counter;

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS