关于使用 foreach 语法在 tikz 中绘制 node 的一个问题

发布于 2022-08-02 10:34:05

我试图使用以下方法输出一些 node:

\begin{tikzpicture}

\foreach[count=\m] \x in{0,2}
\foreach[count=\n] \y in{0,-1}
{\coordinate(a\n\m)at(\x,\y);}
\foreach \x/\y in{
a11/A,a12/B,
a21/C,a22/D}
{\node at(\x){\y};}

\end{tikzpicture}

我的目的是输出类似这样的图baa9c10de5a6dd8016df3f588cedc9d6.png
现在用以上代码实现了,但我的问题是
能否借助 foreach 语法在输入了坐标变量之后,可以再构造一个变量 z 作为每个 node 的标签变量(图中的A,B,C...) 然后这个标签变量可以关联对应的坐标,使得当给 z 赋值后,每个node 都有正确的标签。
而不是像以上代码还需要a11/A,a22/B,...这样的手动输入。

实际上最终的目的是:构造一个类似于 tikz 中 matrix 模块的一个模块。它可以快速的输入一些排列类似矩阵的 node,但要比原 matrix 模块语法更简洁。原matrix 模块需要在每行每列输入具体的 node 代码(当然也可以是其他类型的图形),但这个新定义的模块只需输入好每行、列的间距(最好可以单独控制某两行、列的间距),以及输入所有的元素标签,就可以把每个标签对应到正确的坐标位置,输出所有的 node,并按照a11,a12,...,a21,a22,...这样的命名形式命名每个 node.

查看更多

关注者
0
被浏览
114
1 个回答
寄存器
寄存器 2022-08-02

可以试试tabularray宏包

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览