`Zurück zu:` 8 TeX, LaTeX, Makros etc. (IV)
`Hoch zu:` Inhalt
`Weiter zu:` 10 METAFONT und Schriften (Fortsetzung)
`Mehr zu TeX et al.:` DANTE e.V.

DE-TeX-FAQ (Version 72 vom September 2003)
Copyright © 1995-2003 B. Raichle, R. Niepraschk, Th. Hafner

# 9 METAFONT und Schriften

- 9.1 METAFONT und METAFONT-Hilfsprogramme
- 9.1.1 Was ist ein Meta-Font?
- 9.1.2 Was sind tfm-, pl-, gf-, pk-, pxl-Dateien?
- 9.1.3 Was sind virtuelle Fonts, was vpl-, vf-Dateien?
- 9.1.4 Was ist METAPOST?
- 9.1.5 Was ist MFT?
- 9.1.6 Beim Übersetzen einer mf-Datei erhalte ich immer eine gf-Datei mit Endung ,.2602gf` (bzw. ,.260` bei Filesystemen, die nur drei Zeichen als Datei-Extension zulassen). Wieso?
- 9.1.7 Wozu benötige ich für jeden Druckertyp eine andere Anpassung in Form einer ,mode_def`? Wo finde ich für den Drucker XYZ eine solche Anpassung?
- 9.1.8 Kann ich aus einer vorhandenen tfm-Datei die mf-Source erzeugen? Gibt es dafür ein Programm?
- 9.1.9 Wie kann ich nur die tfm-Dateien einer Schrift erzeugen?
- 9.2 Schriften - allgemein
- 9.2.1 Gibt es eine Schrift XYZ? Wo finde ich diese?
- 9.2.2 Wie installiere ich mit ,dvips` eine neue PostScript-Schrift, so daß ich diese unter (La)TeX verwenden kann?
- 9.2.3 Warum sind die Buchstaben in meiner pdf-Datei von schlechter Qualität?
- 9.2.4 In einer mit ,dvips` erzeugten PostScript-Datei fehlen die Ligaturen und andere Zeichen.
- 9.2.5 Warum werden mit der Suchfunktion des Programms ,Acrobat Reader` keine Worte gefunden, die Umlaute enthalten?
- 9.3 TrueType-Schriften
- 9.3.1 Wie kann ich TrueType-Schriften in LaTeX verwenden?

  ## 9.1 METAFONT und METAFONT-Hilfsprogramme

  ### 9.1.1 Was ist ein Meta-Font?

  Um die einzelnen Zeichen einer Schrift, eines Font, auf Papier zu bringen, muß man wissen, an welchen Stellen das Papier mit Druckerfarbe geschwärzt werden soll und an welchen nicht. Diese Information kann auf verschiedene Arten repräsentiert werden: Die einfachste Form ist die ,Bitmap` bzw. ,Pixelmap`, d.h. jedes Zeichen wird gerastert und für jeden einzelnen Punkt im Raster (= Pixel) wird abgespeichert, ob diese Stelle geschwärzt werden soll. Eine Bitmap-Repräsentation hat jedoch den Nachteil, daß man diese nicht ohne weiteres vergrößern, verkleinern oder die Rasterung an eine andere Auflösung eines Ausgabegeräts anpassen kann, da man in den meisten Fällen unerwünschte Seiteneffekte bekommt (Stufen, Moiré-Effekte, dünnere Linien verschwinden bei Verkleinerung, als regelmäßige oder unregelmäßige Muster sichtbare Rasterung u.ä.).

  Man verwendet zur Beschreibung der Ausmaße und der Form eines Zeichens daher besser eine rasterungs-, also auflösungsunabhängige Repräsentation. Dazu gibt es nun mehrere Verfahren:

  In METAFONT legt man Linienzüge durch Punkte und durch diese Punkte festgelegte Spline-Kurven fest und zieht diese mit einem vorher definierten ,Pinsel` nach. Durch die Form und die Lage des verwendeten Pinsels können mit denselben Kurven sehr unterschiedliche Zeichenformen erzeugt werden. Nachdem das Zeichen aus einzelnen Kurvenzügen definiert und mit unterschiedlichen Pinseln gezeichnet wurde, rastert METAFONT die dadurch eingefärbten Flächenteile und erzeugt daraus einen Font in Form einer Bitmap. Da METAFONT zur Programmierung einer solchen Font-Beschreibung eine Programmiersprache definiert, kann ein Font-Designer einer Font-Beschreibung beliebig viele Parameter mitgeben, die die Form und Ausmaße der einzelnen Zeichen der erzeugten Schrift in unterschiedlichen Richtungen verändern. Wegen dieser Möglichkeit, aus einer einzigen Beschreibung durch Wahl verschiedener Parameter viele verschiedene Schriften erzeugen zu können, nennt man diese Font-Beschreibungen auch ,Meta-Font`. Man kann also durch Wahl der in einem Meta-Font definierten Parameter unterschiedliche Fonts in verschiedenen Größen erzeugen. Durch Angabe der gewünschten Auflösung und weiterer Parameter des Ausgabegeräts kann wiederum für einen solchen Font eine optimal an das jeweilige Ausgabegerät angepaßte Bitmap-Wiedergabe dieses Fonts erzeugt werden.

  Neben dieser von METAFONT verwendeten Beschreibung eines Fonts in Form von mit Pinseln gezeichneten Spline-Kurven kann man die Form eines Zeichens auch durch die Angabe des Umrisses der zu schwärzenden Fläche beschreiben. Auch hier werden wiederum Spline-Kurven zur Beschreibung der Umrisse eines Zeichens verwendet. Diese Beschreibung in Form eines sogenannten ,Outline` wird beispielsweise in PostScript-Schriften verwendet.

  ### 9.1.2 Was sind tfm-, pl-, gf-, pk-, pxl-Dateien?

  Neben dem Aussehen der einzelnen Zeichen in einem Font werden noch weitere Informationen über jedes einzelne Zeichen und über schrift-globale Parameter benötigt: Von jedem Zeichen muß TeX die Ausmaße in Form von Breite, Höhe und Tiefe in Bezug zur Grundlinie wissen. Zu bildende Ligaturen (z.B. `f+f` => ff), das Kerning zwischen zwei Zeichen (z.B. Unterschneidung bei ,Ta`) und beispielsweise der zu verwendende Wortabstand sind weitere Informationen, die über einen Font abgelegt sein müssen, da sie von TeX benötigt werden.

  Diese Informationen liest TeX aus der ,TeX Font Metric` oder kurz tfm-Datei. Die Programme ,pltotf` und ,tftopl` wandeln die Informationen in einer tfm-Datei in eine lesbare Form, die ,Property List` oder kurz pl-Datei um.

  In den gf- (Generic Font), pxl- (Pixel) und pk- (Packed Pixel) Dateien sind die Bitmap-Repräsentationen jedes Zeichens einer Schrift abgelegt. Da pk- und pxl-Dateien genau dieselben Informationen enthalten, die pxl-Dateien jedoch mehr Platz benötigen, werden diese heutzutage nicht mehr verwendet und unterstützt. Mit den Programmen ,gftopk` und ,pktogf` können die Bitmap-Repräsentationen ineinander umgewandelt werden. Da gf-Dateien in der Lage sind, in einer Bitmap neben den einzelnen Pixeln noch weitere Informationen zu enthalten (z.B. ,special`-Anweisungen), können bei dieser Umwandlung Informationen verloren gehen. Da jedoch nur sehr wenige Programme und Gerätetreiber diese zusätzlichen Informationen verwenden und die pk-Darstellung viel kompakter ist, sind gf-Dateien normalerweise nur für METAFONT wichtig.

  METAFONT erzeugt aus einer mf-Source eine tfm-Datei mit der auflösungsunabhängigen ,TeX Font Metric` und eine auflösungsabhängige gf-Datei. Aus der gf-Datei wird üblicherweise mit ,gftopk` eine pk-Datei erzeugt.

  TeX verwendet nur die Informationen in der tfm-Datei, die Bitmap in der gf- bzw. der pk-Datei wird von TeX nicht gelesen. Ein Gerätetreiber, der eine dvi-Datei druckt oder darstellt, verwendet die pk-Dateien und in einigen Fällen auch die tfm-Datei.

  ### 9.1.3 Was sind virtuelle Fonts, was vpl-, vf-Dateien?

  Ein virtueller Font ist, wie der Name schon sagt, eine Schrift, die keine real (in Form einer Bitmap) existierenden Zeichen enthält. Stattdessen wird in einem virtuellen Font auf andere Schriften und die dort enthaltene Zeichen verwiesen. Durch diesen ,Trick` kann man beispielsweise die Kodierung der Zeichen in einer Schrift umdefinieren oder eine Schrift aus Zeichen mehrerer Schriften zusammensetzen, um so z.B. einzelne Zeichen durch andere zu ersetzen. Darüber hinaus kann man in virtuellen Fonts auch einzelne Zeichen aus mehreren Zeichen zusammensetzen, indem man beispielsweise fertig akzentuierte Zeichen aus dem entsprechenden Akzent- und Basiszeichen bildet. Eine weitere Anwendung für virtuelle Fonts ist die Verwendung einer Ersatzschrift für eine nicht verfügbare Schrift, die dieser möglichst nahekommt und dieselben TeX-Font-Metric-Informationen besitzt.

  Eine vf-Datei enthält die Definition eines solchen virtuellen Fonts in binärer, sehr kompakter Form. Dieser vf-Datei muß eine tfm-Datei zugeordnet sein, in der TeX die ,TeX Font Metric` für diese Schrift finden kann. Eine vpl-Datei ist eine für den Menschen lesbare Darstellung der vf- und tfm-Datei in Form von ,Property Lists`. Mit dem Programm ,vptovf` kann aus einer vpl-Datei eine vf- und die zugehörige tfm-Datei erzeugt werden, mit ,vftovp` bekommt man aus diesen beiden Dateien wieder die vpl-Datei.

  TeX ,weiß` nichts von virtuellen Fonts. TeX liest keine vf-Dateien, sondern benötigt nur die zugehörige tfm-Datei, aus der nicht ersichtlich ist, ob dies ein ,realer` oder ein virtueller Font ist. vf-Dateien werden nur von den Gerätetreibern verwendet. Für Treiber, die (noch) keine virtuellen Fonts unterstützen, kann das Programm ,dvicopy` verwendet werden, um eine dvi-Datei in eine dvi-Datei umzuwandeln, in der alle virtuellen Fonts ,aufgelöst` worden sind, also nur noch ,reale` Fonts verwendet werden. Achtung: Die meisten verfügbaren virtuellen Fonts sind unabhängig vom Ausgabegerät, sie können jedoch auch abhängig vom Ausgabegerät sein!

  ### 9.1.4 Was ist METAPOST?

  METAPOST ist ein aus METAFONT abgeleitetes Programm zum Erstellen von PostScript-Zeichnungen, das von John Hobby, einem ehemaligen Mitarbeiter von Donald E. Knuth, entwickelt wurde. Die METAPOST-Sprache ist sehr eng verwandt mit METAFONT, unterstützt aber einige zusätzliche Features, wie beispielsweise das Beschriften von Abbildungen in TeX über einen Präprozessor (dies setzt den dvi-Treiber ,dvips` voraus).

  Um eine Zeichnung zu erstellen, muss man ein METAPOST-Programm schreiben und compilieren. Diese Arbeitsweise ähnelt METAFONT, ist somit eben ganz anders als die sonst gewohnten Grafik-/Malprogramme. METAPOST ist dafür aber gut für berechnete Zeichnungen geeignet oder zum Plotten von Funktionen oder Datenwerten. Knuth benutzt es selbst für Zeichnungen in seinen Büchern. Das Programm ist erst seit Anfang 1995 frei erhältlich, vorher nur nach Abschluß eines ,non-disclosure agreement`. Implementierungen von METAPOST existieren mittlerweile für sehr viele Plattformen:

  - Web2c: CTAN: `systems/web2c/`

    Web2c enthält ab Version 7.0 METAPOST-Sources, wobei Web2c mittlerweile neben Unix auch Amiga, OS/2 und Windows 95/98/NT und BeOS unterstützt.

  - teTeX: CTAN: `systems/unix/teTeX/`

    Ab teTeX Version 0.4 ist METAPOST enthalten.

  - Amiga: CTAN: `systems/amiga/amiweb2c/` (Andreas Scherer)

    Siehe auch Web2c.

  - OS2: Siehe Web2c.
  - Windows 95/NT: Siehe Web2c.
  - DOS: CTAN: `systems/msdos/metapost/` (Piet van Oostrum)

    paßt zu emTeX

    CTAN: `systems/msdos/dostp22/` (Peter Breitenlohner)

    integriert in PubliC-(e-)TeX/MF/MP, TDS-kompatibel

  - MacOS: CTAN: `nonfree/systems/mac/cmactex/` (Tom Kiffe)

  Seit März 2000 ist für METAPOST auch der graphische Editor ,Metagraf` öffentlich verfügbar, der gerade entwickelt wird. Er ist in Java geschrieben und somit auf vielen Betriebssystem lauffähig.

  METAPOST: | `http://cm.bell-labs.com/who/hobby/MetaPost.html`
  | CTAN: `graphics/metapost/`
  Peter Wilson: Some Experiences...: | CTAN: `info/metafp.pdf`
  | CTAN: `info/metafp.ps`
  Hans Hagen: metafun: | `http://www.pragma-ade.com/pragma-ade/general/manuals/beta/metafun-p.pdf`
  Denis Roegel: The metaobj tutorial and reference manual: | `http://www.loria.fr/~roegel/TeX/momanual.pdf`
  METAOBJ: | CTAN: `graphics/metapost/contrib/macros/metaobj/`
  Metagraf: | `http://w3.mecanica.upm.es/metapost/metagraf.html`

  ### 9.1.5 Was ist MFT?

  ,mft` ist ein Programm, das aus METAFONT-Quellcode eine TeX-Datei erzeugt, mit der dieser Quellcode schön formatiert erscheint. Damit es wirklich schön aussieht, sind zusätzliche Kommentare im Quellcode notwendig. Nur sehr wenige Autoren von METAFONT verwenden ,mft`.

  ### 9.1.6 Beim Übersetzen einer mf-Datei erhalte ich immer eine gf-Datei mit Endung ,.2602gf` (bzw. ,.260` bei Filesystemen, die nur drei Zeichen als Datei-Extension zulassen). Wieso?

  Zur Erzeugung einer Schrift für ein bestimmtes Ausgabegerät benötigt METAFONT eine Beschreibung in Form einer ,Mode Definition` (kurz: ,`mode_def``), in der u.a. die Auflösung des Ausgabegeräts festgelegt wird. METAFONT wird meist mit

      mf \mode:=<Mode-Name>; mag:=<Magnification>; input <Font-Filename>

  aufgerufen (unter Unix Quote-Zeichen `'` um die Argumente im METAFONT-Aufruf nicht vergessen!), wobei mit <Mode-Name> der Namen einer solchen ,mode_def` anzugeben ist. Wird kein ,mode` angegeben oder ist <Mode-Name> unbekannt, verwendet METAFONT den Proof-Mode, der einen Korrekturabzug der Schrift erstellt. Damit die Zeichen in diesem Korrekturabzug groß genug sind, verwendet METAFONT dazu die Auflösung 2602dpi (= ,dots per inch`). Falls dies nicht erwünscht war, sollte man überprüfen, ob der ,mode` korrekt gesetzt wurde, ob <Mode-Name> beispielsweise korrekt angegeben wurde (Schreibfehler!) und ob <Mode-Name> bei der Erstellung der base-Datei (,Dumpen` der Datei ,,`plain.mf```) mit ,mode_def` definiert wurde.

  ### 9.1.7 Wozu benötige ich für jeden Druckertyp eine andere Anpassung in Form einer ,mode_def`? Wo finde ich für den Drucker XYZ eine solche Anpassung?

  Jedes Ausgabegerät hat unterschiedliche Charakteristiken. Zum einen unterscheiden sie sich in der Auflösung, zum anderen beispielsweise auch in der Größe eines gezeichneten Pixels. So wird bei einem Tintenstrahldrucker im Vergleich zu einem Laserdrucker in den meisten Fällen ein einzelner Punkt etwas größer ausfallen. Sehr große Unterschiede treten prinzipbedingt beim Vergleich von sogenannten ,schwarz`- und ,weiß`-schreibenden Laserdruckern auf. Auch wird beim Schnitt zweier Kurven (z.B. in der Mitte des Zeichens ,X`) die geschwärzte Fläche etwas größer ausfallen, da die Druckerfarbe abhängig vom Druckprinzip und vom Druckwerk mehr oder weniger ineinander verlaufen kann. Damit METAFONT all diese und weitere Eigenschaften eines Ausgabegeräts bei der Erzeugung der Bitmap-Rasterung eines Zeichens in Betracht ziehen kann, werden die einzelnen Parameterwerte für ein Ausgabegerät in einer ,Mode Definition` mit der Anweisung ,mode_def` abgelegt.

  Da die Erstellung einer neuen ,Mode Definition` für ein Ausgabegerät einiges an Arbeit (Testdruck, überprüfen, anpassen, Testdruck usw.) bedeutet, wurden von Karl Berry alle bisher für verschiedene Ausgabegeräte gefundenen ,Mode Definitions` in der Datei ,,`modes.mf``` gesammelt. Da ,,`modes.mf``` neben den ,Mode Definitions` noch dafür sorgt, daß man verschiedene Informationen (z.B. ,coding scheme`) über einen Font setzen kann und diese korrekt abgelegt werden, ist diese Datei jedem empfohlen.

  modes.mf: | CTAN: `fonts/modes/modes-3.5.mf`
  (Hinweis: Seit Februar 2002 gibt es die Version 3.5 mit Voreinstellungen für neuere Drucker)

  ### 9.1.8 Kann ich aus einer vorhandenen tfm-Datei die mf-Source erzeugen? Gibt es dafür ein Programm?

  Nein. tfm-Dateien enthalten keine Bitmap- oder ähnliche Information über das Aussehen der Zeichen in einer Schrift. Daher kann aus einem tfm-File weder eine pk-Datei noch die mf-Source restauriert werden.

  Es ist jedoch möglich, aus einer pk- und der tfm-Datei einer Schrift eine mf-Source zu erstellen. Dabei ist das entstehende Resultat jedoch kein Meta-Font mehr, sondern ,nur` noch ein mf-Programm für genau diese Schrift. Das Ergebnis ist je nach Aufwand mehr oder weniger gut und verlangt in den meisten Fällen noch einiges an Handarbeit, so daß sich der Aufwand nur in seltenen Fällen lohnt.

  ### 9.1.9 Wie kann ich nur die tfm-Dateien einer Schrift erzeugen?

  In der Datei ,,`modes.mf``` ist dafür die Mode-Definition ,nullmode` gedacht, in der neben der tfm- zwar auch eine gf-Datei erzeugt wird, jedoch in einer Auflösung von 101dpi, so daß dies schneller als mit 300dpi oder 600dpi geschieht.

  ## 9.2 Schriften - allgemein

  ### 9.2.1 Gibt es eine Schrift XYZ? Wo finde ich diese?

  Als erste Informationsquelle sollte man die Liste ,,`metafont-list``` der verfügbaren METAFONT-Schriften nach der gesuchten Schrift durchsehen. Diese Liste enthält eine kurze Beschreibung und Klassifikation der meisten Schriften, die man auf CTAN im Verzeichnis ,,`CTAN: `fonts/```` finden kann.

  Beschränkt man sich nicht nur auf in METAFONT-Quellen vorhandene Schriften, kann man auch Schriften in PostScript-Type-1- oder Type-3-Form, PCL-Schriften u.a. auf verschiedenen ftp-Servern finden. Existieren für diese Schriften Font-Metriken, die man in eine tfm-Datei umwandeln kann, sind sie sehr einfach unter (La)TeX verwendbar (evtl. nach Umkodierung mittels virtueller Fonts). Verschiedene Programme dafür findet man auf CTAN im Verzeichnis ,,`CTAN: `fonts/utilities/````, fertige Anpassungen findet man für weitverbreitete Schriften ebenso unter ,,`CTAN: `fonts/````.

  metafont-list: | CTAN: `info/metafont-list`
  Liste de fontes au format MF sur les archives CTAN: | `http://www.math.jussieu.fr/~zoonek/LaTeX/MF/liste.html`
  Zeichensätze und Symbole: | `http://www.loria.fr/services/tex/german/fontes.html`
  dpunkt-Verlag: | `http://www.dpunkt.de/produkte/latex/fonts/`
  Adobe Type Library: | `http://www.adobe.com/type/`
  symbols: | CTAN: `info/symbols/`
  comprehensive: | CTAN: `info/symbols/comprehensive/`
  Luc Devroye: Font Pages: | `http://cgm.cs.mcgill.ca/~luc/fonts.html`

  ### 9.2.2 Wie installiere ich mit ,dvips` eine neue PostScript-Schrift, so daß ich diese unter (La)TeX verwenden kann?

  Schritt 0 - Dokumentation lesen:

  Zuerst sollte man sich die Dokumentation zum ,dvips` durchlesen. Diese beschreibt die wichtigsten Schritte, auch wenn die dort beschriebenen Dateinamen und die Kodierungen für die PS-Schriften veraltet sind (gilt zumindest für die Dokumentation bis ,dvips` Version 5.58). Außerdem sollte man ,Filenames for TeX fonts` von Karl Berry in der Version 2.0 (oder neuer) durchlesen, in dem ein für alle TeX-Systeme verwendbares, einheitliches Namensschema beschrieben wird.

  Schritt 1 - TeX-Anpassungen besorgen oder selbst generieren:

  Gibt es auf CTAN im ,psfonts`-Verzeichnis bereits fertige Anpassungen? Wenn ja, sollte man diese verwenden. Wenn nein, sollte man sich das Tool ,fontinst` besorgen, mit dem man relativ einfach aus der mit dem PostScript-Font mitgelieferten afm-Datei die notwendigen virtuellen Fonts (vf-Dateien) mit den entsprechenden Fontkodierungen und Font-Definitions-(fd)-Dateien für LaTeX erzeugen lassen kann. Für Textschriften sollten zumindest vf-Dateien für OT1-Kodierung, besser auch noch für T1-Kodierung erzeugt werden.

  Schritt 2 - PS- und TeX-Font-Dateien installieren:

  Nach Schritt 1 sollten beispielsweise für die Schrift ,URW Antiqua Regular Roman Condensed` bzw. nach Berrys Namenschema ,uaqr...c...` folgende Dateien vorhanden sein:

  - PS-Schrift und zugehörige Font-Metrik: uaqr8ac.{pfb,afm}
  - virtueller Font, zugehörige TeX-Font-Metriken und PS-Reencoding:
    uaqr8rc.{vpl,vf,tfm} TeX Base-1 Encoding (unkodiert, Adobe-Std.-Encoding)
    uaqr7tc.{vpl,vf,tfm} TeX-Text-/OT1-/CM-Encoding (,7-bit`)
    uaqr8tc.{vpl,vf,tfm} Cork-TeX-Text-/T1-/EC-Encoding (,8-bit`)
    8r.enc PS-Reencoding, in ,fontname` enthalten
  - LaTeX-Font-Definition-Files:
    ot1uaq.fd (vormals: OT1uaq.fd)
    t1uaq.fd (vormals: T1uaq.fd)
    ts1uaq.fd
    antiqua.sty
  und noch einige weitere Dateien für die ,slanted`- und ,small caps`-Varianten, die man mit ,fontinst` erzeugen kann.

  Diese Dateien werden nun in folgende Verzeichnisse gelegt:

  `*.fd`, `*.sty` => TEXINPUTS (TeX)
  `*.tfm` => TEXFONTS bzw. ,T`-Eintrag (TeX + dvips)
  `*.vf` => ,V`-Eintrag oder VFFONTS (dvips)
  `*.pfb/pfa` => ,H`-Eintrag oder DVIPSHEADERS (dvips)

  Schritt 3 - Map-Datei des PS-Fonts für ,dvips` erzeugen:

  Map-Datei für ,dvips` erzeugen, in der die Zuordnung des Font-Namens in TeX zu dem in PS verwendeten festgelegt wird und evtl. die zu ladenden pfb-/pfa- und PS-Reencoding-Dateien angegeben werden. In unserem Beispiel enthält die Map-Datei ,uaq.map` die Zeile

      uaqr8rc URWAntiquaT-RegularCondensed "TeXBase1Encoding ReEncodeFont"
              <8r.enc <uaqr8ac.pfb

  (dies muß eine einzige Zeile sein, sie wurde hier nur umbrochen, um eine zu lange Zeile zu vermeiden!) und evtl. noch Zeilen für weitere Schriften und Varianten.

  Diese Map-Datei in ein Verzeichnis legen, in dem ,dvips` nach PS-Header-Dateien sucht (Umgebungsvariable DVIPSHEADERS bzw. ,H`-Eintrag in ,,`config.ps```).

  Schritt 4 - ,dvips`-Konfigurationsdatei anpassen:

  Konfigurationsdatei ,,`config.ps``` des ,dvips` ändern: Die in Schritt 3 erstellte Map-Datei durch die in ,,`config.ps``` neu einzutragende Zeile

      p +uaq.map

  zusätzlich zur Standard-Map-Datei ,,`psfonts.map``` laden. (Ältere ,dvips`-Versionen verstehen das ,+` nicht; bei diesen muß man den Inhalt der Map-Datei ,,`uaq.map``` an die Datei ,,`psfonts.map``` anhängen und die obige Zeile in ,,`config.ps``` ist wegzulassen.) Außerdem sollte man noch überprüfen, ob das Verzeichnis, in dem die Map-Datei und die pfb-/pfa-Dateien zu finden sind, im Suchpfad nach PS-Header-Dateien enthalten ist (DVIPSHEADERS bzw. ,H`-Eintrag in ,,`config.ps```).

  Schritt 5 - Anpassungen testen und verwenden:

  Mit LaTeX kann man unsere Beispielschrift einfach mittels des Pakets ,antiqua` verwenden, da diese Schrift damit als ,`\rmdefault``-Schrift verwendet wird. Ohne dieses Package kann man auch durch die Anweisung ,`\usefont```{OT1}``{uaq}``{m}``{n}` diese Schrift kurz austesten. LaTeX müßte dazu die fd- und tfm-Dateien finden und einlesen können. ,dvips` benutzt dann die angepaßte Konfigurationsdatei, die virtuellen Schriften ,,`uaqr*.vf```, die Map-Datei ,,`uaq.map```, die eigentliche PS-Schrift ,,`uaqr8ac.pfb``` und schließlich noch ,,`8r.enc```.

  Für die PostScript-Schriften, die standardmäßig mit den meisten PostScript-fähigen Druckern mitgeliefert werden, als auch für einige freie Schriften und die Lucida-Schriftfamilie existiert in Form von ,psnfss` eine Menge von LaTeX-Paketen.

  Unter Plain-TeX kann man diese Schrift relativ einfach z.B. durch die Anweisung `\font``\rmantiqua``=uaqr7tc` laden und anschließend verwenden. Zur Verwendung der T1-kodierten Variante ,,`uaqr8tc``` sind, wie bei der Verwendung der EC-Schriften unter Plain-TeX, noch einige Anpassungen notwendig.

  Unter LaTeX 2.09 gilt dasselbe wie für Plain-TeX, nur sollte man hier besser `\newfont``{`\rmantiqua`}``{uaqr7tc}` verwenden. Will man diese Schrift und deren Varianten statt den CM-Schriften in einem Dokument verwenden, so sind größere Änderungen notwendig, die den Rahmen dieser FAQ sprengen würden. Am einfachsten ist ein Umstieg auf eine aktuelle LaTeX-Version!

  dvips.tex: | CTAN: `dviware/dvips/`
  fontname: | CTAN: `info/fontname/`
  8r.enc: | CTAN: `info/fontname/8r.enc`
  psfonts: | CTAN: `fonts/psfonts/`
  | CTAN: `fonts/psfonts/urw/antiqua/`
  | (unsere Beispielschrift)
  fontinst: | CTAN: `fonts/utilities/fontinst/`
  | `http://www.tug.org/applications/fontinst/`
  psnfss: | CTAN: `macros/latex/required/psnfss`
  | CTAN: `info/installing_psnfss_on_emtex.pdf`
  PostScript Type 1 fonts (Nelson Beebe): | `http://www.math.utah.edu/~beebe/fonts/postscript-type-1-fonts.html`
  Walter Schmidt: Schriften für TeX: | `http://home.vr-web.de/was/fonts.html`
  Tobias Regenbrecht: Integration von PostScript-Fonts in LaTeX2e: | `http://www.regenbrecht.net/psfonts/psfonts_tetex.html`

  ### 9.2.3 Warum sind die Buchstaben in meiner pdf-Datei von schlechter Qualität?

  Schriften in pdf-Dateien werden mit schlechter Qualität dargestellt (und evtl. auch gedruckt), wenn sie in der pdf-Datei als Bitmaps enthalten sind, also nicht in Form von Vektorfonts. Um das zu verhindern, ist auf folgende Punkte zu achten:

  - Es dürfen im Dokument nur solche Schriften verwendet werden, die im Format Type-1 (PostScript) oder TrueType vorhanden sind. Welche das sind, sollte aus der Dokumentation des TeX-Systems hervorgehen. Schriften, die ausschließlich im Metafont-Format existieren, können hingegen in pdf-Dateien nur in Form von Bitmaps benutzt werden, sind also nach Möglichkeit zu vermeiden.
  - Wenn Schriften sowohl im Metafont-Format als auch als Type-1 oder TrueType vorliegen, dann müssen die beteiligten Programme so konfiguriert sein, dass sie nicht die Metafont-Version verwenden. In aktuellen TeX-Distributionen ist das zumindest für pdfTeX normalerweise der Fall.

  Die häufigsten Fehlerquellen sind:

  - Es werden die EC- und TC-Fonts benutzt, ohne dass diese im Type-1-Format vorliegen. Abhilfe: EC/TC-Fonts im Type-1-Format beschaffen und installieren (siehe Frage 10.1.7) oder stattdessen die AE-Fonts verwenden (siehe ebenfalls Frage 10.1.8)
  - Wenn die pdf-Datei auf dem Weg über ,dvips` und nachfolgende Umwandlung ins pdf-Format erzeugt wurde, dann hat ,dvips` die CM-Schriften im Metafont-Format und damit in einer Bitmap-Version verwendet, obwohl diese auch als Type-1 existieren. Dies ist häufig das voreingestellte Verhalten von ,dvips`. Abhilfe: ,dvips` mit einer passenden Option aufrufen, so dass alle vorhandenen Type-1-Fonts auch tatsächlich verwendet werden. Wie diese Option lautet, hängt von jeweiligen TeX-System ab; beachten Sie dessen Dokumentation! Mit vielen Systemen funktioniert:

        dvips -Ppdf -G0

    Beachten Sie dabei, dass CM-Schriften oft für bestimmte mathematische Symbole benötigt werden, auch wenn die Grundschrift eines Dokuments nicht Computer-Modern ist, z.B. mit Paketen wie ,mathptmx`.
  - Die pdf-Datei wurde aus PostScript durch Umwandlung mit dem Programm ,Ghostscript` erzeugt, wobei eine ältere Version (< 6.51) zum Einsatz kam. Diese Programmversionen wandeln aber (fast) alle Fonts (auch Vektorfonts!) in Bitmaps um. Sie sind als veraltet anzusehen und sollten durch eine neuere Version (6.51 oder besser) ersetzt werden, die mit Vektorfonts umgehen kann.

  Ghostscript: | CTAN: `nonfree/support/ghostscript/`
  Fonts in LaTeX: Item, www.mamster.net/tex/latex-fontfaq-amster-burton.pdf: WWW-Link Fonts in LaTeX: Item, `http://www.mamster.net/tex/latex-fontfaq-amster-burton.pdf`: link) Matthew Amster-Burton: The Sooper-Simple Guide to Type 1 Fonts in LaTeX: | `http://www.mamster.net/tex/latex-fontfaq-amster-burton.pdf`

  ### 9.2.4 In einer mit ,dvips` erzeugten PostScript-Datei fehlen die Ligaturen und andere Zeichen.

  Dieses Problem kann auftreten, wenn die .ps-Datei unter Verwendung der dvips-Option `-Ppdf` erzeugt wurde. Abhilfe: Ergänzen Sie beim Aufruf von dvips die Option `-G0`:

        dvips -Ppdf -G0 ...

  Hintergrund: Die Option `-Ppdf` manipuliert u.a. den Zeichensatz der verwendeten Schriften, um einen potentiellen Fehler des ,Acrobat Reader` 4.0 zu umgehen. Das ist jedoch nur dann überhaupt relevant, wenn die .ps-Datei später in PDF umgewandelt wird, und es funktioniert außerdem nur bei Fonts mit 128 Zeichen (z.B. CM); mit anderen Fonts führt es dazu, dass Zeichen verloren gehen. Mit der zusätzlichen Option `-G0` wird dieses Verhalten abgestellt. Version 4.0 des Acrobat Reader ist mittlerweile veraltet und dürfte wegen zahlreicher Mängel sowieso kaum noch verwendet werden, so dass es wenig Sinn macht, sie weiterhin zu berücksichtigen.

  Vorsicht: Es sind auch Implementierungen von ,dvips` im Umlauf, mit denen das beschriebene Verhalten schon ohne die Option `-Ppdf` auftritt. Die zusätzliche Option `-G0` behebt das Problem dann ebenfalls.

  ### 9.2.5 Warum werden mit der Suchfunktion des Programms ,Acrobat Reader` keine Worte gefunden, die Umlaute enthalten?

  Ein Voraussetzung dafür ist die Verwendung von T1-kodierten Schriften. Die oftmals günstige Lösung mit dem Paket ,ae`

      \usepackage{ae}

  um auf die ,CM`-Schriften in T1-Kodierung zugreifen zu können, versagt leider hinsichtlich der Umlaute und anderer akzentuierter Buchstaben, da diese auch bei Verwendung dieses Paketes intern aus mehreren Lettern zusammengesetzt werden. Um das Problem zu umgehen, sollte man Schriften in T1-Kodierung verwenden, in denen die Umlaute tatsächlich enthalten sind, wie etwa die EC-Fonts (Type1-Versionen; Frage 10.1.7) oder die PostScript-Basisfonts (siehe Frage 10.2.1).

  ## 9.3 TrueType-Schriften

  ### 9.3.1 Wie kann ich TrueType-Schriften in LaTeX verwenden?

  TeX bzw. LaTeX benötigt von jeder Schrift, egal in welchem Format sie vorliegt, nur die tfm-Dateien einer Schrift. Erst der Treiber für das Ausgabegerät benötigt die Schrift selbst und hier ist es vom Treiber abhängig, in welchem Format die Schrift vorliegen darf. Historisch kommt fast jeder Treiber mit PK-Dateien bzw. METAFONT-Dateien, aus denen PK-Dateien erzeugt werden können, zurecht. Ebenso ist die Unterstützung von PS-Schriftformaten weit verbreitet.

  Erzeugt man mit pdfTeX PDF-Dateien, so kann pdfTeX TrueType-Schriften direkt verwenden und einbetten.

  Sonst gibt es, wie oben erwähnt, prinzipiell drei Möglichkeiten:

  - ,ttf2pk`:

    Dieses Programm konvertiert beliebige TrueType-Schriften (auch asiatische!) in PK-Dateien. ,ttf2pk` übernimmt dabei analog zu ,gsftopk` bei PS-Schriften das Rendering für Anwendungen, die TrueType-Schriften nicht unterstützen. Quellcode, Dokumentation etc. findet man im FreeType-Paket: `http://www.freetype.org/projects.html`

    MikTeX und fpTeX enthalten bereits Binaries; die neuesten teTeX-Distributionen ab Version 1.0 haben Unterstützung für ,ttf2pk` in den Skripten (man muß also nur ,ttf2pk` kompilieren).

  - TTF => PS-Fonts:

    Auch hier gibt es mehrere Ansätze.

    - ,ttf2pfb`:

      Konvertiert TrueType-Fonts (auch asiatische!) in Type-1 PostScript-Schriften. Nachteile: Unterstützung von Komposit-TTFs derzeit nur beschränkt möglich; außerdem geht das Hinting (d.h. die Anpassung an kleine Schriftgrößen) verloren.

      `http://www.freetype.org/projects.html`

    - ,ttf2pt1`:

      ,ttf2pt1` kann asiatische Fonts bzw. Fonts mit mehr als 256 Glyphen behandeln, wobei die allgemeine Beschränkung, daß ein Encoding-Vektor nur 256 Elemente haben kann, jedoch davon unabhängig besteht; kann auch Metriken im .afm-Format erzeugen, so daß Kerning-Informationen nicht verlorengehen.

      `http://www.netspace.net.au/~mheath/ttf2pt1/`

    - TTF => PS-Fonts im Type-42-Format:

      Erzeugt eine ,Wrapper-Datei` um den TrueType-Font. ,Ghostscript` und neuere PS-Interpreter haben ein eingebautes TrueType-Modul, welches das Type-42-Format verstehen kann - allerdings ist der TrueType-Rasterer von älteren Ghostscript-Versionen eher schlecht. (Das Programm kann vermutlich keine asiatische Fonts bzw. Fonts mit mehr als 256 Glyphen behandeln.)

    Prinzipiell geht bei der Konvertierung von TrueType-Schriften nach Type-1 das Hinting verloren. Nähere Informationen hierzu findet man in den Texten `http://www.truetype.demon.co.uk/ttandt1.htm` und `http://www.truetype.demon.co.uk/tthints.htm`.

  - ,ttf2mf`:

    [nie verwendet; kann vermutlich asiatische Fonts bzw. Fonts mit mehr als 256 Glyphen nicht behandeln.]

    CTAN: `nonfree/support/ttf2mf/`

  Weitere Informationen findet man unter den folgenden URLs:

  FreeType: | `http://www.freetype.org`
  Otfried Cheong: Using TrueType fonts in PdfLaTeX: | `http://www.cs.uu.nl/~otfried/Pdftex/`

  Zur Verwendung oder Integration von ,ttf2pk` findet man weiteres unter den folgenden URLs:

  Damir Rakityansky: Using TrueType fonts with TeX (LaTeX) and pdfTeX (pdfLaTeX): | `http://www.radamir.com/tex/ttf-tex.htm`
  Damir Rakityansky (dt. Ü.): Benutzung von TrueType-Schriften unter TeX...: | CTAN: `info/german/MiKTeX-WinEdt-TrueType-Anleitung/ttf.htm`
  ttf2tex: | CTAN: `support/ttf2tex/`

  Zur Konvertierung von TrueType-Schriften in eine PS-Schrift findet man mehr unter der folgenden URL:

  Harald Harders: Using TrueType fonts with teTeX and dvips: | CTAN: `info/TrueType/index.html`

  DE-TeX-FAQ (Version 72 vom September 2003)
  Copyright © 1995-2003 B. Raichle, R. Niepraschk, Th. Hafner