Professioneller Textsatz ist keine Zauberei: Kurze oder längere Texte mit komplexen Formeln, Tabellen oder Grafiken, Artikel, aber auch DIN-Briefe mögen manches Office-Programm überfordern. Doch wer sich vom WYSIWYG-Ansatz verabschiedet, findet in TeX/LaTeX eine plattformunabhängige Alternative.
Der Buchdruck – unendliche Seiten … Wir schreiben das Jahr 1977; Donald E. Knuth entwickelt an der kalifornischen Stanford University das Textsystem TeX [1]. Sein Ziel: ein System, mit dem es möglich sein soll, Bücher mit besserem Layout (vor allem bei mathematischer Formeln) zu erstellen. Aufgaben, die sonst von einem professionellen Setzer erledigt wurden, waren nun am eigenen Computer lösbar – vorausgesetzt, der Benutzer wollte sich in eine Unmenge an Befehlen (300 Basiskommandos und 600 Makrobefehle) einarbeiten. Zusätzlich entwickelte Knuth das Programm Metafont zum Entwurf kompletter Schriftfamilien. Beide Programme waren plattformunabhängig konzipiert und als freie Software von jedermann benutzbar – in der Folge verbreiteten sie sich rasch weltweit.
Wesentlich komfortabler und leichter zu erlernen ist das Anfang 1980 entstandene LaTeX. Leslie Lamport [2] entwickelte – basierend auf TeX – ein System, das mit einigen Hilfsprogrammen zur Erstellung von Indizes, Literaturverzeichnissen, Querverweisen etc. ausgestattet ist. Dieses Programm ist erheblich einfacher zu benutzen als TeX, da es lediglich Angaben zur logischen Struktur eines Textes (Kapitel, Absatz etc.) braucht und diese dann in die TeX-Befehle umwandelt, die den Text letztendlich gestalten.
Seit Ende 1993 gibt es einen neuen LaTeX-Standard: LaTeX 2e. Dieser löst die letzte LaTeX-Version 2.09 ab. Ein Kompatibilitätsmodus garantiert, dass auch ältere Dokumente weiter verarbeitet werden können. In diesem Workshop vorgestellte Funktionen und Beispiele folgen ausschließlich dem neuen Standard. Seit einiger Zeit wird an der Entwicklung von LaTeX 3 gearbeitet. Bis dieses neue System fertig ist, können Interessierte auf der Homepage des LaTeX-Projektes [3] nachlesen, was geplant ist.
Kasten 1: Installation
Die Pakete, die zur LaTeX-Installation gehören, heißen auf den verschiedenen Distributionen jedesmal anders. Daher beschreiben wir hier kurz die Installation für SuSE-, Mandrake-, Red-Hat- und Debian-Systeme.
Bei SuSE heißen die benötigten Pakete tetex und te_latex. Starten Sie YaST oder YaST2 wie gewohnt, z. B. über das KDE-Startmenü (System/ YaST2). Im Kontrollzentrum wählen Sie Ihr Installationsmedium aus. Suchen Sie die beiden Pakete – je nach SuSE-Version sind diese unter Anwendungen / Publishing / TeX oder unter der Rubrik Produktivität / Publishing / TeX / Basis zu finden. Wählen Sie die Pakete mit Doppelklick an, und klicken Sie dann zur Installation auf OK.
Mandrake nennt die zu installierenden Pakete tetex und tetex-dvips. Um diese nachträglich einzuspielen, starten Sie den Software-Manager rpmdrake wie gewohnt entweder aus dem Kontrollzentrum (Klicken Sie den Eintrag Softwaremanager im Teilbaum System an) oder über das KDE-Startmenü (Einstellungen / Paketierung / Softwaremanager). Falls nötig, können Sie unter dem Punkt Quellen definieren das Installationsmedium festlegen. In der Liste der installierbaren Pakete wählen Sie tetex und tetex-dvips (optional, aber empfehlenswert: tetex-latex, tetex-xdvi und tetex-doc) aus. Danach klicken Sie auf Installiere/Entferne. Im Fenster Software Installer von empfiehlt sich neben Dateien kontrollieren und Pakete kontrollieren auch der Punkt Abhängigkeiten kontrollieren.
Auf Red-Hat-Systemen heißen die erforderlichen Pakete tetex, tetex-fonts und tetex-latex. Diese sollten auf den Installations-CDs als rpms vorhanden sein. Am einfachsten installieren Sie diese über ein grafisches Tool wie z. B. [4] oder [5]. Natürlich können geübte User die Pakete auch mit rpm auf der Kommandozeile einspielen.
Debianer verwenden am besten das Tool APT zum Suchen und Installieren. Das Ergebnis der Suchanfrage
apt-cache search latex
lässt man sich durch Anhängen von | less besser seitenweise anzeigen, weil die Informationen sonst aus dem Fenster herausscrollen. Wer darin ein bisschen nach unten blättert, findet die Pakete tetex-base (“basic teTeX library files”), tetex-bin (“teTeX binary files”) und noch einige mehr. Die beiden genannten Pakete umfassen die Minimalinstallation. Sie spielen sie mit dem Aufruf apt-get install tetex-base tetex-bin ein.
Was ist zu tun?
Der Weg zum fertig gesetzten Dokument führt über folgende Stationen:
- LaTeX-Datei mit der Endung
.texerstellen, - LaTeX aufrufen; auf der Kommandozeile dient dazu der Befehl latex
datei.tex, - Ausgabetreiber aufrufen (
xdvi,dvips), - Ausgabe auf Drucker/Bildschirm (
lpr)
Im Gegensatz zu Textverarbeitungsprogrammen kommt LaTeX ohne grafische Oberfläche aus: Dokumente werden im Lieblingseditor (Emacs, Vi etc.) erstellt. Sie schreiben ausschließlich ASCII-Text, in den Sie LaTeX-Befehle (siehe HTML, XML und ähnliche Markup-Sprachen) eingefügen.
Listing 1
Das erste LaTeX-Dokument
\documentclass{article}
\usepackage{ngerman}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\begin{document}
Hello Word!
Einen Absatz erzeugt man mit einer Leerzeile.
Hier ist der zweite Absatz.
\end{document}
An Listing 1 erkennen Sie den grundsätzlichen Aufbau eines LaTeX-Dokumentes. Im Vorspann (der Präambel) der Datei stehen Befehle, die die Textstruktur festlegen, z. B. Papierformat, Textbreite und -höhe. Mindestens ein Kommando muss darin stehen: der Dokumenttyp bzw. die Dokumentklasse. Welche standardmäßig vordefinierten Klassen es außer dem im Beispiel benutzten article gibt, zeigt Tabelle 1.
Ein Befehl oder eine Kontrollsequenz wird immer mit einem Backslash \ eingeleitet. Es folgt der Befehlsname, dem in eckigen Klammern [ ] Optionen und in geschweiften Klammern { } Argumente übergeben werden können. Um deutschsprachige Anpassungen vorzunehmen, empfiehlt es sich, das Paket ngerman (oder german für alte Rechtschreibung) wie in Beispiel 1 einzubinden. Dadurch schalten Sie u. a. auf deutsche Silbentrennung um.
Wollen Sie deutsche Umlaute im Text verwenden, empfiehlt es sich, zusätzlich \usepackage[T1]{fontenc} und \usepackage[latin1]{inputenc} in den Vorspann zu schreiben. Das inputenc-Paket sorgt dafür, dass man ä statt \"a (TeX-Notation) bzw. "a (LaTeX-Notation) schreiben darf. Der Befehl \usepackage[T1]{fontenc} stellt die Font-Kodierung auf ein neueres Format um, das besser mit Umlauten funktioniert.
Sofern im Vorspann keine weiteren Befehle stehen, wählt LaTeX selbständig Standardwerte für Zeilenbreite, Ränder, Absatzabstände und -einzug u. ä. Die Präambel endet mit dem Befehl \begin{document}.
Im darauf folgenden Textteil (dem Body) steht der eigentliche Inhalt, vermischt mit Befehlen, die sich auf bestimmte Textstellen beziehen, also lokale Bedeutung haben. Dazu gehören zum Beispiel Einrückungen, Schriftartwechsel, Hervorhebungen, Tabellen, Formeln oder Abbildungen. Absätze werden – wie in Listing 1 zu sehen – durch eine Leerzeile definiert.
LaTeX setzt Text automatisch im Blocksatz, wobei Sie sich nicht einmal um Trennungen kümmern müssen: Dank des eingebundenen (n)german-Pakets kennt es die deutschen Silbentrennungsregeln und benutzt sie meistens richtig. Mit dem Kommando \end{document} schließen Sie das Dokument; was dahinter steht, interessiert LaTeX nicht mehr.
Tabelle 1: Dokumentklassen in LaTeX
article |
Die am häufigsten gebrauchte Klasse eignet sich vor allem für kurze Artikel; die oberste Gliederungsstufe ist die \section (engl. für “Abschnitt”). |
book |
Für die Erstellung von Büchern entwickelte Klasse. Ein Buch unterteilt sich in “front matter” (Inhaltsverzeichnis, Widmung u. ä.), “main matter” (Inhalt) und “back matter” (Index, Nachwort oder Anhänge), per Default wird doppelseitig gedruckt. |
report |
Klasse für längere (technische) Artikel, als zusätzliche Gliederungsmöglichkeit steht \chapter zur Verfügung. |
letter |
Dokumentklasse für Briefe nach amerikanischem Muster. Für den deutschen Sprachraum gibt es die Klasse dinbrief. |
Setzen …
Die Datei aus Listing 1 ist also ein vollständiges LaTeX-Dokument. Unter dem Namen test.tex abgespeichert, geht es mit folgendem Befehl in den Satz:
latex test.tex
Listing 2
LaTeX-Lauf
huhn@asteroid:~$ latex test.tex This is TeX, Version 3.14159 (Web2C 7.3.1) (test.tex LaTeX2e <1998/12/01> patch level 1 Babel <v3.6x> and hyphenation patterns for american, french, german, ngerman, nohyphenation, loaded. (/usr/share/texmf/tex/latex/base/article.cls Document Class: article 1999/01/07 v1.4a Standard LaTeX document class (/usr/share/texmf/tex/latex/base/size10.clo)) (/usr/share/texmf/tex/generic/german/ngerman.sty v2.5e 1998-07-08) (/usr/share/texmf/tex/latex/base/fontenc.sty (/usr/share/texmf/tex/latex/base/t1enc.def)) (/usr/share/texmf/tex/latex/base/inputenc.sty beta test version (/usr/share/texmf/tex/latex/base/latin1.def)) (test.aux) [1] (test.aux) ) Output written on test.dvi (1 page, 328 bytes). Transcript written on test.log.
Dabei (Listing 2) erscheinen einige Meldungen, z. B. die LaTeX-Versionsnummer, die resultierende Seitenzahl (1 page) oder auch Fehlermeldungen bzw. Warnhinweise. Ist alles gutgegangen, liegen nun im Aufrufverzeichnis die folgenden Dateien:
test.aux– Hilfsdatei für Querverweise,test.dvi– geräteunabhängige Ausgabedatei,test.log– Protokoll des LaTeX-Laufs.
… und Kontrollieren
Die Datei test.dvi (“Device Independent”) lässt sich mit Hilfe eines sogenannten Treibers für die Ausgabe auf dem Bildschirm oder dem Drucker umwandeln. Das Programm xdvi zeigt Ihr erstes Dokument grafisch an:
huhn@asteroid:~$ xdvi test.dvi &
Meldungen der Art
kpathsea: Running mktexpk …
in der aufrufenden Shell sind kein Grund zur Besorgnis: LaTeX hält nicht immer alle Zeichensätze vorrätig, um nicht unnötig Kapazität zu verbrauchen. Findet xdvi benötigte Schriften nicht, generiert es diese on the fly aus den installierten Font-Beschreibungen.
In einem Fenster wie in Abbildung 1 können Sie nun das Layout des Dokuments kontrollieren. xdvi lässt sich über die Buttons am rechten Rand wahlweise mit der Maus bedienen oder aber auch durch Tastatureingaben:
- [n] – weiter zur nächsten Seite,
- [p] – zurück zur vorherigen Seite,
- [3g] – zur dritten Seite, ohne Ziffernangabe zur letzten Seite,
- [q] – Programm beenden.
Weitere Optionen und Befehle entnehmen Sie der mit man xdvi aufzurufenden Manpage. Das Programm xdvi brauchen Sie übrigens nicht neu zu starten, wenn sich Ihr LaTeX-Dokument verändert. Rufen Sie einfach erneut latex datei.tex auf der Kommandozeile auf. Sobald Sie mit der Maus ins xdvi-Fenster oder auf den Button Reread klicken, aktualisiert das Programm die Ausgabe.
Zum Ausdrucken eines LaTeX-Dokuments, wandeln Sie es mit Hilfe des Programmes dvips in eine PostScript-Datei um. Wenn Sie sicher gehen wollen, dass dessen Ausgabe nicht auf einen Drucker geschickt, sondern “in eine Datei gedruckt” wird, verwenden Sie die Option -o (für engl. “output”):
huhn@asteroid:~$ dvips test.dvi -o This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) ' TeX output 2002.07.23:1627' -> test.ps <texc.pro>. [1]
Die Datei test.ps drucken Sie nun mit Hilfe des Befehls lpr aus (siehe hierzu auch [6]) oder zeigen sie mit gv oder ghostview am Bildschirm an.
Damit besitzen Sie nicht nur grundsätzliche Kenntnisse über LaTeX, sondern können schon einfache Dokumente erstellen und ausdrucken. Wem das zu wenig ist: In einem der nächsten Hefte steht das Einbinden von Grafiken, Tabellen und Formeln auf dem Programm.
Infos
[1] http://www-cs-faculty.stanford.edu/~knuth/
[3] http://www.latex-project.org/guides/ltx3info/ltx3info.html
[4] http://apps.kde.com/na/2/info/id/278
[5] http://www.daa.com.au/~james/gnome/
[6] Hans-Georg Eßer: “Druck auf Befehl”, LinuxUser 10/2001, S. 57, http://www.linux-user.de/ausgabe/2001/10/057-lpr/lpr.html




