Metafont

Metafont ist eine Programmiersprache, die verwendet ist, um Vektor-Schriftarten zu definieren. Es ist auch der Name des Dolmetschers, der Code von Metafont durchführt, die bitmap Schriftarten erzeugend, die in z.B PostScript eingebettet werden können. Metafont wurde von Donald Knuth als Kopie zu seinem Schriftsetzen-System von TeX ausgedacht.

Eine der Eigenschaften von Metafont ist, dass alle Gestalten des glyphs mit geometrischen Gleichungen z.B definiert werden, kann man einen gegebenen Punkt definieren, um die Kreuzung eines Liniensegmentes und kubischen Bézier zu sein.

Verfahrensweise

Verschieden von allgemeineren Umriss-Schriftart-Formaten (wie TrueType oder Typ 1 von PostScript) wird eine Schriftart von Metafont in erster Linie aus Schlägen mit der begrenzten Breite "Kugelschreiber" zusammen mit gefüllten Gebieten zusammengesetzt. So, anstatt den Umriss des glyph direkt zu beschreiben, beschreibt eine Datei von Metafont die Kugelschreiber-Pfade. Einige einfachere Schriftarten von Metafont, wie die kalligrafischen Mathematik-Schriftarten im Computer Moderne Familie, verwenden einen einzelnen Kugelschreiber-Schlag mit einem relativ großen Kugelschreiber, um jeden Seh"Schlag" des glyphs zu definieren. Kompliziertere Schriftarten wie die römischen Textschriftarten im Computer Moderner Familiengebrauch ein kleiner Kugelschreiber, um um den Umriss der Seh"Schläge" zu verfolgen, die dann gefüllt werden; das Ergebnis ist viel einer Umriss-Schriftart, aber mit ein bisschen weich gemachten durch die Kugelschreiber-Gestalt definierten Ecken ähnlich.

Da die Schriftart-Gestalten durch Gleichungen aber nicht direkt codierte Zahlen definiert werden, ist es möglich, Rahmen wie Aspekt-Verhältnis, Schriftart-Schräge, Schlag-Breite, Serife-Größe, und so weiter als Eingangsrahmen in jeder glyph Definition zu behandeln (die dann keine einzige Schriftart, aber eine Meta-Schriftart definieren). So, indem man den Wert von einem dieser Rahmen an einer Position in der Datei von Metafont ändert, kann man eine konsequente Änderung überall in der kompletten Schriftart erzeugen. Computer Moderner Römer illustriert vielen Gebrauch dieser Eigenschaft; eine typische Installation von TeX schließt mehrere Versionen der Schriftart in Größen von 5pt bis 17pt, mit den Schlag-Breiten dasselbe in allen Größen ein (anstatt zuzunehmen, weil die Schriftart hoch geschraubt wird), und Aspekt-Verhältnisse, die sich in den kleineren Größen für die vergrößerte Leserlichkeit erweitern. Außerdem wird der Computer Moderne Schreibmaschine und Ohne-Serife-Schriftarten mit im Wesentlichen dieselbe Datei von Metafont wie die römische Schriftart, aber mit verschiedenen globalen Rahmen definiert.

Kurven in Metafont werden als Kubikfugenbretter definiert aber nicht für die größere Vielseitigkeit mit der ähnlich einfachen Arithmetik quadratisch.

Metafont kann jede Art der grafischen Produktion, nicht nur glyphs machen. Jedoch wird MetaPost mit seiner Produktion von PostScript für fortgeschrittene Illustrationen bevorzugt. Metafont wird meistens ohne eine direkte Bitte vom Benutzer angerufen. DVI Dateien können nur Verweisungen auf Schriftbilder, aber nicht die Sätze des Rasters oder Vektoren glyphs enthalten, den andere Formate wie PostScript erlauben. Folglich muss auf den glyphs in den Schriftbildern zugegriffen werden, wann auch immer eine Bitte gemacht wird, eine DVI Datei anzusehen, zu drucken oder umzuwandeln. Der grösste Teil des Vertriebs von TeX wird konfiguriert, so dass irgendwelche an der erforderlichen Entschlossenheit nicht zurzeit verfügbaren Schriftarten durch Anrufe zu Metafont erzeugt werden. Die Schriftarten werden dann für den späteren Wiedergebrauch versorgt.

Metafont kann auch interaktiv geführt werden, und hat Befehle, um auf dem Schirm die Images zu zeigen, die es erzeugt. Knuth hat gesagt, dass er Metafont als eine Art Arbeitsplatzrechner verwendet, um komplizierte Gleichungen zu lösen, obwohl er jetzt MetaPost für mathematische Illustrationen verwendet.

Das Produzieren von Schriftarten des Typs 1 von PostScript

Es gibt mehrere Werkzeuge, für Programme von Metafont zu Schriftarten des Typs 1 von PostScript umzuwandeln. Die meisten machen von der Fähigkeit von MetaPost Gebrauch, eine Teilmenge der Sprache von Metafont in EPS-Umrisse umzuwandeln, die nachher zu Schriftarten des Typs 1 von PostScript umgewandelt werden können. Das Erzeugen von Vektor-Umrissen von Kugelschreiber-Schlägen direkt in Metafont ist nichttrivial, weil die Bitmapped-Schläge durch rasterization aber nicht wirkliche Umrisse erzeugt werden.

  • Die polnische JNS Mannschaft hat METATYPE1 (gestützt auf MetaPost) entwickelt, für Schriftarten des Typs 1 von PostScript zu schaffen. Sein großer Nachteil ist, dass keine Kugelschreiber verwendet werden dürfen, der hoch die Macht der Sprache von Metafont reduziert. Am Anfang ist Werkzeug von der polnischen WINDSTOß-Schriftbild-Gießerei verwendet worden, um einen modernisierten zu erzeugen, und hat Variante des Computers Modernes, genanntes Modernes Latein erweitert.
  • mf2pt1, der auch auf Metapost basiert, wurde von Scott Pakin mit einigen Beiträgen von Werner Lemberg entwickelt. Es hat auch mehrere Beschränkungen, die in seinem Handbuch, das bedeutendste ausführlich berichtet sind, das die Beschränkung ist, dass jeder glyph völlig von geschlossenen Pfaden gezogen werden muss. Um die Beschränkungen von mf2pt1 zu überwinden, kann die EPS Produktion durch Metapost mit FontForge postbearbeitet werden, der dazu fähig ist, komplizierte Pfade von PostScript zu interpretieren, die von Metapost von den elliptischen Kugelschreibern von Metafont erzeugt sind, und auch zu umziehenden Kontur-Übergreifen fähig sind. Da FontForge scripting unterstützt, kann dieser in einer Prozession postgehende Schritt auch automatisiert werden. Diese Annäherung wurde verwendet, um Umrisse des Typs 1 für MnSymbol mathematische von Achim Blumensath entwickelte Schriftart zu erzeugen; MnSymbol wurde als ein Begleiter dem Günstling Pro entworfen.
  • MetaFog ist ein Eigentumskonverter, der Kugelschreiber-Schläge analytisch umwandeln kann, aber er verlangt, dass manueller Posten, der in einer Prozession geht, degenerierte Fälle beseitigt, und es nicht öffentlich verfügbar ist. Es kann nur Produktion von Metapost bearbeiten.

Die einheitliche Methode, um Schriftarten des Typs 1 mit Kugelschreiber-Schlägen zu erzeugen, muss einen hochauflösenden bitmap und dann das Verwenden eines Autoleuchtspurgeschosses erzeugen, das durch Pakete wie mftrace durchgeführt ist.

Verwenden

Während wohl bekannte Schriftart-Entwerfer, wie Hermann Zapf, mit Knuth zusammengearbeitet haben, um das neue Schriftart-Verwenden Metafont zu schaffen, ist das System von Berufstyp-Entwerfern nicht weit angenommen worden. Knuth schreibt das der Tatsache das zu

wenn

sie einen Künstler bittet, ein echter Mathematiker zu werden, um zu verstehen, wie man schreibt, ist eine Schriftart mit 60 Rahmen zu viel."

Geschichte

Donald Knuth hat Arbeit an der Schriftart-Entwicklungssoftware 1977 angefangen, und hat die erste Version von Metafont 1979 erzeugt. Wegen Mängel auf der ursprünglichen Sprache von Metafont hat Knuth ein völlig neues System von Metafont 1984 entwickelt, und es ist dieses revidierte System, das heute verwendet wird; Metafont hat ein versioning diesem von TeX ähnliches System, wo sich die Zahl asymptotisch e mit jeder Revision nähert.

Beispiel

Das folgende Beispiel schafft eine geschlossene Bohnenmäßiggestalt für den Charakter "B" von einer Schriftart:

mode_setup;

% Definieren Sie eine Bohnenmäßiggestalt für den Charakter B

beginchar ("B" ,11pt#,11pt#,0);

% Einstellung koordiniert als ein Gleichungssystem

y1=y2=y3=0;

y4=y5=y6=h;

x1=x4=0;

x2=x5=w;

x3=x6=2*w;

% Definieren Sie Kugelschreiber

Erholung pencircle xscaled 0.2w yscaled 0.04w hat 45 rotiert;

% Ziehen Sie die Charakter-Kurve

ziehen Sie z1.. z3.. z6 {z2-z6}.. z5.. {Z4-z2} z4.. Zyklus;

endchar;

Ende

</pre>

Das gibt den folgenden glyph nach:

Referenzen

  • Donald Knuth: Metafont: Das Programm, Addison-Wesley 1986. Internationale Standardbuchnummer 0-201-13438-1
  • Donald Knuth: Der Metafontbook, Addison-Wesley 1986. Internationale Standardbuchnummer 0-201-13444-6. Der Quellcode des Buches in TeX (und ein erforderliches Makro) ist online auf CTAN verfügbar.
  • Donald Knuth: Der Metafont Quellcode wird auf der WEB-Programmiersprache geschrieben, und schließt sehr umfassende Dokumentation über die in Metafont verwendeten Algorithmen ein.
  • Yannis Haralambous, "Fonts und Encodings", O'Reilly 2007, internationale Standardbuchnummer 0-596-10242-9, Anhang F: "METAFONT und seine Ableitungen"
  • K. Píška, "Schriftarten des Typs 1 von Quellen von Metafont schaffend: Vergleich von Werkzeugen, Techniken und Ergebnissen", in TeX, XML und Digitaltypografie (Springer-Verlag, Berlin, 2004), Lect. Zeichen Comput. Sci. Vol. 3130, Seiten 240-56. Vorabdruck
  • Hofstadter, Douglas R., "Metafont, Metamathematics und Metaphysik: Kommentare zum Artikel von Donald Knuth 'Das Konzept einer Meta-Schriftart'" Sichtbare Sprache, Vol. XVI Nr. 4, Seiten 309-338 (neu veröffentlicht im Buch von Hofstadter Metamagical Themas, New York: Grundlegende Bücher, 1985)

Links


Pribilof Inseln / Wayne Carey
Impressum & Datenschutz