我正在使用样式制作 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}