在 LaTeX 文档中嵌入 MetaPost

在 LaTeX 文档中嵌入 MetaPost

我有使用问题emp 包在 TeXlive 2010 中。当我尝试使用它时,empcmds它会将内容打印到输出中。如果我使用emp它,解析器会在第一个字符后失败。

另外 - 我应该如何导入诸如 MetaUML 之类的库。

编辑: 代码

\documentclass[a4paper,11pt]{article}
\usepackage{enumerate}
\usepackage{amsmath}
\usepackage{emp}
\author{Maciej~M.~Piechotka}
\title{MetaUML}
\begin{document}

\begin{emp}
input metauml;

beginfig(1);
Class.A("Point")
       ("+x: int",
        "+y: int") ();

Class.B("Circle")
       ("radius: int")
       ("+getRadius(): int",
        "+setRadius(r: int):void");

topToBottom(45)(A, B);

drawObjects(A, B);

clink(aggregationUni)(A, B)
endfig;

end;

\end{emp}

\end{document}

和错误:

! Use of \emp@ doesn't match its definition.
<recently read> i

l.10 i
      nput metauml;

最后结果:

\documentclass[a4paper,11pt]{article}
\usepackage{emp}
\usepackage[pdftex]{graphicx}
\author{Maciej~M.~Piechotka}
\title{MetaUML}
\begin{document}
\DeclareGraphicsRule{*}{mps}{*}{}

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

Hi there:
\begin{emp}[uml1](20,20)
Class.A("Point")
       ("+x: int",
        "+y: int") ();

Class.B("Circle")
       ("radius: int")
       ("+getRadius(): int",
        "+setRadius(r: int):void");

topToBottom(45)(A, B);

drawObjects(A, B);

link(aggregationUni)(A, B);
\end{emp}
\end{empfile}
\immediate\write18{mpost -tex=latex \jobname}
\end{document}

答案1

来自 emp 文档:“必需参数是图形的宽度和高度,单位为\unitlength[...] \begin{emp}[⟨name⟩](⟨width⟩,⟨height⟩)

所以你需要写

\begin{emp}(100,100)

管他呢。

相关内容