%%%------------------------------------------------------------------
%%% Filename:    l2tabu.tex
%%% Author:      Mark Trettin <Mark.Trettin@gmx.de>
%%% Created:     17 Feb 2003 19:01:58
%%% Time-stamp: <19 Dez 2004 23:01:22 (CET) (mark)>
%%% Version:    $Id: l2tabu.tex,v 1.8 2004/12/19 22:01:40 mark Exp $
%%%
%%% Copyright (C) 2003 by Mark Trettin
%%%------------------------------------------------------------------
%%% TODO:
%%% - \input{../asdf/} anstelle von \input ../asdf/
\documentclass[11pt,a4paper,pagesize,tablecaptionabove,abstracton,pointlessnumbers]{scrartcl}
%--------------- Grund Konfiguration (deutsch, 8bit) ----------------
\usepackage[ngerman]{babel}     % deutsche Trennmuster
\usepackage[latin1]{inputenc}   % direkte Eingabe von Umlauten & Co.
\usepackage[T1]{fontenc}        % T1-Schriften
%%% Times/Helvetica/Courier *nur* um die Dateigröße zu minimieren, da
%%% diese Schriften nicht eingebunden werden (müssen).
\usepackage{mathptmx}           % Times/Mathe \rmdefault
\usepackage[scaled=.90]{helvet} % Skalierte Helvetica \sfdefault
\usepackage{courier}            % Courier \ttdefault

\shorthandon{"}
\newcommand{\TimesRant}{Ach ja, bevor Anfragen kommen: Ja, ich habe
  Times/""Helvetica\footnote{Arial in der Darstellung des Acrobat Reader}/""Courier benutzt,
  allerdings nur um die Datei möglichst klein zu halten. \texttt{;-)}}
\shorthandoff{"}
\typearea[current]{current}     % Satzspiegel neu  berechnen
%------------ zusaetzliche Pakete (Graphik, Tabellen) ---------------
\usepackage{xspace}             % Automatische Leerzeichen nach Makros
\usepackage{booktabs,array}     % Schönere Tabellen
\usepackage[german]{varioref}   % für die veröffentlichte Version
                                % geändert, da die aktuellen fancy- bzw.
                                % varioref-Versionenen nicht
                                % zusammenarbeiten. (Immer noch?!)
\usepackage{textcomp}           % Zusätzliche Zeichen
\usepackage[nofancy]{rcsinfo}   % RCS-Informationen im Titel
\usepackage{enumerate}
\usepackage{calc}               % Wir müssen rechnen
\usepackage{eurosans}           % Euro
%--------------------------- Formatierung ---------------------------
%%% Captions
\setkomafont{caption}{\normalcolor\small\sffamily\slshape}
\setkomafont{captionlabel}{\normalcolor\upshape\small\sffamily\bfseries}
%--------------------------- PDF Optionen ---------------------------
\ifpdfoutput{%                 % Benötigt KOMA-Scriptklasse
  \usepackage{hyperref}        % hyperref Einstellungen für pdf
  \hypersetup{%
  pdfauthor={(c) 2003, 2004 Mark Trettin},%
  pdftitle={Das LaTeX2e-Sündenregister oder Veraltete Befehle, Pakete und andere Fehler},%
  pdfsubject={Tipps zu LaTeX2e},%
  bookmarksopen=true,% Temp
  backref=true,
  }
  \usepackage[activate=normal]{pdfcprot} % Optischer Randausgleich
  \newcommand{\EMail}[1]{\href{mailto:#1?Subject=[l2tabu.pdf]}{E-Mail: \texttt{#1}}}
  \newcommand{\News}[1]{\href{news:#1}{\texttt{#1}}}
  %% Diese Definition ist Mist, da muss ich nochmal drüber nachdenken. :-(
  \newcommand{\MID}[2]{\href{http://groups.google.com/groups?as_umsgid=#1}%
    {Message-ID: \texttt{<#2>}}}
  % \usepackage{color}           % Für preview-latex in den pdf-Zweig
  }%
%--------------------------- PS Optionen ----------------------------
  {%
    \usepackage{hyperref}
    \newcommand{\EMail}[1]{\href{mailto:#1}{E-Mail: \texttt{#1}}}
    \newcommand{\News}[1]{\href{news:#1}{\texttt{#1}}}
    \newcommand{\MID}[2]{\href{M-ID: <#1>}{Message-ID: \texttt{<#2>}}}
  }
\usepackage{color} % Für preview-latex bitte auskommentieren
%-------------------------- neue Kommandos --------------------------
\newcommand{\TB}{\textbackslash}
%%% Dokumentation: SansSerif
\newcommand{\Doku}[1]{\textsf{#1}\xspace}
%%% Paket ,Klasse, Bibstil: SansSerif, Slanted
%\newcommand{\Paket}[2][sty]{\textsf{\textsl{#2.#1}}\xspace}
\newcommand{\Paket}[1]{\textsf{\textsl{#1.sty}}\xspace}
\newcommand{\Klasse}[1]{\textsf{\textsl{#1.cls}}\xspace}
\newcommand{\Bst}[1]{\textsf{\textsl{#1.bst}}\xspace}
%%% Optionen: SansSerif
\newcommand{\Option}[1]{\textsf{#1}\xspace}
%%% \Use{graphicx}         --> \usepackage{graphicx}
%%% \UseO{dvips}{graphicx} --> \usepackage[dvips]{graphicx}
\newcommand{\Use}[1]{\texttt{\TB usepackage\{#1\}}}
\newcommand{\UseO}[2]{\texttt{\TB usepackage[#1]\{#2\}}}
\newcommand{\UseV}[2]{\texttt{\TB usepackage\{#1\}[#2]}}
\newcommand{\UseOV}[3]{\texttt{\TB usepackage[#1]\{#2\}[#3]}}
%%% Bibliography
\newcommand{\Bib}[1]{\texttt{\TB bibliographystyle\{#1\}}}
%%% environment TODO: evtl. umdefinieren, dat is übel
\newcommand{\Env}[2]{\raggedright\texttt{\TB begin\{#1\}\\
    #2\\ \TB end\{#1\}}}
%%% \newcommand
\newcommand{\NewCom}[3][]{\texttt{\TB newcommand{#1}\{\TB#2\}\{#3\}}}
\newcommand{\ReNewCom}[3][]{\texttt{\TB renewcommand{#1}\{\TB#2\}\{#3\}}}

%%% Gestohlen aus dem scrguide ;-)
\DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}}
\DeclareRobustCommand*{\LMacro}[2]{\mbox{\texttt{\char`\\#1\{#2\}}}}
\DeclareRobustCommand*{\GMacro}[2]{\mbox{\texttt{\{\char`\\#1\ #2\}}}}
% DANTE
\providecommand{\CTANserver}{ftp.dante.de}
% Make CTAN:// be an alias of ftp://\CTANserver/tex-archive/
\makeatletter
\def\url@#1{\expandafter\url@@#1\@nil}
\def\url@@#1://#2\@nil{%
  \def\@tempa{#1}\def\@tempb{CTAN}\ifx\@tempa\@tempb
    \hyper@linkurl{\Hurl{#1:#2}}{ftp://\CTANserver/tex-archive/#2}%
  \else
    \hyper@linkurl{\Hurl{#1://#2}}{#1://#2}%
  \fi
}
\makeatother
%%% Farben
%\definecolor{gruen}{rgb}{0,0.66,0}
% Umdefiniert, für s/w-Ausdrucke.
\definecolor{gruen}{rgb}{0,0.55,0}
\definecolor{rot}{rgb}{1,0,0}
\newcommand{\FIXME}[1]{\marginline{FIXME: #1!}}
\newsavebox{\Quelle}

\newenvironment{bspcode}[1]{%
  \sbox{\Quelle}{\footnotesize Quelle: #1}
  \center
  \rule{\linewidth}{1.5pt}
}{%
  \rule{\linewidth}{1.5pt}
  \usebox{\Quelle}
  \endcenter%
}

%%% Ersetze-Makros FIXME:
\newcommand{\Ersetze}[2]{\par\noindent Ersetze: \textcolor{rot}{#1}
  durch \textcolor{gruen}{#2}}
\newcommand{\Ersetzx}[3][.5\textwidth]{%
  \par\noindent%
  \begin{minipage}[t]{#1}
    \raggedright
    Ersetze:\\
    \textcolor{rot}{#2}
  \end{minipage}%
  \hfill%
  \begin{minipage}[t]{(\linewidth - #1)-.02\linewidth}
    \raggedright
    durch\\
    \textcolor{gruen}{#3}
  \end{minipage}%
}
% Breite für die Ersetze-Makros :-(
\newsavebox{\Breite}
%%% Hack von Heiko Oberdiek für den AR unter Linux
\pdfstringdefDisableCommands{%
  \edef\quotedblbase{\string"}%
  \edef\textquotedblleft{\string"}%
}
%%% von mir für \dots
\pdfstringdefDisableCommands{%
  \edef\dots{\string...}%
}
%%% Ganz, ganz kruder Hack um die URL in eine eigene Zeile zu bekommen,
%%% *ohne* zusätzlichen Abstand. :-(
\newcommand{\biburl}[1]{\hfill\\URL:~\url{#1}}
%------------------- Tabellenspaltendefinitionen --------------------
% Benötigt array
\newcolumntype{v}[1]{>{\raggedright\hspace{0pt}}p{#1}} % v-Spalte, wie
                                                       % p-Spalte nur
                                                       % linksbündig
\newcolumntype{V}[1]{>{\footnotesize\raggedright\hspace{0pt}}p{#1}}
\newcolumntype{N}{>{\footnotesize}l}
\newcolumntype{C}{>{\footnotesize}c}
%----------------------------- Titelei ------------------------------
\subject{Tipps zu \LaTeX}
\title{Das \LaTeXe-Sündenregister\\{\LARGE% Ich weiß, das tut man nicht.
    oder\\Veraltete Befehle,
    Pakete  und  andere Fehler}}
\author{Mark Trettin\thanks{\EMail{Mark.Trettin@gmx.de}}}
\date{Version \rcsInfoRevision\ vom \rcsInfoLongDate}
%----------------------- Beginn des Dokuments -----------------------
\begin{document}
%\begin{Form}\end{Form}
\pagestyle{headings}
%%% RCS Info für die Versionsangaben.
\rcsInfo $Id: l2tabu.tex,v 1.8 2004/12/19 22:01:40 mark Exp $
\maketitle
\begin{abstract}
  \noindent
  Angeregt durch eine Diskussion in der deutschsprachigen
  \TeX-Newsgroup\footnote{\News{de.comp.text.tex}} über das
  wiederholte Auftauchen von veralteten und "`schlechten"' Paketen und
  Befehlen, habe ich mich entschlossen, diese kleine Übersicht zu
  schreiben.
  
  Ich versuche in diesem Artikel die gängigsten Fehler zu zeigen und
  Alternativen anzubieten. Diese Übersicht soll weder Einführungen wie
  \Doku{l2kurz}~\cite{l2kurz:99} noch die
  \Doku{De-TeX-FAQ}~\cite{faq:03} ersetzen, sondern lediglich einen
  kleinen Überblick bieten.
  
  Für Vorschläge, Verbesserungen und Kommentare bin ich dankbar.
  \TimesRant
\end{abstract}
%%% Copyright 
{\setlength{\parindent}{0pt}
  \footnotesize
\vfill
Copyright \copyright{} 2003, 2004 by Mark Trettin.
\medskip

This material may be distributed only subject to the terms and
conditions set forth in the \emph{Open Publication License}, v1.0 or
later (the latest version is presently available at
\url{http://www.opencontent.org/openpub/}).
   
\bigskip

Ich bedanke mich bei
Ralf Angeli,
Christoph Bier,
Christian Faulhammer,
Jürgen Fenn\footnote{Englische Übersetzung: \url{CTAN://info/l2tabu/english/l2tabuen.pdf}},
Ulrike Fischer,
Yvon Henel\footnote{Französische Übersetzung: \url{CTAN://info/l2tabu/french/l2tabufr.pdf}},
Yvonne Hoffmüller,
David Kastrup,
Markus Kohm,
Thomas Lotze,
Frank Mittelbach,
Heiko Oberdiek,
Walter Schmidt,
Stefan Stoll,
Knut Wenzig,
Emanuele Zannarini\footnote{Italienische Übersetzung: \url{CTAN://info/l2tabu/italian/l2tabuit.pdf}}
und Reinhard Zierke
für Tipps, Anmerkungen und Korrekturen. Falls ich jemanden vergessen
haben sollte, bitte ich um eine Mail.\par}

\clearpage
\tableofcontents
\clearpage

\section{"`Todsünden"'}
\label{sec:todsunden}
In diesem Abschnitt habe ich die wohl schlimmsten Fehler
zusammengetragen, die in schöner Regelmäßigkeit in
\News{de.comp.text.tex} auftauchen und den dortigen Regulars entweder
die Zornesröte ins Gesicht oder die Tränen in die Augen treiben.
\texttt{;-)}


\subsection{\Paket{a4}, \Paket{a4wide}}
\label{sec:paketa4-paketa4wide}

Diese "`beiden"' Pakete sollten nicht mehr verwendet und ersatzlos aus
dem \LaTeX-Quelltext gestrichen und durch die Klassenoption
\Option{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.

\subsection{Layoutänderungen}
\label{sec:layoutanderungen}
Die von den Standardklassen (\Klasse{article}, \Klasse{report},
\Klasse{book}) verwendeten Satzspiegel wirken häufig zu groß.  Abhilfe
bieten die entsprechenden Klassen (\Klasse{scrartcl}, \Klasse{scrreprt},
\Klasse{scrbook}) aus dem \KOMAScript-Paket, oder das ebenfalls dort
enthaltene \Paket{typearea}. Die dazugehörige Dokumentation
\Doku{scrguide}~\cite{kohm:03} enthält viele weiterführende
Informationen.

Wenn man wirklich einen anderen Satzspiegel als den von z.\,B.
\Paket{typearea} erzeugten benötigt, dann sollte man bitte die Pakete
\Paket{geometry} oder \Paket{vmargin} verwenden und nicht versuchen,
"`zu Fuß"' \Macro{oddsidemargin} \& Co. zu ändern.

Unter gar keinen Umständen sollte man an \Macro{hoffset} bzw.
\Macro{voffset} herumfummeln, außer man kennt sich sehr gut mit den
\TeX-Interna aus.

\subsection{Änderungen von Paketen und Klassen}
\label{sec:ander-von-paket}
Niemals Dokumentklassen (\Klasse{article}, \Klasse{scrbook} usw.) oder
Stylefiles (\Paket{varioref}, \Paket{color}) direkt ändern! Entweder
man bastelt sich Containerklassen bzw. -styles oder, man \emph{kopiert}
die Klassen/Styles, ändert die Kopie und speichert diese unter
\emph{anderem} Namen ab. 

Ein Beispiel zur Erstellung von Containerklassen findet sich in der
\Doku{FAQ}~\cite[Punkt 5.1.5]{faq:03}.

\paragraph{Hinweis}
\label{sec:hinweis}

Generell sollte man solche zusätzlich installierten Klassen und Pakete
entweder in den lokalen oder den \texttt{\$HOME}-\TeX-Baum speichern,
damit bei einem Upgrade der \TeX-Distribution diese Änderungen nicht
überschrieben werden.  Braucht man diese Änderungen nur in dem
speziellen Projekt und möchte es weitergeben, dann könnte man die
angepasste Klasse auch im aktuellen Projektverzeichnis speichern.

\subsection{Änderung des Zeilenabstandes mittels \texttt{\TB baselinestretch}}
\label{sec:ander-des-zeil}
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:
\begin{enumerate}
\item Verwendung des Paketes \Paket{setspace}
\item Verwendung der \LaTeX{}"=Anweisung \LMacro{linespread}{<Faktor>}
\item Umdefinition von \Macro{baselinestretch}
\end{enumerate}
Eine Umdefinition von Parametern wie \Macro{baselinestretch} stellt
die unterste Ebene dar und sollte deshalb Paketen vorbehalten bleiben.
Eine bessere, da extra dafür vorgesehene Methode, ist die Verwendung
von \LMacro{linespread}{<Faktor>}.  Die beste Vorgehensweise stellt
aber die Verwendung des Paketes \Paket{setspace} 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 (z.\,B.
eineinhalbzeilig oder zweizeilig), bietet sich folglich zuerst das
Paket \Paket{setspace} an.  Möchte man hingegen nur kleine Anpassungen
für andere Schriften als Computer Modern (z.\,B Palatino) machen, dann
kann bzw. sollte man \LMacro{linespread}{<Faktor>} verwenden. Bei der
Schrift Palatino würde sich zum Beispiel \LMacro{linespread}{1.05}
anbieten.

% Wenn man einen größeren Durchschuss benötigt (z.\,B. eineinhalbzeilig
% oder zweizeilig), dann bietet das Paket \Paket{setspace} die einfachste
% Möglichkeit. Möchte man hingegen nur kleine Anpassungen für andere
% Schriften als Computer Modern (z.\,B Palatino) machen, dann kann, bzw.
% sollte man \LMacro{linespread}{<Faktor>} verwenden. Bei der Schrift
% Palatino würde sich zum Beispiel \LMacro{linespread}{1.05} anbieten.



\subsection{Absatzeinzug und -abstand (\texttt{\TB{}parindent}, \texttt{\TB{}parskip})}
\label{sec:absatz-und-abst}

Den Absatzeinzug (\Macro{parindent}) zu ändern, kann manchmal sinnvoll
sein. Man sollte dabei aber beachten, dass
\begin{itemize}
\item man den Einzug mit einer schriftabhängigen Größe (em) und nicht
  mit einer absoluten Größe (mm) ändert.  "`Schriftabhängig"' bedeutet
  hier \emph{nicht}, dass sich der Absatzeinzug bei
  Schriftgrößenänderungen automatisch anpasst, sondern dass der Wert der
  aktuell aktiven Schrift benutzt wird.
\item man \LaTeX-Syntax verwendet, da diese die wenigsten Probleme birgt.
  Zum Beispiel ist sie für externe Programme/Skripte leichter zu
  parsen\footnote{syntaktisch analysieren, aufspalten}, für den Benutzer
  besser zu warten und es gibt keine Inkompatibilitäten mit anderen
  Paketen (\Paket{calc}).
  \Ersetze{\Macro{parindent}\texttt{=1em}}{\LMacro{setlength}{\Macro{parindent}}\{1em\}}
\end{itemize}
%
Wenn man hingegen \emph{keinen} Absatzeinzug, dafür aber einen
zusätzlichen Durchschuss als Absatzkennzeichnung wünscht, sollte man
\emph{nicht} einfach 
\color{rot}
\begin{verbatim}
\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}
\end{verbatim}
\normalcolor
%
verwenden. Da sich \Macro{parskip} auch auf Listen, Verzeichnisse und
Überschriften auswirkt, ist diese Vorgehensweise nicht zu empfehlen.

Das Paket \Paket{parskip} und die \KOMAScript-Klassen treiben einigen
Aufwand, um diese Begleiterscheinungen zu vermeiden.  Zur Verwendung der
verschiedenen Optionen (\Option{parskip}, \Option{halfparskip} usw.)
von \KOMAScript\ siehe den \Doku{scrguide}~\cite{kohm:03}.  Wenn eine
der \KOMAScript-Klassen verwendet wird, muss das Paket \Paket{parskip}
\emph{nicht} noch zusätzlich geladen werden.



\subsection{Abgesetzte Formeln mit \texttt{\$\$\dots\$\$}}
\label{sec:abges-form-mit}

Bitte nicht! \texttt{\$\$\dots\$\$} ist ein plain\TeX-Befehl und sollte
in \LaTeX\ vermieden werden, da dadurch die vertikalen Abstände bei
abgesetzten Formeln inkonsistent werden (siehe auch
Abschnitt~\vref{sec:mathematiksatz}, insbesondere die Warnung bezüglich
\texttt{displaymath} im Zusammenhang mit \Paket{amsmath}). Ferner
funktioniert die Klassenoption \Option{fleqn} nicht mehr.
\Ersetze{\texttt{\$\$\dots\$\$}}{%
\parbox[t]{.3\textwidth}{%
\Macro{[}\texttt{\dots}\Macro{]}\\
\textcolor{black}{oder}\\
\Env{displaymath}{\dots}}}


\subsection{\texttt{\TB def} vs. \texttt{\TB newcommand}}
\label{sec:def-vs.-newcommand}
Makros sollte man \emph{immer} mittels \NewCom{<name>}{\dots}
definieren und \emph{nicht} mit
\Macro{def}\LMacro{<name>}{\dots}.\footnote{Siehe auch
  \cite[Abschnitt 2.7.2]{clsguide:99} und \cite[Abschnitt 3.4]{usrguide:01}}

Das Hauptproblem von \Macro{def} ist, dass keine Überprüfung auf die
Existenz eines Makros durchgeführt wird. Es wird deshalb ggf. ohne
Fehlermeldung/""Warnung überschrieben.

Bereits existierende Makros können mit \ReNewCom{<name>}{\dots}
umdefiniert werden.   

Wer genau weiß, \emph{warum} er \Macro{def} benötigt, weiß auch um
dessen Nach- bzw. Vorteile und kann diesen Unterpunkt getrost
ignorieren.


\subsection{Verwendung von \texttt{\TB sloppy}}
\label{sec:verw-von-textttt}

Der Schalter \Macro{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:
\begin{enumerate}
\item Überprüfen, ob die entsprechenden Trennmuster (z.\,B. mittels
  \Paket{(n)german}) und T1-Schriften geladen sind (siehe auch
  \Doku{FAQ}\cite[Punkt 5.3 ff.]{faq:03}).
\item Umformulieren.  Man muss nicht unbedingt den Satz, in dem das
  Umbruchproblem auftritt umformulieren, oft reicht es schon einen der
  vorhergehenden oder nachfolgenden Sätze umzuformulieren/umzustellen.
\item Moderate Anpassung der Parameter, die \TeX{} bei der Berechnung
  der Zeilenumbrüche verwendet.  Axel Reichert hat in
  \News{de.comp.text.tex} einmal seine persönliche
  Anpassung\footnote{Man kann diese Werte natürlich nach dem
  persönlichen Geschmack ändern, aber man sollte vorallem bei
  \TB\texttt{emergencystretch} aufpassen. Sonst erhält man einen
  löchrigen Blocksatz, wie bei einem sehr bekannten Textverarbeitungsprogramm.}
  gepostet\footnote{Zu finden unter der
    \MID{a84us0$plqcm$7@ID-30533.news.dfncis.de}{a84us0\$plqcm\$7@ID-30533.news.dfncis.de}},
  mit der sich die meisten Umbruchprobleme bei weiterhin gutem Layout
  vermeiden lassen. (Man sollte hierbei allerdings beachten, dass nun
  auftretende Warnungen \emph{wirklich} zu beherzigen und durch
  Umformulieren zu beseitigen sind.):
  
  \begin{minipage}[t]{\linewidth}
\begin{verbatim}
\tolerance 1414
\hbadness 1414
\emergencystretch 1.5em
\hfuzz 0.3pt
\widowpenalty=10000
\vfuzz \hfuzz
\raggedbottom
\end{verbatim}
%    \hspace{\baselineskip} % Ja, ja ich weiß, das ist geschummelt!
  \end{minipage}
\end{enumerate}
%
Erst wenn diese Punkte nicht geholfen haben, kann man versuchen, mit
der \texttt{sloppypar}"=Umgebung den nachfolgenden Absatz "`lockerer"'
zu setzen.  

\begin{figure}[htp]
  % Falls sich jemand über das zusätzliche \fussy bzw. das fehlende
  % \sloppy wundert:  Use the Source Luke!  \parbox setzt per default
  % \sloppy, so dass man für einen originalen Umbruch \fussy benötigt.
  \begin{minipage}[t]{.47\textwidth}
    \centering
    {\fontsize{10pt}{12pt}\fontencoding{OT1}\selectfont
      \fbox{\parbox{16.27em}{\fussy%
          tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata
          tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata
          ta\-tatatatt\-ta tatata tatata tatata tatata tatata tatata
          ta\-ta\-ta\-ta}}}%
    \caption{Beispiel mit \LaTeX s Standardwerten}%
    \label{fig:beispiel-mit-latex}%
  \end{minipage}%
  \hfill%
  \begin{minipage}[t]{.47\textwidth}
    \centering    
    {\fontsize{10pt}{12pt}\fontencoding{OT1}\selectfont
      \fbox{\parbox{16.27em}{%
          tatata tatata tatata tatata tatata tatata tata\-tata tatata tatata
          tatata tatata tatata tatata tata\-tata tatata tatata tatata tatata
          ta\-tatatatt\-ta tatata tatata tatata tatata tatata tatata
          ta\-ta\-ta\-ta}}}%
    \caption{Beispiel mit \texttt{\string\sloppy}}%
    \label{fig:beisp-mit-textttstr}
  \end{minipage}
\end{figure}

In den Abbildungen~\ref{fig:beispiel-mit-latex} und
\vref{fig:beisp-mit-textttstr} habe ich versucht, den Effekt von 
\Macro{sloppy} darzustellen.  Bei der hier verwendeten "`Times"' ist die
negative Auswirkung von \Macro{sloppy} auf Grund der sehr geringen
Laufweite nicht so extrem, wie beispielsweise bei der "`Computer Modern
Roman"'.  Der prinzipielle Effekt sollte aber dennoch erkennbar sein.

Markus Kohm hat in \News{comp.text.tex} ein Beispiel veröffentlicht,
welches den Effekt sehr deutlich zeigt.  Ich habe es mit seiner
Erlaubnis angehängt (siehe Anhang~\vref{sec:beispiel-zu-sloppy}).

%----------------------- Abschnitt Obsoletes ------------------------
\clearpage
\section{Veraltete Befehle, Klassen und Pakete}
\label{sec:obsoletes}

Markus Kohm hat ein Perl-Script geschrieben, mit dem man online auf
\url{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 \TeX-Parser
enthält und deshalb nur die "`offensichtlichen"' Fehler
überprüfen kann. Erst testen, dann posten.

\subsection{Befehle}
\label{sec:befehle}

\subsubsection{Änderung des Schriftstils}
\label{sec:ander-des-schr}
In Tabelle~\vref{tab:befehle-zur-anderung} sind die alten und aktuellen
Befehle zur Änderung des Schriftstils gegenü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.

\begin{table}[htp]% Absatzumbruch hatte sich verändert :-\
  \begin{minipage}{\textwidth}
    \renewcommand{\footnoterule}{}
    \centering
    \caption{Befehle zur Änderung des Schriftstils}
    \label{tab:befehle-zur-anderung}
  \begin{tabular}{@{}lll@{}}
    \toprule
    \multicolumn{1}{@{}N}{veraltet}&
    \multicolumn{2}{C@{}}{Ersatz in \LaTeXe}\\
    \cmidrule(l){2-3}
    &
    \multicolumn{1}{N}{lokal} &
    \multicolumn{1}{N@{}}{global/Schalter}\\
    \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3}
    \GMacro{bf}{\dots} & \LMacro{textbf}{\dots} & \Macro{bfseries}\\
    --- & \LMacro{emph}{\dots} &
    \Macro{em}\footnote{Nützlich in Makrodefinitionen.  Innerhalb des
      Texts sollte nicht \GMacro{em}{\dots}, sondern
      \LMacro{emph}{\dots} verwendet werden.}\\
    \GMacro{it}{\dots} & \LMacro{textit}{\dots} & \Macro{itshape}\\
    ---  & \LMacro{textmd}{\dots} & \Macro{mdseries}\\
    \GMacro{rm}{\dots} & \LMacro{textrm}{\dots} & \Macro{rmfamily}\\
    \GMacro{sc}{\dots} & \LMacro{textsc}{\dots} & \Macro{scshape}\\
    \GMacro{sf}{\dots} & \LMacro{textsf}{\dots} & \Macro{sffamily}\\
    \GMacro{sl}{\dots} & \LMacro{textsl}{\dots} & \Macro{slshape}\\
    \GMacro{tt}{\dots} & \LMacro{texttt}{\dots} & \Macro{ttfamily}\\
    --- & \LMacro{textup}{\dots} & \Macro{upshape}\\
    \bottomrule
  \end{tabular}
\end{minipage}
\end{table}

\paragraph{Warum sollte man die alten Befehle nicht verwenden?}
\label{sec:warum-sollte-man}

Die alten Befehle unterstützen nicht die
Schriftverwaltung\footnote{NFSS: New Font Selection Scheme. Einen Überblick über das NFSS gibt der
\Doku{fntguide}~\cite{fntguide:00}.} von \LaTeXe.
\GMacro{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
\GMacro{it}{\Macro{bf Test}} definieren kann. (Die angegebene Definition
erzeugt: {\it\bf Test}.).   Die aktuellen Befehle
\LMacro{textbf}{\LMacro{textit}{Test}} hingegen verhalten sich wie
erwartet und erzeugen: \textbf{\textit{Test}}. Ferner gibt es bei den
alten Befehlen keine "`Italic-Korrektur"', z.\,B. {\it fünf}hundert (\GMacro{it}{fünf}\texttt{hundert})
und \textit{fünf}hundert (\LMacro{textit}{fünf}\texttt{hundert}).

\subsubsection{Mathematische Brüche (\texttt{\TB over} vs. \texttt{\TB frac})}
\label{sec:textb-over-vs}
Der Befehl \Macro{over} sollte vermieden werden.
\Macro{over} ist ein \TeX-Befehl, der durch die von \LaTeX\ abweichende
Syntax schlechter bzw. nicht parsbar ist.  Insbesondere das Paket
\Paket{amsmath} definiert \verb+\frac{}{}+ um und man erhält
Fehlermeldungen bei der Verwendung von \Macro{over}.  Ein weiteres
Argument für die Verwendung von \verb+\frac{}{}+ ist die für den
Benutzer -- vorallem bei komplexeren Brüchen -- einfachere Zuordnung von
Zähler und Nenner.
\Ersetze{\texttt{\$a \TB over b\$}}%
{\texttt{\$\TB frac\{a\}\{b\}\$}}

\subsubsection{Zentrierung mit \texttt{\TB centerline}}
\label{sec:centerline}
Der Befehl \Macro{centerline} ist ebenfalls ein \TeX-Befehl und sollte
in \LaTeX\ vermieden werden.  \Macro{centerline} ist einerseits
inkompatibel zu einigen \LaTeX-Paketen (z.\,B. \Paket{color}) und
andererseits kann die Verwendung zu unerwünschten bzw. unerwarteten
Effekten führen:
\begin{center}
  \begin{minipage}[t]{.45\textwidth}
\begin{verbatim}
\begin{enumerate}
\item \centerline{Ein Punkt}
\end{enumerate}
\end{verbatim}
  \end{minipage}%
  \hfill%
%  \hspace{.05\textwidth}%
 \fbox{ \begin{minipage}[t]{.45\textwidth}
    \begin{enumerate}
    \item \centerline{Ein Punkt}
    \end{enumerate}
  \end{minipage}}
\end{center}
\Ersetze{\LMacro{centerline}{\dots}}%
{\parbox[t]{.3\textwidth}{%
  \GMacro{centering}{\dots}\\
\textcolor{black}{oder}\\
\Env{center}{\dots}
}}


\paragraph{Anmerkung}
\label{sec:anmerkung-5}

Hinweise zur Zentrierung von Grafiken und Tabellen sind in
Abschnitt~\vref{sec:gleit-figure-table} zu finden.

\subsection{Klassen und Pakete}
\label{sec:pakete}

\subsubsection{\Klasse{scrlettr} vs. \Klasse{scrlttr2}}
\label{sec:paketscrl-vs.-pakets}

Die Klasse \Klasse{scrlettr} aus dem \KOMAScript-Paket ist veraltet und wurde durch
\Klasse{scrlttr2} ersetzt.  Um ein \emph{ähnliches} Layout wie die alte
Klasse zu erreichen, kann man die Klassenoption \Option{KOMAold}
verwenden, die einen Kompatibilitätsmodus zur Verfügung stellt. 

\sbox{\Breite}{\texttt{\TB documentclass\{scrltter\}}}
\Ersetzx[\wd\Breite]{\texttt{\TB documentclass\{scrlettr\}}}%
{\texttt{\TB documentclass[KOMAold]\{scrlttr2\}}}


\paragraph{Anmerkung}
\label{sec:anmerkung-3}
Für neue Vorlagen und Briefe, sollte aber die neue Schnittstelle
benutzt werden, da diese deutlich flexibler ist.

Eine Erklärung der Unterschiede des Benutzerinterfaces
würde den Rahmen dieser Übersicht sprengen, deshalb muss ich hier auf
den \Doku{scrguide}~\cite{kohm:03} verweisen.


\subsubsection{\Paket{epsf}, \Paket{psfig}, \Paket{epsfig} vs.
  \Paket{graphics}, \Paket{graphicx}}
\label{sec:grafikeinbindung}

Die Pakete \Paket{epsf} und \Paket{psfig} sind durch \Paket{graphics}
oder \Paket{graphicx} zu ersetzen. \Paket{epsfig} ist nur ein Wrapper\footnote{Hier: Ein Stylefile,
welches ein oder mehrere andere aufruft und damit Funktionen
nachbildet.} um \Paket{graphicx} für alte Dokumente, die mit
\Paket{psfig} erstellt wurden.

Da \Paket{epsfig} intern \Paket{graphicx} benutzt, \emph{kann} man es
noch verwenden, sollte aber für neu erstellte Dokumente auf das
modernere \Paket{graphics} oder \Paket{graphicx} umsteigen. Die Syntax
der beiden letztgenannten Pakete ist deutlich flexibler. Das
Paket \Paket{epsfig} wird hauptsächlich aus Kompatibilitätsgründen
mitgeliefert.

Zu den Unterschieden zwischen den Paketen \Paket{graphics} und
\Paket{graphicx} siehe \Doku{grfguide}~\cite{graphicx:99}. Hinweise zur
Zentrierung von Grafiken siehe Abschnitt~\vref{sec:gleit-figure-table}.

%% Heiko und Walter haben mich überzeugt, dass das so einfach doch
%% nicht ist.
% Ein paar Tipps zur Grafikeinbindung:
% \begin{enumerate}
% \item Nicht die Dateierweiterung (JPG, EPS usw.) angeben. \LaTeX\ bzw.
%   pdf\LaTeX\ suchen sich schon die "`richtigen"' Dateien. Durch
%   Vermeidung der Dateierweiterung wird das Kompilieren mit den
%   verschiedenen Formaten erst ermöglicht.
% \item Keinen Treiber (dvips, pdftex) beim Laden des Paketes angeben.
%   Grund: s.\,o.
% \item Zentrierung siehe Abschnitt~\vref{sec:gleit-figure-table}.
% \end{enumerate}

\sbox{\Breite}{\LMacro{psfig}{file=Bild,\dots}}
\Ersetze{\parbox[t]{\wd\Breite}{\Use{psfig}\\%
    \LMacro{psfig}{file=Bild,\dots}}}%
{\parbox[t]{.45\textwidth}{%
    \Use{graphicx}\\%
    \texttt{\TB includegraphics[\dots]\{Bild\}}}}

\subsubsection{\Paket{doublespace} vs. \Paket{setspace}}
\label{sec:zeilenabstande}

Um den Durchschuss zu ändern, sollte man das Paket \Paket{setspace}
verwenden. \Paket{doublespace} ist veraltet und wurde durch
\Paket{setspace} ersetzt. Siehe auch 
Abschnitt~\vref{sec:ander-des-zeil}.
\Ersetze{\Use{doublespace}}{\Use{setspace}}

\subsubsection{\Paket{fancyheadings}, \Paket{scrpage} vs. \Paket{fancyhdr}, \Paket{scrpage2}}
\label{sec:lebende-kolumn}

Das Paket \Paket{fancyheadings} wurde durch \Paket{fancyhdr} ersetzt.
Eine weitere Alternative für angepasste Kopfzeilen bietet das Paket
\Paket{scrpage2} aus dem \KOMAScript-Bundle. Auch hier ist zu
beachten, dass nicht \Paket{scrpage} verwendet wird. Die Anleitung zu
\Paket{scrpage2} befindet sich im \Doku{scrguide}~\cite{kohm:03}.

\Ersetze{\Use{fancyheadings}}{\Use{fancyhdr}}
\Ersetze{\Use{scrpage}}{\Use{scrpage2}}


\subsubsection{Die \Paket{caption}-Familie}
\label{sec:die-caption-famile}
Das Pakete \Paket{caption2} sollte nicht mehr verwendet werden, da es
eine neue Version (v3.x) von \Paket{caption} gibt.  Man sollte
allerdings darauf achten, dass die neuste Version des Paketes benutzt
wird.  Um dies sicherzustellen, muss man das Paket folgendermaßen laden:
\Ersetze{\Use{caption}}{\UseV{caption}{2003/12/20}}

Hatte man vorher \Paket{caption2} benutzt, dann sollte man unbedingt die
Dokumentation \Doku{anleitung}~\cite[Abschnitt~8]{caption:04} beachten.  

\subsubsection{\Paket{isolatin}, \Paket{umlaut} vs. \Paket{inputenc}}
\label{sec:eingabe-von-umlauten}

\paragraph{Generelles}
\label{sec:generelles}

Im Prinzip gibt es vier Möglichkeiten, Umlaute und andere
nicht-ASCII-Zeichen einzugeben:
\begin{enumerate}
\item \verb+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\footnote{Einfügen
    positiver bzw. negativer Abstände zwischen Zeichen in Abhängigkeit
    der Zeichenkombination} zwischen den Buchstaben zerstö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 --
  \emph{immer} vermeiden.
  
\item Die Eingabe der Form \verb+H\"ulle+ bzw. \verb+H\"{u}lle+ hat die
  oben genannten Kerningprobleme nicht und ist ebenfalls auf jedem
  System nutzbar.
  
  Die Nachteile bei dieser Art, sind auch hier die aufwändige
  Eingabe und schlechtere Lesbarkeit.
  
  Diese Variante ist die sinnvollste für
  Makrodefinitionen und Stylefiles, da sie encoding- und paketunabhängig
  ist.\label{item:die-eingabe-der}
  
\item Mit \Paket{(n)german} bzw. der Option \Option{(n)german} beim Paket
  \Paket{babel} kann man die Umlaute etwas einfacher (\verb+H"ulle+)
  eingeben. Der Vorteil ist auch hier wieder, dass es auf allen
  Systemen funktioniert. Da \Paket{babel} bzw. \Paket{(n)german} auf
  allen \TeX-Installationen zu finden ist, sollte es auch keine
  Kompatibilitätsprobleme geben. 
  
  Die Nachteile sind auch hier die umständlichere Eingabe und
  schlechtere Lesbarkeit.
  
  Diese Variante ist für Fließtext relativ gut verwendbar. Sollte aber
  in Makrodefinitionen und Präambeln vermieden werden.
  
\item Die direkte Eingabe (\verb+Hülle+). Die Vorteile liegen auf der
  Hand. Der Text ist "`normal"' schreib- und lesbar.
  
  Der Nachteil ist, dass man \LaTeX\ mit der verwendeten
  Eingabekodierung bekannt machen muss und dass es beim Austausch von
  Dateien zwischen verschiedenen Systemen evtl. zu Problemen kommen
  kann.  Das ist \emph{kein} Problem für \TeX\ bzw. \LaTeX\ selbst, aber
  es kann evtl. zu \emph{Darstellungsproblemen} in den Editoren auf den
  verschiedenen Systemen führen.  Zum Beispiel könnte ein in iso-8859-15
  (latin9) kodierter \euro\ in einem Editor unter Windows (CP1252) als
  \textcurrency\ \emph{dargestellt} werden. 

  Diese Variante ist sehr gut für Fließtext verwendbar. Sollte aber
  in Makrodefinitionen und Präambeln vermieden werden.
\end{enumerate}
%
Zusammenfassend kann also gesagt werden, dass man in Makros, Präambeln
und Stylefiles die Form \verb+H\"ulle+ oder \verb+H\"{u}lle+ verwenden
sollte und im übrigen Text entweder \verb+H"ulle+ oder \verb+Hülle+. 

\paragraph{Eingabekodierung}
\label{sec:eingabekodierung-1}

Um die verwendete Kodierung \LaTeX\ bekannt zu machen, sollte man
\emph{nicht} \Paket{isolatin1} bzw. \Paket{isolatin} oder
\Paket{umlaut} verwenden! Diese Pakete sind veraltet bzw. nicht auf
allen Systemen vorhanden.

Korrekt ist das Paket \Paket{inputenc} mit folgenden Optionen zu benutzen:
\begin{description}
\item[latin1/latin9] für unixoide Systeme (\Option{latin1} ist auch unter
  MS~Windows und Mac~OS~X verwendbar)
\item[ansinew] für MS~Windows
\item[applemac] für Macs\footnote{Bei der Verwendung von OS~X sollte
    ebenfalls \Option{latin1/latin9} verwendet werden, da diese Kodierung besser
    für den Dateiaustausch mit Benutzern anderer Betriebssysteme
    geeignet ist als \Option{applemac}.  Allerdings sollte unbedingt die
    Eingabekodierung des verwendeten Editors beachtet werden.  In
    Zukunft wird hoffentlich auch Unicode-Unterstützung in \LaTeX\
    Einzug halten, momentan ist diese allerdings noch experimentell.}
\item[cp850] für OS/2
\end{description}
\Ersetze{\Use{isolatin1}}{\UseO{latin1}{inputenc}}
\Ersetze{\Use{umlaut}}{\UseO{latin1}{inputenc}}

\subsubsection{\Paket{t1enc} vs. \Paket{fontenc}}
\label{sec:schriftkodierung}

Dieses Thema ist in der \Doku{FAQ}~\cite[Punkt 10.1 ff.]{faq:03} eigentlich ausreichend
erörtert. Hier nur kurz der Hinweis, dass das Paket \Paket{t1enc}
veraltet ist und deshalb durch \Paket{fontenc} ersetzt werden sollte!
\Ersetze{\Use{t1enc}}{\UseO{T1}{fontenc}}


\subsubsection{\Bst{natdin} vs. \Bst{dinat}}
\label{sec:liter-nach-din}

Das Stylefile \Bst{natdin} wurde durch \Bst{dinat} ersetzt.
\Ersetze{\Bib{natdin}}{\Bib{dinat}}
\subsection{Schriften}
\label{sec:schriften}

Das Thema "`Schriften und \LaTeX"' ist ein Quell ewiger "`Freude"' in
\News{de.comp.text.tex}, meistens ausgelöst durch die Frage, warum denn
die Schrift im Acrobat\textsuperscript{\textregistered} Reader so
pixelig sei. Die häufigsten \emph{falschen} Antworten auf diese Frage
verweisen auf \Paket{times} bzw. \Paket{pslatex}. 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 \Doku{FAQ}~\cite[Punkte 10.1.7/10.1.8]{faq:03} verwiesen.

Generelle Informationen zu \LaTeXe s New Font Selection Scheme (NFSS)
gibt der \Doku{fntguide}~\cite{fntguide:00}.

\subsubsection{\Paket{times}}
\label{sec:pakettimes}

Das Paket \Paket{times} ist veraltet (siehe \Doku{psnfss2e}
\cite{psnfss:02}). Es stellt \Macro{rmdefault} auf die Schrift "`Times"',
\Macro{sfdefault} auf "`Helvetica"' und \Macro{ttdefault} auf
"`Courier"' um, \emph{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:
\sbox{\Breite}{\UseO{scaled=.95}{helvet}}
\Ersetze{\Use{times}}%
{\parbox[t]{\wd\Breite}{%
    \Use{mathptmx}\\
    \UseO{scaled=.90}{helvet}\\
    \Use{courier}}}


\paragraph{Anmerkung}
\label{sec:anmerkung-1}

Der Skalierungsfaktor für \Paket{helvet} in Kombination mit der Times
sollte zwischen $0.90$ und $0.92$ liegen.

\subsubsection{\Paket{mathptm}}
\label{sec:mathptm}

Das Paket \Paket{mathptm} ist der Vorgänger von \Paket{mathptmx}.
\Ersetze{\Use{mathptm}}{\Use{mathptmx}}


\subsubsection{\Paket{pslatex}}
\label{sec:paketpslatex}

Das Paket \Paket{pslatex} arbeitet intern wie
\Paket{mathptm}$+$ \Paket{helvet} (skaliert), wobei allerdings eine zu
eng laufende Courier gewählt wird. Der Hauptnachteil von
\Paket{pslatex} ist, dass es \emph{nicht} mit T1- und TS1-Encoding
funktioniert.
\Ersetze{\Use{pslatex}}{\parbox[t]{\wd\Breite}{\Use{mathptmx}\\\UseO{scaled=.90}{helvet}\\\Use{courier}}}

\paragraph{Anmerkung zu allen Times/Helvetica-Kombinationen}
\label{sec:anmerkung-zu-allen}

Man kann auch als Schreibmaschinenschrift bei der \texttt{cmtt}
bleiben, also auf das Laden von \Paket{courier} verzichten.

\subsubsection{\Paket{palatino}}
\label{sec:paketpalatino}

Das Paket \Paket{palatino} verhält sich wie \Paket{times} (außer das
natürlich \Macro{rmdefault} auf "`Palatino"' gesetzt wird) und sollte
deshalb nicht mehr benutzt werden.
\Ersetze{\Use{palatino}}{\parbox[t]{\wd\Breite}{\Use{mathpazo}\\\UseO{scaled=.95}{helvet}\\\Use{courier}}}

\paragraph{Anmerkung}
\label{sec:anmerkung-2}
Der Skalierungsfaktor für \Paket{helvet} in Kombination mit der Schrift
Palatino sollte $0.95$ betragen.

Die "`Helvetica"' ist \emph{nicht} die optimale serifenlose Schrift in
Kombination mit der "`Palatino"', aber die beste \emph{freiverfügbare}.
Wer eine (auch ältere) CorelDraw\textsuperscript{\textregistered}-CD
besitzt, kann die "`Palatino"' auch sehr gut mit den Schriften
"`Frutiger"'\footnote{Bitstream "`Humanist 777"', bfr} oder
"`Optima"'\footnote{Bitstream "`Zapf Humanist"', bop} kombinieren.
Walter Schmidt hat auf seiner Homepage\footnote{Schriften für \TeX:
  \url{http://home.vr-web.de/was/fonts}} die entsprechenden
\TeX-Anpassungen veröffentlicht.

\subsubsection{\Paket{mathpple}}
\label{sec:paketmathpple}

Dieses Paket ist der Vorläufer von \Paket{mathpazo}. 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
\Doku{psnfss2e}~\cite{psnfss:02}.


\subsubsection{Aufrechte griechische Buchstaben}
\label{sec:aufr-griech-buchst}

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
\Paket{upgreek} eine Vereinfachung der Eingabe. Hinweise zur Benutzung
bitte wie immer der Dokumentation \Doku{upgreek}~\cite{upgreek:01}
entnehmen.

\minisec{Die \Paket{pifont}-Tricks}\nopagebreak[4]
\sbox{\Breite}{\NewCom{uppi}{\LMacro{Pisymbol}{psy}\{112\}}}
\Ersetzx[\wd\Breite]{%
  \Use{pifont}\\
  \NewCom{uppi}{\LMacro{Pisymbol}{psy}\{112\}}\\
  \Macro{uppi}\\
  \textcolor{black}{oder}\\
  \NewCom[{[1]}]{upgreek}{\%\\
    ~\Macro{usefont}\{U\}\{psy\}\{m\}\{n\}\#1}\\
  \LMacro{upgreek}{p}
}%
{%
  \Use{upgreek}\\
  \$\Macro{uppi}\$
}

\minisec{Der \Paket{babel}-Trick}

\Ersetzx[\wd\Breite]{%
  \UseO{greek,\dots}{babel}\\
  \NewCom[{[1]}]{upgreek}{\%\\
    ~\LMacro{foreignlanguage}{greek}\{\#1\}}\\
  \LMacro{upgreek}{p}
  }
  {%
  \Use{upgreek}\\
  \$\Macro{uppi}\$
}

\subsubsection{\Paket{euler} vs. \Paket{eulervm}}
\label{sec:euler-vs-euler}
Das Paket \Paket{euler} sollte durch \Paket{eulervm} ersetzt werden, da
es Kompatibilitätsprobleme mit anderen Paketen ausräumt und einige
Detailverbesserungen enthält:
%
\begin{itemize}
\item \Macro{hbar} (\Macro{hslash} bei dieser Schrift) funktioniert nun sauber
\item Fette Mathematikschriften inklusive griechische Symbole sind möglich.
\end{itemize}
%
Genauere Informationen siehe \Doku{eulervm}~\cite{eulervm:04}.
\Ersetze{\Use{euler}}{\Use{eulervm}}
%-------------------- Abschnitt "Verschiedenes" ---------------------
\clearpage
\section{Verschiedenes}
\label{sec:verschiedenes}

Dieser Abschnitt enthält -- mit Ausnahme von \vref{sec:der-anhang} --
eher allgemeine Tipps und Hinweise als "`Sünden"'.  
\subsection{Gleitumgebungen -- "`figure"', "`table"'}
\label{sec:gleit-figure-table}

Um den Inhalt einer Gleitumgebung zu zentrieren, sollte man
\Macro{centering} an Stelle der \LMacro{begin}{center}-\LMacro{end}{center}-Umgebung
verwenden, da diese zusätzlichen vertikalen Abstand einfügt, der 
meistens nicht erwünscht ist. 
\sbox{\Breite}{\LMacro{includegraphics}{bild}}
\Ersetze{\parbox[t]{\wd\Breite}{%
\Env{figure}{\Env{center}{\LMacro{includegraphics}{bild}}}
  }}%
{\parbox[t]{\wd\Breite}{%
\Env{figure}{\Macro{centering}\\%
  \LMacro{includegraphics}{bild}}
}}


\paragraph{Anmerkung}
\label{sec:anmerkung-4}

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

\subsection{Der Anhang}
\label{sec:der-anhang}

Der Anhang wird mit dem \emph{Schalter} \Macro{appendix} eingeleitet.
Er ist \emph{keine} Umgebung.
\sbox{\Breite}{\LMacro{begin}{appendix}}
\Ersetze{\parbox[t]{\wd\Breite}{%
  \Env{appendix}%
{\LMacro{section}{Blub}}}}%
{\parbox[t]{.33\textwidth}{%
\Macro{appendix}\\
\LMacro{section}{Blub}
}}

\subsection{Mathematiksatz}
\label{sec:mathematiksatz}

Generell sollte man für komplizierteren Mathematiksatz \Paket{amsmath}
benutzen. Es bietet neue Umgebungen, die vor allem \texttt{eqnarray}
ersetzen sollen. Die Vorteile des Paketes:
\begin{itemize}
\item Abstände innerhalb und außerhalb von Umgebungen sind
  konsistenter.
\item Gleichungsnummern werden so positioniert, dass sie nicht mehr
  überdruckt werden.
\item  Die neuen Umgebungen (z.\,B. \texttt{split}) ermöglichen es,
  lange Gleichungen einfacher zu umbrechen.
\item Einfache Möglichkeit, neue Operatoren (ähnlich wie \Macro{sin}
  usw.) mit sauberen Zeichenabständen zu definieren.
\end{itemize}


\paragraph{Warnung}
\label{sec:warnung}

Bei der Verwendung von \Paket{amsmath} sollte man die Umgebungen
\texttt{displaymath}, \texttt{eqnarray} und \texttt{eqnarray*}
\emph{keinesfalls} weiterverwenden, da diese von \Paket{amsmath} nicht
unterstützt werden %Die Folge wäre wieder inkonsistente Abstände.
und deshalb wieder inkonsistente Abstände ergäben.

\texttt{\TB [\dots\TB]} wird von \Paket{amsmath}
korrekt angepasst und kann an Stelle von \texttt{displaymath} genutzt
werden.  \texttt{eqnarray} und \texttt{eqnarray*} kann in erster
Näherung durch \texttt{align} bzw. \texttt{align*} ersetzt werden.  Für
eine vollständige Übersicht der Möglichkeiten von \Paket{amsmath}
verweise ich auf die Dokumentation \Doku{amsldoc}~\cite{amsldoc:99}.

\sbox{\Breite}{\LMacro{includegraphics}{bild}}
\Ersetze{%
  \parbox[t]{\wd\Breite}{%
    \Env{eqnarray}{%
       a \&=\& b \TB\TB\\
       b \&=\& c \TB\TB\\
       a \&=\& c 
    }
  }}%
  {\parbox[t]{\wd\Breite}{%
      \Env{align}{%
        a \&= b \TB\TB\\
        b \&= c \TB\TB\\
        a \&= c
      }
    }}


\subsection{Die Verwendung von \texttt{\TB graphicspath}}
\label{sec:die-verwendung-von}

Das beliebte Makro~\Macro{graphicspath} sollte aus folgenden Gründen
vermieden und durch die Umgebungsvariable \texttt{TEXINPUTS} ersetzt
werden\footnote{Vgl. David Carlisles Antwort auf Markus Kohms "`Bug-Report"':
\url{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/2618}}:
\begin{enumerate}
\item Die Verzeichnistrenner sind \emph{nicht} plattformunabhängig
  (Windows/Unices: \texttt{/}, Macs: \texttt{:}).
\item Die \TeX-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.)
\item Jedes Bild verbraucht einen Teil des begrenzten \TeX-Speichers
  \emph{und} gibt ihn während des gesamten Kompilierens nicht mehr
  frei. 
\end{enumerate}
%
Bei einer Bourne-Shell kann man z.\,B. folgenden Aufruf
\begin{verbatim}
$ TEXINPUTS=Bildverz:$TEXINPUTS latex datei.tex
\end{verbatim}
verwenden, oder in der \verb+~/.profile+ zusätzlich
\begin{verbatim}
export TEXINPUTS=./Bildverz:$TEXINPUTS
\end{verbatim}%$
eintragen.  Bei letzterem werden die Dateien im \texttt{Bildverz}
unterhalb des aktuellen Arbeitsverzeichnisses gefunden.

\noindent
Unter MS~Windows ($\le 98$) setzt man die Variable mittels
\begin{verbatim}
set TEXINPUTS=.\Bildverz;%TEXINPUTS%
\end{verbatim}
in der \texttt{autoexec.bat}.  Bei Windows~NT4 und Windows~2000 kann man
Umgebungsvariablen über \textsf{Systemsteuerung $\rightarrow$ System
  $\rightarrow$ Umgebung} und seit Windows~XP über \textsf{Systemsteuerung $\rightarrow$ System
  $\rightarrow$ Erweitert $\rightarrow$ Umgebungsvariablen} setzen.  

Die hier aufgeführten Vorgehensweisen sind Beispiele. Mir ist durchaus
bewusst, dass man \texttt{TEXINPUTS} auch auf andere Art und Weise
bzw. in anderen Dateien anpassen kann.  Genaueres ist der
Dokumentation des verwendeten Betriebsystems bzw. der \TeX-Distribution zu
entnehmen.


\subsection{Die \texttt{\TB*name}-Makros}
\label{sec:die-macroname-makros}

Da in \News{de.comp.text.tex} von Zeit zu Zeit danach gefragt wird,
wie man zum Beispiel "`Literatur"' in "`Quellenverzeichnis"' ändern
kann, habe ich in Tabelle~\vref{tab:von-paketng-btw} die
entsprechenden Makros zusammengestellt. Sie sind aus \Paket{german}
entnommen.

Um beispielsweise das "`Abbildungsverzeichnis"' in
"`Abbildungen"' umzubennen,
benutzt man folgenden Befehl:
\begin{verbatim}
\renewcommand*{\listfigurename}{Abbildungen}
\end{verbatim}
Die anderen Makros lassen sich analog umbenennen. Bei der Verwendung
von \Paket{babel} muss man mit \Macro{addto} arbeiten. Siehe auch die
\Doku{De-TeX-FAQ}~\cite[Punkt 8.5.9]{faq:03}.

\begin{verbatim}
\addto{\captionsngerman}{%
  \renewcommand*{\listfigurename}{Abbildungen}}
\end{verbatim}
\begin{table}
  \begin{minipage}{\textwidth}
    \renewcommand{\footnoterule}{}
    \centering
    \caption{Von \Paket{(n)german} bzw. \Paket{babel} mit der Option
      \Option{(n)german} definierte Makros}
    \label{tab:von-paketng-btw}
    \begin{tabular}{@{}lll@{}}
      \toprule
      \multicolumn{1}{@{}N}{Makroname}        & 
      \multicolumn{1}{N}{Original Definition} & 
      \multicolumn{1}{N@{}}{deutsche Ausgabe}                                           \\
      \cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3}
      \Macro{prefacename}                     & Preface         & Vorwort               \\
      \Macro{refname}\footnote{Nur in den \texttt{article}-Klassen}
                                              & References      & Literatur             \\
      \Macro{abstractname}                    & Abstract        & Zusammenfassung       \\
      \Macro{bibname}\footnote{Nur in den \texttt{report}- und
      \texttt{book}-Klassen}
                                              & Bibliography    & Literaturverzeichnis  \\
      \Macro{chaptername}                     & Chapter         & Kapitel               \\
      \Macro{appendixname}                    & Appendix        & Anhang                \\
      \Macro{contentsname}                    & Contents        & Inhaltsverzeichnis    \\
      \Macro{listfigurename}                  & List of Figures & Abbildungsverzeichnis \\
      \Macro{listtablename}                   & List of Tables  & Tabellenverzeichnis   \\
      \Macro{indexname}                       & Index           & Index                 \\
      \Macro{figurename}                      & Figure          & Abbildung             \\
      \Macro{tablename}                       & Table           & Tabelle               \\
      \Macro{partname}                        & Part            & Teil                  \\
      \Macro{enclname}                        & encl            & Anlage(n)             \\
      \Macro{ccname}                          & cc              & Verteiler             \\
      \Macro{headtoname}                      & To              & An                    \\
      \Macro{pagename}                        & Page            & Seite                 \\
      \Macro{seename}                         & see             & siehe                 \\
      \Macro{alsoname}                        & see also        & siehe auch            \\
      \bottomrule
    \end{tabular}
  \end{minipage}
\end{table}
\clearpage
\appendix

\section{Beispiel zu \texttt{\TB sloppy}}
\label{sec:beispiel-zu-sloppy}
Hier ist der Beispiel-Code, welchen Markus Kohm  veröffentlicht hat:
\begin{bspcode}{\MID{8557097.gEimXdBtjU@ID-107054.user.dfncis.de}{8557097.gEimXdBtjU@ID-107054.user.dfncis.de}}%
\footnotesize
\begin{verbatim}
\documentclass{article}

\setlength{\textwidth}{20em}
\setlength{\parindent}{0pt}
\begin{document}
\typeout{First without \string\sloppy\space and underfull \string\hbox}

tatata tatata tatata tatata tatata tatata ta\-ta\-tata
tatata tatata tatata tatata tatata tatata tata\-tata
tatata tatata tatata tatata ta\-tatatatt\-ta
tatata tatata tatata tatata tatata tatata ta\-ta\-ta\-ta

\typeout{done.}

\sloppy
\typeout{Second with \string\sloppy\space and underfull \string\hbox}

tatata tatata tatata tatata tatata tatata ta\-ta\-tata
tatata tatata tatata tatata tatata tatata tata\-tata
tatata tatata tatata tatata ta\-tatatatt\-ta
tatata tatata tatata tatata tatata tatata ta\-ta\-ta\-ta

\typeout{done.}
\end{document}
\end{verbatim}
\end{bspcode}

\clearpage
\raggedright
\begin{thebibliography}{99}
\bibitem{amsldoc:99} \textsc{American Mathematical Society}:
  \emph{User's Guide for the {\texttt{amsmath}} Package}. Dezember 1999,
  Version~2.0. \biburl{CTAN://macros/latex/required/amslatex/}.
  
\bibitem{graphicx:99} \textsc{David~P. Carlisle}: \emph{Packages in the
    `graphics' bundle}. Januar 1999.
  \biburl{CTAN://macros/latex/required/graphics/}.
 
\bibitem{kohm:03} \textsc{Markus Kohm}, \textsc{Frank Neukam} und
  \textsc{Axel Kielhorn}: \emph{Das \KOMAScript-Paket}. September 2004,
  Version~2.9t.
  \biburl{CTAN://macros/latex/supported/koma-script/}.

\bibitem{clsguide:99} \textsc{The \LaTeX3 Project Team}: \emph{\LaTeXe{} for
  class and package writers}. März 1999.
  \biburl{CTAN://macros/latex/doc/clsguide.pdf}
  
\bibitem{fntguide:00} \textsc{The \LaTeX3 Project Team}: \emph{\LaTeXe{} font
  selection}. September 2000.
  \biburl{CTAN://macros/latex/doc/fntguide.pdf}

\bibitem{usrguide:01} \textsc{The \LaTeX3 Project Team}: \emph{\LaTeXe{} for
  authors}. Juli 2001.
  \biburl{CTAN://macros/latex/doc/usrguide.pdf}

\bibitem{faq:03} \textsc{Bernd Raichle}, \textsc{Rolf Niepraschk} und
  \textsc{Thomas Hafner}: \emph{Fragen und Antworten (FAQ) über das
    Textsatzsystem {\TeX\ }und DANTE, Deutschsprachige
    Anwendervereinigung {\TeX\ }e.V.} WWW, September 2003, Version~72.
  \biburl{http://www.dante.de/faq/de-tex-faq/}.

\bibitem{eulervm:04} \textsc{Walter Schmidt}: \emph{The Euler Virtual Math
    Fonts for use with {\LaTeX}}. Januar 2004, Version~3.0a.
  \biburl{CTAN://fonts/eulervm/}  

\bibitem{upgreek:01} \textsc{Walter Schmidt}: \emph{The
    {\textsf{upgreek}} package for {\LaTeXe}}.  Mai 2001, Version~1.0.
  \biburl{CTAN://macros/latex/contrib/supported/was/}.
  
\bibitem{psnfss:02} \textsc{Walter Schmidt}: \emph{Using common
    PostScript fonts with {\LaTeX}}.  April 2002, PSNFSS Version 9.0.
  \biburl{CTAN://macros/latex/required/psnfss/psnfss2e.pdf}

\bibitem{l2kurz:99} \textsc{Walter Schmidt}, \textsc{Jörg Knappen},
  \textsc{Hubert Partl} und \textsc{Irene Hyna}:
  \emph{{\LaTeXe}-Kurzbeschreibung}. April 1999, Version~2.1.
  \biburl{CTAN://info/lshort/german/}.

\bibitem{caption:04} \textsc{Axel Sommerfeld}:
  \emph{Setzen von Abbildungs- und Tabellenbeschriftungen mit dem
    caption-Paket}. Juli 2004, Version~3.0c.
  \biburl{CTAN://macros/latex/contrib/caption/}.
\end{thebibliography}
\end{document}
%%% Local variables:
%%% mode: LaTeX
%%% TeX-master: t
%%% coding: iso-8859-1
%%% End:
