metapost画图

一、metapost介绍

参考:http://zh.wikipedia.org/wiki/MetaPost

MetaPost是一个程序语言和它的编译器的名字,衍生于高德纳的Metafont。MetaPost擅长通过数学描述制作矢量图,生成的图片为PostScript格式。它的语法来自Metafont。

metapost文件以.mp为后缀,通过MetaPost的编译器编译(在Linux系统中使用mpost命令)之后产生了EPS文件。EPS文件可以直接用在TeX中(通过LaTeX的\includegraphics命令、ConTeXt的\externalfigure命令、Plain TeX的\epsfbox命令,或者Plain pdftex中来自supp-pdf.tex的\convertMPtoPDF命令。这些引用是必须的,因为TeX的字体(Metafont)并不包含在MetaPost产生的eps文件中.

二、简单例子

参考: http://www.tug.org/TUGboat/Articles/tb27-1/tb86hoekwater-metapost.pdf

1.支持预定义输出文件名。

test.mp:

1
2
3
4
5
6
7
8
9
filenametemplate "%j-%3c.eps";
beginfig(1);
pair A,B,C;
A:=(0,0);
B:=(0,1cm);
C:=(1cm,0);
draw A--B--C--cycle;
endfig;
end;

命令:mpost test.mp,生成test-001.eps.

命令:epstopdf test-001.eps, 生成test-001.pdf.

定义输出名采用printf格式,这里是一个表格:

  • %% 百分符号“%”
  • %j 当前.mp文件名,如test
  • %<0-9>c 序号值,如beginfig(1)里面的1
  • %<0-9>y 年
  • %<0-9>m 月
  • %<0-9>d 当月第几天
  • %<0-9>H 小时
  • %<0-9>M 分钟
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
beginfig(1);
pair A,B,C;
beginfig(1);
A:=(0,0);
B:=(0,1cm);
C:=(1cm,0);
draw A--B--C--cycle;
endfig;
end
吴羽舒 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!