Gibt es eine Möglichkeit, den Text eines mehrteiligen Knotens mit \tikzset festzulegen?

Gibt es eine Möglichkeit, den Text eines mehrteiligen Knotens mit \tikzset festzulegen?

Um einen parametrisierten Split-Knoten zu erstellen, möchte ich Argumente in den Knotenteilen verwenden.

Folgendes habe ich getan:

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

aber das funktioniert nicht und ich konnte den richtigen Schlüssel zum Ausfüllen der geschweiften Klammern des Knotens nicht finden.

Antwort1

Diese Antwort erfordert die CVS-Version von Sourceforge. (Danke, Torbjørn)

Der Schlüssel, den Sie suchen, ist der node contentsSchlüssel.
Er erfüllt Ihren spezifischen Bedarf.

Sie verwenden es folgendermaßen:

node contents={<content of node>}

\node[node contents=ABC];

beachten Sie, dass Sie für Knoten, die die obige Konstruktion verwenden, keinen zusätzlichen Inhaltsspezifizierer angeben sollten.

In Ihrem Fall finden Sie also:

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

Und Ihr tikzpicturewird:

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

Beachten Sie, dass Sie mit 3 Argumenten für die Teile einen kleinen Fehler gemacht haben.
Wenn Sie Kommas verwenden möchten, tun Sie stattdessen Folgendes:

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

und verwenden Sie:

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

Hier ist es sehr ratsam, immer eine Klammer um das vollständige Argument zu verwenden, da tikzOptionen durch Kommas analysiert werden.

Beachten Sie, dass Sie die Konstruktion nicht verwenden können node[node contents=< >] at (0,0);, die Platzierung sollte entweder in den Optionen des Knotens oder über den erfolgen \path (0,0) node[...];.

Ein kleines Bild:

Bildbeschreibung hier eingeben

verwandte Informationen