使用 MetaUML 和 emp 没有输出

使用 MetaUML 和 emp 没有输出

我尝试使用 MetaUML 为我的 LaTeX 文件创建 UML 图表,但出于某种原因,我没有得到输出。不过,TEXnicCenter 2.02 (64 位) 编译时没有错误。

我已经尝试过之前的建议来自这里,但它仍然没有产生任何东西。

我使用了以下代码:

\usepackage{emp}
\usepackage{ifpdf,graphicx}
\ifpdf
  \DeclareGraphicsRule{*}{mps}{*}{}
\fi

\begin{document}
\begin{empfile}
\begin{empcmds}
input metauml;
\end{empcmds}

在我的章节文件中,我使用了以下内容:

\begin{figure}
\centering
\begin{emp}[classdiag2](20, 20)
Class.A("A")()();
Class.B("B")()();
B.e = A.w + (-20, 0);
drawObjects(A, B);
link(inheritance)(B.e -- A.w);
\end{emp}
\caption[Algorithm concep2t]{The concept of the algorithm}
\label{fig:algorithmConcept2}
\end{figure}

问题是否可能是由于图形的实际代码位于单独的 .tex 文件中?

谢谢你!

答案1

您必须mpost在生成的文件上运行,emp包不会自动执行此操作。

这有效:

\documentclass{article}
\usepackage{emp}
\usepackage{ifpdf,graphicx}
\ifpdf
  \DeclareGraphicsRule{*}{mps}{*}{}
\fi

\begin{document}

\begin{figure}
\centering

\begin{empfile}
\begin{empcmds}
input metauml;
\end{empcmds}
\begin{emp}[classdiag2](20, 20)
Class.A("A")()();
Class.B("B")()();
B.e = A.w + (-20, 0);
drawObjects(A, B);
link(inheritance)(B.e -- A.w);
\end{emp}
\end{empfile}

\caption[Algorithm concep2t]{The concept of the algorithm}
\label{fig:algorithmConcept2}

\end{figure}

\end{document}

如果我将此文档另存为boboaut.tex并编译它,我会boboaut.mp在同一目录中找到一个文件(如果环境代码figure位于您使用\input或 加载的单独文件中,则无关紧要\include)。然后您必须打开命令窗口并mpost boboaut.mp在其中运行。您不需要每次都这样做,但只需在添加或修改 MetaUML 图时这样做即可。请注意,如果有多个,您应该将输出.mp文件命名为

\begin{empfile}[<meaningful name>]

例如,其中<meaningful name>可能与 的参数相同\label。您必须手动运行每个生成的.mp文件。

\begin{empfile}不建议在开头和\end{empfile}结尾都使用,因为这意味着将整个文档编译成一个组,这是坏的

在此处输入图片描述

请注意,有用于 UML 图表的 TikZ 库,请在网站中查找。它们比 MetaUML 功能强大得多emp

相关内容