Sie sind auf Seite 1von 22

Das L A T E X2 ε -Sündenregister

oder Veraltete Befehle, Pakete und andere Fehler

Marc Ensenbach, Mark Trettin

Version 2.0 vom 11. September 2009

Zusammenfassung

Die Erstellung dieser kleinen Übersicht wurde angeregt durch eine Diskussion in der deutschsprachigen T E X-Newsgroup a über das wiederholte Auftauchen von veralteten und »schlechten« Paketen und Befehlen. Wir versuchen in diesem Artikel die gängigsten Fehler zu zeigen und Alternativen anzubieten. Diese Übersicht soll weder Einführungen wie l2kurz [11] noch die De-TeX- FAQ [7] ersetzen, sondern lediglich einen kleinen Überblick bieten. Für Vorschläge, Verbesserungen und Kommentare sind wir dankbar.

a

Copyright © 20032007 by Mark Trettin, 2009 by Marc Ensenbach.

This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at

Die in dieser Publikation erwähnten Software- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Warenzeichen und unterliegen als solche den gesetzlichen Bestimmungen.

Wir bedanken uns bei Ralf Angeli, Christoph Bier, Christian Faulhammer, Jürgen Fenn 1 , Ulrike Fischer, Yvon Henel 2 , Yvonne Hoffmüller, David Kastrup, Markus Kohm, Thomas Lotze, Frank Mittelbach, Heiko Oberdiek, Walter Schmidt, Stefan Stoll, Knut Wenzig, Emanuele Zannarini 3 und Reinhard Zierke für Tipps, Anmerkungen und Korrekturen. Falls wir jemanden vergessen haben sollten, bitten wir um eine Mail.

1 Englische Übersetzung: CTAN:info/l2tabu/english/l2tabuen.pdf

2 Französische Übersetzung: CTAN:info/l2tabu/french/l2tabufr.pdf

3 Italienische Übersetzung: CTAN:info/l2tabu/italian/l2tabuit.pdf

2

Inhaltsverzeichnis

Inhaltsverzeichnis

1

»Todsünden«

 

4

1.1

a4.sty, a4wide.sty

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.2

Layoutänderungen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.3

Änderungen von Paketen und Klassen

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.4

Änderung des Zeilenabstandes mittels \baselinestretch

 

5

1.5

Absatzeinzug und -abstand (\parindent, \parskip)

.

.

.

.

.

.

.

.

.

.

.

.

.

5

1.6

Abgesetzte Formeln mit $$

 

$$

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

1.7

\def vs. \newcommand

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

1.8

Verwendung von \sloppy

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

2

Veraltete Befehle, Klassen und Pakete

 

8

2.1

Befehle .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

8

2.1.1

Änderung des Schriftstils

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

8

2.1.2

Mathematische Brüche (\over vs. \frac)

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

2.1.3

Zentrierung mit \centerline

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

2.2

Klassen und Pakete

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

2.2.1

scrlettr.cls vs. scrlttr2.cls

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

9

2.2.2

epsf.sty, psfig.sty, epsfig.sty vs. graphics.sty, graphicx.sty

 

10

2.2.3

doublespace.sty vs. setspace.sty

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

2.2.4

fancyheadings.sty, scrpage.sty vs. fancyhdr.sty, scrpage2.sty

.

.

.

.

.

.

.

.

10

2.2.5

Die caption.sty-Familie

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

10

2.2.6

isolatin.sty, umlaut.sty vs. inputenc.sty

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

11

2.2.7

t1enc.sty vs. fontenc.sty

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

2.2.8

natdin.bst vs. dinat.bst

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

2.3

Schriften

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

2.3.1

times.sty

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

2.3.2

mathptm.sty

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

2.3.3

pslatex.sty

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

2.3.4

palatino.sty

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

14

2.3.5

mathpple.sty

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

2.3.6

Aufrechte griechische Buchstaben

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

2.3.7

euler.sty vs. eulervm.sty

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

3

Verschiedenes

 

17

3.1

Gleitumgebungen – »figure«, »table«

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

17

3.2

Der Anhang .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

17

3.3

Mathematiksatz

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

17

3.4

Die Verwendung von \graphicspath

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

18

3.5

Die \

name-Makros

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

A

Beispiel zu \sloppy

 

21

 

3

1 »Todsünden«

1 »Todsünden«

In diesem Abschnitt haben wir die wohl schlimmsten Fehler zusammengetragen, die in schöner Regelmäßigkeit in de.comp.text.tex auftauchen und den dortigen Regulars entweder die Zornesröte ins Gesicht oder die Tränen in die Augen treiben. ;-)

1.1 a4.sty, a4wide.sty

Diese »beiden« Pakete sollten nicht mehr verwendet und ersatzlos aus dem L A T E X- Quelltext gestrichen und durch die Klassenoption a4paper ersetzt werden. Abgesehen davon, dass das Layout der meisten dieser Pakete typografisch mehr als fragwürdig ist, existieren mehrere verschiedene, zu einander inkompatible Versionen. Man kann sich also nicht einmal sicher sein, dass auf einem anderen Rechner das Dokument gleich (schlecht?) aussieht.

1.2 Layoutänderungen

Die von den Standardklassen (article.cls, report.cls, book.cls) verwendeten Satzspiegel wirken häufig zu groß. Abhilfe bieten die entsprechenden Klassen (scrartcl.cls, scrre- prt.cls, scrbook.cls) aus dem KOMA -Script-Paket, oder das ebenfalls dort enthaltene typearea.sty. Die dazugehörige Dokumentation scrguide [3] enthält viele weiterführen- de Informationen. Wenn man wirklich einen anderen Satzspiegel als den von zum Beispiel typearea.sty erzeugten benötigt, dann sollte man bitte das Paket geometry.sty verwenden und nicht versuchen, »zu Fuß« \oddsidemargin & Co. zu ändern. Das hier vormals empfohlene Paket vmargin.sty sollte ebenfalls vermieden werden, da es unerwünschte Nebeneffekte erzeugen kann. 4 Unter gar keinen Umständen sollte man an \hoffset bzw. \voffset herumfummeln, außer man kennt sich sehr gut mit den T E X-Interna aus.

1.3 Änderungen von Paketen und Klassen

Niemals Dokumentklassen (article.cls, scrbook.cls usw.) oder Styledateien (varioref.sty, color.sty) direkt ändern! Entweder man bastelt sich Containerklassen bzw. -styles oder man kopiert die Klassen/Styles, ändert die Kopie und speichert diese unter anderem Namen ab. Ein Beispiel zur Erstellung von Containerklassen findet sich in der FAQ [7, Punkt

5.1.5].

Hinweis

Generell sollte man solche zusätzlich installierten Klassen und Pakete entwe-

der in den lokalen oder den $HOME-T E X-Baum speichern, damit bei einem Upgrade der

4

1 »Todsünden«

T E X-Distribution diese Änderungen nicht überschrieben werden. Braucht man diese Änderungen nur in dem speziellen Projekt und möchte es weitergeben, dann kann man die angepasste Klasse auch im aktuellen Projektverzeichnis speichern.

1.4 Änderung des Zeilenabstandes mittels \baselinestretch

Anpassungen von Parametern sollten generell auf der obersten dafür vorgesehenen Ebene der Benutzungsschnittstelle erfolgen. Eine Änderung des Durchschusses kann auf drei Ebenen durchgeführt werden:

1. Verwendung des Paketes setspace.sty

2. Verwendung der L A T E X-Anweisung \linespread{<Faktor>}

3. Umdefinition von \baselinestretch

Eine Umdefinition von Parametern wie \baselinestretch stellt die unterste Ebene dar und sollte deshalb Paketen vorbehalten bleiben. Eine bessere, da extra dafür vorgesehene Methode, ist die Verwendung von \linespread{<Faktor>}. Die beste Vorgehensweise stellt aber die Verwendung des Paketes setspace.sty dar, das sich bei der Änderung des Durchschusses um die Beibehaltung der Abstände in Fußnoten oder Listenumgebungen kümmert, deren Änderung meist nicht erwünscht ist. Wenn man also einen größeren Durchschuss benötigt (zum Beispiel eineinhalbzeilig oder zweizeilig), bietet sich folglich zuerst das Paket setspace.sty an. Möchte man hinge- gen nur kleine Anpassungen für andere Schriften als Computer Modern (zum Beispiel Palatino) machen, dann kann bzw. sollte man \linespread{<Faktor>} verwenden. Bei der Schrift Palatino würde sich beispielsweise \linespread{1.05} anbieten.

1.5 Absatzeinzug und -abstand (\parindent, \parskip)

Den Absatzeinzug (\parindent) zu ändern, kann manchmal sinnvoll sein. Man sollte dabei aber beachten, dass

• man den Einzug mit einer schriftabhängigen Größe (em) und nicht mit einer absoluten Größe (mm) ändert. Die »Schriftabhängigkeit« bedeutet hierbei nicht nur, dass sich der Einzug mit der Schriftgröße ändert, sondern beinhaltet darüber- hinaus auch eine Abhängigkeit von der Schriftart, da die Geviertgröße 1em vom jeweiligen Entwerfer individuell für jede Schriftart angepasst wird.

• man L A T E X-Syntax verwendet, da diese die wenigsten Probleme birgt. Zum Beispiel ist sie für externe Programme/Skripte leichter zu parsen 5 , für den Benutzer besser zu warten, und es gibt keine Inkompatibilitäten mit anderen Paketen (calc.sty).

Ersetze:

\parindent=1em

5 syntaktisch analysieren, aufspalten

5

Durch:

\setlength{\parindent}{1em}

1 »Todsünden«

Wenn man hingegen keinen Absatzeinzug, dafür aber einen zusätzlichen Durchschuss als Absatzkennzeichnung wünscht, sollte man nicht einfach

\setlength{\parindent}{0pt}

\setlength{\parskip}{\baselineskip}

verwenden. Da sich \parskip auch auf Listen, Verzeichnisse und Überschriften aus- wirkt, ist diese Vorgehensweise nicht zu empfehlen. Das Paket parskip.sty und die KOMA -Script-Klassen treiben einigen Aufwand, um diese Begleiterscheinungen zu vermeiden. Zur Verwendung der verschiedenen Optio-

nen (parskip, halfparskip usw.) von KOMA -Script siehe den scrguide [3]. Wenn eine der

KOMA-Script-Klassen verwendet wird, muss das Paket parskip.sty nicht noch zusätzlich geladen werden.

1.6 Abgesetzte Formeln mit $$

$$

Bitte nicht! $$

dadurch die vertikalen Abstände bei abgesetzten Formeln inkonsistent werden (siehe auch Abschnitt 3.3 auf Seite 17, insbesondere die Warnung bezüglich displaymath im Zusammenhang mit amsmath.sty). Ferner funktioniert die Klassenoption fleqn nicht mehr.

Ersetze:

ist ein plainT E X-Befehl und sollte in L A T E X vermieden werden, da

$$

$$

$$

Durch:

\[

\]

oder \begin{displaymath}

\end{displaymath}

1.7 \def vs. \newcommand

Makros sollte man immer mittels \newcommand{<name>}{ definieren und nicht mit

}

\def\<name>{

}.

6

Das Hauptproblem von \def ist, dass keine Überprüfung auf die Existenz eines Makros durchgeführt wird. Es wird deshalb gegebenenfalls ohne Fehlermeldung/ Warnung überschrieben. Bereits existierende Makros können mit \renewcommand{<name>}{ umdefiniert werden. Wer genau weiß, warum er \def benötigt, weiß auch um dessen Nach- bzw. Vorteile und kann diesen Unterpunkt getrost ignorieren.

}

1.8 Verwendung von \sloppy

Der Schalter \sloppy sollte nicht verwendet werden, schon gar nicht global in der Präambel. Wenn man in einzelnen Absätzen Probleme mit dem Umbruch hat, gilt:

6 Siehe auch [4, Abschnitt 2.7.2] und [6, Abschnitt 3.4]

6

1 »Todsünden«

1. Überprüfen, ob die entsprechenden Trennmuster (z. B. mittels babel.sty) und T1-Schriften geladen sind (siehe auch FAQ [7, Punkt 5.3 ff.]).

2. Paket microtype.sty verwenden. Dadurch wird die Laufweite der Buchstaben leicht angepasst, um einen besseren Umbruch zu erreichen. Diese automatische Anpassung ist nur mit pdfT E X ab Version 1.20 möglich und funktioniert nur bei der Erzeugung einer PDF-Datei, nicht jedoch bei der Verwendung von pdfT E X im DVI-Modus.

3. Umformulieren. Man muss nicht unbedingt den Satz, in dem das Umbruchpro- blem auftritt umformulieren, oft reicht es schon einen der vorhergehenden oder nachfolgenden Sätze umzuformulieren/umzustellen.

4. Moderate Anpassung der Parameter, die T E X bei der Berechnung der Zeilenumbrü- che verwendet. Axel Reichert hat in de.comp.text.tex einmal seine persönliche Anpassung 7 gepostet 8 , mit der sich die meisten Umbruchprobleme bei weiterhin gutem Layout vermeiden lassen. (Man sollte hierbei allerdings beachten, dass nun auftretende Warnungen wirklich zu beherzigen und durch Umformulieren zu beseitigen sind.):

\tolerance

1414

\hbadness

1414

\emergencystretch

0.3pt

\widowpenalty=10000

\hfuzz

1.5em

\vfuzz

\raggedbottom

\hfuzz

Erst wenn diese Punkte nicht geholfen haben, kann man versuchen, mit der sloppypar- Umgebung den nachfolgenden Absatz »lockerer« zu setzen.

tatata tatata tatata tatata tatata tatata tata- tata tatata tatata tatata tatata tatata ta- tata tatatata tatata tatata tatata tatata ta- tatatattta tatata tatata tatata tatata tatata tatata tatatata

Abbildung 1: Beispiel mit L A T E Xs Standardwerten

tatata tatata tatata tatata tatata tatata tatatata tatata tatata tatata tatata tatata tatata tatatata tatata tatata tatata tatata tatatatattta tatata tatata tatata tatata ta- tata tatata tatatata

Abbildung 2: Beispiel mit \sloppy

In den Abbildungen 1 und 2 wird versucht, den Effekt von \sloppy darzustellen. Markus Kohm hat in comp.text.tex ein Beispiel veröffentlicht, welches den Effekt sehr deutlich zeigt. Es ist mit seiner Erlaubnis angehängt (siehe Anhang A auf Seite 21).

7 Man kann diese Werte natürlich nach dem persönlichen Geschmack ändern, aber man sollte vorallem bei \emergencystretch aufpassen. Sonst erhält man einen löchrigen Blocksatz, wie bei einem sehr bekannten Textverarbeitungsprogramm.

7

2 Veraltete Befehle, Klassen und Pakete

2 Veraltete Befehle, Klassen und Pakete

Markus Kohm hat ein Perl-Script geschrieben, mit dem man online auf http://kohm. de.tf/markus/texidate.html seine Dateien auf die häufigsten Fehler überprüfen kann. Allerdings ist zu beachten, dass es keinen vollständigen T E X-Parser enthält und deshalb nur die »offensichtlichen« Fehler überprüfen kann. Erst testen, dann posten.

2.1 Befehle

2.1.1 Änderung des Schriftstils

In Tabelle 1 sind die alten und aktuellen Befehle zur Änderung des Schriftstils ge- genüber gestellt. Die als »lokal« bezeichneten Makros wirken nur auf ihr Argument, wohingegen die als »global/Schalter« bezeichneten sich auf den gesamten folgenden Text bis zum Ende der aktuellen Gruppe auswirken.

Tabelle 1: Befehle zur Änderung des Schriftstils

veraltet

Ersatz in L A T E X2 ε

lokal

global/Schalter

}

\emph{

{\bf

\textbf{

}

\bfseries

} \em a

{\it

} \textit{

} \itshape

\textmd{

} \mdseries

{\rm

} \textrm{

} \rmfamily

{\sc

} \textsc{

} \scshape

{\sf

} \textsf{

} \sffamily

{\sl

} \textsl{

} \slshape

{\tt

} \texttt{

} \ttfamily

\textup{

} \upshape

a Nützlich in Makrodefinitionen. Innerhalb des Texts sollte nicht {\em wendet werden.

},

sondern \emph{

}

ver-

Warum sollte man die alten Befehle nicht verwenden?

zen nicht die Schriftverwaltung 9 von L A T E X2 ε . {\bf foo} zum Beispiel setzt alle schon vorhandenen Schriftattribute zurück, bevor es »foo« fett druckt. Das führt dazu, dass man nicht einfach einen fett-kursiven Stil durch {\it \bf Test} definieren kann. (Die

angegebene Definition erzeugt: Test.). Die aktuellen Befehle \textbf{\textit{Test}}

Die alten Befehle unterstüt-

9 NFSS: New Font Selection Scheme. Einen Überblick über das NFSS gibt der fntguide [5].

8

2 Veraltete Befehle, Klassen und Pakete

hingegen verhalten sich wie erwartet und erzeugen: Test. Ferner gibt es bei den alten Befehlen keine »Italic-Korrektur«, zum Beispiel fünfhundert ({\it fünf}hundert) und

fünf hundert (\textit{fünf}hundert).

2.1.2 Mathematische Brüche (\over vs. \frac)

Der Befehl \over sollte vermieden werden. \over ist ein T E X-Befehl, der durch die von L A T E X abweichende Syntax schlechter bzw. nicht parsbar ist. Insbesondere das Paket amsmath.sty definiert \frac{}{} um, und man erhält Fehlermeldungen bei der Verwendung von \over. Ein weiteres Argument für die Verwendung von \frac{}{} ist die für den Benutzer – vorallem bei komplexeren Brüchen – einfachere Zuordnung von Zähler und Nenner.

Ersetze:

$a

\over

b$

Durch:

$\frac{a}{b}$

2.1.3 Zentrierung mit \centerline

Der Befehl \centerline ist ebenfalls ein T E X-Befehl und sollte in L A T E X vermieden werden. Einerseits ist \centerline ist inkompatibel zu einigen L A T E X-Paketen (z. B. color.sty), und andererseits kann die Verwendung zu unerwünschten bzw. unerwarteten Effekten führen:

\begin{enumerate}

\item\centerline{Ein

\end{enumerate}

Ein Punkt

1.

Punkt}

Ersetze:

\centerline{

}

Durch:

{\centering

} oder \begin{center}

\end{center}

Anmerkung Einige Hinweise zur Zentrierung von Grafiken und Tabellen sind in Abschnitt 3.1 auf Seite 17 zu finden.

2.2 Klassen und Pakete

2.2.1 scrlettr.cls vs. scrlttr2.cls

Die Klasse scrlettr.cls aus dem KOMA-Script-Paket ist veraltet und wurde durch die neue scrlttr2.cls ersetzt. Um ein ähnliches Layout wie die alte Klasse zu erreichen, kann man die Klassenoption KOMAold verwenden, die einen Kompatibilitätsmodus zur Verfügung stellt.

Ersetze:

\documentclass{scrlettr}

 

Durch:

\documentclass[KOMAold]{scrlttr2}

9

2 Veraltete Befehle, Klassen und Pakete

Anmerkung

werden, da diese deutlich flexibler ist. Eine Erklärung der Unterschiede des Benutzerinterfaces würde den Rahmen dieser Übersicht sprengen, deshalb wird hier auf den scrguide [3] verweisen.

Für neue Vorlagen und Briefe, sollte aber die neue Schnittstelle benutzt

2.2.2 epsf.sty, psfig.sty, epsfig.sty vs. graphics.sty, graphicx.sty

Die Pakete epsf.sty und psfig.sty sind durch graphics.sty oder graphicx.sty zu ersetzen.

epsfig.sty ist nur ein Wrapper 10 um graphicx.sty für alte Dokumente, die mit psfig.sty erstellt wurden, verwenden zu können. Da epsfig.sty intern graphicx.sty benutzt, kann man es noch verwenden, sollte aber für neu erstellte Dokumente auf das modernere graphics.sty oder graphicx.sty umsteigen. Die Syntax der beiden letztgenannten Pakete ist deutlich flexibler. Das Paket epsfig.sty wird hauptsächlich aus Kompatibilitätsgründen mitgeliefert. Zu den Unterschieden zwischen den Paketen graphics.sty und graphicx.sty siehe grfguide [2]. Hinweise zur Zentrierung von Grafiken siehe Abschnitt 3.1 auf Seite 17.

Ersetze:

\usepackage{psfig}

\psfig{file=Bild,

}

2.2.3 doublespace.sty vs. setspace.sty

Durch:

\usepackage{graphicx}

\includegraphics[

]{Bild}

Um den Durchschuss zu ändern, sollte man das Paket setspace.sty verwenden. double- space.sty ist veraltet und wurde durch setspace.sty ersetzt. Bitte auch Abschnitt 1.4 auf Seite 5 beachten.

Ersetze:

\usepackage{doublespace}

Durch:

\usepackage{setspace}

2.2.4 fancyheadings.sty, scrpage.sty vs. fancyhdr.sty, scrpage2.sty

Das Paket fancyheadings.sty wurde durch fancyhdr.sty ersetzt. Eine weitere Alternative für angepasste Kopfzeilen bietet das Paket scrpage2.sty aus dem KOMA-Script-Bundle. Auch hier ist zu beachten, dass nicht scrpage.sty verwendet wird. Die Anleitung zu

scrpage2.sty befindet sich im scrguide [3].

Ersetze:

\usepackage{fancyheadings}

Durch:

\usepackage{fancyhdr}

Ersetze:

\usepackage{scrpage}

 

Durch:

\usepackage{scrpage2}

2.2.5 Die caption.sty-Familie

Das Pakete caption2.sty sollte nicht mehr verwendet werden, da es eine neue Version (v3.x) von caption.sty gibt. Man sollte allerdings darauf achten, dass die neueste

10 Hier: Ein Stylefile, welches ein oder mehrere andere aufruft und damit Funktionen nachbildet.

10

2 Veraltete Befehle, Klassen und Pakete

Version des Paketes benutzt wird. Um dies sicherzustellen, muss man das Paket folgendermaßen laden:

Ersetze:

\usepackage{caption}

Durch:

\usepackage{caption}[2003/12/20]

Hatte man vorher caption2.sty benutzt, dann sollte man unbedingt die Dokumentati- on anleitung [12, Abschnitt 8] beachten.

2.2.6 isolatin.sty, umlaut.sty vs. inputenc.sty

Generelles

Zeichen einzugeben:

Im Prinzip gibt es vier Möglichkeiten, Umlaute und andere nicht-ASCII-

1. H{\"u}lle: Der Vorteil dieser Art der Eingabe ist, dass sie immer und auf jedem System funktioniert.

Die Nachteile hingegen sind, dass das Kerning 11 zwischen den Buchstaben zer- stört wird, es in einem deutschsprachigen Text äußerst umständlich ist und dass es äußerst schlecht lesbar ist.

Diese Variante sollte man – auf Grund des Kerningproblems – immer vermeiden.

2. Die Eingabe der Form H\"ulle bzw. H\"{u}lle hat die oben genannten Kerning- probleme nicht und ist ebenfalls auf jedem System nutzbar.

Die Nachteile bei dieser Art, sind auch hier die aufwändige Eingabe und schlech- tere Lesbarkeit.

Diese Variante ist die sinnvollste für Makrodefinitionen und Stylefiles, da sie encoding- und paketunabhängig ist.

3. Mit (n)german.sty bzw. der Option (n)german beim Paket babel.sty kann man die Umlaute etwas einfacher (H"ulle) eingeben. Der Vorteil ist auch hier wieder, dass es auf allen Systemen funktioniert. Da babel.sty bzw. (n)german.sty auf allen T E X-Installationen zu finden ist, sollte es auch keine Kompatibilitätsprobleme geben.

Die Nachteile sind auch hier die umständlichere Eingabe und schlechtere Lesbar- keit.

Diese Variante ist für Fließtext relativ gut verwendbar. Sollte aber in Makrodefini- tionen und Präambeln vermieden werden.

4. Die direkte Eingabe (Hülle). Die Vorteile liegen auf der Hand. Der Text ist »normal« schreib- und lesbar.

Der Nachteil ist, dass man L A T E X mit der verwendeten Eingabekodierung bekannt machen muss und dass es beim Austausch von Dateien zwischen verschiedenen

11 Einfügen positiver bzw. negativer Abstände zwischen Zeichen in Abhängigkeit der Zeichenkombination

11

2 Veraltete Befehle, Klassen und Pakete

Systemen evtl. zu Problemen kommen kann. Das ist kein Problem für T E X bzw. L A T E X selbst, aber es kann evtl. zu Darstellungsproblemen in den Editoren auf den verschiedenen Systemen führen. Zum Beispiel könnte ein in iso-8859-15 (latin9) kodierter in einem Editor unter Windows (CP1252) als ¤ dargestellt werden.

Diese Variante ist sehr gut für Fließtext verwendbar. Sollte aber in Makrodefini- tionen und Präambeln vermieden werden.

Zusammenfassend kann also gesagt werden, dass man in Makros, Präambeln und Stylefiles die Form H\"ulle oder H\"{u}lle verwenden sollte und im übrigen Text entweder H"ulle oder Hülle.

Um die verwendete Kodierung L A T E X bekannt zu machen, sollte

man nicht isolatin1.sty bzw. isolatin.sty oder umlaut.sty verwenden! Diese Pakete sind veraltet bzw. nicht auf allen Systemen vorhanden. Korrekt ist das Paket inputenc.sty mit folgenden Optionen zu benutzen:

Eingabekodierung

latin1/latin9 für unixoide Systeme (latin1 ist auch unter Microsoft Windows und Mac OS X verwendbar)

ansinew für Microsoft Windows

applemac für Macs 12

cp850

utf8

für OS/2

für »moderne« unixoide Systeme bzw. für Systeme (und Editoren), die Unicode (UTF-8) unterstützen

Ersetze:

\usepackage{isolatin1}

Durch:

\usepackage[latin1]{inputenc}

Ersetze:

\usepackage{umlaut}

 

Durch:

\usepackage[latin1]{inputenc}

Anmerkung Die oben angegebene Methode zur Deklaration der Eingabekodierung findet bei »klassischen« L A T E X-Übersetzern wie pdfL A T E X Anwendung. Die Neuentwick- lung XEL A T E X verarbeitet Unicode-Dateien auch ohne Kodierungsangabe. XEL A T E X kann bereits produktiv eingesetzt werden, verlangt aber in der Regel ein Umschreiben »alter« L A T E X-Dateien in Bezug auf die Sprach- und Schriftartenwahl und besitzt auch noch nicht die mikrotypographischen Fähigkeiten in dem Umfang, wie pdfL A T E X sie bietet.

12 Bei der Verwendung von OS X sollte ebenfalls latin1/latin9 verwendet werden, da diese Kodierung besser für den Dateiaustausch mit Benutzern anderer Betriebssysteme geeignet ist als applemac. Allerdings sollte unbedingt die Eingabekodierung des verwendeten Editors beachtet werden.

12

2 Veraltete Befehle, Klassen und Pakete

2.2.7 t1enc.sty vs. fontenc.sty

Dieses Thema ist in der FAQ [7, Punkt 10.1 ff.] eigentlich ausreichend erörtert. Hier nur kurz der Hinweis, dass das Paket t1enc.sty veraltet ist und deshalb durch fontenc.sty ersetzt werden sollte!

Ersetze:

\usepackage{t1enc}

2.2.8 natdin.bst vs. dinat.bst

Durch:

\usepackage[T1]{fontenc}

Der Autor von dinat.bst empfiehlt, dinat.bst durch natdin.bst zu ersetzen, da die Weiterentwicklung von dinat.bst eingestellt und natdin.bst stark verbessert wurde.

Ersetze:

dinat.bst

Durch:

natdin.bst

Anmerkung In früheren Versionen dieses Dokuments wurde genau die gegenteilige Empfehlung gegeben, die auf dem damaligen Entwicklungsstand beruhte. Die Ver- besserungen an natdin.bst, die seither durchgeführt wurden, rechtfertigen nun die Bevorzugung von natdin.bst.

2.3 Schriften

Das Thema »Schriften und L A T E X« ist ein Quell ewiger »Freude« in de.comp.text.tex, meistens ausgelöst durch die Frage, warum denn die Schrift im Acrobat Reader so pixelig sei. Die häufigsten falschen Antworten auf diese Frage verweisen auf times.sty bzw. pslatex.sty. Durch die Nutzung dieser Pakete werden gänzlich andere Schriften eingestellt. Um »schöne« Schriften (Computer Modern) im AR zu erhalten, sei hiermit auf die FAQ [7, Punkte 10.1.7/10.1.8] verwiesen. Generelle Informationen zu L A T E X2 ε s New Font Selection Scheme (NFSS) gibt der

fntguide [5].

2.3.1 times.sty

Das Paket times.sty ist veraltet (siehe psnfss2e [10]). Es stellt \rmdefault auf die Schrift »Times«, \sfdefault auf »Helvetica« und \ttdefault auf »Courier« um, ohne jedoch die passenden Mathematikschriften einzubinden. Ferner wird die Helvetica nicht korrekt skaliert und wirkt zu groß. Wenn man die Kombination Times/Helvetica/ Courier benutzten möchte, dann folgendermaßen:

Ersetze:

\usepackage{times}

Durch:

13

\usepackage{mathptmx}

\usepackage[scaled=.92]{helvet}

\usepackage{courier}

2 Veraltete Befehle, Klassen und Pakete

Anmerkung

zwischen 0.90 und 0.92 liegen.

Der Skalierungsfaktor für helvet.sty in Kombination mit der Times sollte

2.3.2 mathptm.sty

Das Paket mathptm.sty ist der Vorgänger von mathptmx.sty.

Ersetze:

\usepackage{mathptm}

2.3.3 pslatex.sty

Durch:

\usepackage{mathptmx}

Das Paket pslatex.sty arbeitet intern wie mathptm.sty + helvet.sty (skaliert), wobei allerdings eine zu eng laufende Courier gewählt wird. Der Hauptnachteil von pslatex.sty ist, dass es nicht mit T1- und TS1-Encoding funktioniert.

Ersetze:

\usepackage{pslatex}

Durch:

\usepackage{mathptmx}

\usepackage[scaled=.92]{helvet}

\usepackage{courier}

Anmerkung zu allen Times/Helvetica-Kombinationen

maschinenschrift bei der cmtt bleiben, also auf das Laden von courier.sty verzichten.

Man kann auch als Schreib-

2.3.4 palatino.sty

Das Paket palatino.sty verhält sich wie times.sty (außer das natürlich \rmdefault auf »Palatino« gesetzt wird) und sollte deshalb nicht mehr benutzt werden.

Ersetze:

\usepackage{palatino}

Durch:

\usepackage{mathpazo}

\usepackage[scaled=.95]{helvet}

\usepackage{courier}

Anmerkung Der Skalierungsfaktor für helvet.sty in Kombination mit der Schrift Palatino sollte 0.95 betragen. Die »Helvetica« ist nicht die optimale serifenlose Schrift in Kombination mit der »Palatino«, aber die oben gennante Ersetzung soll sich so weit wie möglich am »alten« Paket orientieren. Ferner war die »Helvetica« lange Zeit die passendste, freiverfügbare serifenlose Schrift zur »Palatino«. Mittlerweile stellt die »Vera/Bera Sans« eine – unserer Meinung nach – bessere Alternative dar. Wer eine (auch ältere) CorelDraw ® -CD besitzt, kann die »Palatino« auch sehr gut mit den Schriften »Frutiger« 13 oder »Optima« 14 kombinieren. Walter Schmidt hat auf seiner Homepage 15 die entsprechenden T E X-Anpassungen veröffentlicht.

13 Bitstream »Humanist 777«, bfr

14 Bitstream »Zapf Humanist«, bop

15 Schriften für T E X: http://home.vr-web.de/was/fonts

14

2 Veraltete Befehle, Klassen und Pakete

2.3.5 mathpple.sty

Dieses Paket ist der Vorläufer von mathpazo.sty. Ihm fehlen einzelne Zeichen, die Schriften werden aus den Euler-Fonts genommen, andere Zeichen passen nicht gut zu Palatino und die Zeichenabstände sind zum Teil falsch. Genaueres siehe psnfss2e [10].

2.3.6 Aufrechte griechische Buchstaben

Die im folgenden rot markierten Passagen sind nicht veraltet im Sinne von »man soll sie nicht mehr benutzen«, aber es gibt nun mit dem Paket upgreek.sty eine Vereinfachung der Eingabe. Hinweise zur Benutzung bitte wie immer der Dokumentation upgreek [9] entnehmen.

Die pifont.sty-Tricks

Ersetze:

\usepackage{pifont} \newcommand{\uppi}{%

 

Durch:

\usepackage{upgreek}

 

\Pisymbol{psy}{112}}

 

$\uppi$

\uppi

 

beziehungsweise

\newcommand[1]{\upgreek}{%

\usefont{U}{psy}{m}{n}#1}

\upgreek{p}

 

Der babel.sty-Trick

 

Ersetze:

\usepackage[greek,

]{babel}

Durch:

\usepackage{upgreek}

 

\newcommand{\upgreek}[1]{%

 

\foreignlanguage{greek}{#1}}

$\uppi$

\upgreek{p}

 

2.3.7 euler.sty vs. eulervm.sty

Das Paket euler.sty sollte durch eulervm.sty ersetzt werden, da es Kompatibilitätspro- bleme mit anderen Paketen ausräumt und einige Detailverbesserungen enthält:

\hbar (\hslash bei dieser Schrift) funktioniert nun sauber

• Fette Mathematikschriften inklusive griechische Symbole sind möglich.

Genauere Informationen siehe eulervm [8].

15

2 Veraltete Befehle, Klassen und Pakete

Ersetze:

\usepackage{euler}

16

Durch:

\usepackage{eulervm}

3 Verschiedenes

3 Verschiedenes

Dieser Abschnitt enthält – mit Ausnahme von 3.2 – eher allgemeine Tipps und Hinweise als »Sünden«.

3.1 Gleitumgebungen – »figure«, »table«

Um den Inhalt einer Gleitumgebung zu zentrieren, sollte man \centering an Stelle der center-Umgebung verwenden, da diese zusätzlichen vertikalen Abstand einfügt, der meistens nicht erwünscht ist.

Ersetze:

\begin{figure}

Durch:

\begin{figure}

 

\begin{center}

\centering

\includegraphics{bild}

\includegraphics{bild}

\end{center}

\end{figure}

\end{figure}

 

Anmerkung Wenn man innerhalb des Fließtextes oder der titlepage-Umgebung einen Bereich zentrieren möchte, kann dieser zusätzliche Abstand natürlich durchaus erwünscht sein.

3.2 Der Anhang

Der Anhang wird mit dem Schalter \appendix eingeleitet. Er ist keine Umgebung.

Ersetze:

\begin{appendix}

Durch:

\appendix

 

\section{Blub}

\section{Blub}

\end{appendix}

 

3.3 Mathematiksatz

Generell sollte man für komplizierteren Mathematiksatz amsmath.sty, gegebenenfalls ergänzt durch mathtools.sty, benutzen. Es bietet neue Umgebungen, die vor allem eqnarray ersetzen sollen. Die Vorteile des Paketes:

• Abstände innerhalb und außerhalb von Umgebungen sind konsistenter.

• Gleichungsnummern werden so positioniert, dass sie nicht mehr überdruckt werden.

• Die neuen Umgebungen (zum Beispiel split) ermöglichen es, lange Gleichungen einfacher zu umbrechen.

• Einfache Möglichkeit, neue Operatoren (ähnlich wie \sin usw.) mit sauberen Zeichenabständen zu definieren.

17

3 Verschiedenes

a

b

a

= b

= c

= c

a

b

a

= b

= c

= c

Abbildung 3: Beispiel für eqnarry *

Abbildung 4: Beispiel für align *

Warnung Bei der Verwendung des Paketes amsmath.sty sollte man die Umgebungen displaymath, eqnarray und eqnarray * keinesfalls weiterverwenden, da diese von ams-

math.sty nicht unterstützt werden und deshalb wieder inkonsistente Abstände ergäben (siehe die Abbildungen 3 bis 4 auf dieser Seite).

wird von amsmath.sty korrekt angepasst und kann an

Stelle von displaymath genutzt werden. eqnarray und eqnarray * kann in erster Näherung durch align bzw. align * ersetzt werden. Für eine vollständige Übersicht der Möglichkeiten von amsmath.sty sei auf die Dokumentation amsldoc [1] verwiesen.

Die \[

\]-Umgebung

Ersetze:

\begin{eqnarray}

Durch:

\begin{align}

 

a &=&

b\\

a &=

b\\

b &=&

c\\

b &=

c\\

a &=&

c

a &=

c

\end{eqnarray}

\end{align}

3.4 Die Verwendung von \graphicspath

Das beliebte Makro \graphicspath sollte aus folgenden Gründen vermieden und durch die Umgebungsvariable TEXINPUTS ersetzt werden 16 :

1. Die Verzeichnistrenner sind nicht plattformunabhängig:

Windows/Unices: »/«, Macs: »:«.

2. Die T E X-Suche dauert länger, als diese Aufgabe durch die kpathsea-Bibliothek lösen zu lassen. (Bei heutigen Prozessoren fällt das nicht mehr so ins Gewicht.)

3. Jedes Bild verbraucht einen Teil des begrenzten T E X-Speichers und gibt ihn wäh- rend des gesamten Kompilierens nicht mehr frei.

Bei einer Bourne-Shell kann man zum Beispiel folgenden Aufruf

[luser@host]>

TEXINPUTS=Bildverz:$TEXINPUTS

latex

datei.tex

verwenden, oder in der $HOME/.profile zusätzlich

16 Vgl. David Carlisles Antwort auf Markus Kohms »Bug-Report«: http://www.latex-project.org/