如何为节点索引一组任意的标签?

如何为节点索引一组任意的标签?

例如我有以下代码:

\begin{tikzpicture}
\foreach \i in {0,2,4,6}{
    \foreach \j in {0,2,4}{
        \draw (\i,\j) -- (\i,\j+1) -- (\i+1,\j+1) -- (\i+1,\j) -- (\i,\j);
    }
}
\newcounter{mycount}
\setcounter{mycount}{1}
\foreach \y in {3.75,1.75,-0.25}
    \foreach \x in {0.5,2.3,4.5,6.5}
        \node at (\x,\y) {\arabic{mycount}\addtocounter{mycount}{1}};
\end{tikzpicture}

这将绘制 12 个矩形,并将它们标记为 1 到 12,因此当标签来自计数器时,我可以创建节点。

我的问题是——如果我有一组东西想放在每个盒子里,比如 {2,7,apple,pen},该怎么办?我如何在 \foreach 结构中索引它们,以便能够标记它们而不必指定每一个?

答案1

您可能正在寻找count可以在foreach循环中使用的密钥。

\documentclass[tikz,border=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
\path 
 foreach \X [count=\Y] in {2,7,apple,pen,cat,marmot,koala,squirrel,bear,duck,3,7}
 {({Mod(\Y-1,4)*2},{-int((\Y-1)/4)})
  node[draw,minimum width=1.8cm] {\X}};
\end{tikzpicture}
\end{document}

在此处输入图片描述

也可以说,count=\Y starting from 0但打字-1两次就比较省力。

相关内容