跳到主要内容

Metapost 入门指南

· 阅读需 3 分钟
Chengyu HAN
Open Source Contributor

目前 只有 Metapost 入门的一些资料合集(非教程)

联动 Metapost 入门资料 (并不是教程)

0x0 前言

我参加数学建模美赛时,由于要根据数据画很多图(类似热力图,根据数值有颜色渐变),正好用LaTeX写论文,就学习了下用mp+Python批量画图(其实是3M用的都不熟)。 简单说没有刚需不是很推荐用mp, 主要是学习曲线较陡,毕竟写起来像伪代码。简单的图可以用几何画板、AxGlyph、Viso,计算结果绘图用3M(MATLAB、Maple、Mathmatica)自带的plot就好,同为LaTeX绘图的还有PGF/TikZ, 据说是mp的封装,要好写/理解一些

0x1 入门资料

原版资料

你可以把mp看做一个宏包,它在常见的发行版中都有,用texlive系列肯定是自带metapost的。

学一个宏包最好的资料就是他的说明文档,对mp来说有:

  • mpman - MetaPost:A User's Manual
  • mpintro - A Beginner's Guide to MetaPost for Creating High-Quality Graphics
  • mpgraph - Drawing Graphs with MetaPost
  • mpboxes - Drawing Boxes with MetaPost
  • mplibapi - 这个讲的是API相关,暂时用不到

你可以在 texlive\2016\texmf-dist\doc\metapost\base 下找到他们。

英语不好也没关系,看图! 看到喜欢的图就去看他的代码,就算PDF里面没有也不要紧,官方文档自带TeX源代码啊,就在相同目录下 source-manual 和 source-tutorial

说到图,推荐一波图

第三方教程

Eng

中文

0x2 可能的坑

有时候 mpost 编译出的图片是 .0 .1 之类的数字后缀,你可以把他重命名为 .eps 就可以在LaTeX里导入了。

如果图片过多,可以在 .mp 文件最前面加一行

filenametemplate "%j-%c.eps"; % 文件名-编号.eps

这样就可以自动重命名了

另: *.log*.mpx 文件都是临时文件可以删掉

Bat编译脚本

另存为 get-fig_mps.bat

@echo off
mpost myfig.mp
del *.log /s
del *.mpx /s
exit

其中 myfig.mp 是你的mp源代码文件名