例如我有以下代码:
\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
两次就比较省力。