Есть ли способ задать текст составного узла с помощью \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

Для этого ответа требуется версия CVS на sourceforge. (Спасибо, Торбьёрн)

Ключ, который вы ищете, — это 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[...];.

Небольшая картинка:

введите описание изображения здесь

Связанный контент