
Чтобы создать параметризованный разделенный узел, я хотел бы использовать аргументы в частях узла.
Вот что я сделал:
\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[...];
.
Небольшая картинка: