使用以下代码,我尝试用 覆盖默认值bcol=red
,bcol=green
但显然不起作用(两种情况下都使用初始值)。是否有合理的解决方案来实现这个想法(添加由传递给另一个节点的键控制的节点)?
请注意,我简化了我的原始示例 - 我有更复杂的形状,一个从属于另一个,并且都采用多个参数。
\documentclass[border=5pt,multi,tikz]{standalone}
\tikzset{
bbox/.style={
draw,
append after command={node[fill=\pgfkeysvalueof{/tikz/bcol},at=(\tikzlastnode.north east)] {}}
}
}
\tikzset{%
bcol/.initial=red,
}
\begin{document}
\begin{tikzpicture}
\node [bbox, draw] {};
\node [bbox, xshift=15pt, bcol=green, draw] {};
\end{tikzpicture}
\end{document}
答案1
这个问题与 Ti 关系不大钾Z 但使用 TeX 分组。也就是说,您无法在节点的本地组内设置颜色。避免此问题的方法之一是
\documentclass[border=5pt,multi,tikz]{standalone}
\tikzset{
bbox/.style={
draw,
append after command={[#1]
node[fill/.expanded=\pgfkeysvalueof{/tikz/bcol},at=(\tikzlastnode.north east)] {}}
}
}
\tikzset{%
bcol/.initial=red,
}
\begin{document}
\begin{tikzpicture}
\node [bbox, draw] {};
\node [bbox={bcol=green}, xshift=15pt, draw] {};
\end{tikzpicture}
\end{document}