我刚刚发现这个包裹pgf-umlcd我无法绘制枚举类型,我尝试了显而易见的方法:
\begin{enum}
\begin{enumeration}
\begin{enumclass}
但是这些都不起作用。我做了一些 Google 研究,但找不到正确的代码行。有人知道吗?
我添加了这个工作代码希望它能有帮助。
\documentclass[9pt]{article}
\usepackage{pgf-umlcd}
\begin{document}
\begin{tikzpicture}
\begin{class}[text width=7cm]{ClassName}{0,0}
\attribute{Attribute1 : Type}
\attribute{Attribute2 : Type}
\operation{Method1(parameter list) : Returned Type }
\operation{Method2(parameter list) : Returned Type }
\end{class}
\end{tikzpicture}
\end{document}
谨此致以诚挚的问候,并提前致谢。米格尔
答案1
定制风格https://github.com/jcb/these-jcb/blob/master/custom_pgf-umlcd.styOP 在评论中链接的 包含枚举节点的实现。此文件还包含 的原始代码pgf-umlcd
,因此可以将其用作替代品(即\usepackage{custom_pgf-umlcd}
代替\usepackage{pgf-umlcd}
),提供 的原始功能pgf-umlcd
以及枚举节点等附加功能。但是,该文件基于pgf-umlcd
2014 年的版本,因此缺少包的最新开发。因此,最好pgf-umlcd
正常加载并仅从修改后的包中复制与枚举类相关的代码。
枚举功能由一个tikzstyle
和环境组成。在下面的 MWE 中,这些被复制。环境的使用方式与普通类相同,枚举项使用 列出\attribute{}
(每个项一个)。
梅威瑟:
\documentclass{article}
\usepackage{pgf-umlcd}
% enum style and environment from
% https://github.com/jcb/these-jcb/blob/master/custom_pgf-umlcd.sty
% Author: Jean-Christophe Bach
\tikzstyle{umlcd style enum}=[rectangle split, rectangle split parts=2,
every text node part/.style={text centered},
draw, minimum height=2em, umlcolor, minimum width=2cm, text width=4cm,
minimum height=1cm, node distance=2cm]
\newenvironment{enum}[3][]%
{
\begin{classAndInterfaceCommon}{#1}{#2}{#3}
}%
{\node[umlcd style enum, anchor=north] (\umlcdClassName) at (\umlcdClassPos)
{$<<$enumeration$>>$ \\ \textbf{\umlcdClassName}
\nodepart{second}
\umlcdClassAttributes
};
\end{classAndInterfaceCommon}
}
\begin{document}
\begin{tikzpicture}
\begin{class}[text width=7cm]{ClassName}{0,4}
\attribute{Attribute1 : Type}
\attribute{Attribute2 : Type}
\operation{Method1(parameter list) : Returned Type }
\operation{Method2(parameter list) : Returned Type }
\end{class}
\begin{enum}[text width=7cm]{Colors}{0,0}
\attribute{Red}
\attribute{Green}
\attribute{Blue}
\end{enum}
\end{tikzpicture}
\end{document}
结果: