متاپست
نویسنده(های) اصلی | جان هابی |
---|---|
توسعهدهنده(ها) | تاکو هوکواتر |
انتشار آزمایشی | ۱٫۷۵۰
|
مجوز | مالکیت عمومی |
متاپُست (به انگلیسی: MetaPost) هم به زبان برنامهنویسی متاپست و هم به مفسر این زبان اشاره میکند. هر دو از زبان و مفسر فراقلم مشتق شدهاند. متاپست برای تولید نمودار، در زبان پستاسکریپت ، از توصیفی هندسی/جبری بسیار مناسب است. این زبان از دستور (syntax) روان و خوانای فراقلم برای کار با خطها، منحنیها، نقاط و تبدیلهای هندسی استفاده میکند.
بسیاری از محدودیتهای متاپست از ویژگیهای متافونت ناشی میشوند. برای نمونه دقت نمایش اعداد اعشاری در آن کم است که میتواند هنگام کار با نمودارها در فضای مختصات بزرگتر، ایجاد محدودیت کند. علاوهبراین، متاپست از همهی ویژگیهای پستاسکریپت پشتیبانی نمیکند. بهخصوص، هر مسیر تنها میتواند یک تکهای باشد (که در نتیجه نواحی ایجاد شده همبند ساده هستند.) و هر ناحیه را تنها میتوان با یک رنگ پر کرد.
متاپست در حال حاضر با بسیاری از توزیعهای تک و فراقلم توزیع میشود.
مثالها
[ویرایش]فایل example.mp که در ادامه میآید بعد از پردازش با مفسر متاپست (با دستور mpost در لینوکس) سه فایل eps (قابل استفاده در لاتک با دستور \includegraphics ) تولید میکند که سمت چپ نمایش داده شدهاند.
transform pagecoords; pagecoords:=identity scaled 10mm shifted (100mm,150mm); beginfig (1) fill ((0,0)--(2,0)--(2,1)--(1,1)--(1,2)--(0,2)--cycle) transformed pagecoords withcolor green; draw ((2,0)..(2,1)..(1,1)..(1,2)..(0,2)) transformed pagecoords; drawarrow ((0,0)--(2,2)) transformed pagecoords; endfig; beginfig (2) draw (for i=0 upto 7: dir (135i)-- endfor cycle) transformed pagecoords; endfig; pagecoords:=identity scaled 15mm shifted (100mm,150mm); beginfig (3); % declare paths to be used path p[],p[]t; % set up points by defining relationships z1=(0,0); z2=z1+2up; z3=z1+whatever*dir (60)=z2+whatever*dir (-50); z4=z3+(-1.5,-.5); z5=z1+dir (135); z0=whatever[z1,z2]=whatever[z3,z4]; % set up paths p0=fullcircle yscaled .5 rotated 45 shifted z0 ; p1=z2---z4..z0..z3---z1; p2=p1 cutbefore p0 cutafter p0; p3=p0 cutbefore p1 cutafter p1; p4=p2---p3---cycle; % define transformed versions of paths and points for i=0 upto 4: p[i]t=p[i] transformed pagecoords; endfor for i=0 upto 5: z[i]t=z[i] transformed pagecoords; endfor % do some drawing fill p4t withcolor (1,1,0.2); draw z1t---z2t withcolor .5white; draw z3t---z4t withcolor .5white; pickup pencircle; draw p0t dashed withdots scaled .3; draw p1t dashed evenly; draw p2t withcolor blue; draw p3t withcolor red; label.lrt (btex $z_0$ etex, z0t); label.llft (btex $z_1$ etex, z1t); label.top (btex $z_2$ etex, z2t); label.rt (btex $z_3$ etex, z3t); label.llft (btex $z_4$ etex, z4t); for i=0 upto 4: drawdot z[i]t withpen pencircle scaled 2; endfor endfig; bye
جستارهای وابسته
[ویرایش]پیوند به بیرون
[ویرایش]- The TeX users group (TUG) http://www.tug.org/ has a page devoted to MetaPost: http://www.tug.org/metapost.html
- Active development of MetaPost continues at https://web.archive.org/web/20070929092912/http://foundry.supelec.fr/projects/metapost/
- Functional MetaPost allows MetaPost to be used from the functional programming language Haskell
- John D. Hobby has a homepage at https://web.archive.org/web/20131003040005/http://ect.bell-labs.com/who/hobby/index.shtml and some other pages and publications devoted to MetaPost, though these are now a little dated
- Historic MetaPost homepage: https://web.archive.org/web/20081212090123/http://ect.bell-labs.com/who/hobby/MetaPost.shtml
- A User's Manual for MetaPost John D. Hobby. Available as a file mpman.ps distributed with MetaPost, or from the Bell Labs web site. Also available in PDF format from CTAN.
- Troy Henderson's Online MetaPost Previewer
منابع
[ویرایش]- MetaFun (modules for Metapost) by Hans Hagen, [۱]
- دانلد کنوت: The METAFONTbook, (Computers and Typesetting Volume C) ادیسون-وزلی 1986. شابک ۰−۲۰۱−۱۳۴۴۴−۶
- Comprehensive TEX Archive Network (CTAN): http://www.ctan.org/. Repository of the TEX source and hundreds of add-ons and style files.
- (La)TeX Navigator provides 305 simple MetaPost examples: https://web.archive.org/web/20130727021112/http://tex.loria.fr/prod-graph/zoonekynd/metapost/metapost.html
- Taco Hoekwater: MetaPost developments—autumn 2006. TUGboat 27:1 (2006).