我使用旧的 MetaPost 程序来创建图形。
我的问题是,要查看 MetaPost 图表的结果,我必须先编译 .mp 文件,然后再编译我插入图表的 .tex 文件。我觉得这很无聊。
我在网上找到了MetaPost 预览器但我必须将我的代码复制并粘贴到那里,这进一步浪费时间。
我也尝试添加以下行
prologues:=3;
filenametemplate "%j-%3c.eps";
在我的 .mp 文件中生成 .eps 文件,但是,当我使用 GSView 打开它们时,有时我能够看到正确的图形,有时却看不到。
所以,问题是:有谁知道一个可以打开 MetaPost 生成的输出的程序吗?或者有哪个软件包可以让我生成可查看的图像?或者有任何其他技巧可以让我节省一些时间(甚至是编辑器功能)?
如果这有帮助,我在 Windows XP 中使用 MiKTeX 2.9。我的主要编辑器是 TeXMaker (v4),但我也安装了 WinEdt (v8)。
答案1
此解决方案不会让您通过双击鼠标来打开 MetaPost 图像,但可能会让您节省大量时间。
由于您已安装 WinEdt 8,请下载附加组件元预览(选择正确的版本)并在 WinEdt 中安装它。
请注意,该插件提供了 MetaPost 输出预览器和 MetaFont 输出预览器。如果您对 MetaFont 预览不感兴趣,可以只选择第一个。
安装完成后,你会发现工具栏中有一个下拉按钮,其中包含两个按钮,如下图所示
要启用这些按钮,您必须.mp
先编译您的文件。
编译.mp
文件后,使用第一个命令(“MetaPost Preview All”),您将能够预览所有生成的图像,而使用另一个命令(“MetaPost Preview One”),系统将提示您选择要预览的图像(当您正在处理图像并且只想预览该图像时很有用)。
只需注意一点:无论怎样,该插件都可以工作,prologue
但需要生成的输出采用.1
、.2
等格式,因此请删除该行
filenametemplate "%j-%3c.eps";
来自您的.mp
文件。
更新
新版本的元预览可用。
上述限制已被克服。现在即使您的.mp
文件包含
filenametemplate "%j-%c.mps";
或者
outputtemplate := "%j-%c.mps";
答案2
如果你不反对使用编译lualatex
,那么你可以利用luamplib
包完全绕过预览步骤并编译文档中的图像:
\documentclass{article}
\usepackage{luamplib}
\begin{document}
Your usual document.
\begin{mplibcode}
%your metapost code here
\end{mplibcode}
The rest of your document.
\end{document}
答案3
如果您已经安装了 ConTeXt 独立版,那么您只需运行:
context filename.mp
这将生成filename.pdf
。
答案4
您可以使用gmp
:
\documentclass{article}
\usepackage[shellescape]{gmp}
\begin{document}
\begin{mpost}
%beginfig(1};
a=3cm; b=2cm;
z0=(0,0);
z1=-z3=(a,0);
z2=-z4=(0,b);
draw z1..z2..z3..z4..cycle;
draw z1--z0--z2;
label.top(btex $a$ etex, .5[z0,z1]);
label.lft(btex $b$ etex, .5[z0,z2]);
dotlabel.bot(btex $(0,0)$ etex, z0);
%endfig;
\end{mpost}
\end{document}
只需注释掉beginfig
和endfig
行并使用-shell-escape
活动选项进行编译。