1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
|
--- DE-TeX-FAQ Beginn Teil 9 ---
Fragen und Antworten (FAQ) über das Textsatzsystem TeX und DANTE,
Deutschsprachige Anwendervereinigung TeX e.V.
Bernd Raichle, Rolf Niepraschk und Thomas Hafner
Version 72 vom September 2003
------------------------------------------------------------------------
9 METAFONT und Schriften
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ösungs_un_abhä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 CTAN: info/metafp.pdf
Experiences...:
CTAN: info/metafp.ps
Hans Hagen: http://www.pragma-ade.com/pragma-ade/general/manuals/beta/metafun-p.pdf
metafun:
Denis Roegel:
The metaobj
tutorial and http://www.loria.fr/~roegel/TeX/momanual.pdf
reference
manual:
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 http://www.math.jussieu.fr/~zoonek/LaTeX/MF/liste.html
les archives
CTAN:
Zeichensätze und http://www.loria.fr/services/tex/german/fontes.html
Symbole:
dpunkt-Verlag: http://www.dpunkt.de/produkte/latex/fonts/
Adobe Type http://www.adobe.com/type/
Library:
symbols: CTAN: info/symbols/
comprehensive: CTAN: info/symbols/comprehensive/
Luc Devroye: Font http://cgm.cs.mcgill.ca/~luc/fonts.html
Pages:
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 http://www.math.utah.edu/~beebe/fonts/postscript-type-1-fonts.html
Beebe):
Walter Schmidt:
Schriften für http://home.vr-web.de/was/fonts.html
TeX:
Tobias
Regenbrecht:
Integration von http://www.regenbrecht.net/psfonts/psfonts_tetex.html
PostScript-Fonts
in LaTeX2e:
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
http://www.mamster.net/tex/latex-fontfaq-amster-burton.pdf:
link) Matthew Amster-Burton: The Sooper-Simple Guide to
Type 1 Fonts in LaTeX:
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.
o `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
o `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/
o 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 http://www.cs.uu.nl/~otfried/Pdftex/
fonts in PdfLaTeX:
Zur Verwendung oder Integration von `ttf2pk' findet man weiteres unter
den folgenden URLs:
Damir Rakityansky:
Using TrueType
fonts with TeX http://www.radamir.com/tex/ttf-tex.htm
(LaTeX) and pdfTeX
(pdfLaTeX):
Damir Rakityansky
(dt. Ü.):
Benutzung von CTAN: info/german/MiKTeX-WinEdt-TrueType-Anleitung/ttf.htm
TrueType-Schriften
unter TeX...:
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 CTAN: info/TrueType/index.html
teTeX and dvips:
--- DE-TeX-FAQ Ende Teil 9 ---
|