UML 用例图关联中的包 pgfError

UML 用例图关联中的包 pgfError

我正在使用样式制作 UML 图tikz-uml。但是在开发关联关系时,它会引发以下错误。我已使用\umlactor\umlusecase选项来生成参与者和用例。但发现很难生成参与者和用例之间的关联关系。我不知道如何解决它,因为我是 tikz 新手。任何帮助都非常感谢。只要对标签进行注释,图表就会顺利运行\umlassoc。这个错误是关于什么的Package pgf Error: No shape named usecase-3 is known. \umlassoc{E}{usecase-3}

MWE 如下。

\documentclass[conference]{IEEEtran}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{tikz-uml}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{figure}
\begin{center}
\begin{tikzpicture}  
\begin{umlsystem}[x=0,y=2.5]{SYSTEM} 
\umlusecase[x=0,y=-4]{usecase-3} 
\umlusecase[x=0,y=-2]{use case2}
\end{umlsystem}  

\umlactor[x=-3, y=-.1, anchor=east]{D}  
\umlactor[x=-2, y=-3, anchor=north]{S}  
\umlactor[x=2, y=-3, anchor=north]{E} 
\umlactor[x=-2, y=3]{T}
\umlactor[x=2, y=3]{I}

\umlassoc{E}{usecase-3} 

\end{tikzpicture}
\end{center}
\caption{High Level.}
\end{figure}
\end{document}

答案1

根据文件tikz-uml软件包的文档,您必须使用软件包提供的自动编号(请参阅这里):

text 参数是用例的标签。表示用例的节点有一个基于全局计数器的默认名称,例如 usecase-17。出于实际原因,您可以使用 name 选项重命名它。

因此,您应该使用其参数来命名您的用例,或者在您的案例中name使用:usecase-1

\documentclass[conference]{IEEEtran}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{tikz-uml}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{figure}
\begin{center}
\begin{tikzpicture}  
\begin{umlsystem}[x=0,y=2.5]{SYSTEM} 
\umlusecase[x=0,y=-4,name=usecase3]{usecase-3} 
\umlusecase[x=0,y=-2]{use case2}
\end{umlsystem} 

\umlactor[x=-3, y=-.1, anchor=east]{D}  
\umlactor[x=-2, y=-3, anchor=north]{S}  
\umlactor[x=2, y=-3, anchor=north]{E} 
\umlactor[x=-2, y=3]{T}
\umlactor[x=2, y=3]{I}

\umlassoc{E}{usecase3}
% or \umlassoc{E}{usecase-1}, if you remove the name argument from the usecase

\end{tikzpicture}
\end{center}
\caption{High Level.}
\end{figure}
\end{document}

相关内容