我必须在我的 TikZ 图片中放置几个节点,因此我使用 来创建它们,\foreach
并为它们命名(在 中定义了一个 ID 变量\foreach
)。现在我的问题是创作后我想编辑节点的标签,只需使用我给它起的名字即可。类似
\node (thatParticularNode) {myLabel};
这可能吗?或者我唯一的机会是单独绘制每个节点?
答案1
在pgfkeys
系统中,处理程序/.try
会尝试执行预定义的代码。如果失败,即密钥尚未定义,它将被视为不存在。
另一方面,如果/.retry
在调用 之后立即调用/.try
,pgfkeys
则只有后者失败时才会尝试前者。也就是说,有一个通用框架
\pgfkeys{
Did I set this special key?/ ID:289668/ let us/.try,
In case it fails, we still have a fallback/.retry
}
以下是一个例子
\documentclass[border=9,tikz]{standalone}
\begin{document}
\tikzset{
node content/normal/.code={(\i,\j)},
node content/3/5/.code= \LARGE\color{red} I like this node
}
\tikz[nodes={inner sep=0},scale=3]{
\draw foreach\i in{1,...,10}{
foreach\j in{1,...,10}{
(\i,\j)node[circle,draw,minimum size=rnd*100]{
\tikzset{node content/\i/\j/.try}
\tikzset{node content/normal/.retry}
}
}
};
}
\end{document}