close

MetaPost

Navigasyona git Aramaya git
MetaPost
MPlogo.svg
Genel bilgi
geliştirici Taco Hoekwater (Yazar: John D. Hobby)
İlk sürüm 1994
Lisans Kamu malı
Sürümler
En son kararlı sürüm 1,001 ( 2007-11-14 ) _ _
Bağlantılar

MetaPost bir programlama dilidir ve MetaPost programlama dilinin tek yorumlayıcısıdır . Her ikisi de Donald Knuth tarafından oluşturulan Metafont dilinden ve yorumlayıcısından türetilmiştir . MetaPost, geometrik-cebirsel açıklamadan PostScript programlama dilini kullanarak diyagramlar üretir. MetaPost, Metafont'un çizgileri , eğrileri , noktaları ve geometrik dönüşümleri işlemek için bildirime dayalı sözdizimini paylaşır . Yine de,

  • Metafont , ilgili ölçüm dosyaları (.tfm formatında) ile birlikte görüntü dosyaları (.gf formatında) şeklinde yazı tipleri oluşturmak için oluşturulurken , MetaPost Encapsulated PostScript dosyaları üretir .
  • Metafont'un çıktısı, bir raster formatında belirli bir çözünürlükteki yazı tiplerinden oluşurken MetaPost'un çıktısı, vektörleştirilmiş bir postscript grafiğidir (çizgiler, Bézier eğrileri ).
  • Metafont'un çıktısı tek renkliyken MetaPost bir RGB özelliği kullanır .
  • MetaPost dili, diyagramlardaki metin etiketlerinin yanı sıra belirli bir yazı tipinden metin dizeleri veya TeX kullanılarak yazılabilen hemen hemen her şeyi içerebilir .
  • Metafont yorumlayıcısı Donald Knuth tarafından bir açık kaynak lisansı altında yazılmıştır ve John D. Hobby'nin ( ve daha sonra Ulrik Vieth'in ) yorumlayıcıyı MetaPost'u alarak kendi amaçlarına uyarlamasına izin vermiştir.
  • MetaPost'un öne çıkan bir logosu yoktur ve olsa bile, muhtemelen onu oluşturmak için TeX'e güvenmeniz gerekir .

Kullanılabilirlik ve kullanım

MetaPost , TeX ve Mefafont dağıtımlarının çoğuyla birlikte dağıtılır . Örneğin, Linux ve Unix platformlarında ( Mac OS X dahil) yaygın olan teTeX dağıtımında görünür .

MetaPost tarafından üretilen kapsüllenmiş postscript , standart eps include komutları aracılığıyla TeX , ConTeXt ve LaTeX belgelerine kolayca dahil edilebilir . Bu çıktıyı TeX'in bir lehçesi olan PdfTeX'e dahil etme yeteneği özellikle yararlıdır, böylece TeX'ten tek bir adımda bir çapraz platform belge formatı elde edilir. Bu yetenek ConTeXt ve LaTeX grafik paketinde uygulanmaktadır ve supp -pdf.tex makrosu sayesinde TeX'ten kullanılabilir . ConTeXt ayrıca bir TeX dosyası oluşturmaya gerek kalmadan MetaPost dosyalarının oluşturulmasına da izin verir.

Örnekler

Dosyanın içeriği aşağıdadırörnek.mp. MetaPost yorumlayıcısı tarafından işlendiğinde (komut kullanılarakmesajLinux'ta ), üç eps görüntü dosyası üretilir:örnek 1,örnek.2Yörnek.3, sağda görünen.

Metapost ex.png
sayfa kodlarını dönüştürmek;
sayfa kodları:=kimlik ölçekli 10 mm kaydırılmış (100 mm, 150 mm);

başlangıçşekil (1)
    dolgu ((0.0)--(2.0)--(2.1)--(1.1)-(1.2)--(0.2)--döngü)
        yeşil renkle dönüştürülmüş sayfa koordinatları;
    berabere ((2.0)..(2.1)..(1.1)..(1.2)..(0.2))
        dönüştürülmüş sayfa kodları;
    drawarrow ((0,0)--(2,2)) dönüştürülmüş sayfa kodları;
son şekil;

başlangıçşekil (2)
    beraberlik (i=0 için 7'ye kadar: dir (135i)-- döngü sonu)
        dönüştürülmüş sayfa kodları;
son şekil;
        
sayfa kodları:=kimlik ölçekli 15 mm kaydırılmış (100 mm, 150 mm);
başlangıçşek (3);
    % kullanılacak yolları bildir
    yol p[], p[]t;
    İlişkiler tanımlayarak % kurulum noktaları
    z1=(0,0); z2=z1+2up;
    z3=z1+neyse*dir(60)=z2+neyse*dir(-50);
    z4=z3+(-1.5,-.5);
    z5=z1+dir(135);
    z0=her neyse[z1,z2]=her neyse[z3,z4];
    % kurulum yolları
    p0=tam daire y ölçekli .5 döndürülmüş 45 kaydırılmış z0 ;
    p1=z2--z4..z0..z3---z1;
    p2=p1 p0'dan önce kesim p0'dan sonra;
    p3=p0 p1'den önce kesim p1'den sonra kesim;
    p4=p2--p3-döngü;
    % yolların ve noktaların dönüştürülmüş versiyonlarını tanımlar
    i=0 için 4'e kadar: p[i]t=p[i] dönüştürülmüş sayfa kodları; için son
    i=0 için 5'e kadar: z[i]t=z[i] dönüştürülmüş sayfa kodları; için son
    % biraz çizim yap
    p4t'yi renkle doldur(1,1,0.2);
    z1t--z2t'yi renkli .5beyaz çizin;
    z3t--z4t'yi renkli .5beyaz çizin;
    alma kalemi;
    .3 ölçekli noktalarla noktalı p0t çizin;
    p1t'yi eşit bir şekilde çizin;
    mavi renkle p2t çizin;
    kırmızı renkle p3t çizin;
    label.lrt (btex $z_0$ etex, z0t);
    label.llft (btex $z_1$ etex, z1t);
    etiket.top (btex $z_2$etex, z2t);
    label.rt (btex $z_3$ etex, z3t);
    label.llft (btex $z_4$ etex, z4t);
    i=0 için 4'e kadar:
        Drawdot z[i]t kalem daire ölçekli 2;
    için son
son şekil;
Hoşçakal

Ortaya çıkan üç eps dosyası , komutu kullanılarak LaTeX'e dahil edilebilir.\includegraphics, ConTeXt'te \dış şekilve düz TeX kullanarak\epsfboxveya düz pdfTeX'te \convertMPtoPDFiçerdiğisupp-pdf.tex. Üçüncü diyagramı görüntülemek veya yazdırmak için makroyu eklemeniz gerekir.supp-pdf.texTeX yazı tipleri MetaPost tarafından oluşturulan eps dosyalarına dahil edilmediğinden .

Ayrıca

Referanslar ve dış bağlantılar