回避策

回避策

MWE (TikZ マニュアルからコピー):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}

\begin{document}
\begin{tikzpicture}
  \tikzmath{
    int \x;
    for \k in {0,10,...,350}{
      if \k>260 then { let \c = orange; } else {
        if \k>170 then { let \c = blue; } else {
          if \k>80 then { let \c = red; } else {
            let \c = green; }; }; };
      {
        \path [fill=\c!50, draw=\c] (\k:0.5cm) -- (\k:1cm) --
        (\k+5:1cm) -- (\k+5:0.5cm) -- cycle;
      };
    };
  }
\end{tikzpicture}
\end{document}

次のエラー メッセージが表示されます。

! Undefined control sequence.
\tikz@math@if@@doifelse ...gfmathfloatparseactive 
                                                  \pgfmathfloattofixed {\pgf...
l.19   }

ifin を使用する他のコードでも同じ問題が発生しておりtikzmath、これは以前は問題なくコンパイルされていた TeX ファイルにも当てはまります。TikZ の現在のバージョン (MiKTeX) は壊れているのでしょうか?

私は Windows 10 で MikTeX 2.9 を使用していますが、念のため、パッケージは数分前に更新されました。

アップデート:もっと明確に言うと、この単純なtikzmathコードでも同じエラー メッセージが表示されます。

\tikzmath{
  \x = 42;
  if \x == 42 then {
    {\fill (0,0) circle (1cm);};
  };
}

答え1

これは PGF/TikZ のバグであり、バグトラッカーに報告されているはずです。私はあなたのためにそれを行い、バグも修正しました。回避策もチケットに記載されています。https://sourceforge.net/p/pgf/bugs/517/

観察しているものがバグであるかどうかわからない場合は、マニュアルの例を試してください。マニュアルの例が失敗した場合、それは間違いなくバグです。

回避策

追加するだけ

\usetikzlibrary{fpu}

あなたの序文に。

関連情報