Page 1
Die
T
E
Xnische
K
omödie
DANTE
Deutschsprachige
Anwendervereinigung TEX e.V.
Michael Niedermair: Neues von εXTEX: TFM-Daten an-
schaulich darstellen, Die TEXnische Komödie 3/2005, S.
27–31.
Reproduktion oder Nutzung dieses Beitrags durch konventionelle, elek-
tronische oder beliebige andere Verfahren ist nur im nicht-kommerziellen
Rahmen gestattet. Verwendungen in größerem Umfang bitte zur Infor-
mation bei DANTE e.V. melden. Für kommerzielle Nutzung ist die Zu-
stimmung der Autoren einzuholen.
Die TEXnische Komödie ist die Mitgliedszeitschrift von DANTE,
Deutschsprachige Anwendervereinigung TEX e.V. Einzelne Hefte können
von Mitgliedern bei der Geschäftsstelle von DANTE, Deutschsprachi-
ge Anwendervereinigung TEX e.V. erworben werden. Mitglieder erhalten
Die TEXnische Komödie im Rahmen ihrer Mitgliedschaft.
Neues von εXTEX: TFM-Daten anschaulich darstellen
Michael Niedermair
Dieser Artikel beschreibt, wie mit Hilfe von εxTEX eine TFM-Datei durch
eine Transformation in eine gestaltete HTML-Datei umgewandelt werden
kann, um sie optisch »aufgepeppt« darzustellen.
Einleitung
Mit diesem Artikel möchte ich eine Serie einleiten, um in unregelmäßigen
Abständen Neues von εXTEX (siehe http://www.extex-project.org) zu berichten.
Als Einstiegsthema möchte ich hier eine etwas andere Darstellung der TFM-
Datei (TEX-Font-Metrik) zeigen.
TFM für die Metriken
Ein Ziel von εXTEX ist es, die traditionellen Fontmetriken von TEX zu ver-
wenden. Dazu müssen sie eingelesen und in ein eigenes Format umgewandelt
Die TEXnische Komödie 3/2005 – Nachdruck

Page 2
28
Neues von εXTEX: TFM-Daten anschaulich darstellen
werden (mit AFM- oder TTF-Dateien wird genauso verfahren). Für die Dar-
stellung der Metriken verwendet εXTEX ein XML-Format, welches die Datei-
endung EFM (εXTEX-Font-Metrik) besitzt. Zum Testen, ob die Werte richtig
ausgelesen werden, wurden sie in eine XML-Datei geschrieben und dann mit
Hilfe eines JUnit-Tests verglichen. Ein JUnit-Test ist ein Test, der u. a. Java-
Klassen testet und sehr einfach die Möglichkeit bietet, Werte zu vergleichen
(z. B. assertEquals("-1026142560", el.getAttributeValue("checksum"));).
Das XML-Format hat in dieser Sicht mehrere Vorteile: Es ist direkt für den
Menschen lesbar, es lässt sich beliebig erweitern und mit vielen Hilfspro-
grammen verarbeiten.
Die XML-Datei wird dabei mit εXTEX wie folgt erzeugt (eine entsprechende
Installation von εXTEX und Java vorausgesetzt):
java de.dante.util.font.TFM2XML cmr12.tfm /tmp/cmr12.xml
Als Ergebnis erhält man eine XML-Datei (siehe Abbildung 1). Dabei wird
jede interne TFM-Tabelle (Informationen zu den Zeichen, Ligaturen, Ma-
ßen, zu Kerning usw.) entsprechend umgesetzt. Zusätzlich wird unter /tfm/
charinfo/char zu jedem Zeichen eine informative Zusammenfassung aus den
anderen Tabellen des Zeichens bereitgestellt. Im Gegensatz zur XML-Datei
enthält die EFM-Datei nur die zusammengesetzten Informationen und nicht
mehr alle Originaltabellen. Zum Testen werden aber alle Informationen benö-
tigt. Tabelle 1 zeigt eine Übersicht über die Java-Klassen, die TFM-Dateien
umwandeln.
Mit XSL-T transformieren
Eine Möglichkeit, diese XML-Datei weiterzuverarbeiten, stellt XSLT dar.
(XSL-Transformation ist eine Möglichkeit, mit Regeln eine XML-Datei in
verschiedene andere Formate, wie z. B. XML, HTML, LATEX usw., umzuwan-
deln. Dabei können entweder die ganze XML-Datei oder nur Teilbereiche
davon für die Ausgabe verwendet werden.) Für unser Beispiel werden nur ei-
nige Informationen aus der XML-Datei transformiert und als Ausgabeformat
HTML festgelegt. Der Aufruf von XSLT lässt sich auch direkt mit εXTEX
durchführen, da Java einen XSLT-Prozessor integriert hat. Ein Beispiel einer
solchen XSLT-Datei ist in εXTEX enthalten.
java de.dante.util.xslt.Transform /tmp/cmr12.xml
src/xslt/tfm2html.xsl /tmp/cmr12.html
Die TEXnische Komödie 3/2005 – Nachdruck

Page 3
Neues von εXTEX: TFM-Daten anschaulich darstellen
29
Abbildung 1: Grafische Struktur einer EFM-Datei
Die TEXnische Komödie 3/2005 – Nachdruck

Page 4
30
Neues von εXTEX: TFM-Daten anschaulich darstellen
Abbildung 2: Ansicht mit dem Browser
Abbildung 3: Ansicht des Zeichens »f«
Die TEXnische Komödie 3/2005 – Nachdruck

Page 5
Neues von εXTEX: TFM-Daten anschaulich darstellen
31
Java-Klasse Beschreibung
TFM2XML Wandelt eine TFM-Datei in eine XML-Datei um (alle Infor-
mationen der TFM-Datei werden komplett übernommen).
TFM2EFM
Wandelt eine TFM-Datei in eine EFM-Datei um. Es werden
nur die zusammengesetzten Informationen verwendet, die
der Typesetter benötigt.
TFM2PL
Wandelt eine TFM-Datei in das PL-Format (wie tftopl) um.
(Auch hier vergleicht ein JUnit-Test die beiden Ergebnisse
und meldet entsprechende Fehler).
Tabelle 1: Java-Klassen, die TFM-Dateien umwandeln
Verwendet man zusammen mit der HTML-Datei eine CSS-Datei – ein Bei-
spiel ist bei εXTEX enthalten –, so kann man das Aussehen deutlich aufpeppen
(siehe Abbildung 2). Dabei werden zuerst allgemeine Informationen des Fonts
und eine Übersicht (mit Link) aller vorhandenen Zeichen angezeigt. Durch
einen Klick kommt man dann direkt zu den Informationen des entsprechen-
den Zeichens (siehe Abbildung 3). Dabei werden die Breite, Höhe, Tiefe und
der Wert für italic-Korrektur angezeigt. Ist für den Buchstaben eine Ligatur
definiert, wird diese direkt darunter angezeigt, ebenso wird mit dem Kerning
verfahren.
Ansicht anpassen
Wem die Ansicht oder die Darstellung der Informationen nicht gefällt, kann
sehr leicht eine entsprechende Anpassung durchführen. εXTEX mit allen seinen
Dateien findet man unter http://www.extex-project.org.
Zusammenfassung
Mit εXTEX lassen sich TFM-Dateien in XML, EFM oder in andere Formate
wie PL einfach umwandeln. Durch das flexible XML-Format lässt sich aus
diesen Informationen eine beliebige andere Darstellung erzeugen. εXTEX ver-
wendet übrigens XML-Dateien nicht nur für die Metriken, sondern für vieles
mehr. Es gibt sogar schon ein XML-Backend (Testphase), der alle Informa-
tionen des Typesetters in eine XML-Datei schreibt, so dass man mit einer
entsprechenden Transformation beliebige andere Formate erzeugen kann.
Die TEXnische Komödie 3/2005 – Nachdruck