Was ist Metapost/Metafont und wie kann ich es verwenden?

Was ist Metapost/Metafont und wie kann ich es verwenden?

Inspiriert vonWarum Metapost-Diskriminierung?, ich möchte Metapost kennenlernenweitbesser als jetzt. Ich weiß eigentlich nur, dass Metapost eine Sprache zur Beschreibung von Grafiken ist und Metafont speziell zur Beschreibung von Schriftarten verwendet wird.

Was ist also Metapost/Metafont?

  • haben Metafont/Metapost eine ähnliche Syntax, wie die Namen vermuten lassen?
  • sind die Werkzeuge zum Arbeiten und Kompilieren in den gängigen TeX-Distributionen enthalten?
  • gibt es so etwas wie ein „Hallo Welt“ für diese Systeme? (Auf der gesamten Site finden sich verschiedene Beispiele mit Metapost, aber anscheinend nicht so viele mit Metafont.)
  • Kann pdfTeX ohne allzu großen Aufwand mit Metafont erstellte Schriftarten verwenden?
  • (dasselbe gilt für Metapost, aber es scheint, dass die zahlreichen Beispiele auf dieser Site für sich selbst sprechen)

Antwort1

  1. METAFONT wurde von Knuth als Begleiter von TeX entwickelt. Seine Aufgabe ist es, Schriftarten aus „mathematisch beschriebenen“ Formen zu erzeugen. Die Ausgabe von METAFONT ist eine Sammlung von Bitmap-Glyphen. Durch Setzen geeigneter Parameter kann die Ausgabe bei sorgfältiger Beschreibung der Zeichen an jedes beliebige Druckgerät angepasst werden (die Auflösung ist beispielsweise sehr wichtig, aber nicht der einzige Aspekt, auf den man achten muss).

  2. Metapost ist ein Programm, das direkt von METAFONT abgeleitet wurde. Es wurde ursprünglich von John Hobby geschrieben, der wertvolle Beiträge zu METAFONT geleistet hat. Also, ja, ihre Syntax ist ähnlich: Die Sprache ist eigentlich dieselbe, aber Metapost fügt mehrere Grundelemente und auch Datentypen hinzu (RGB- und CMYK-Farben sind jeweils Dreier- und Vierergruppen, die in METAFONT nicht verwendet werden). Umgekehrt sind einige der Funktionen von METAFONT in Metapost bedeutungslos.

  3. Die Ausgabe von Metapost ist eine einfache Form von Postscript, und das ist der Hauptunterschied zwischen den beiden Programmen: Die Ausgabe von Metapost sind Vektorgrafiken, während METAFONT nur Raster ausgibt.

  4. Metapost kann mit TeX kommunizieren, um Zeichenmetriken abzurufen und Typen in die Ausgabe einzuschließen. Dies ist in METAFONT nicht möglich (es gibt allerdings einige TUGboat-Artikel, die die clevere Verwendung von METAFONT beschreiben).

  5. Von METAFONT erstellte Schriftarten sind mit verwendbar pdftex: alles, was in Knuth TeX möglich ist, ist auch mit möglich pdftex. Die Schriftarten sind jedoch Bitmaps, daher müssen hochauflösende Versionen davon generiert werden, wenn man eine gute Ausgabe erzielen möchte; pdftexverfügt hierfür über einige Grundelemente: \pdfpkresolutionund \pdfpkmodedie zum Generieren von Bitmaps auf Anfrage aus den Quellen verwendet werden.

  6. Die Ausgabe von Metapost ist (gekapseltes) Postscript und kann direkt mit eingebunden werden latex. Da Metapost jedoch nur einen eingeschränkten Satz von Postscript-Funktionen verwendet, kann es auch über einen Satz von TeX-Makros eingebunden werden, die pdflatexursprünglich für ConTeXt geschrieben wurden.

  7. Ein „Hallo Welt“ für METAFONT findet sich im METAFONTbook, allerdings ist es nicht ganz so einfach wie ein ähnliches Testdokument für (La)TeX.

  8. Ein "Hallo Welt" für Metapost lässt sich "einfach" schreiben. Schreiben Sie das folgende hello.mpDokument:

    prologues:=3;                % include all fonts
    outputtemplate:="%j-%c.mps"; % output file will be hello-1.mps
    beginfig(1);
    draw(0,0)--(3cm,0)--(3cm,3cm)--(0,3cm)--cycle;
    label(btex Hello world! etex, (1.5cm,1.5cm));
    endfig;
    end.
    

    Ausführen mpost hellound dann zur Vorschau epstopdf hello-1.mpserhaltenhello-1.pdf

    Bildbeschreibung hier eingeben

Die vollständige Dokumentation von Metapost ist in den TeX-Distributionen verfügbar (für TeX Live tun Sie dies texdoc metapost).

Antwort2

Eine intuitive visuelle Übersicht -http://www.metaflop.com/modulator- Stellen Sie sicher, dass die Anatomie aktiviert ist.

Bildbeschreibung hier eingeben

Antwort3

Um Herberts Kommentar zu erweitern und als Ergänzung zu egregs Kommentar, hier ist ein Codeausschnitt, der es einem ermöglicht, MetaPostCode direkt in LuaLaTeX zu verarbeiten, ohne dass externe Tools erforderlich sind. Zum Teil dankluamplib, eine Paket-/Supportschnittstelle für die mplibLua-Bibliothek, eine eingebettete Version von MetaPost:

\documentclass{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
label ("Insert MP code here", (10,10));
endfig;
\end{mplibcode}
\end{document}

verwandte Informationen