Metapost

Metapost
MetaPost
MetaPost-Logo
Maintainer: Taco Hoekwater
Entwickler: John D. Hobby
Aktuelle Version: 1.001
(14.11.2007)
Betriebssystem: Multiplatform
Kategorie: Schriftsatz
Lizenz: Public Domain
foundry.supelec.fr/projects/metapost/

MetaPost ist zum einen eine Programmiersprache und andererseits der einzig bekannte Interpreter für die MetaPost-Programmiersprache. Beide sind von Donald Knuths Metafont-Sprache und -Interpreter abgeleitet. MetaPost kann hervorragende Diagramme in PostScript aus einer geometrischen/algebraischen Beschreibung erzeugen. Die Sprache hat die gleiche elegante Syntax wie Metafont, um Linien, Kurven, Punkte und geometrische Transformationen zu erzeugen.

Inhaltsverzeichnis

Gegenüberstellung von Metafont und MetaPost

  • Metafont ist zur Produktion von Schriften mit den dazu assoziierten Fontmetricdateien erschaffen. MetaPost hingegen erzeugt PostScript-Dateien.
  • Die Ausgabe von Metafont besteht aus Schriften bei einer bestimmten Auflösung in einem rasterbasierten Format. MetaPost erzeugt vektorbasierte Grafiken.
  • Im Gegensatz zu der monochromen Ausgaben von Metafont nutzt MetaPost ein einfaches RGB-Schema.
  • MetaPost kann auch Label an Diagramme anbringen. Dies können Texte aus einer angegebenen Schrift oder einfach alles, was mit TeX gesetzt werden kann, sein.
  • Der Metafontinterpreter wurde von Knuth unter einer Open Source-Lizenz entwickelt. Dies erlaubte John D. Hobby, den Interpreter zu seinem Nutzen zu adaptieren. Somit entstand MetaPost.
  • MetaPost hat kein Logo.

Benutzung

MetaPost wird mit vielen Distributionen von TeX bzw. Metafont ausgeliefert. Die Ausgabe von MetaPost kann leicht in TeX-, ConTeXt-, und LaTeX-Dokumenten über Standardkommandos benutzt werden.

Beispiele

Dies ist eine einzelne Datei example.mp, die drei EPS-Dateien erzeugt. Hierzu muss man das Kommando mpost auf Linux eingeben.

Image:metapost_ex.png
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

Literatur

  • Donald Knuth: The MetafontBOOK, (Computers and Typesetting Volume C) Addison-Wesley 1986. ISBN 0-201-13444-6

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • MetaPost — Класс языка: императивный Появился в …   Википедия

  • MetaPost — Paradigm(s) imperative, typesetting Appeared in 1994 (1994) Designed by …   Wikipedia

  • Metapost — est un système qui implante un langage de construction de figures et est interpréteur de ce langage. MetaPost dérive du système Metafont du docteur Donald Knuth. MetaPost est spécialisé dans la production de diagrammes en langage PostScript à… …   Wikipédia en Français

  • MetaPost — Desarrollador Taco Hoekwater (Autor: John D. Hobby) foundry.supelec.fr/projects/metapost/ …   Wikipedia Español

  • MetaPost — est un système qui implémente un langage de construction de figures et est interpréteur de ce langage. Il dérive du système Metafont du docteur Donald Knuth, et est spécialisé dans la production de diagrammes en langage PostScript à partir d une… …   Wikipédia en Français

  • MetaPost — Maintainer Taco Hoekwater Entwickler John D. Hobby Aktuelle Version 1.211 …   Deutsch Wikipedia

  • Metapost — …   Википедия

  • Metafont — Developer(s) Donald Knuth Stable release 2.718281 / March 2008 Operating syste …   Wikipedia

  • Metafont — Entwickler: Donald Knuth Aktuelle Version: 2.718281 (März 2008) …   Deutsch Wikipedia

  • ConTeXt — Not to be confused with ConTEXT. ConTeXt Original author(s) Mainly Hans Hagen and Pragma ADE …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”