MetaUML:通过 LaTeX 的 emp 包没有输出

MetaUML:通过 LaTeX 的 emp 包没有输出

以下示例仅打印图形的标题:

\documentclass[a4paper,11pt]{article}

\usepackage{emp}
\ifx\pdftexversion\undefined
\usepackage[dvips]{graphicx}
\else
\usepackage[pdftex]{graphicx}
\DeclareGraphicsRule{*}{mps}{*}{}
\fi

\begin{document}

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

\begin{figure}
\centering
\begin{emp}[classdiag](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{A class diagram}
\end{figure}
\end{empfile}

\end{document}

环境:Ubuntu 11.04(amd64)、TexLive 2009、MetaUML 0.2.5、TeXMaker 2.2.1。

编辑

以下是\ifx ... \fi根据ifpdf包替换建议的完整示例:

\documentclass[a4paper,11pt]{article}

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

\begin{document}

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

\begin{figure}
\centering
\begin{emp}[classdiag](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{A class diagram}
\end{figure}
\end{empfile}

\end{document}

处理仍然没有给出图形输出。仅打印了图形的标题。

答案1

\ifx您不应该像在代码中那样测试 pdflatex 编译\fi,而是使用

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

您还可以使用 gmp 包

\documentclass[a4paper,11pt]{article}

\usepackage[shellescape,latex]{gmp}

\begin{document}

\begin{figure}
\centering
\begin{mpost}[mpsettings=input metauml;]
Class.A("A")()();
Class.B("B")()();
B.e = A.w + (-20, 0);
drawObjects(A, B);
link(inheritance)(B.e -- A.w);
\end{mpost}
\caption{A class diagram}
\end{figure}

\end{document}

并用 进行编译pdflatex -shell-escape。(免责声明:我是该软件包的作者。)

相关内容