类图中的枚举类型(pgf-umlcd)

类图中的枚举类型(pgf-umlcd)

我刚刚发现这个包裹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-umlcd2014 年的版本,因此缺少包的最新开发。因此,最好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}

结果:

在此处输入图片描述

相关内容