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 }
if
我對使用的其他程式碼也有同樣的問題tikzmath
,這也適用於不久前編譯時沒有問題的 TeX 檔案。目前 (MiKTeX) 版本的 TikZ 是否已損壞?
我在 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}
到你的序言。