我仔细阅读了 TikZ-UML 文档,并在 Google 上搜索了很多,但我找到的唯一类似的回复是使用 metaUML 在抽象类中设置抽象方法但它使用的是 metaUML 而不是 TikZ-UML。
在 UML 中,抽象方法应该呈现为斜体,所以我想完成类似的事情:
我发现唯一的办法是:
\documentclass{article}
\usepackage{tikz-uml}
\begin{document}
\begin{tikzpicture}%
\umlclass[type=abstract]{AbstractClass}{
}{
+\textit{abstractMethod()}\\
+concreteMethod()
}
\end{tikzpicture}%
\end{document}
我不喜欢它,因为它混淆了表示和语义,有没有一种本机的、语义的方式来做到这一点?
答案1
软件包手册分别描述了静态和虚拟(抽象)类的两个命令\umlstatic
和。请参阅\umlvirt
https://perso.ensta-paris.fr/~kielbasi/tikzuml/var/files/html/web-tikz-uml-userguidech2.html#x4-90002.1.2:
\begin{tikzpicture}
\umlclass{namespace::A}{
+ n : uint \\ \umlstatic{-- i : int} \\ \# r : const float
}{
+ setA(i : int) : void \\ \umlvirt{\# getA() : A}
}
\end{tikzpicture}
请注意,在包的源代码中,这两个命令被定义为和的简单包装器\underline
(\textit
类似于我上面将命令别名为的评论\textit
)。请参阅 的第 622-623 行tikz-uml.sty
:
\newcommand{\umlstatic}[1]{\underline{#1}}%
\newcommand{\umlvirt}[1]{\textit{#1}}%