在下面的 MWE 中
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i in {0, 1, 2, 3}
\draw (\i, 0) rectangle +(0.5, 0.5);
% \draw (\i, 1) rectangle +(0.5, 0.5);
% Error if above line is uncommented:
% ! Undefined control sequence.
% \pgfmath@dimen@ ...men@@ #1=0.0pt\relax \pgfmath@
\end{tikzpicture}
\end{document}
该文件使用 pdflatex 进行编译,但如果取消注释行,则会出现 MWE 中指出的错误。
我知道我做的有些愚蠢,但作为 TikZ 的偶尔用户,我不确定这是什么。感谢您的解释。
答案1
要在循环内包含多个\draw
(或类似)内容,必须将它们括在括号({}
)中:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i in {0, 1, 2, 3} {
\draw (\i, 0) rectangle +(0.5, 0.5);
\draw (\i, 1) rectangle +(0.5, 0.5);
}
\end{tikzpicture}
\end{document}
答案2
我同意 Torbjørn 的回答,但就你的情况而言,可以编写下一个代码。我只\draw
在一条路径上使用一个命令。我认为了解什么是路径对于正确使用 TikZ 很重要。路径的结尾由;
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \i in {0, 1, 2, 3}
\draw (\i, 0) rectangle +(0.5, 0.5)
(\i, 1) rectangle +(0.5, 0.5);
\end{tikzpicture}
\end{document}