我正在尝试在 foreach 循环中使用变量。这会让事情变得简单很多,因为我只需要更改一个值,多个循环就会受到影响。
像这样:
\begin{tikzpicture}[y=-1cm]
\pgfmathsetmacro\end{2}
\foreach \x in {0,...,\end}{
%do something
}
\foreach \x in {1,...,\end}{
%do something
}
\end{tikzpicture}
问题是,当我使用这个时,我得到了很多与这个 tikZ 图像无关的错误。大部分都Something's wrong--perhaps a missing \item.
像是有什么东西坏了。
非常感谢
答案1
您正在\end
与指令相同的分组级别上进行重新定义\end{tikzpicture}
。因此,当 TeX 看到时,\end{tikzpicture}
它将遵循您的重新定义并将其替换为
2.0{tikzpicture}
你知道为什么你的选择并不好吗?
使用不同的名称,例如有很多\END
。但实际上应该是
\pgfmathtruncatemacro{\END}{2}
否则您将得到2.0
并且循环将使用浮点数。
例子:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\pgfmathtruncatemacro\END{2}
\foreach \x in {0,...,\END}{
\draw(\x,1)--(\x,0);
}
\end{tikzpicture}
\end{document}