Zur Verwendung von TrueType-Fonts mit LaTeX

LaTeX ist so cool, aber ich habe diese wunderschöne, unentbehrliche Schriftfamilie, die es nur im TrueType-Format gibt ...

So ging es mir, und deswegen habe ich es einmal unternommen, eine Schriftfamilie von .TTF in mein LaTeX-System zu integrieren. Es hat einige Irrwege gekostet, und vermutlich kann man einiges besser machen. Außerdem gibt es mehrere Wege zum Ziel, die auch in der FAQ (Kapitel 10.3.1) skizziert sind. Ich beschreibe hier einen davon, unter Verwendung des Programms TTF2MF, so, wie er bei mir funktioniert hat.

Mehr noch als sonst gilt hier, daß diese Beschreibung nicht lückenlos sein wird und daß Du auch andere Erfahrungen machen magst. Außerdem habe ich den Eindruck, daß es hier einen Unterschied macht, welche LaTeX-Distribution man verwendet.

Konkret beschreibe ich die Verwendung von TrueType-Fonts mit teTeX aus SuSE-Linux 7.0, unter Verwendung von Oleg Motygins Programm TTF2MF.EXE. Eine Beschreibung der Verwendung von TTF-Dateien mit MikTeX findest Du hier.

Erst recht gilt auch hier, daß ich nicht für irgendwelche Schäden jeglicher Art hafte, die aus der Befolgung der hier gegebenen Ratschläge resultiert. Außerdem bist Du selbst dafür verantwortlich, daß Du mit der Implementierung dieses Verfahrens keine Copyright-Bestimmungen oder sonstige Rechte Dritter verletzt. TrueType ist übrigens ein Markenzeichen und wird hier nur unter Anerkennung aller Rechte verwandt.

1. Vorbereitung

Du brauchst TTF2MF.ZIP von CTAN. Dies ist ein Win32-Programm(!), Du brauchst also auch eine lauffähige Windows-Installation. Die TTF-Schrift, die Du konvertieren möchtest, muß unter Windows installiert sein: TTF2MF kann nicht die "trockene" TTF-Datei bearbeiten, sondern braucht die Schrift fertig installiert. Meistens bedeutet das, daß sich die TTF-Dateien in c:\windows\fonts finden.

Sieh' Dir auch vorweg einmal an, für welche Schriftarten (fett, kursiv usw.) Du wirklich eigenständige TTF-Dateien vorliegen hast. Diese kannst Du dann auch in LaTeX verwenden; Windows kann aber auch aus einer einzigen TTF-Datei z. B. normale und fette Schriften ziehen. Dann wirst Du vermutlich nur eine davon für LaTeX nutzbar machen können.

2. TTF2MF

Das Programm selbst ist einfach zu bedienen. Nach Programmstart findest Du unter dem Menüpunkt Font / Choose den Windows-üblichen Schriftauswahldialog. Hier gilt es nur, das Gewünschte auszuwählen. Als Voreinstellung wird die Designgröße 10 pt gewählt, vielleicht ist es klug, auch in der Schriftauswahl die Größe 10 pt zu wählen. Nach Bestätigung aller Optionen erscheint eine tabellarische Darstellung Deiner Schrift, und für einen ersten Probelauf reicht es, nun convert auszuwählen. Ein save-Dialog erscheint, und nach Eingabe eines Dateinamens (sinnvoll: Extension .mf) erstellt TTF2MF eine Metafont-Quelldatei für die ausgewählte Schrift. Du kannst sie in jedem Editor bewundern :-) .

Der Haken ist die Codierung. Unter Ligatures kannst Du für die Ausgabe Ligaturen für Anführungszeichen und Bindestriche angeben: Das ist soweit noch problemlos, allerdings trafen die default-Einstellungen bei mir nicht zu. Schwieriger aber ist, daß meiner Erfahrung nach die Position der Zeichen in der TrueType-Datei nicht ganz der von der T1-Kodierung festgelegten entspricht - zumindest mußte ich das "ß" umcodieren.

TTF2MF erlaubt die Umcodierung. Man kann unter Encoding / Change Encoding einen eigenen Codierungsvektor angeben. Das Dateiformat ist einfach: eine Textdatei mit zwei Spalten von Zahlen: in der ersten die Position in der MF-Datei, daneben diejenige Position in der TTF-Datei, aus der das jeweilige Zeichen in der MF-Datei erstellt wird. Das ist auch in der TTF2MF-Readme-Datei beschrieben.

Für meine Zwecke habe ich diese Codierungsdatei verwendet: myt1wgl4.enc . Sie mag hier als Beispiel dienen; ob sie für Deine Zwecke brauchbar ist, mußt Du selber ausprobieren.

Wenn nun so oder anders Schriftauswahl, Ligaturen und Codierung stimmen, dann kannst Du jetzt TTF2MF noch einmal die - jetzt endgültige - MF-Quelldatei für den jeweiligen Font erstellen lassen.

3. Linux

Jetzt geht's unter Linux weiter. Nimm die eben erstellte(n) Quelldatei(en) und kopiere sie an eine plausible Stelle im Linux-Dateisystem, wo LaTeX und seine Freunde sie finden können. Bei mir wäre das z. B. /var/cache/fonts/source/public/.

Nun müssen noch eine oder mehrere .fd-Dateien erstellt werden, die die font definitions für LaTeX liefern. Sie bilden die Schnittstelle zwischen der LaTeX-Syntax in dem (noch zukünftigen :-) ) Quelltext und dem System der physikalischen Dateien auf der Platte. Am besten suchst Du einmal, wo in Deinem Verzeichnisbaum sich die t1*.fd-Dateien befinden, und erstellst an passender Stelle, vielleicht in einem eigenen Verzeichnis, die font definitions für Deine ausgewählte Schriftart. Bei mir stehen sie unter /usr/share/texmf/tex/latex/cool/

.fd-Dateien sind ebenfalls einfache Textdateien, mit jedem Editor zu erstellen. Nehmen wir an, Deine Schriftfamilie heißt coolfont, und Du hast Dich entschieden, die einzelnen .mf-Dateien coolbold.mf, coolit.mf usw. zu nennen. Wenn Du, wie bisher angenommen, mit T1-Encoding arbeiten möchtest, dann könnte eine .fd-Datei t1cool.fd heißen (auf jeden Fall sollte der Name mit t1 beginnen) und so aussehen:

\ProvidesFile{t1cool.fd}[hier darf in eckigen Klammern ein erklärender Kommentar stehen]

\DeclareFontFamily{T1} {cool}{}

\DeclareFontShape{T1}{cool}{b}{n}{<->coolbold}{} \DeclareFontShape{T1}{cool}{b}{it}{<->coolbdit}{} \DeclareFontShape{T1}{cool}{m}{n}{<->coolmed}{} \DeclareFontShape{T1}{cool}{m}{it}{<->coolit}{}

\DeclareFontShape{T1}{cool}{bx}{n}{<->ssub * cool/b/n}{} \DeclareFontShape{T1}{cool}{bx}{it}{<->ssub * cool/b/it}{}

\endinput

Hier wird also die Schriftfamilie cool definiert und dann werden - von oben nach unten - bold-normal, bold-italic, medium-normal, medium-italic definiert und diesen Dateien die jeweiligen .mf-Dateien zugeordnet: coolbold, coolbdit, coolmed, coolit. Die letzten beiden Definitionen beschreiben Ersetzungen: Wenn der Quelltext bold-extender normal bzw. bold-extended italic vorsieht, wird hierfür bold-normal bzw. bold-italic gesetzt. Alles klar? Du mußt dies natürlich anpassen für die Schriftarten, die Dir für Deine bearbeitete Schrift zur Verfügung stehen.

Wichtig nach Erstellen der Dateien ist noch, texhash laufen zu lassen, damit die neu erstellten Dateien auch gefunden werden.

4. Der LaTeX-Quelltext

Nach diesen Vorarbeiten kann nun, wenn alles glatt gelaufen ist, die neue Schriftart mit den LaTeX-üblichen Befehlen für den Schriftartwechsel problemlos in den LaTeX-Quelltext eingefügt werden.

Eine Möglichkeit, eine Textpassage in Cool-Bold zu setzen, wäre:

\fontfamily{coolbold} \selectfont

Danach wird dann (hoffentlich) in der neu importierten Schriftart gesetzt.

zurück zur Hauptseite