MetaPost使用
简介
MetaPost是一种制图语言,由John D. Hobby开发。
如果你要学习它,可以去下面的网址看看。
权威手册:http://tug.org/docs/metapost/mpman.pdf
王垠的介绍:http://www.ctex.org/documents/shredder/metapost.html
可以预览生成图形的网站:http://www.tlhiv.org/mppreview/
MetaPost是LaTeX语言中生成图形的一个工具,我是拿来自己画图用的。
http://www.ctex.org/documents/packages/graphics/index.htm
一个示例
MetaPost生成的图形通常可以放到TeX等排版工具中使用。为了专注于MetaPost本身,我们先不介绍与TeX有关的内容,看看如何成生图形。
以下是MetaPost的HelloWorld。

1 beginfig(1);
2
3 z0=(1cm,1cm);
4 z1=(3cm,1cm);
5 z2=(3cm,3cm);
6 z3=(1cm,3cm);
7
8 draw z0--z1--z2--z3--cycle;
9 drawdot z0 withpen pencircle scaled 4pt;
10 drawdot z1 withpen pencircle scaled 4pt;
11 drawdot z2 withpen pencircle scaled 4pt;
12 drawdot z3 withpen pencircle scaled 4pt;
13
14 endfig;
15
16 end

将以上代码保存为文件fig.mp。
使用mpost生成PostScript文件:mpost fig,生成fig.1文件。
假如我要使用pdf来查看图形,可以将其转换为pdf格式:ps2pdf fig.1,生成fig.1.pdf文件。
打开该pdf就能看成生成的图形了。
数据类型
MetaPost共有10种数据类型:numeric,pair,path,transform,(rgb)color,cmykcolor,string,boolean,picture,pen。
numeric:数值。包括整数小数(分数),正数负数。最小的正整数是1/65536,最大的正数4096。
pair:数对,例如。常用来表示坐标。
path:
transform:
(rgb)color:rgb颜色。由3个数值组成,每个数值的取值范围从0到1。预设的颜色有red=(1,0,0),green=(0,1,0),blue=(0,0,1),black=(0,0,0),white=(1,1,1)。
cmykcolor:cmyk颜色。由4个数值组成,每个数值的取值范围从0到1。
string:字符串,需要在双引号中。
boolean:布尔值,有true和false。
picture:
pen:
画直线段
给出几个点的坐标,使用“--”将各个点连接起来即可。
1 draw (0,0)--(1cm,1cm)--(2cm,0)
部分转载自:http://www.cnblogs.com/migney
MetaPost使用的更多相关文章
- 在ctex环境下利用Metapost作图
使用Metapost作图,是LaTeX的好搭档.下面介绍如何在ctex环境下的使用Metapost作图. 首先新建一个test.mp的Metapost文件. 在文件开始需要声明如下代码: prolog ...
- Windows下LATEX排版论文攻略—CTeX、JabRef使用介绍
Windows下LATEX排版论文攻略—CTeX.JabRef使用介绍 一.工具介绍 TeX是一个很好排版工具,在学术界十分流行,特别是数学.物理学和计算机科学界. CTeX是TeX中的一个版本,指的 ...
- Linux学习内容
Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...
- (转)完全用GNU/Linux工作 by 王珢
完全用GNU/Linux工作 王珢 (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...
- Linux 知识框架
Linux要点 一.Linux的基本要求 1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件包的常用安装方法 4 ...
- LaTeX学习教程
本来我对LaTeX不是看好的,毕竟都是命令格式的.觉得有word就足够啦word可视化操作方便快捷. 但是由于要写论文等,在导师要求下潜心学习一下,不知不觉间被LaTeX的强大功能所吸引.现在很多出版 ...
- 清华申请退学博士作品:完全用Linux工作
http://www.cnblogs.com/cbscan/articles/3252872.html 下文地址 http://blog.oldboyedu.com/use-linux/ 按: 尽管我 ...
- GIS开源软件大全
3 - F 3map:行星地球项目由3map驱动,这是一个自由软件,由Telstra宽带基金会创建并支持,提供客户端与服务器的能力以在线再现虚拟地球. Amein!:其界面介于ArcMap和UMN M ...
- Linux的学习路线图
一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件包的常用安装方法 4. 学习添加外 ...
随机推荐
- SQL学习笔记之简易ORM
0x00 前言 1 .我在实例化一个user对象的时候,可以user=User(name='lqz',password='123') 2 .也可以 user=User() user['name']=' ...
- OpenStack之Nova模块
Nova简介 nova和swift是openstack最早的两个组件,nova分为控制节点和计算节点,计算节点通过nova computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,no ...
- JS变量比较陷阱
我们觉得JS简单是因为它是弱类型的语言,不像java那样对对类型那样敏感,但js也有其不尽人意的地方. 在java中我们无法将数字与字符串直接比较,而js能,而且能直接转换成数值比较,但是如果是字符串 ...
- https nginx配置
cd /saas/conf/nginx/ mkdir key cd key 创建key: openssl req -nodes -newkey rsa:2048 -keyout server.key ...
- 20145312 实验四《Andoid开发基础》
20145312 实验四<Andoid开发基础> 实验内容 1. 安装Android Studio 2. 运行安卓AVD模拟器 3. 使用Android运行出模拟手机并显示自己的学号 实验 ...
- 20145331 《Java程序设计》第10周学习总结
20145331 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置 ...
- validateJarFile jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
项目环境 Maven.Tomcat7.0.27.jdk1.8.0_111 报这个错误的原因是项目中依赖 javax.servlet-api 包和Tomcat本身的包冲突了,Tomcat本身也有这个包 ...
- Hdu 1455
#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> ...
- python中的上下文管理器
刚刚看了vamei大神的上下文管理器博客,理解如下: 其实我自己经常用到上下文管理器,尤其是在打开文件的时候,如果自己比较懒,不想手工打上f.close(),使用上下文管理器就ok拉. 上下文管理器就 ...
- 如何将JS里变量的值赋给文本框
举个栗子: <html><HEAD><script type="text/javascript" language="Javascript1 ...