해결 방법

해결 방법

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}

당신의 전문에.

관련 정보