網路城邦
上一篇 回創作列表 下一篇   字體:
MetaPost語言﹣MataPost文檔結構
2013/06/23 12:05:15瀏覽244|回應1|推薦0

MetaPost的檔案副檔名為mp的純文字檔,基本上,其內容是這樣:

beginfig(1);

......

......

endfig;

beginfig(2);

......

.....

endfig;

......

......

end

如果要在圖形中插入文字,最簡單的方法就是引用LaTeX,用TeX排版的結果可以做出漂亮的圖形。只要在mp的文件中,加入幾行:

verbatimtex

%&latex

\documentclass{article}

\usepackage{CJK}

\begin{CJK}{UTF8}{aming} %使用CJK的中文字

\begin{document}

etex

beginfig(1);

......

......

endfig;

endfig;

varbatmitex

\end{CJK}

\end{document}

etex

end

例如我畫甲苯的結構圖,toulene.mp,  在 beginfig(1) ...... endfig 中間的內容是:

u:=0.6cm;

pair p[],q;

q:=(0,0);

p[0]:=q;

for i=0 upto 4: 

p[i+1]:=q + u*dir(90-60i);

q:=p[i+1];

endfor

draw p[0]-- for i=1 upto 5: p[i]-- endfor cycle;

draw ((p[1]+0.15u*dir(30))--(p[2]+0.15u*dir(210))) shifted (0.15u*dir(-60));

draw ((p[3]+0.15u*dir(-90))--(p[4]+0.15u*dir(90))) shifted (0.15u*dir(180));

draw ((p[5]+0.15u*dir(150))--(p[0]+0.15u*dir(-30))) shifted (0.15u*dir(60));

p[6]:=p[2]+u*dir(90);

draw p[2]--p[6];

fill fullcircle scaled 0.6u shifted p[6] withcolor white;

label.rt(btex CH$_3$ etex, p[6]+0.4u*dir(180));

label(btex 甲苯的化學結構式 etex, p[5]+2u*dir(270));

endfig;

這個檔案可以用mpost命令輸出成eps檔:
mpost toulene.mp
可輸出成一個toulene.1這個eps檔。或者用TeXShop 有metapost引擊,點選後就可以完成上述的指令,輸出toulene.1。
如果要看所繪圖結果,可以用 tex文件把這個圖檔輸入TeX,如在toulene.mp同目錄下建立 chemicalstructure.tex,內容為:
\documentclass[a4]{article} 
\usepackage{graphicx} 
\usepackage[margin=1cm]{geometry}
\DeclareGraphicsRule{*}{mps}{*}{} 
\begin{document} 
\includegraphics{toulene.1} 
\end{document}

然後用TeXShop的LaTex排版,馬上就會輸出成pdf檔,並可以看到結果。這個結果就是:

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=paraquat&aid=7804319

 回應文章

paraquat
等級:7
留言加入好友
2014/10/14 13:25

將aming.map的內容寫入psfont.map後,MetaPost就可使用CJK的aming字體。位置在TeX能找到該檔案的位置。例如在
/usr/local/texlive/2012/texmf-var/fonts/map/dvips/updmap/psfont.map
或是放在
~/library/texlive/2012/texmf-var/fonts/map/dvips/updmap/psfont.map 

或是以前的常用的~/library/texmf裡面相對應的位置中。