MWE (aus dem TikZ-Handbuch kopiert):
\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}
Dies gibt mir die folgende Fehlermeldung:
! Undefined control sequence.
\tikz@math@if@@doifelse ...gfmathfloatparseactive
\pgfmathfloattofixed {\pgf...
l.19 }
Ich habe das gleiche Problem mit anderem Code, der if
in verwendet tikzmath
, und das gilt auch für TeX-Dateien, die vor einiger Zeit problemlos kompiliert wurden. Ist die aktuelle (MiKTeX-)Version von TikZ defekt?
Ich verwende MikTeX 2.9 unter Windows 10, die Pakete wurden vor ein paar Minuten aktualisiert, nur für den Fall.
AKTUALISIEREN:Nur um das klarer zu machen: selbst dieser einfache tikzmath
Code erzeugt die gleiche Fehlermeldung.
\tikzmath{
\x = 42;
if \x == 42 then {
{\fill (0,0) circle (1cm);};
};
}
Antwort1
Dies ist ein Fehler in PGF/TikZ und hätte im Bugtracker gemeldet werden sollen. Ich habe das für Sie getan und den Fehler auch behoben. Der Workaround wird auch im Ticket erwähnt.https://sourceforge.net/p/pgf/bugs/517/
Wenn Sie nicht sicher sind, ob es sich bei dem, was Sie beobachten, um einen Fehler handelt oder nicht, versuchen Sie es einfach mit einem Beispiel aus dem Handbuch. Wenn das Beispiel aus dem Handbuch fehlschlägt, handelt es sich definitiv um einen Fehler.
Problemumgehung
Einfach hinzufügen
\usetikzlibrary{fpu}
zu Ihrer Präambel.