有没有办法使用 \tikzset 设置多部分节点的文本?

有没有办法使用 \tikzset 设置多部分节点的文本?

为了创建参数化的分割节点,我想在节点部分使用参数。

这是我所做的:

\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[...];

一张小图:

在此处输入图片描述

相关内容