Knuths ursprüngliche Tex-Implementierung verwendet TFM-Dateien, um Schriftinformationen für den Schriftsatz zu verwenden. Da XeTeX TrueType- und OpenType-Schriftarten über fontspec
das Paket unterstützt, wie verwendet es diese Art von Schriftarten? Erzeugt es während des Schriftsatzes Informationen auf TFM-Dateiebene im laufenden Betrieb? Und ist das TFM-Format ausreichend, um alle erforderlichen Informationen darzustellen, die für den Schriftsatz von Dokumenten mit OpenType- oder TrueType-Schriftarten erforderlich sind? Eine Nebenfrage: Wenn TFM-Dateien im laufenden Betrieb generiert werden, bedeutet das dann, dass ich eine Datei unter Linux nicht kompilieren .dvi
und auf dem Mac anzeigen kann, wenn eine Schriftart nicht sowohl unter Linux als auch unter Mac verfügbar ist?
Antwort1
Werden beim Satz sofort Informationen auf TFM-Dateiebene erstellt?
Nein, XeTeX liest die Schriftmetriken direkt während des Satzes (mit Unterstützung von Bibliotheken von Drittanbietern). Für das, was XeTeX als native Schriftarten bezeichnet, wird kein „internes“ TFM generiert.
Ist das TFM-Format ausreichend, um alle notwendigen Informationen darzustellen, die für den Satz von Dokumenten mit OpenType- oder TrueType-Schriftarten erforderlich sind?
Nein, abgesehen von der Beschränkung der Anzahl der durch TFM-Dateien dargestellten Glyphen (die z. B. bei den OFM-Dateien von Omega mehr oder weniger aufgehoben werden kann), bietet OpenType erweiterte typografische Funktionen, die weit über die vom TFM-Format unterstützten Ligaturierungsmechanismen hinausgehen.
… bedeutet das, dass ich eine .dvi-Datei unter Linux nicht kompilieren und auf dem Mac anzeigen kann, wenn eine Schriftart nicht sowohl unter Linux als auch unter Mac verfügbar ist?
Das stimmt, es sei denn, Sie haben auf beiden Systemen genau dieselbe Schriftdatei am exakt gleichen Ort. Das von XeTeX generierte XDV (eXtended DVI) kann auf dem anderen System nicht verarbeitet werden. Die endgültige Ausgabe von XeTeX sind jedoch PDF-Dateien, die portierbar sind. Die XDV-Dateien werden als Zwischendarstellung betrachtet, ein bloßes Implementierungsdetail. Beachten Sie auch, dass dies für normale DVI-Dateien gilt. Wenn Sie nicht auf beiden Systemen dieselben Metrikdateien und Schriftarten haben, können die DVI-Dateien nicht verarbeitet werden. DVI ist geräteunabhängig, aber nicht portierbar.
Antwort2
Wenn Sie eine Schriftart in TeX mit einem primitiven Befehl laden
\font\foo=bar
Auf die sich alle Makros auf höherer Ebene (beispielsweise von LaTeX) letztendlich reduzieren, liest TeX die bar.tfm
Datei und speichert die darin enthaltenen Informationen im Speicher.
Für OpenType- und TrueType-Schriftarten werden in XeTeX keine TFM-Dateien benötigt, da die erforderlichen Informationen bereits in den Schriftarttabellen enthalten sind, die XeTeX überprüfen kann.
Tatsächlich speichert XeTeX viel mehr metrische Informationen als die üblichen Schriftarten in TeX, die normalerweise nur sieben Parameter haben. Mit
\font\foo="Linux Libertine O"
XeTeX kennt für diese Schriftart Werte bis zu \fontdimen65
. Die Beschränkung auf sieben \fontdimen
Parameter ist im TFM-Format jedoch nicht fest vorgegeben und eine Schriftart kann eine beliebige Anzahl davon haben (sieben ist jedoch das Minimum für eine Textschriftart).
Das Ausgabeformat von XeTeX ist XDV, eine Erweiterung des DVI-Formats, für dasNEINVorschauprogramm ist verfügbar. Es ist nicht möglich, eine XDV-Datei mit Xdvi oder anderen DVI-Vorschauprogrammen in der Vorschau anzuzeigen. Tatsächlich wird die XDV-Datei während der Verarbeitung übergeben, xdvipdfmx
um eine PDF-Datei zu erstellen, die alle erforderlichen Informationen enthält, um auf jeder Plattform gelesen werden zu können.