MetaPost作图宏包mpgraphics的一点经验

MetaPost是常见的作图宏包, 对作2维图形是比较方便的. 而且他还能生成各种图片格式. 但是WinEdt自带的Metapost编译功能还不够强大, 稍显麻烦, 我后来都改用作图宏包mpgraphics来将作图代码和latex代码整合到一起.

基本的例子

mpgraphics的安装

首先下载mpgraphics.zip并解压出mpgraphics.sty. 你可以将它放到当前tex文档所在目录(同一目录). 这样就可以直接调用了. 也可以将其放到类似F:\CTEX\UserData\tex\latex\mpgraphics的目录中, 并刷新miktex的database: 在WinEdt中找到MikTex options->在General面板下找到那个Refresh FNDB, 单击即可.

mpgraphics的测试

作为测试, 试着运行如下的latex文件.

事实上, 道理很简单, 就是把原来的beginfig(1)endfig;之间的代码放到现在的mpdisplay环境中.

运行时需要设置--shell-escape. 例如你用latex编译上面的文件的话, 那么要在Winedt的Options->Execution Modes面板下->找到LaTeX(位于Accessories列表下), 设置其运行附加开关(Switches)为%0 --shell-escape, 原来默认的是%0. 其他编译方式类似修改即可.

更加高级的用法可以参考mpgraphics的说明文档.

高级用法示例

LaTeX主文件test.tex内容如下

而在test.tex同一目录下新建图片文件夹figs, 其中包含两个文件:mymetafun.mpfig1.mp, 他们分别包含了一些自定义函数与作图的源代码.

mymetafun.mp的示例

fig1.mp的示例

运行时首先直接运行test.tex, 如果你想得到pdf的图片, 这用pdflatex编译即可, 如果你想得到eps的图片直接用latex编译即可. 把编译后得到的图片复制到figs图片文件夹下. 这时你可以启用后面的插图命令(test.tex的14行), 而注释掉前面的mpgraphics作图命令(test.tex的13行). 这样别人就不需要任何设置就可以直接编译了, 换言之, 我们只是把mpgraphics拿来做生成pdf或者eps图片的中环节.

最终的文件下载.

发表评论