| MetaPost | |
|---|---|
| Desarrollador | |
| Bilardbastono Hoekwater (Aŭtoro: John D. Hobby) foundry.Supelec.Fr/projects/metapost/ | |
| Ĝenerala informo | |
| Lasta stabila versio | 1.001 14an de novembro 2007 |
| Varo | ? |
| Mastruma sistemo | Multiplatforma |
| Licenco | Public Domain |
| En la hispana | ? |
MetaPost konstituas lingvon de programado kaj la sola interpretisto de la lingvo de programado MetaPost. Ambaŭ estis derivitaj de la lingvo kaj de la interpretisto de Metafont, kreitaj de Donald Knuth. MetaPost produktas diagramojn uzante la lingvo de programado PostScript de la geometria-algebraica priskribo. MetaPost dividas la sintakson declarativa de Metafont por manipuli liniojn, kurboj, punktoj kaj geometriaj transformoj. Tamen,
Enhavo |
MetaPost distribuas inkludita en multaj de la dissendoj de TeX kaj Mefafont. Ĝi aperas, ekzemple, en la dissendo teTeX, komuna en platformoj Linukso kaj Unikso (inkludante Mac VIN 10a).
La postscript encapsulado produktita de MetaPost povas inkludi facile en dokumentoj TeX, ConTeXt kaj LaTeX tra ordonoj normo de inkludo de eps. Estas aparte utila la kapableco de inkludi ĉi tiun eliron en PdfTeX, dialekto de TeX, tiel ke ĝi akiras formaton de dokumento multiplataforma de TeX en sola paŝo. Ĉi tiu kapableco aperas implementada en ConTeXt kaj en la pako de grafikaĵoj de LaTeX kaj ĝi eblas uzita de TeX danke al la macro supp-pdf.Tex. ConTeXt ankaŭ permesas la kreon de arkivoj MetaPost sen la neceso de krei arkivon TeX.
Ĝi tuj poste aperas la enhavon de la arkivo example.Mp. Kiam estas procesita de la interpretisto de MetaPost (uzante la ordono mpost en Linukso), ili produktas tri arkivojn de bildo eps: example.1, Example.2 Kaj example.3, kiu aperas dekstre.

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);
% deklaru paths to bo used
path p[], p[]t;
% serio 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];
% serio 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;
% ĝi difinas 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 reto;
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
La tri arkivoj eps resultantes povas inkludi en LaTeX uzante la ordono \includegraphics, en ConTeXt \externalfigure kaj en simpla TeX uzante \epsfbox aŭ en simpla pdfTeX \convertMPtoPDF enhavo en supp-pdf.Tex. Por vidi aŭ presi la trian diagramon, estas necese inkludi la macro supp-pdf.Tex pro tio ke la fontoj de TeX ne inkludas en la arkivoj eps generitaj de MetaPost.