为了创建参数化的分割节点,我想在节点部分使用参数。
这是我所做的:
\tikzset{threeParts/.style n args={3}{%
rectangle split,
rectangle split horizontal,
rectangle split parts=3,
draw,
whichKeyShouldIuseHere={
nodepart{one} {#1}
nodepart{two} {#2}
nodepart{three} {#3}},
}}
\begin{tikzpicture}
\path node[threeParts={1,2,3}];
\end{tikzpicture}
但这不起作用,并且我找不到用于填写节点花括号的正确键。
答案1
这个答案需要sourceforge上的CVS版本。(感谢 Torbjørn)
你要找的钥匙就是node contents
钥匙。
它可以满足你的特定需求。
你可以像这样使用它:
node contents={<content of node>}
\node[node contents=ABC];
请注意,您不应该为使用上述构造的节点提供额外的内容说明符。
因此,就你的情况而言,你会发现:
\tikzset{threeParts/.style n args={3}{%
rectangle split,
rectangle split horizontal,
rectangle split parts=3,
draw,
node contents={#1\nodepart{two}#2\nodepart{three}#3}
}
}
而你的tikzpicture
变成:
\begin{tikzpicture}
\path node[threeParts={Part 1}{Part 2}{Part 3}];
\end{tikzpicture}
请注意,您对各部分的 3 个参数稍有误解。
如果您想使用逗号,请改为这样做:
threePartsComma/.style args={#1,#2,#3}{<previous content>}
并使用:
node[threePartsComma={Hell,o and,welcome}];
在这里,总是使用括号括住完整参数是非常明智的,因为tikz
选项是通过逗号来解析的。
请注意,您不能使用node[node contents=< >] at (0,0);
构造,放置应该在节点的选项中或通过 来执行\path (0,0) node[...];
。
一张小图: