受此启发邮政,我试图包裹这个正常节点......
\node[fill=blue!20,shape=ellipse, draw=black] (nodename) at(0,0){\begin{tabular}{l}
Main Text\\ \hline
extension point: \\
Some Text
\end{tabular}};
...变成这些类型的宏:
\begin{tikzpicture}[
umlusecaseext/.style n args = {3}{
shape=ellipse,
fill=blue!20,
draw=black,
code={
\begin{tabular}{l}
#1\\ \hline
#2: \\
#3
\end{tabular}
}
}]
\node (example) [umlusecaseext={{Main Text},{extension point},{Some Text}}] {};
\end{tikzpicture}
我的目标是重用此节点。不幸的是,这没有奏效。你能纠正我的解决方案吗?
答案1
如果您想通过样式设置节点的内容,请使用node contents
。
如果您通过定义样式,则.style n args={3}{…}
只需使用大括号分隔的三个参数(无,
且无全部包含{{}{}{}}
)。
如果您使用,node contents
则应该删除空的{}
(因为此时它将是一个正常的路径规范) - 它不会破坏任何东西,但最好将其删除(并明确表示节点内容必须来自某种样式)。
注意:如果您node contents
不能在]
与节点相关的内容后指定任何其他内容(无名称、无位置、无其他样式)。
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}[
umlusecaseext/.style n args = {3}{
shape=ellipse,
fill=blue!20,
draw=black,
node contents={
\begin{tabular}{l}
#1\\ \hline
#2:\\
#3
\end{tabular}
}
}]
\node (example) [umlusecaseext={Main Text}{extension point}{Some Text}];
\end{tikzpicture}
\end{document}