\LaTeX \today, Teil 1: Alte Zöpfe
Vorbemerkungen
In einigen Bereichen der Universität wird die Software LaTeX seit mehr
als 10 Jahren vor allem zur Erzeugung wissenschaftlicher Dokumente
wie Dissertationen, Forschungsberichte, Anträge usw. aber auch für
Druckdokumente aller Art (Gutachten,
Hausmitteilungen, Briefe u.v.a.) eingesetzt.
Dabei sind vor allem die unübertroffene typografische Qualität des
Ergebnisses, die Kostenfreiheit, Plattform- und Herstellerneutralität
sowie die konsequente Ausrichtung auf das sichere ASCII-Format für diese
Wahl ausschlaggebend. Deshalb wird der nicht zu unterschätzende
Lernaufwand für die
"Programmiersprache" LaTeX in Kauf genommen, denn diese Software ist
nicht so einfach per Mausklick bedienbar.
Normalerweise wird eine 10 Jahre alte Software als Methusalem betrachtet
und sicherlich kaum noch Verwendung finden. Bei (La)TeX liegt jedoch
eine andere Situation vor (abgesehen davon, dass TeX und LaTeX ohnehin
noch wesentlich älter als 10 Jahre sind).
Die von Donald E. Knuth entwickelten
Algorithmen zum Textsatz sind von derart hervorragender
Qualität, dass sie auch heute noch unübertroffen sind.
Die Implementationen - also die konkreten Softwareprodukte - sind
natürlich nicht so alt. Gerade hier hat sich aufgrund der
Entwicklung der Druck- und Bildschirmtechnik in den letzten Jahren viel
getan. Zur Nutzung der Möglichkeiten der modernen Geräte und der
DV-Infrastrukturen überhaupt wurden die Programme kontinuierlich
weiterentwickelt bzw. neu geschrieben. Deshalb ist das Thema
(La)TeX heute nach wie vor aktuell -- und der Erfolg der Software
ist größer denn je.
Die Motivation für diesen Artikel ist, dass es innerhalb des URZ
(sicherlich gilt das auch für andere Struktureinheiten) viele
LaTeX-Nutzer gibt, die aufgrund der Belastung durch andere
Aufgabenstellungen in den letzten Jahren keine Gelegenheit hatten,
sich in Sachen LaTeX weiterzubilden. Die weitere Nutzung eines
10 Jahre alten Knowhows ist aber bei einem solchen komplexen System,
das sich tagtäglich weiterentwickelt, nicht gerade glücklich und
vorteilhaft.
Im weiteren sollen deshalb typische veraltete Konstruktionen
und deren aktuelle Schreibweise gegenübergestellt werden.
Titelzeile von Dokumenten
Urspünglich hat man zur globalen Beschreibung des Typs eines
Dokuments des Begriff Dokumentenstil benutzt und auf der
Titelzeile geschrieben:
\documentstyle ...
Später wurde diese Form durch die Versionsbezeichnung "LaTeX 2.09"
identifiziert.
Vor etwa 8 Jahren ist jedoch die Version "LaTeX 2e" zum Standard
erklärt worden, die den Begriff Dokumentklasse einführt,
was äußerlich am augenscheinlichsten an der Titelzeile erkennbar ist:
\documentclass ...
Weiterhin wurden früher Dokumentenstiloptionen und zusätzliche
Anwendungspakete auf der Titelzeile als optionale Argumente zum
Dokumentstil beliebig gemischt angegeben. Mit LaTeX2e ist hier eine
deutliche syntaktische Trennung vorgenommen worden, die der logischern
Zuordnung folgt:
nur Dokumentenklassenoptionen werden als solche geschrieben.
Beispiele für übliche Optionen (aus dem Blickwinkel eines
"Normalnutzers"):
11pt,
10pt,
a4paper,
landscape
Die Angabe 12pt ist normalerweise schon ungeeignet, da
dieser Schriftgrad bei Artikeln und dergleichen zu groß
(und damit zu aufdringlich) wirkt. Nur bei Briefen kann man diese
Größe einsetzen.
Als Dokumentklassen stehen nach wie vor
article,
report,
book, ...
zur Verfügung, erweitert um speziell den Bedingungen einer
Struktureinheit angepasste wie
urzbrief oder ähnliches.
An dieser Stelle scheint es allerdings notwendig, das Augenmerk der
Nutzer noch mehr auf die
sogenannten KOMA-Script-Klassen zu richten. Basierend
auf den oben genannten Standardklassen wurden in den 90er Jahren von
Frank Neukam und Markus Kohm wichtige Programmierarbeiten
geleistet. Das Ziel war die Entwicklung von Dokumentklassen, die
besser europäischen Papierformaten und typografischen Gepflogenheiten
entsprechen.
Worin unterscheiden sich nun die Original-Standardklassen und die
KOMA-Script-Klassen?
- Klassenname
Die KOMA-Script-Klassen heißen
scrartcl,
scrreprt,
scrbook,
scrlettr.
- Satzspiegel
in den KOMA-Script-Klassen wird der Satzspiegel - also die
Größe des bedruckbaren Bereichs einer Seite (Kopf-, Text- und
Fußbereich) und dessen
Positionierung auf dem Blatt - nach den
Richtlinien von Jan Tschichold festgelegt, dem wahrscheinlich
wichtigsten Typografen des vergangenen Jahrhunderts.
Dabei erfolgt im Wesentlichen eine Einteilung der Höhe und
Beite einer Seite in n gleiche Teile. Das Ergebnis
ist eine horizontale und eine vertikale Längeneinheit
(HLE, VLE). Nun wird beim einseitigen Textsatz der linke
und der rechte Rand auf jeweils 1,5 HLE eingestellt, beim
doppelseitigen Satz stehen für den äußeren Rand 2 HLE und für
den inneren Rand 1 HLE zur Verfügung (man muss sich dabei
vorstellen, dass bei einem aufgeschlagenen Buch zwei innere
Ränder "zusammenstoßen", also dort insgesamt 2 HLE Zwischenraum
sichtbar ist). Der obere Rand beträgt prinzipiell 1 VLE,
der untere Rand 2 VLE. Für den Textbereich bleibt somit eine
Fläche von (n-3) HLE mal (n-3) VLE.
(Das Problem der sog. Bindekorrektur soll hier nicht diskutiert
werden.)
Je größer n gewählt wird, umso mehr wird die Papierfläche
mit Text gefüllt. Die Einstellung des Wertes von n
erfolgt durch Angabe einer Option für die Dokumenklasse:
DIVn
oder mit dem Kommando
\typearea{n}
(Das Kommando - und der gesamte interne Verarbeitungscode -
stammt aus dem Zusatzpaket typearea, das durch
die KOMA-Script-Klassen automatisch geladen wird.)
| Beispiel: |
\documentclass[DIV14]{scrartcl}
|
|
Folgende Standardwerte sind für n bei A4-Papier eingestellt:
| Dokumentklassenoption | 10pt | 11pt | 12pt |
| n | 8 | 10 | 12 |
- Papierformate
Neben den auch in den Standardklassen bekannten Optionen
a4paper, a5paper und
landscape erlauben die KOMA-Script-Klassen auch
die Angabe von a0paper,
a1paper,
a2paper und
a3paper und das Ganze
auch für die B-, C- und D-Formate.
| Beispiel: |
\documentclass[a3paper]{scrartcl}
|
|
- Standardfontgröße
Sofern nichts anderes als Klassenoption angegeben ist, wird
ein Schriftgrad von 11pt benutzt (bei der Klasse
scrlettr ist 12pt der Standardwert).
Bei den Originalklassen werden dagegen standardmäßig
10pt-Fonts benutzt.
Bei den KOMA-Script-Klassen können (zusammen mit dem
Zusatzpaket extsizes auch andere Schriftgrade
wie 8pt,
9pt,
14pt,
17pt oder
20pt eingestellt werden.
| Beispiel: |
\documentclass[a3paper,20pt,DIV15]{scrartcl}
|
|
- Fonteinstellungen
Es gibt eine Reihe von Kommandos der Form \xxxfont,
mit denen der benutzte Font bei bestimmten Strukturelementen
wie Kapitelüberschriften
(\sectfont),
Bild- oder Tabellenunterschriften
(\capfont) oder die
Markierung variabler Listen
(\descfont) eingestellt
werden kann.
| Beispiel: |
\renewcommand{\sectfont}{\sffamily\bfseries}
|
|
Damit wird für section-Überschriften die serifenlose,
fette Version der aktuellen Schrift benutzt.
- Weitere Konfigurationsmöglichkeiten
In den KOMA-Script-Klassen sind bei vielen Textstrukturelementen
Möglichkeiten vorgesehen, flexibel und detailliert das
Layout zu beeinflussen. Dabei steht immer das semantische
Markup im Vordergrund, d.h. der Nutzer kann beschreiben
was er erzielen möchte, er programmiert dabei aber
kein wie, also kein visuelles Aussehen.
- Wochentag und Uhrzeit
Zu KOMA-Script gehören zwei Pakete scrdate und
scrtime, die in Analogie zu dem altbekannten
Befehl \today den aktuellen Wochentag und die
aktuelle Uhrzeit ausgeben:
\todaysname
bzw.
\thistime.
| Beispiel: |
Heute ist der \today, ein \todaysname.
Jetzt ist es genau \thistime.
|
|
| Ergebnis: |
|
Heute ist der 12. April 2002, ein Freitag.
Jetzt ist es genau 18:01.
|
|
Eine Vielzahl weiterer Informationen zu den Spezialitäten von
KOMA-Script und den
Erweiterungen bzw. Änderungen gegenüber den Original-Standardklassen
sind der Dokumentation
CTAN:/macros/latex/contrib/supported/koma-script/scrguide.ps
zu entnehmen. Besonders interessant sind dabei die Ausführungen
zur Briefklasse, zur Gestaltung von Serienbriefen und der Nutzung von
Adressdatenbanken.
Zusammenfassend muss man sagen, dass es für einen Anwender von
LaTeX (in Europa) keinen Grund gibt, die KOMA-Script-Klassen
nicht standardmäßig zu benutzen!
Zusatzpakete
Nicht geeignet für die weitere Verwendung sind solche Pakete wie
a4wide oder a4post, da - wie gesagt - der
Satzspiegel mit einer Klassenoption DIV bzw. dem
Kommando \typearea eingestellt werden kann.
Wichtig ist hingegen die Benutzung von Input- und Font-Encoding.
Mit dem Input-Encoding wird eingestellt, welche Art von Tastatur
der Nutzer bei der Eingabe seines Textes nutzt und dadurch werden
insbesondere die 8Bit-Sonderzeichen (z.B. Umlaute) richtig in
entsprechende interne Kodierungen übertragen. So sollte man
ziemlich automatisch schreiben:
\usepackage[latin1]{inputenc}
als Benutzer einer "deutschen" Tastatur,
\usepackage[latin9]{inputenc}
wenn darüber hinaus das Euro-Zeichen auf der Tastatur benutzt
werden soll
Durch das Font-Encoding in der Form
\usepackage[T1]{fontenc}
wird spezifiziert, dass die sogenannten T1-Fonts (oder ec-Fonts)
bei der Formatierung verwendet werden sollen. Diese Fonts zeichnen
sich (gegenüber den "alten" OT1- oder cm-Fonts) dadurch aus, dass
ihre interne Fonttabelle 256 Zeichen enthält (vorher 128) und damit
genug Platz, um fast alle europäischen Sonderzeichen - vor allem unsere
deutschen Umlaute :-) - als Zeichen aufzunehmen. Bei den cm-Fonts wurden
die Umlaute immer aus 2 Zeichen zusammengesetzt, was die Verarbeitung
von Wörtern mit solchen Zeichen natürlich extrem erschwert und
insbesondere die Silbentrennung unmöglich gemacht hat.
Präambel
Auch hier werden nach meinen Erfahrungen an vielen Stellen aufgrund
alter "Vorbilder" Konstruktionen benutzt, die ungeeignet sind,
ein gutes Layout eines Dokuments zu erzielen und deshalb nicht
verwendet werden sollten.
Nach den obigen Erläuterungen zu KOMA-Script müsste klar sein,
dass z.B. explizite Längeneinstellungen für Textbereiche à la
\textwidth=... völlig obsolet sind.
Weiterhin ist das Belegen der internen Variablen \parindent
und \parskip unsauber, da das Verändern von internen
Größen des TeX-Kerns für den Normalanwender 'tabu' sein sollte.
Um die gewünschte Wirkung zu erzielen, reicht es, die
KOMA-Script-Klassenoption parskip anzugeben oder das
(gleichnamige) Zusatzpaket parskip einzuschließen.
Genauso sollte das Kommando \sloppy vermieden werden,
da es den an und für sich hervorragenden Satzalgorithmus von TeX
vergewaltigt, nur um bestimmten Absatzfüllproblemen aus dem Weg
zu gehen. Der LaTeX-Normalverbraucher wird mit diesem Problem ohnehin
kaum konfrontiert oder er registriert es gar nicht explizit.
Außerdem gibt es genug Veröffentlichungen darüber,
wie man eleganter das Setzen von Absätzen steuern kann.
Häufig wird wohl in der Präambel nur die Einstellung
des Seitenformats vorgenommen:
\pagestyle{...}
Verwendung von Fonts
Ein weiterer Punkt, wo sich das oftmals gedankenlose Nachnutzen
vorhandener LaTeX-Quelltexte zeigt, ist das Verwenden der "uralten"
Schriftauszeichnungen \bf, \it usw.
Mit Einführung des NFSS als internes Font-Managemant-System vor vielen
Jahren haben diese Kommandos ausgedient, da sie eigentlich sowieso nicht
die gewünschte Funktionalität haben. So schaltete \bf nicht
auf den fetten Schnitt der (aktuellen) Schrift um, sondern stets
auf die fette Form der Standardschrift Computer Modern Roman.
Das ist vielleicht eher selten aufgefallen, aber ungenau war es
trotzdem.
Die richtigen Kommandos für die Zeichensatzauswahl sind sehr
vielfältig (genaue Informationen sollte der Zusatzliteratur entnommen
werden). So unterscheidet man u.a. die Schriftattribute
Familie (mit oder ohne Serifen, Schreibmaschinenschrift),
Serie (für die Schriftbreite und -stärke),
Form (z.B. kursiv oder aufrecht) und Grad (die
Schriftgröße). Entscheidend bei diesem Konzept ist, dass alle
Attribute unabhängig voneinander eingestellt werden können!
So lauten die wichtigsten "Fontwechselbefehle":
| Befehl | Aktion |
\textrm{...} |
 |
\textsf{...} |
 |
\texttt{...} |
 |
\textbf{...} |
 |
\textit{...} |
 |
\emph{...} |
 |
| Beispiel: |
Dieser sinnlose Beispieltext soll einige \emph{verschiedene Möglichkeiten}
von \textbf{Hervorhebungen durch
\textit{Fontumschaltung}} zeigen
|
|
| Ergebnis: |
|
Dieser sinnlose Beispieltext soll einige verschiedene Möglichkeiten
von Hervorhebungen durch Fontumschaltung zeigen
|
|
Ein derzeit viel diskutiertes Thema ist die Darstellung des
Euro-Zeichens, dazu gibt es in den
URZ-Mitteilungen 1/2001
bereits einen entsprechenden Artikel.
Einbindung von Bildern
Wie allgemein bekannt, wird das Einbinden von Bildern überhaupt nicht
von TeX vorgenommen, sondern erst die DVI-Treiber sind für diese
Funktionalität verantwortlich. Diese Softwarewerkzeuge haben sich
in den letzten Jahren natürlich auch deutlich weiterentwickelt,
vor allem in ihrem Funktionsumfang und der Anpassung an immer neue
Typen von Ausgabegeräten (insbesondere Drucker). Deshalb wurden
die LaTeX-Pakete, die das Handling von Bildern vorbereiten,
ebenfalls kontinuierlich entwickelt.
Wir haben im URZ bis vor einiger Zeit größtenteils das Zusatzpaket
epsf und die dort definierten Befehle
\epsfxsize=... und \epsffile{...} benutzt.
Das kann aber ebenso wie das Zusatzpaket epsfig nicht
mehr empfohlen werden, da diese Pakete mittlerweile veraltet sind
und nicht mehr gepflegt werden.
"State of the Art" ist das Paket graphicx, also:
\usepackage[optionen]{graphicx}
Als option kann u.a. angegeben werden:
- Name des benutzten DVI-Treibers, z.B.
dvips
(das ist genau der Standardwert bei aktuellen LaTeX-Installationen)
draft - die Bilder werden nicht geladen, sondern im
Seitenlayout wird eine entsprechend großes Rechteck eingefügt
Die eigentliche Einbindung des Grafikfiles erfolgt mit dem Kommando
\includegraphics[optionen]{datei}
Optionen sind dabei in Form von Schlüssel-Wert-Paaren anzugeben:
key=value.
Die wichtigsten Optionen lauten:
width=... | Skalierung auf diese Breite |
height=... | Skalierung auf diese Höhe |
scale=... | Skalierung um diesen Faktor (Höhe und Breite gleichmäßig) |
angle=... | Drehung um diesen Winkel (entgegen dem Uhrzeigersinn) |
Der Dateiname selbst kann auch als relativer oder absoluter Pfadname
angegeben werden. Sinnvoll ist es, den Dateisuffix (also
.eps) wegzulassen, weil man sich damit die Portabilität des
LaTeX-Files in Richtung PDFLaTeX erhält (dazu wird
voraussichtlich in der nächsten Ausgabe der URZ-Mitteilungen
der zweite Teil des Artikels erscheinen).
| Beispiel: |
\includegraphics[width=5cm,height=2cm,angle=60]{tulogo}
|
|
| Ergebnis: |
|
Literatur:
- Jan Tschichold: Ausgewählte Aufsätze über die Gestalt des
Buches und der Typographie, 2. Auflage, Birkhäuser Verlag,
Basel 1987
- Phil Taylor: Eine pragmatische Herangehensweise an den
Absatzumbruch, in: Die TeXnische Komödie, 4/99
- Michel Goossens u.a.: Der LaTeX-Begleiter (bzw. das
englischsprachige Original: The LaTeX Companion),
Kapitel "Zeichensatzauswahl", Addison-Wesley
- Michel Goossens u.a.: The LaTeX Graphics Companion,
Kapitel "The LaTeX2e graphics bundle", Addison-Wesley
- Wolfgang Riedel: \LaTeX \today,
Folien des Vortrags anlässlich des P2P-Workshops der
Fakultät für Informatik und des URZ, April 2002