我试图使用以下方法输出一些 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}
我的目的是输出类似这样的图
现在用以上代码实现了,但我的问题是:
能否借助 foreach 语法在输入了坐标变量之后,可以再构造一个变量 z 作为每个 node 的标签变量(图中的A,B,C...) 然后这个标签变量可以关联对应的坐标,使得当给 z 赋值后,每个node 都有正确的标签。
而不是像以上代码还需要a11/A,a22/B,...
这样的手动输入。
实际上最终的目的是:构造一个类似于 tikz 中 matrix 模块的一个模块。它可以快速的输入一些排列类似矩阵的 node,但要比原 matrix 模块语法更简洁。原matrix 模块需要在每行每列输入具体的 node 代码(当然也可以是其他类型的图形),但这个新定义的模块只需输入好每行、列的间距(最好可以单独控制某两行、列的间距),以及输入所有的元素标签,就可以把每个标签对应到正确的坐标位置,输出所有的 node,并按照a11,a12,...,a21,a22,...
这样的命名形式命名每个 node.
谢谢,不过我希望是在 tikz 环境中输出node,因为之后会需要对这些 node 进行一些画图操作,但这个宏包似乎不能提供这样的功能。