如何使用预定义变量在pic环境中填写节点名称和节点值?

如何使用预定义变量在pic环境中填写节点名称和节点值?

我得到了一个包含许多节点(约 40 个)的图形。我想向每个节点添加相同类型的“子节点”(查看图像,一个节点带有包含名称的标签,另一个节点带有包含值的标签)。这可以通过结合\foreachpicpics环境轻松完成。

例子

但是我没能给pic环境提供我想要的参数。我想要提供的是我定义的变量,例如 {a-label}{a-label}、{a-value}{3} 等。这样我就可以更新节点标签,我只能更新选项“例如红色”。

有什么可行的方法可以做到这一点?

由于最终的布局(关系和节点配置)尚不清楚,我宁愿不要很多具体的写出行,而是使用一个通用的“函数”,在其中我用我的“节点列表”进行迭代,从我预定义的值中填充所需的“变量”。

答案1

一种方法是按照@Kpym 建议的去做,另一种方法是使用 fit 库将(子)节点放入更大的方案中。

\documentclass[tikz]{standalone}
\usetikzlibrary{fit,arrows.meta,positioning}
\tikzset{bigbox/.style={draw,thick,minimum width=5cm,minimum
height=5cm,align=center},
smallbox/.style={draw,thick,minimum width=4.5cm,align=center}}
\begin{document}
\begin{tikzpicture}[font=\sffamily]
\node[bigbox,label={[yshift=7mm]below:{"some node A"}}] (A) {};
\node[bigbox,below=of A,label={[yshift=7mm]below:{"some node B"}}] (B) {};
\node[smallbox,right=of A.38] (n-label){n-label: "MyLabel"};
\coordinate[right=2mm of n-label](xr); 
\coordinate[left=2mm of n-label](xl);
\node[smallbox,below=3mm of n-label] (n-value){n-value: [some value]};
\node[draw,thick,fit=(xl|- A.south) (xr|- A.north),inner sep=-0.5\pgflinewidth] (Fit) {};
\draw[shorten >=2pt,shorten <=2pt,-Triangle,line width=1mm] (A) -- (Fit);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容