\For

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

eclarith.sty
(丸め桁数指定オプションは emathC.sty で附加)

目的

実数変数の FOR ..... NEXT

書式

\For <#1>#2#3#4#5\Do#6

   #1 : オプション引数で,ループ制御変数値を四捨五入で丸める位置を指定
            通常は与えない。
            <2>と指定したときは,小数第3位を四捨五入し第2位までの数値をループ制御変数値とする
   #2 : ループ制御変数(実数型)
   #3 :     初期値
   #4 :     終り値(ただし,この値に対してループは実行されない)
   #5 :     変数の刻み値
            ( \Ifor と異なり,刻み値は必須の引数で必ず与えなければなりません。)
   #6 : ループ本体(実行する内容)

使用例

単純な使用例
【解説】
区間 [-2, 2) を 0.2 刻みに,放物線 y=x^2 上の点に \Kuromaru を打ちます。

  ループ継続条件は
        \x<2 (等号はつかない)
すなわち \x=1.8 までで,BASIC と異なります。

あれ?????
実行されないはずの \x=2 に対応する点 (2, 4) と思しき点に\Kuromaru が打たれていますね。
これは,丸め誤差の影響です。その辺りを分析します。
丸め誤差の累積
【解説】
        \For\x{-2}{2}{.2}\Do{\x\\}
における制御変数の値を追跡した結果です。
刻み値 .2 が少し小さめに近似されているようで,
    1.8 となるべきところが 1.79994
で,実行されないはずの
    2.0 が 1.99994
で継続条件
    \x < 2.0
を満たしてしまい,(2, 4) と思しき点に \Kuromaru がついたことになります。
制御変数を四捨五入
【解説】
\For に <1> オプションを附加し,制御変数 \x の値を
    小数第2位を四捨五入し,小数第1位までとする
ように指定しました。
その結果,終りは予定通り 1.8 となりました。
再び冒頭の例
【解説】
冒頭の例に <1> オプションを附加しました。
仕様通り \x は 1.8 で止まっています。
終値の調整
【解説】
\x=2.0 に対しても実行させたいときは,
\For ループの終値を 2.0 より少し大きめに設定しなければなりません。
注意
\For に対する <#1> オプションで用いている四捨五入機能は
fp パッケージ に依存しています。 fp パッケージは CTAN にあります: CTAN/macros/latex/contrib/fp
関連事項
\Cfor
\Ifor