加载中…
个人资料
LaTeX_Fun
LaTeX_Fun
  • 博客等级:
  • 博客积分:0
  • 博客访问:8,521,064
  • 关注人气:2,408
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Asymptote学习系列(1)

(2010-12-18 15:37:08)
标签:

latex

asymptote

中文资源

分类: TeX绘图

QQ群:91940767/145316219/141877998/80300084/194770436
淘宝店:http://latexstudio.taobao.com
技巧续篇:http://latexstudio.net/
常见数学公式问题集下载

Asymptote类似于Metapost 但是语法相对来说比较简单
面向对象 有自己的类C++语法。
软件主页:http://asymptote.sourceforge.net/
安装:
安装很简单,从主页上下载就可以了。如果是windows版的话,在asymptote的安装目录下,建config.asy,输入内容如下:
import settings;
psviewer="D:\CTeX\Ghostgum\gsview\gsview32.exe";
pdfviewer="C:\Program Files\Adobe\Acrobat 7.0\Acrobat\acrobat.exe";
gs="D:\CTeX\gs\gs8.51\bin\gswin32.exe";
python="python.exe";

简单测试
运行程序,在命令状态下输入:
>draw((0,0)--(100,100));
你应该就可以从一个启动的ghostview窗口中看到一条对角线了。

当然,你也可以把上面的命令写入一个文件,如test.asy,然后输入
asy -V test
然后你就可以看到目录上生成了test.eps文件,同时启动了一个ghostview窗口显示你的文件(-V参数的作用);

在asymptote中使用中文

//asymptote是一种矢量图形生成工具,提供了一种程序设计语
//言,语法类似C++,公式输入部分支持latex语法。

中文支持的常用两个方法:

第一个,注意中文字体是使用的type1字库。
///////////////////////////////////////////////////////////////////////
texpreamble("\usepackage{CJK}");
texpreamble("\AtBeginDocument{\begin{CJK}{UTF8}{song}}");
texpreamble("\AtEndDocument{\clearpage\end{CJK}}");
///////////////////////////////////////////////////////////////////////

第二个,使用xelatex,推荐使用。

///////////////////////////////////////////////////////////////////////

settings.tex="xelatex";

texpreamble("\usepackage{xeCJK}");
//texpreamble("\setCJKmainfont{SimKai}");
texpreamble("\setCJKmainfont{Adobe Fangsong Std}");

///////////////////////////////////////////////////////////////////////

几个入门的例子

draw((0,0)--(100,100));

draw((0,0)--(100,0)--(100,100)--(0,100)--cycle);

size(101,101);
draw((0,0)--(1,0)--(1,1)--(0,1)--cycle);

size(0,3cm);
draw(unitsquare);
label("http://gezhi.org/files/tex/6516190db8c94290389a46c0336d20e4d50531ac.png",(0,0),SW);
label("http://gezhi.org/files/tex/85cd016419f25c9c4428e912147fed1c9651258b.png",(1,0),SE);
label("http://gezhi.org/files/tex/94ceb4269c70fdc03b7c405ee8a758a23e33a108.png",(1,1),NE);
label("http://gezhi.org/files/tex/6f72f24575d67cbc3a783088a79fde9caf51e63e.png",(0,1),NW);
//S,W,E,N是标准的指南针方向

size(100,0);
draw((1,0){up}..{left}(0,1));

path unitcircle=E..N..W..S..cycle;

//The user can specify explicit control points between two nodes like this:
draw((0,0)..controls (0,100) and (100,100)..(100,0));

draw((100,0){curl 0}..(100,100)..{curl 0}(0,100));

draw((100,0)..tension 2 ..(100,100)..(0,100));
draw((100,0)..tension 2 and 1 ..(100,100)..(0,100));
draw((100,0)..tension atleast 1 ..(100,100)..(0,100));

draw((0,0){up}..(100,25){right}..(200,0){down});

draw((0,0){up}::(100,25){right}::(200,0){down});

size(0,100);
path unitcircle=E..N..W..S..cycle;
path g=scale(2)*unitcircle;
filldraw(unitcircle^^g,evenodd+yellow,black);

看看每一个的效果吧

image

 

转自:http://hi.baidu.com/ŷ����/blog/item/f411d3e913a53034b80e2dd5.html

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有