Existe uma maneira de definir o texto de um nó multipartes usando \tikzset?

Existe uma maneira de definir o texto de um nó multipartes usando \tikzset?

Para criar um nó dividido parametrizado, gostaria de usar argumentos nas partes do nó.

Aqui está o que eu fiz:

\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}

mas isso não funciona e não consegui encontrar a chave correta a ser usada para preencher as chaves do nó.

Responder1

Esta resposta requer a versão CVS no sourceforge. (Obrigado Torbjorn)

A chave que você está procurando é a node contentschave.
Ele permite sua necessidade específica.

Você usa assim:

node contents={<content of node>}

\node[node contents=ABC];

observe que você não deve fornecer um especificador de conteúdo adicional para nós que usam a construção acima.

Então, no seu caso, você encontra:

\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}
    }
}

E o seu tikzpicturese torna:

\begin{tikzpicture}
  \path node[threeParts={Part 1}{Part 2}{Part 3}];
\end{tikzpicture}

Observe que você errou um pouco com 3 argumentos para as partes.
Se você quiser usar vírgulas, faça o seguinte:

threePartsComma/.style args={#1,#2,#3}{<previous content>}

E use:

node[threePartsComma={Hell,o and,welcome}];

Aqui será muito sensato usar sempre chaves ao redor do argumento completo, pois tikzas opções são analisadas por vírgulas.

Observe que não é possível utilizar a node[node contents=< >] at (0,0);construção, o posicionamento deve ser realizado nas opções do nó ou via \path (0,0) node[...];.

Uma pequena foto:

insira a descrição da imagem aqui

informação relacionada