MWE (copiado do manual 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}
Isso me dá a seguinte mensagem de erro:
! Undefined control sequence.
\tikz@math@if@@doifelse ...gfmathfloatparseactive
\pgfmathfloattofixed {\pgf...
l.19 }
Tenho o mesmo problema com outro código que uso if
in tikzmath
e isso também se aplica a arquivos TeX que costumavam compilar sem problemas há algum tempo. A versão atual (MiKTeX) do TikZ está quebrada?
Estou usando o MikTeX 2.9 no Windows 10, os pacotes foram atualizados há alguns minutos, só para garantir.
ATUALIZAR:Só para deixar isso mais claro - até mesmo esse tikzmath
código simples fornece a mesma mensagem de erro.
\tikzmath{
\x = 42;
if \x == 42 then {
{\fill (0,0) circle (1cm);};
};
}
Responder1
Este é um bug no PGF/TikZ e deveria ter sido relatado no bugtracker. Eu fiz isso para você e também corrigi o bug. A solução alternativa também é mencionada no tickethttps://sourceforge.net/p/pgf/bugs/517/
Se você não tem certeza se o que está observando é um bug ou não, tente um exemplo do manual. Se o exemplo do manual falhar, é definitivamente um bug.
Gambiarra
Basta adicionar
\usetikzlibrary{fpu}
ao seu preâmbulo.