TikZ 中的 \foreach 错误

TikZ 中的 \foreach 错误

在下面的 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} 

相关内容