在 Tikz 循环中使用 foreach 命令的正确方法是什么?

在 Tikz 循环中使用 foreach 命令的正确方法是什么?

我正在尝试定义路径中的节点。我得出了以下无法编译的 TikZ 代码:

\begin{tikzpicture}
    [
   hlc/.style={circle,inner sep=5,draw}
]
 \def\odl{0,...,7};
 \path foreach \x in \odl { node[hlc] (\x) at (\x,\x) {\x}; }
\end{tikzpicture}

有人能指出我的代码有什么问题吗?提前谢谢。

答案1

循环的每次旋转都应产生有效的路径规范。但是由于循环内部有分号,因此在第一次旋转之后,它基本上会尝试理解可能\x是什么,并认为您正在尝试执行一些非 TikZ 代码和行程。实际上它正在尝试这样做

\path node[hlc] (0) at (0,0) {0} ; % Done with path but not with the loop
      node[hlc] (1) at (1,1) {1} ; 
      node[hlc] (2) at (2,2) {2} ; 

虽然实际上这不应该导致错误,但在循环内部时会导致错误。路径在循环结束后结束,因此分号应该放在括号外

\begin{tikzpicture}
    [
   hlc/.style={circle,inner sep=5,draw}
]
 \def\odl{0,...,7}
 \path foreach \x in \odl { node[hlc] (\x) at (\x,\x) {\x} };
\end{tikzpicture}

在此处输入图片描述

相关内容