1. Primitives - Commercial Script
Für die ersten Gehversuche habe ich die Commercial Script ausgewählt. Hier gibt es nur eine einzige Schrift, keine komplette Schriftfamilie, was die Installation doch sehr übersichtlich bleiben läßt. Beginnen wir also:
Als erstes erstellen wir uns ein Arbeitsverzeichnis unterhalb des
fontinst
-Verzeichnisses. Den Namen können wir
beliebig wählen, warum also nicht cscript
. Hierher
kopieren wir die Dateien comms___.pfb
und
comms___.afm
. Die .pfb
-Datei enthält
Informationen über den Schriftzug der enthaltenen Zeichen,
während die .afm
-Datei Angaben über die
Größe der Zeichen enthält.
Damit fontinst
die Schriftdateien korrekt verarbeiten
kann, sollten sie nach dem Karl-Berry-Schema
umbenannt werden. Dazu entfernen wir zunächst den eventuell
vorhandenen Schreibschutz der Dateien bzw. versorgen uns mit den
notwendigen Rechten. Als erster Buchstabe des neuen Namens dient ein Code
für den Hersteller der Schrift; SoftMaker und FontSite haben hier keinen eigenen Code,
wir verwenden also den "Joker" f. Es folgt die Benennung der
Schrift: Aus der Tabelle erfahren wir das Kürzel i0. Da wir nur
ein Gewicht verwenden, könnten wir eigentlich frei wählen;
sinnvoll wird es aber sein, als Gewicht regular roman anzugeben; das
Kürzel ist dann r. Den
Abschluß bildet die Bezeichnung der Codierung nach
Schema. Untersuchen wir das .afm
-file mit einem
Texteditor, so finden wir die Zeile EncodingScheme
StandardAdobeEncoding
. Nach Tabelle ist der Code für diese
Codierung 8a
. Diese Informationen setzen wir nun zum
neuen Dateinamen zusammen, unsere Files heißen also
fi0r8a.pfb
und fi0r8a.afm
Nun müssen wir fontinst
anweisen, unsere Schrift
zu bearbeiten. Da wir mehrere Befehle an fontinst
weitergeben werden, legen wir hierfür eine Befehlsdatei
instcomm.tex
im gleichen Verzeichnis an. Diese beginnt
mit
\input fontinst.sty
Hiermit wird fontinst
in unser File eingefügt und
stellt seine Befehle zur Verfügung. Der nächste Befehl
\installfonts
zeigt an, daß nun die Befehle zur Bearbeitung der Schriften kommen werden. Und da sind sie schon:
\transformfont{fi0r8r}{\reencodefont{8r}{\fromafm{fi0r8a}}}
Dieser Befehl wird gewissermaßen von hinten nach vorne
abgearbeitet. Zunächst wird die Datei fi0r8a.afm
verarbeitet. Hierfür muß sie in das für
fontinst
lesbare .mtx
-Format umgeschrieben
werden, in dem die interne Weiterverarbeitung erfolgt; es entsteht also eine Datei fi0r8a.mtx
. Dann
erfolgt die Umcodierung nach 8r; die Metriken werden in der nun
richtigen Reihenfolge nach fi0r8r.mtx
geschrieben. Anschließend wird zu den beiden
.mtx
-Dateien je ein .pl
-Datei erzeugt.
\installfamily{8r}{fi0}{}
\installfamily{OT1}{fi0}{}
\installfamily{T1}{fi0}{}
Nun wird es ernst: Hier werden drei Schriftfamilien angelegt. Sie
sind durch einen Namen und eine Codierung festgelegt. Der Name, unter
dem sie in LaTeX angesprochen werden, muß nichts mit den
sorfältig ausgesuchten File-Namen für unsere Schrift zu tun
haben, aber es ist hilfreich, wenn diese Namen identisch
sind. Allerdings passiert hier noch nichts: fontinst
wird
lediglich angewiesen, zu diesen Familien bei den nachfolgenden
Installationsschritten Informationen zu sammeln. Zu den
Codierungen: 8r haben wir ja schon kennen gelernt. OT1 bezeichnet die
alte TeX-Codierung, die mit sieben Bit pro Zeichen auskam, damit aber
nur 128 Zeichen pro Schrift ansprechen konnte. Die neue TeX-Codierung,
das sog. Cork-Encoding, hat acht bit, umfaßt folglich 256
Zeichen und wird T1 genannt.
Zu jeder Schriftfamilie wird zu jeder Codierung ein font-definition-file
.fd
angelegt. Der Name dieses Files beginnt mit der
Codierung, dann folgt der LaTeX-Name der Schriftfamilie. Für
unsere Schriftfamilie fi0
und die T1-Codierung
wäre der Name also t1fi0.fd
. Im weiteren Verlauf
werden die Informationen bereitgestellt, mit deren Hilfe LaTeX jeder
angeforderten Schrift ein Metriken-File zuordnen kann. Diese
Informationen werden dann in diese Files eingetragen.
\installrawfont{fi0r8r}{fi0r8r,8r}{8r}{8r}{fi0}{m}{n}{}
Als erstes wird die 8r-codierte Schrift bereitgestellt. Sie soll
auch nach der Installation noch fi0r8r heißen, das sagt der erste
Parameter. Der zweite gibt an, aus welchen Metric Files die neu
installierte Schrift stammen soll. Hier steht nicht nur das ganz am
Anfang erzeugte fi0r8r.mtx
, sondern auch ein
8r.mtx
, das zum System gehört und
fontinst
verrät, wo fehlende Zeichen her besorgt
werden könnten. Der dritte Parameter gibt den Namen des
zuständigen Encoding Files an; es überrascht uns nicht,
daß er mit 8r beginnt, seine Endung ist .etx
. Der vierte und
fünfte Parameter ordnen die hier installierte Schrift einer der
oben angelegten Familien zu, indem Codierung und Familienname
angegeben werden. Die drei letzten Parameter treffen Aussagen
über Schrift-Serie, -Aussehen und -Größe: hier m
für medium (mittleres Gewicht im Gegensatz zu fett oder leicht)
und n für normal (und nicht kursiv, geneigt, Kapitälchen,
...). Zur Größe werden keine Angaben gemacht, da bei
Type-1-Schriften alle Schriftgrößen aus einem einzigen File
dargestellt werden. Die Eigenschaften werden in ein Property List File
.pl
geschrieben. Im Gegensatz zum weiter oben bereits
erzeugten fi0r8r.pl
enthält diese Fassung
Informationen übers Kerning, also über den Abstand zu
benachbarten Zeichen.
\installfont{fi0r7t}{fi0r8r,latin}{OT1}{OT1}{fi0}{m}{n}{}
\installfont{fi0r8t}{fi0r8r,latin}{T1}{T1}{fi0}{m}{n}{}
Dies sind die Installationsbefehle für die OT1- und die
T1-codierten Schriften. Im ersten Parameter findet sich nun die Endung
7t
für das OT1-Encoding und 8t
für das T1-Encoding. Im
zweiten Parameter wird als Hilfsfile latin.mtx
eingesetzt. Die
sonstigen Änderungen sind selbsterklärend.
Durch den Einsatz von latin.mtx
werden diese Schriften
zu virtuellen Fonts: während die oben beschriebene Neucodierung
sich immer noch auf ein und dieselbe Schrift bezog, ist es jetzt
möglich, daß manche Zeichen aus anderen Schriften stammen. Die
erzeugten Virtual Property List Files enden auf .vpl
.
\endinstallfonts
\bye
So wird das File beendet: fontinst
wird mitgeteilt,
daß nun keine weiteren Befehle zur Schriftinstallation mehr
folgen. Hier werden nun die zu den einzelnen Familien gesammelten
Informationen abschließend in ein .fd
-File
eingetragen. Und auch TeX wird freundlich verabschiedet.
Nun starten wir in die Shell unserer Wahl, wechseln in das Verzeichnis, in dem unsere Commercial Script-Dateien liegen, und lassen TeX über unsere Installationsdatei laufen:
tex instcomm.tex
Nach diesem TeX-Lauf sind drei .fd
-Files und je zwei .mtx
-, .pl
- und
.vpl
-Files erzeugt. Diese müssen noch in für LaTeX geeignete
Formate umgewandelt werden. Wir erstellen also im gleichen Verzeichnis
eine Datei tfmmake
mit dem Inhalt:
#!/bin/sh
for f in *.pl; do pltotf $f ${f%%pl}tfm; done
for f in *.vpl; do vptovf $f ${f%%vpl}vf ${f%%vpl}tfm; done
und führen diese Datei unter der bash
aus. Leider kann ich
keinen entsprechenden Code für die MS-DOS-Shell angeben,
hilfreiche Zuschriften sind willkommen. Hier werden nun von LaTeX
verwertbare TeX Font Metric Files .tfm
und Virtual Fonts .vf
erzeugt. Jede Codierung - 8a, 8r, 7t und 8t - wird unter LaTeX
verfügbar gemacht und bekommt ihr eigenes .tfm
. Die
Codierungen, die nicht unmittelbar auf den Font zugreifen können,
also die virutellen Fonts in den Codierungen 7t und 8t, erhalten noch
je ein .vf
-File.
Alle Dateien sind vorhanden, sie müssen noch an den richtigen
Platz. Das ist unterhalb von \localtexmf\fonts
. Da
SoftMaker im Karl-Berry-Schema kein eigenes Verzeichnis zugesprochen
bekommen hat, gehören alle Dateien nach public
, als
Unterverzeichnis für unsere Schrift legen wir
commscr
fest. Nun kopieren wir die .afm-Datei nach
\localtexmf\fonts\afm\public\commscr\
, die .pfb-Datei nach
\localtexmf\fonts\type1\public\commscr\
, die .tfm-Dateien
nach \localtexmf\fonts\tfm\public\commscr\
, die .vf-Dateien
nach \localtexmf\fonts\vf\public\commscr\
und die
.fd-Dateien nach
\localtexmf\tex\latex\public\commscr\
. Erzeugte
.mtx
-, .pl
- und .vpl
-Dateien
können gelöscht werden. Nach einer
Aktualisierung der Fileliste der jeweiligen TeX-Distribution (texhash,
initexmf, hier die Doku zum jeweils installierten System befragen)
kann LaTeX die neue Schrift bereits verwenden. Um sie auch ausgeben zu
können, müssen wir noch dvips
, dvipdfm
und auch
pdflatex
noch von unserer Neuerung in Kenntnis
setzen.
Um die Änderungen in der Konfiguration dieser Programme nicht
bei jeder Aktualisierung wiederholen zu müssen, verschieben wir
die Verzeichnisse texmf\dvips\config
nach
localtexmf\dvips\config
,
\texmf\dvipdfm\config
nach
\localtexmf\dvipdfm\config
und
\texmf\pdftex\config
nach \localtexmf\pdftex\config
.
Wir erstellen nun fü die Konfiguration von dvips
und pdftex
ein File fi0.map
, das folgende Zeile
enthät:
fi0r8r CommercialScript " TeXBase1Encoding ReEncodeFont " <8r.enc <fi0r8a.pfb
dvipdfm
benutzt eine andere Syntax, hier erstellen wir
ein File fi0d.map
mit der Zeile:
fi0r8r 8r.enc fi0r8a.pfb
Da LaTeX nach unserer Installation alle Zugriffe auf die Commercial
Script über fi0r8r
ausführt, wozu es aber kein
entsprechendes .pfb
-File gibt, wird dvips
so darüber
informiert, daß die Schrift fi0r8r CommercialScript heißt,
eine neu codierte Schrift ist, die nach 8r neu codiert wurde und aus
dem File fi0r8a.pfb
stammt.
Dieses File fi0.map
wird sowohl nach \localtexmf\dvips\config
als auch
nach \localtexmf\pdftex\config
, fi0d.map
nach
\localtexmf\dvipdfm\config
kopiert. Mit einem Texteditor
wird am Ende der Datei \localtexmf\dvips\config\config.ps
die
Zeile
p +fi0.map
eingefügt, am Ende von
\localtexmf\pdftex\config\pdftex.cfg
die Zeile
map +fi0.map
und am Ende von \localtexmf\dvipdfm\config\config
der
Eintrag
f fi0d.map
Nach einem erneuten Aktualisieren der TeX-Datenbasis steht die neue Schrift nun zur Verfügung. Hier nochmal die Dateien zum Download:
- Die Installationsdatei instcomm.tex
- Die Befehlsdatei tfmmake
- Alle von
fontinst
erzeugten Dateien incl. 5i0.map als tar.gz-Datei
Wir wollen an dieser Stelle kein Package basteln, um die Schrift einzusetzen, sondern begnügen uns vorerst mit der direkten Auswahl:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\renewcommand{\sfdefault}{fi0}
\begin{document}
\textsf{Dies ist ein Test}
\end{document}
wird als beispiel.tex
abgespeichert und erzeugt nach
Eingabe von
latex beispiel.tex; dvips beispiel.dvi
eine PostScript-Datei, in der der Satz "Dies ist ein Test" in der Commercial Script gesetzt ist. In obigem Beispiel wird die CommercialScript als Standard-SansSerif-Schrift eingesetzt, was problematisch sein kann, wenn an anderen Textstellen tatsächlich SansSerif verwendet werden soll. Natürlich kann auch rmdefault auf die neue Schrift gesetzt werden; hier ergeben sich andere Nebenwirkungen. Soll die Schriftart nur einmal kurz eingesetzt werden, empfiehlt sich daher:
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\begin{document}
Hier steht Fließtext
\fontfamily{fi0}\selectfont
Dies ist ein Test
\end{document}
- 0. Terms - Begriffliches
- 1. Primitives - Commercial Script
- 2. Basics - Garamond
- 3. Experts - Garamond Experts, SmallCaps und OsF
- 4. Extensions - Gefakte slanted, upright italic, bessere Fußnoten
- 5. Magics - Der \latinfamily-Befehl