Weltsprache

Zukunftssichere LaTeX-Dokumente mit XeTeX

01.11.2008
Die neue LaTeX-Engine XeTeX macht das Textsatzsystem mit dem Unicode-Support fit für die Sprachen dieser Welt und erleichtert den Umgang mit verschiedenen Schriftschnitten enorm.

Unicode hat sich längst als internationaler Standard zum Verarbeiten unterschiedlicher Sprachen und Schriftsysteme etabliert [1]. Das Textsatzsystem LaTeX verstand sich bisher nur sehr mangelhaft auf Unicode, da ihm von Haus aus einige Eigenschaften fehlten [2]. Mit XeTeX existiert nun ein sehr ausgefeilter Ansatz, um dieses Problem zu lösen [3].

XeTeX beherrscht als Engine für LaTeX unter anderem den Umgang mit den Schriftformaten Truetype und Opentype und stellt dadurch sogar ausgefeilteste typographische Feinheiten bereit. Wegen des nativen Unicode-Supports bietet sich XeTeX aber vor allem für Anwender an, die ausgefallene außereuropäische Sprachen oder Schriften komfortabel in LaTeX schreiben möchten [4].

XeTeX: Hintergrund

Jonathan Kew entwickelte XeTeX vor einigen Jahren bei SIL International, einer international arbeitenden christlichen Organisation mit Basis in den USA, zum Vertiefen von linguistischem Wissen. Zunächst erschien eine Version für Mac OS X als Nachfolger für TeXGX. Mittlerweile stehen XeTeX-Implementation für Windows und Linux im späten Beta-Stadium (0.996 in TeXLive 2007) bereit.

Dass XeTeX im März 2007 in die TeX-Live-Distribution der TeX User Group (TUG) einging, hat viel zu seiner Verbreitung beigetragen. Das System basiert auf e-TeX und soll, wie zum Beispiel auch LuaTeX, pdfTeX ersetzen. Es eignet sich als PDF-produzierende Engine sowohl für TeX und TeX-Formate wie ConTeXt als auch für LaTeX. In diesem Zusammenhang fällt häufig der Ausdruck XeLaTeX.

Als PDF-Treiber verwendet XeTeX mittlerweile Dvipdfmx. Die TeX-typischen DVI-Dateien ("device independent") erzeugt die Engine nur noch als Zwischenstufe temporär im XDV-Format. XeTeX fällt somit im Grunde unter die Kategorie "reine PDF-Software".

Installation

Seit 2007 gehört XeTeX zum TeX-Live-Paket [5]. Arbeiten Sie beispielsweise mit einem aktuellen Debian oder darauf basierenden Systemen wie Ubuntu (ab "Gutsy") oder Knoppix, dann installieren Sie XeTeX, indem Sie mittels Apt-get im Terminal oder mit einem Paketmanager das Paket texlive-xetex aus dem Repository einrichten. Dazu benötigen Sie natürlich die Root-Rechte. Grundlegendere TeX-Live-Pakete befinden sich entweder schon auf dem Rechner oder werden als Abhängigkeiten mitinstalliert.

XeTeX steht auch für OpenSuse 10.3 bereit [6]. Sie installieren die Software auch hier auf den üblichen Wegen. Es besteht bei TeX Live natürlich auch immer die Möglichkeit, das Live-System zu benutzen oder das System von der Live-DVD zu installieren. Das wäre eine Alternative, falls das System nicht auf anderem Weg bereit steht [7].

Schriftliches

Ein rudimentäres XeTeX beziehungsweise XeLaTeX-Dokument besteht, wie ein ganz einfaches LaTeX-Dokument, aus dem Aufruf einer Dokumentenklasse wie zum Beispiel article und beliebigen Text innerhalb des Paares \begin{document} und \end{document}[8]. Mit \usepackage{fontspec} nehmen Sie das Zeichensatzinterface Fontspec in Betrieb. Es arbeitet als Herzstück von XeTeX [9]. Mit dem Befehl \setmainfont weisen Sie dem Dokument eine Hauptschrift zu.

LaTeX verwendet ein eigenes, kompliziertes Zeichensatzsystem. XeTeX dagegen greift auf die Systemschriften zu, und das macht den Clou der Sache aus. Bei den Systemschriften handelt es sich um die dem X-Server zugewiesenen Zeichensätze, und das sind die selben, die in anderen Applikationen auf dem System bereit stehen – etwa in OpenOffice. Das bedeutet, dass Sie Ihre Lieblingschriften nun ohne weitere Umstände unter XeTeX verwenden können.

Welche Systemschriften auf ihrem System zu Verfügung stehen, schauen Sie sich unter anderem mit dem Programm Fc-list aus dem Paket Fontconfig an. Das Paket Ttf-freefont enthält beispielsweise den Truetype-Zeichensatz FreeSerif.ttf, der im System den Namen FreeSerif trägt. Geben Sie im Terminalfenster fc-list FreeSerif ein, so sehen Sie in der Ausgabe auch die Fett- und Kursiv-Varianten. Diese verwendet Fontconfig automatisch, wenn Sie im Dokument Text mit \textbf oder \textif auszeichnen.

Sie haben daneben auch die Möglichkeit, sich beliebige Zeichensätze aus dem Internet zu beschaffen und diese im lokalen Suchpfad für Zeichensätze /usr/local/share/fonts abzulegen und so mit XeTeX zu nutzen.

TIPP

Verschiedene Windowmanager haben eigene kleine Tools, um die Systemschriften zu überprüfen. Für Gnome gibt es zum Beispiel Gnucharmap.

Im Einsatz

Haben Sie nun ein rudimentäres XeTeX-Dokument (siehe Kasten "XeTeX-Beispiel") mit einem Editor wie Vim, Kate oder Gedit geschrieben, erzeugen Sie daraus eine PDF-Datei, indem Sie in einem Terminal den Befehl xelatex beispiel.tex aufrufen.

Sind alle notwenigen Pakete installiert, erstellt XeTeX daraus eine PDF-Datei, die Sie sich mit Betrachtern wie Xpdf, Evince oder Adobe Reader ansehen. Auf dem Testsystem (Ubuntu 8.04.1) war es notwendig, für einen fehlerfreien Durchlauf das Paket lmodern nachzuziehen.

Probieren Sie hingegen das Kommando latex beispiel.tex aus, zeigt die Fehlermeldung XeTeX is required to compile this document. Sorry! an, dass Sie LaTeX tatsächlich bereits hinter sich gelassen haben.

XeTeX-Beispiel

\documentclass{article}
\usepackage{fontspec}
\setmainfont{FreeSerif}
\begin{document}
Hello, world!
\end{document}

Von XeTeX zu LaTeX

Ein offenes Textsatzsystem mit Makrosprache wie LaTeX zeichnet sich dadurch aus, dass es für viele Anwendungsfälle spezielle Lösungen parat hält. Mit Zusatzpaketen erweitern Sie Grundfunktionalität von LaTeX so beliebig. Es existieren viele Applikationen für die unterschiedlichsten Aufgaben und Spezialfälle [10]. Wer mit LaTeX arbeitet, der hat im Allgemeinen eine Reihe von Paketen, die er regelmäßig nutzt. Beim Umstieg auf XeTeX treten meist sehr wenig Schwierigkeiten bei Umstieg von LaTeX auf XeTeX auf. Die Punkte im Kasten "XeTeX-Checkliste" helfen Ihnen aber bei den ersten Gehversuchen mit XeTeX.

XeTeX-Checkliste

  • Die Pakete Inputenc und Fontenc für Eingabe- und Zeichenkodierung benötigen Sie nicht mehr.
  • Das Paket Xltxtra, Bestandteil von texlive-xetex, kümmert sich beim Umstieg auf XeTeX um verschiedene Kleinigkeiten. Es bietet sich daher an, es grundsätzlich zu verwenden. Wenn Sie es, wie alle anderen Pakete auch, mit \usepackage{xltxtra} einbinden, brauchen Sie auch nicht mehr Fontspec explizit aufzurufen. Xltxtra ruft darüber hinaus Xunicode auf, das auch zum Kernbestandteil von XeTeX gehört und weitere Dinge regelt.
  • Babel regelt unter LaTeX sprachspezifische Einstellungen und enthält zum Beispiel verschiedene Trennmuster. Die Entwickler planen, die Funktion von Babel unter XeTeX in Polyglossia zu übernehmen. Für gängige, im lateinischen Alphabet geschriebene Sprachen wie Deutsch, Englisch oder Französisch setzen Sie am besten weiterhin Babel ein.
  • Hyperref für PDF-Dokumente und Graphics zum Einbinden von Grafiken verstehen die Option xetex beim Aufruf. Beispiel: \usepackage[xetex]{hyperref}
  • Für Pstricks, ein sehr umfangreiches und beliebtes Paket für Zeichnungen, benötigen Sie den Workaround XeTeX-Pstricks.

XeTeX und die passenden Pakete befinden sich laufend im Wandel, und ständig kommen neue Pakete hinzu, so es unter Umständen möglich wäre, dass bestimmte Pakete noch nicht zur von Ihnen verwendeten TeX-Distribution gehören – wie zum Beispiel Polyglossia, das die Entwickler erst vor einigen Wochen veröffentlicht haben.

Aktuelle Entwicklungen brauchen immer erst eine gewisse Zeit, bis sie in die TeX-Distributionen einfließen, und diese wiederum als Bestandteil in die von Ihnen verwendete Linux-Distribution wandern. Benötigen Sie ein aktuelles Paket, dann bleibt Ihnen noch die Möglichkeit, es manuell einzuspielen.

XeTex und Unicode

Schreiben Sie nur lateinische Buchstaben, fällt Ihnen wahrscheinlich erst einmal nicht auf, dass Sie mit XeTeX ein nativ unicodefähiges System vor sich haben. Das ändert sich schlagartig, wenn Sie sehen, wie problemlos XeTeX mit allen möglichen Sprachen beziehungsweise Schriften zurecht kommt, die in Unicode vorliegen [11].

Das macht XeTeX natürlich höchst interessant für Anwender, die eine oder mehrere der nicht-lateinische Schriften verwenden möchten, die Unicode zu bieten hat – sei es ausschließlich oder neben der Lateinischen. Für LaTeX gibt es für verschiedene internationale Schriften zum Teil aufwändige Lösungen. Manche davon sind unbequem zu benutzten, weil sie auf Präprozessoren aufbauen. Einige Eingabezeichen machen das LaTeX-Dokument notgedrungen unleserlich und damit die Korrektur anstrengend. Mit XeTeX ist das alles anders.

Bei den Sprachen Hindi und auch Sanskrit etwa kommt traditionell die Devanagari-Schrift zum Einsatz, für die in Unicode ein Abschnitt existiert ([12],[13]). Möchten Sie nun Hindi oder Devanagari schreiben, prüfen Sie zuerst, welche Schriften das System dafür bereitstellt.

Das Paket ttf-devanagari-fonts enthält einige Unicode-Schriften wie Aksharyogini (AksharYogini.ttf). Wie jeden anderen Zeichensatz dürfen Sie diesen als Hauptschrift definieren oder ihn alternativ zum Beispiel neben FreeSerif verwenden. Dazu definieren Sie mit \newfontinstance eine Klammer, der Sie mit zum Beispiel \hindi einen eigenen Namen zuweisen. Innerhalb dieser Klammer schreiben Sie nun ganz einfach in Hindi (siehe Abbildung 1). Wandeln Sie diese Datei mittels XeTeX, so erzeugt dies eine PDF-Datei mit dem Hindi-Text im Zeichensatz Aksharyogini.

Abbildung 1: Die um ein bisschen Hindi erweiterte XeLaTeX-Datei beispiel.tex im Gnome-Editor Gedit.

TIPP

Einige Fonts, wie zum Beispiel Arial Unicode von Microsoft, decken einen großen Teil von Unicode ab, so dass Sie eventuell gar keinen separaten Zeichensatz für eine andere Schrift benötigen.

Trotz allen Komforts bleibt ein Problem erhalten: Wer ein Unicode-Dokument erstellen möchte, der muss auch Unicode eingeben. Und mitunter tritt die Schwierigkeit auf, dass für die Sprache oder Schrift, die Sie schreiben möchten, ganz einfach noch keine Eingabemethode existiert. Hier liegt das Problem logischerweise nicht bei XeTeX, sondern beim System, auf dem die Software läuft.

Kommerzielle Betriebssysteme haben da oft einen gewissen Vorteil in der Entwicklung, aber Applikationen wie SCIM [14] bieten auch für Linux eine Lösung. Das Bearbeiten eines Unicode-Abschnittes setzt voraus, dass der verwendete Editor sich dafür eignet und ein geeigneter Zeichensatz zum Darstellen des Dokumentes bereit steht [15].

Fazit

Die moderne LaTeX-Engine XeTeX bietet die Möglichkeit, unkompliziert auf Systemschriften unter anderem der Formate Truetype und Opentype zuzugreifen. Das macht das von LaTeX bisher verwendete systemeigene Schriftsystem vollkommen überflüssig. XeTeX stellt daher den gesamten Funktionsumfang von Unicode für LaTeX-Anwender bereit. XeTeX schafft es, durch den nativen Unicode-Support den Mangel aufzuholen, den das professionelle Textsatzsystem LaTeX auf diesem Gebiet bisher noch zu anderen Applikationen hat.

Glossar

Truetype

Standard für Computer-Zeichensätze bei dem sich die Zeichen aus Vektoren aufbauen, was ein verlustfreies Skalieren erlaubt. Truetype-Zeichensätze tragen in der Regel das Suffix .ttf im Dateinamen.

Opentype

Verbessertes und grundsätzlich in Unicode kodiertes Format für Computerzeichensätze, Suffix .ttf oder .otf im Dateinamen.

Infos

[1] Fonts in Unicode: Yannis Haralambous, "Fonts & Encodings", O'Reilly 2007, ISBN 978-0-596-10242-5

[2] Paket Unicode: http://tug.ctan.org/tex-archive/macros/latex/contrib/unicode/

[3] XeTeX-Projektseite: http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=xetex

[4] Einführung in XeTeX: Ulrike Fischer, "Erste Schritte mit XeLateX", Die TeXnische Komödie 3/2008, S. 7

[5] TeX Live: http://www.tug.org/texlive/

[6] XeTeX für OpenSuse: http://www.novell.com/products/linuxpackages/opensuse/texlive-xetex.html

[7] TeX Live installieren: http://wiki.contextgarden.net/TeX-live

[8] LaTeX-Einführung: http://www.linux-user.de/ausgabe/2006/02/090-latex/

[9] Fontspec: http://tug.ctan.org/tex-archive/macros/xetex/latex/fontspec/

[10] Comprehensive TeX Archive Network (CTAN): http://www.ctan.org

[11] Unicode-Codetabellen: http://www.unicode.org/charts/

[12] Unicode Devanagari: http://www.unicode.org/charts/PDF/U0900.pdf.

[13] Unicode-Programme und Tools: http://www.alanwood.net/unicode/

[14] SCIM: http://www.scim-im.org

[15] Yudit: Erik Bärwaldt, "Yudit it!", LinuxUser 08/2007, S. 58, http://www.linux-user.de/ausgabe/2007/08/058-yudit/

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare