tikz-uml:如何将包名称放在包主体内?

tikz-uml:如何将包名称放在包主体内?

使用命令\umlemptypackage{name},可以创建简单的空包tikz-uml。这将导致包的名称写在左上角的字段中:

套餐类型 1

由于 UML 使之成为可能(并且它对于小型简单包来说看起来更好),我想使用这种符号,并将包名称写在包主体内:

套餐类型 2

有可能实现这个吗tikz-uml

如果没有,是否可以在对象内添加自定义元素tikz-uml?这样,我就可以自己添加文本或其他图形,如下所示:

套餐类型 3

答案1

在简单查看tikz-uml.sty文件后,我发现 apackage被定义为两个节点(包名称和包名称标题),并且没有使用空名称的选项,因为它用于识别提及的节点。

一旦声明了节点,您就可以用TikZ命令绘制或填充它。

以下代码展示了一些示例。避免在顶部节点中使用包名称的解决方案很棘手。我所做的是将text颜色固定为等于fill颜色。文本已写入,但不可见。

\documentclass[border=2mm]{standalone}
\usepackage{tikz-uml}

\begin{document}
\begin{tikzpicture}
\begin{umlpackage}[fill=blue!30, text=blue!30]{pack}
\begin{umlpackage}[fill=red!30, text=red!30]{pack2}
\node {Pack 2};
\end{umlpackage}
\end{umlpackage}

\begin{umlpackage}[x=3, y=1, fill=green!30, text=green!30]{pack3}
\end{umlpackage}

\node at (pack3.center) {Test 3};

\draw[red] ([shift={(-45:1mm)}]pack2.north west) rectangle ([shift={(135:1mm)}]pack2.south east);

\draw[->] (pack-caption.center) circle (1mm) -- (pack3-caption.center) circle (1mm);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容