From 2d248026682e0a02fa2b004a0ad2f13f57d8535c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 19 May 2009 18:54:54 +0000 Subject: move german latex docs out of texmf-doc git-svn-id: svn://tug.org/texlive/trunk@13264 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l2tabu/l2tabu.pdf | Bin 0 -> 132965 bytes Master/texmf-dist/doc/latex/l2tabu/l2tabu.tex | 1274 +++++++++++++++++++++++++ 2 files changed, 1274 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/l2tabu/l2tabu.pdf create mode 100644 Master/texmf-dist/doc/latex/l2tabu/l2tabu.tex (limited to 'Master/texmf-dist/doc/latex/l2tabu') diff --git a/Master/texmf-dist/doc/latex/l2tabu/l2tabu.pdf b/Master/texmf-dist/doc/latex/l2tabu/l2tabu.pdf new file mode 100644 index 00000000000..50077af6fee Binary files /dev/null and b/Master/texmf-dist/doc/latex/l2tabu/l2tabu.pdf differ diff --git a/Master/texmf-dist/doc/latex/l2tabu/l2tabu.tex b/Master/texmf-dist/doc/latex/l2tabu/l2tabu.tex new file mode 100644 index 00000000000..530ca70dfa5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/l2tabu/l2tabu.tex @@ -0,0 +1,1274 @@ +%%%------------------------------------------------------------------ +%%% Filename: l2tabu.tex +%%% Author: Mark Trettin +%%% 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}{} +\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}{}. 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}{} 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}{} 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{}{\dots} +definieren und \emph{nicht} mit +\Macro{def}\LMacro{}{\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{}{\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: -- cgit v1.2.3