|||
网上各大牛论文里那些恰如其分的示例图形是怎么产生的?
网上某些精美的 PDF 演示文档是怎么制作的?
...
当然,这些 MetaPost 都可以做到的,有些会做的更好,下面就让我们一起学习 MetaPost 吧!
MetaPost 是由贝尔实验室的 John Hobby 基于 Donald Knuth 的 Metafont 而发明的一个矢量图形作图工具,现由 Taco Hoekwater 进行维护开发。MetaPost 是一种描述性语言,其文件后缀名是 mp,经过 mpost filename 命令处理后,生成 eps 文件,可以方便的插入到 TeX 文件中。
MetaPost 特别适合于绘制精确的几何图形,可以很容易的用几句指令就可以绘制一个简单的几何图形,语言描述特别直观易懂,也可以用方程的形式来表达各个变量之间的关系,MetaPost 会自动解方程以求得各个变量的值,再来用这些变量来绘制图形。书画同源,MetaPost 可以精确的绘制各种复杂的几何图形,同样,计算机中运用的各种矢量字体(TrueType,OpenType类型)也可以用 MetaPost 制作.
Hello MetaPost
1
2
3
4
5
6
7
8 |
% hello.mp
% 这里是注释
beginfig(1);
draw (0cm,0cm)--(1cm,0cm)--(1cm,1cm)--(0cm,1cm)--cycle;
endfig;
end; |
1 |
mpost hello |
1
2
3
4
5
6
7
8
9
10 |
% hello.mp
% 这里是注释
filenametemplate "%j-%c.eps";
beginfig(1);
draw (0cm,0cm)--(1cm,0cm)--(1cm,1cm)--(0cm,1cm)--cycle;
endfig;
end; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
<seq>
beginfig(1);
<seq>
endfig;
beginfig(2);
<seq>
endfig;
...
beginfig(n);
<seq>
endfig;
end; |
1. 用 MetaPost作图初步含源文件(黄正华) MetaPost1.rar
2. MetaPost 的 m3D 宏包手册中译本(含源文件) m3D_cn.zip
3. METAPOST使用说明 METAPOSTcn.pdf
4.METAPOST的艺术-中文 AOM.tar.gz
http://ect.bell-labs.com/who/hobby/MetaPost.html
这是语言的创立者的页面,自不必多说。
中文,王垠
http://www.math.zju.edu.cn/ligangliu/LaTeXForum/MetaPost/MetaPost.htm
实例网页,例子大大地有
http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.html
其他
http://csweb.ucc.ie/~dongen/mpost/mpost.html
王垠对MetaPost的介绍:http://learn.tsinghua.edu.cn:8080/2001315450/metapost.html
(见http://blog.chinaunix.net/uid-20676695-id-1899668.html)
1.生成流程
1)使用编辑器编辑mp文件和tex文件
2)使用mpost filename.mp生成filename.1文件(eps格式)
3)在tex中使用包graphicx,即
usepackage{graphicx}
使用includegraphics{filename.1}来插入图形。
4)生成pdf文件
这里我有个为解决问题,就是使用pdflatex时会提示includegraphics不能被识别,但是改用如下步骤做却没错:
latex test.tex
dvips test.dvi -o test.ps
ps2pdf test.ps
为了方便,不妨写个make脚本或bash脚本来完成从mpost到最后生成pdf的步骤。
2.中文支持(我是UTF8的忠实拥护者)
为了要支持中文,必须给mp文件加个壳,如下:
verbatimtex
%&latex
documentclass{article}
usepackage{CJKutf8}
begin{CJK}{UTF8}{song}
begin{document}
etex
beginfig(1);
beginfig(1)
&<60;&<60; ....... // 这里写图形代码
endfig;
verbatimtex
end{CJK}
end{document}
etex
end
------------------
当然,在tex文件里还是要做相应的utf8处理。
另外科学网还有一个博文:MetaPost介绍 (http://blog.sciencenet.cn/blog-267716-575504.html)
MetaPost是一个矢量制图语言。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-7-28 00:02
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社