Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news-res.gsl.net!news.gsl.net!news.mathworks.com!newsfeed.internetmci.com!demos!news.uni-stuttgart.de!news.urz.uni-heidelberg.de!sun.dante.de!german
From: dantefaq@dante.de (DANTE e.V., FAQ-Maintainer)
Newsgroups: de.comp.tex,de.answers,news.answers
Subject: TeX, LaTeX, DANTE e.V.: FAQ - Fragen und Antworten (Part 5 of 8)
Supersedes: <de-tex-faq-5-836386058@dante.de>
Followup-To: de.comp.tex
Date: 3 Aug 1996 04:01:10 GMT
Organization: DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
Lines: 829
Approved: news-answers-request@MIT.EDU
Distribution: world
Expires: 17 Sep 96 06:00:14
Message-ID: <de-tex-faq-5-839044815@dante.de>
References: <de-tex-faq-1-839044815@dante.de>
Reply-To: dantefaq@dante.de (DANTE e.V., FAQ-Maintainer)
NNTP-Posting-Host: sun.dante.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
Summary: This posting contains a list of Frequently Asked Questions
         (and their answers) about the typesetting system TeX and
         about DANTE e.V., the german-speaking TeX users group.
         It is in German and uses the ISO Latin-1 character set.
Keywords: FAQ TYPESETTING TeX USERGROUP DANTE
Originator: german@sun.dante.de
Xref: senator-bedfellow.mit.edu de.comp.tex:26879 de.answers:772 news.answers:78376

Posted-By: auto-faq 3.2.1.3
Archive-name: de-tex-faq/part5
Posting-Frequency: monthly
Copyright-Notice: siehe Abschnitt 1.1/see Section 1.1
URL: http://www.dante.de/dante/dante-faq.html


		Fragen und Antworten (FAQ) über

		   das Textsatzsystem TeX und
		       ~~~~~~~~~~~~~~~~~~
	DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


		=== Teil 5: TeX, LaTeX, Makros, etc. ==


5.1) \verb-Anweisung und verbatim-/Kommentar-/Comment-Umgebungen
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.1.1) Wieso kann ich \verb nicht im Argument einer anderen Anweisung
       wie \footnote, \parbox, u.ä. verwenden?  Wieso geht dies mit
       LaTeX2e nicht mehr, obwohl es mit LaTeX 2.09 ging?!

Dies ging in LaTeX 2.09 auch nur, solange innerhalb des Arguments von
\verb keine Zeichen mit besonderer Bedeutung verwendet wurden.  Für
diese Fälle hätte ein einfaches {\tt ...} auch ausgereicht.  Die
Eingabe ``\footnote{\verb+\cite+}'' liefert auch mit LaTeX 2.09 Fehler
mit einer sehr kryptischen Fehlermeldung, deshalb wird diese falsche
Benutzung in 2e mit der aussagekräftigeren Fehlermeldung
	! LaTeX Error: \verb illegal in command argument.
verhindert.


5.1.2) Wie kann ich eine eigene verbatim-Umgebung definieren?

Die intuitive Definition

	\newenvironment{myverbatim}{%
	  \begin{verbatim}%
	}{%
	  \end{verbatim}%
	}

einer solchen Umgebung ist nicht möglich, da verbatim `festverdrahtet'
nach der Zeichenkette `\end{verbatim}' sucht, so daß die neue Umgebung
das `\end{myverbatim}' nicht als Ende erkennen kann.
  Um dennoch verbatim-ähnliche Umgebungen definieren zu können, gibt
es zwei Pakete:
 a) `alltt' beläßt die drei Zeichen \, { und } in ihrer besonderen
    Bedeutung, ist daher keine vollständige verbatim-Umgebung.
 b) `verbatim' (von Rainer Schöpf et al.) erlaubt die Definition
    eigener verbatim-Umgebungen, wie z.B.

	\newenvironment{myverbatim}{%
	  \verbatim     % <== nicht \begin{verbatim} !
	}{%
	  \endverbatim  % <== nicht \end{verbatim} !
	}

alltt.sty: Das Package ist Bestandteil der LaTeX2e-Verteilung seit
           LaTeX2e <94/12/01>
           CTAN: macros/latex/{base,unpacked}/       (LaTeX2e-Verteilung)
           CTAN: macros/latex209/contrib/misc/alltt.sty  (für LaTeX 2.09)
verbatim.sty:  CTAN: macros/latex/packages/tools/


5.1.3) Wie kann ich eine Datei (z.B. mit Programmcode) innerhalb einer
       `verbatim'-Umgebung einbinden?

`verbatim' (von Rainer Schöpf et al.) stellt für diese Zwecke die
Anweisung \verbatiminput{<filename>} zur Verfügung.


5.1.4) Gibt es eine Kommentar-/comment-Umgebung, mit der ich größere
       Textteile auskommentieren kann?

Um Teile eines Textes auszukommentieren, kann man entweder zwei sehr
einfache TeX-Konstrukte verwenden, oder man bedient sich spezieller
Pakete, die unterschiedlich mächtige Kommentar-Umgebungen anbieten.
  Zu den einfachen Konstrukten, die TeX selbst anbietet, zählt zum
einen die Einklammerung des zu ignorierenden Textes mit den TeX-
Primitiven \iffalse...\fi:

    \iffalse
      Kommentartext, wird sehr schnell überlesen
    \fi

Hier sollten im Kommentartext keine `\if..'-, `\else'- und `\fi'-
Tokens (bzw. diese müssen korrekt geschachtelt sein), keine `outer'-
Makros oder unerlaubte Zeichen auftauchen, da diese zu einem Fehler
oder vielleicht zu doch nicht auskommentierten Textteilen führen
können.
  Ein anderes, einfaches Verfahren ist die Verwendung eines Makros,
wobei der auszukommentierende Text in dessen Argument geschrieben
wird:

    \newcommand{\kommentar}[1]{}
    % ...
    \kommentar{%
      Kommentartext, wird als Argument gelesen und ignoriert
    }%

Auch hier sollten die oben genannten Tokens nicht im Kommentartext
auftauchen, außerdem darf der Kommentartext nicht zu lang sein, da
sonst TeXs `main memory' überlaufen könnte.
  Spezielle Kommentar-Umgebungen beseitigen diese Einschränkungen --
und haben meist selbst eigene Einschränkungen.  `verbatim' aus dem
`tools'-Paket definiert eine sehr einfache `comment'-Umgebung, die man
jedoch nicht schachteln kann.  Weiterhin gibt es noch `xcomment' (von
T. van Zandt, eine speziell an die Erfordernisse des Paketes `seminar'
angepaßte und abgespeckte Version des `verbatim'.  Mit `comment' (von
V. Eijkhout) kann man neue Kommentar-Umgebungen definieren, die mit
\includecomment- und \excludecomment-Deklarationen aus- und
eingeblendet werden können.

verbatim.sty:  CTAN: macros/latex/packages/tools/
xcomment.sty:  CTAN: macros/latex/contrib/other/seminar/
               CTAN: macros/latex209/contrib/misc/xcomment.sty
comment.sty:   CTAN: macros/latex209/contrib/misc/comment.sty


5.1.5) Ich will \verb z.B. für Dateinamen und Email-Adressen
       verwenden. Wie schaffe ich es, dass innerhalb von \verb an
       geeigneten Stellen getrennt wird?

Für einige Anwendungen, wo man evtl. \verb benutzen könnte, gibt es
auch spezielle Lösungen, die fuer den Anwendungszweck besser geeignet
sind.  So gibt es beispielsweise die Pakete `path' und `url' für
Dateinamen, für Email- und WWW-Adressen, bei denen nur an bestimmten
Stellen umbrochen werden darf.

path.sty:  CTAN: macros/latex209/contrib/misc/path.sty
url.sty:   CTAN: macros/latex/contrib/other/misc/url.sty



5.2) Zerbrechliche Anweisungen in `moving arguments'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.2.1) Was sind `fragile commands'/zerbrechliche Anweisungen, was
       sind `moving arguments'?

Der Text, den ein Autor im Argument von Anweisungen wie \caption,
\section, etc. angibt, kann an mehreren Stellen in einem Dokument
gesetzt werden.  Der Argumenttext von \section wird z.B. als
Kapitelüberschrift gesetzt und taucht evtl. nochmals im
Inhaltsverzeichnis oder im Seitenkopf/-fuß auf.  Diese Argumente nennt
man daher `moving arguments'.
  Die korrekte Ausführung von `zerbrechlichen Anweisungen' hängt
intern von Zuweisungen ab.  Innerhalb eines `moving arguments' werden
diese Zuweisungen jedoch nicht durchgeführt, sodaß solche Anweisungen
`zerbrechen'.  Zu den zerbrechlichen Anweisungen zählen unter anderem
\cite, \ref, \pageref für Literatur- und Querverweise, \footnote, die
Anweisungen \small, \large, etc. zur Wahl der Schriftgröße,
mathematische Formelzeichen wie \sqrt, \notin, \overbrace und viele
mehr (siehe Abschnitt 5.2.2, Bemerkung am Ende).


5.2.2) Wie kann ich innerhalb des Arguments von \caption, \section,
       etc. Anweisungen wie \cite, \ref und \pageref verwenden, ohne
       Fehler wie `! Argument of \@sect has an extra }.' zu erhalten?

Zerbrechliche Befehle wie \cite müssen im `moving argument' der
Anweisung \caption mit \protect geschützt werden, d.h. statt

	\caption{Bildunterschrift~\cite{PartlKnappen95}}

ist ein \protect direkt und ohne(!) geschweifte Klammern vor die zu
schützende Anweisung zu setzen:

	\caption{Bildunterschrift~\protect\cite{PartlKnappen95}}

  Anweisungen wie \caption, \section, etc. haben außerdem noch die
Möglichkeit, in einem optionalen Argument den zu `verschiebenden
Argumenttext' anzugeben.  Das heißt, obiges könnte auch in

	\caption[Bildunterschrift]%
                {Bildunterschrift~\cite{PartlKnappen95}}

umformuliert werden.  Jetzt ist das optionale Argument in []-Klammern
das `moving argument', in dem Sie zerbrechliche Anweisungen mit
\protect schützen müssen!
  Beginnend mit LaTeX2e vom Dezember 1995 sind Anweisungen wie \cite
und Anweisungen mit optionalem Argument, wie \sqrt, nicht mehr
zerbrechlich und benötigen damit kein \protect mehr.  Dennoch sollten
Sie diese Anweisungen weiterhin mit \protect schützen, wenn Sie Ihre
Dokumente anderen zukommen lassen wollen.



5.3) Abbildungen und Tafeln
~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.3.1) Die meisten Abbildungen werden an das Ende des Kapitels, des
       Dokuments verschoben -- wieso?

Das optionale Argument der `figure'- oder `table'-Umgebung _schränkt_
die Plazierungsmöglichkeiten auf die angegebenen Orte ein.  Mit dem
optionalen Argument gibt man also _nicht_, wie oft fälschlich geglaubt
und weiterverbreitet wird, die Plazierung für weitere Orte an.
Deshalb nie Plazierungsangaben nur auf [h] einschränken, sondern
mindestens einen weiteren Ort mitangeben!  Grund: Kann die Abbildung
nicht `h'ier plaziert werden, darf sie nirgendwo anders gesetzt werden
und wird nach hinten an das Ende des Kapitels bzw. des Dokuments
geschoben.  Da LaTeX die Reihenfolge der Abbildungen bzw. der Tafeln
nicht verändert, werden alle nachfolgenden Abbildungen bzw. Tafeln mit
dieser nicht plazierbaren Abbildung/Tafel nach hinten verschoben.

Tip: Lassen Sie zu Beginn das optionale Argument der figure-/table-
Umgebung weg -- es ist nicht ohne Grund ein _optionales_ Argument
dieser Umgebungen!  Fügen Sie später für eine Endfassung Ihres
Dokuments nur an den Stellen ein optionales Argument mit
Plazierungseinschränkungen ein, wo eine Abbildung/Tafel z.B. auf einer
eigenen Seite oder auf einer Seite oben erscheinen sollte.


5.3.2) Wie kann ich die Default-Plazierungseinschränkungen ändern?
       Ich möchte meine Abbildungen auch `h'ier plazieren, ohne
       jedesmal das optionale Argument angeben zu müssen.

In LaTeX werden diese Angaben, die sogenannten `float placement
specifier' für die figure- und table-Umgebungen in den Makros
\fps@figure und \fps@table abgelegt.  Durch die Redefinitionen

\renewcommand{\fps@figure}{htbp}
\renewcommand{\fps@table}{htbp}

(Zeilen mit \makeatletter...\makeatother klammern oder in eine
.sty-Datei schreiben!) fügt man noch die `h'ier-Plazierung hinzu.
  Die Standard-LaTeX-Klassen setzen die Default-Plazierungen auf
`tbp', untersagen also die `h'ier-Plazierung einer Abbildung
bzw. Tafel.  Dies ist in den meisten Fällen auch sinnvoll, da
Abbildungen und Tafel nur dazu dienen, die Aussagen im Text durch
beispielsweie eine anschaulichere Darstellung oder kompakte Übersicht
zu unterstützen.  Die Abbildung/Tafel ist damit _nicht_ integraler
Bestandteil des Textes, sondern ein dem Text noch zusätzlich
zugeordneter Bestandteil des Dokuments.  Daher sollte diese den Text
nicht unterbrechen, was eine `h'ier-Plazierung zweifellos tun würde.
Daher ist der Default `tbp' in den meisten Fällen sinnvoll.


5.3.3) Wie kann ich die Fehlermeldung `! LaTeX Error: Too many
       unprocessed floats.' vermeiden?

LaTeX allokiert für alle `floats', also figure- und table-Umgebungen,
eines Dokuments 18 Insertion-Registertupel.  Der genannte Fehler
taucht auf, wenn alle 18 Registertupel belegt sind.  Eigentlich sollte
der Speicherplatz für 18 noch zu plazierende `floats' für alle
Gegebenheiten ausreichen, so daß dieser Fehler nur auftreten kann,
wenn a) ein `float' beispielsweise aufgrund von zu restriktiven
Plazierungsangaben (siehe Abschnitt 5.3.1) nicht auf eine Seite
gesetzt werden kann oder b) sehr viele, meist unterschiedlich große
`floats' mit sehr wenig Text auftreten.  In Fall a) kann man durch
andere Plazierungseinschränkungen oder Änderungen der `float'-
Parameter den Überlauf vermeiden.  Für Fall b) kann man mehr
erläuternden Text schreiben, eine eigene nicht-fließende Umgebung
definieren (da ja die Abbildungen im Vordergrund stehen und eher der
Text zwischen die Abbildungen `fließt') oder das Paket `morefloats'
verwenden.  Letzteres allokiert weitere 18 Insertion-Registertupel,
sodaß man jetzt insgesamt 36 `floats' zwischenspeichern kann, bevor
der Fehler auftritt.  Leider hat man dadurch 18 Savebox-, Zähler-,
Längen- und Glue-Register weniger, sodaß man jetzt evtl. auf den
Fehler `No room for a new ...' stößt :-(

morefloats.sty:  CTAN: macros/latex209/contrib/misc/morefloats.sty


5.3.4) Wie kann ich es erreichen, daß zwei Abbildungen nicht auf
       verschiedenen Seiten, sondern möglichst direkt untereinander
       plaziert werden?

In eine einzige figure- bzw. table-Umgebung können auch mehrere
Abbildungen/Tafeln gesetzt und mit eigenen Unterschriften versehen
werden:

\begin{figure}
  erstes Bild
\caption{erstes Bild}
\vspace{\floatsep}    % zusätzlicher Abstand zwischen zwei `floats'
  zweites Bild
\caption{zweites Bild}
\end{figure}

Alle Abbildungen/Tafeln einer Umgebung werden dann nicht mehr
getrennt.  Aus diesem Grund sollte man auch darauf achten, daß eine
figure-/table-Umgebung durch zu viele Abbildungen/Tafeln nicht zu hoch
wird.


5.3.5) Ich bekomme den Fehler `! LaTeX Error: Not in outer par mode.',
       wenn ich z.B. die Breite einer Abbildung begrenzen will. Wieso?

Eine `figure'- oder `table'-Umgebung ist ein sogenannter `float',
d.h. der Inhalt `fließt' an eine andere Stelle.  Deshalb darf diese
Umgebung nicht innerhalb einer anderen, wie `minipage', \parbox, o.ä.
verwendet werden.  Die Eingabe

\begin{minipage}{5cm}   %% FALSCH!
\begin{figure}
  Bild
  \caption{text}
\end{figure}
\end{minipage}

ist daher falsch und erzeugt den in der Frage genannten Fehler.
Korrekt und auch logisch einsichtiger ist es, wenn man den Inhalt der
`figure'-Umgebung in eine `minipage' packt, also diese _in_ die
`figure'-Umgebung setzt:

\begin{figure}
  \begin{minipage}{5cm}   %% KORREKT!
    Bild
    \caption{text}
  \end{minipage}
\end{figure}


5.3.6) Wie kann ich in einer Abbildung zwei Bilder nebeneinander
       setzen?

Man kann zum Beispiel zwei `minipage'-Umgebungen verwenden, wobei man
dann auch mit deren optionalem Argument die Ausrichtung der beiden
Bilder angeben kann:

\begin{figure}
\begin{minipage}[b]{.4\linewidth} % [b] => Ausrichtung an \caption
  Bild links
  \caption{Bildunterschrift links}
\end{minipage}
\hspace{.1\linewidth}% Abstand zwischen Bilder
\begin{minipage}[b]{.4\linewidth} % [b] => Ausrichtung an \caption
  Bild links
  \caption{Bildunterschrift rechts}
\end{minipage}
\end{figure}


5.3.7) Wie kann ich eine Abbildung, d.h. eine `figure', und eine
       Tafel, d.h. eine `table', nebeneinander setzen?

Dies funktioniert leider nicht ohne einen nicht ganz ``sauberen''
Trick.  Man benötigt die folgende Definition

    \newcommand{\setfloattype}[1]{\renewcommand{\@captype}{#1}}

die man wegen des internen Makronamens `\@captype' in eine .sty-Datei
schreiben oder im Dokumentkopf mit \makeatletter/\makeatother klammern
muß.  Danach kann man mit

\begin{figure}
\begin{minipage}{.5\linewidth}
  Abbildung
  \caption{Abbildung}
\end{minipage}%
\begin{minipage}{.5\linewidth}
  \setfloattype{table}          %% <<===
  Tafel
  \caption{Tafel}
\end{minipage}
\end{figure}

eine Abbildung und eine Tafel nebeneinander setzen, wobei die
Unterschriften auch in das jeweilige Verzeichnis gelangen.


5.3.8) Gibt es bei der Option `twocolumn' die Möglichkeit,
       Abbildungen (figure) und Tafeln (table) über beide Spalten,
       also die gesamte Textbreite einer Seite zu setzen?

Statt `figure'- die `figure*'-, statt `table'- die `table*'-Umgebung
verwenden.


5.3.9) Wie kann ich das Layout der Bildunterschriften (\caption)
       verändern?

LaTeX verwendet die interne Anweisung \@makecaption{Bild Nr}{Text}, um
die Bildunterschrift inkl. Bildnummer zu setzen.  Durch Umdefinieren
dieser Anweisung, die in der Dokumentklasse definiert wird, kann man
das Layout ändern.  Will man nur die Bildnummer (z.B. ``Abbildung 1'')
ändern, so reicht es oftmals aus, die interne Anweisung \fnum@figure
bzw. für Tafeln \fnum@table entsprechend umzudefinieren.
  Zur Erleichterung gibt es einige, leicht zu verwendende Pakete:
`caption' bzw. `caption2' hat viele Optionen, dieses Paket ermöglicht
die Variation der Schriftart und -größe und des Layouts (zentriert,
überhängend, Absatz mit Einrückung, usw.).  Beispiel:

    \usepackage[bf]{caption}
    \renewcommand{\captiontext}{\small\itshape}

für einen etwas kleineren und kursiv gesetzten Unterschriftentext,
wobei die Bildnummer weiterhin fett gesetzt wird.
  Speziellere Lösungen existieren natürlich auch oder sind teilweise
in einigen Dokumentklassen enthalten.  So enthalten die Klassen des
`ntgclass'-Pakets beispielsweise Befehle, um alle Fonts (Sections,
Captions, Running Heads) zu verändern.

caption(2):   CTAN: macros/latex/contrib/supported/caption/
ntgclass:     CTAN: macros/latex/contrib/supported/ntgclass/
hangcaption:  CTAN: macros/latex209/contrib/misc/hangcaption.sty
isucaption:   CTAN: macros/latex209/contrib/misc/isucaption.sty


5.3.10) Wie kann man neue Typen von Gleitumgebungen (`floats')
       erzeugen, z.B. für weitere Arten von Tabellen oder
       Programm-Code?

Prinzipiell muß man für einen neuen Typ von Gleitumgebung einige
Makros definieren.  Beispielsweise sind für eine `faqtable' und
`faqtable*' die folgenden Anweisungen (in eine .sty-Datei schreiben,
da interne Anweisungen!) notwendig

\newcounter{faqtable}[section]
%\renewcommand{\thefaqtable}{\thesection.\arabic{table}}
\renewcommand{\fps@faqtable}{tp}  % nicht `h' bzw. `b'
\renewcommand{\ftype@faqtable}{4} % type is a power of two!
\renewcommand{\ext@faqtable}{lot} % Endung der Hilfsdatei
\renewcommand{\fnum@faqtable}{FAQ-Tabelle~\thefaqtable}
\newenvironment{faqtable}{\@float{faqtable}}{\end@float}
\newenvironment{faqtable*}{\@dblfloat{faqtable}}{\end@dblfloat}

wobei damit noch keine Anpassungen des Inhaltsverzeichnisses, ein
eigenes Inhaltsverzeichnis oder sonstige Anpassungen des Layouts
durchgeführt sind.  Mehr Informationen dazu findet man im Buch `Der
LaTeX-Begleiter'.
  Sehr viel einfacher geht dies mit dem `float'-Paket, mit dem
z.B. obiges auch der normale LateX-Benutzer mit der simplen Anweisung
\newfloat{faqtable}{tp}{lot}[section] definieren kann.  Daneben sind
auch schon einige `float'-Layouts vordefiniert und können ebenso
einfach verwendet werden.

float.sty:  CTAN: macros/latex/contrib/supported/float/


5.3.11) Abbildungen und Tafeln sollen _immer_ nach dem ersten Verweis
        auf sie gesetzt werden. Wie? Es ist möglich, daß LaTeX sie vor
        der Abschnittsüberschrift plaziert.  Wie unterbinde ich das?

Mit dem LaTeX2e-Paket `flafter' werden Abbildungen und Tafeln nie vor
dem Text plaziert, in der sie im Dokument angegeben werden.  Damit
LaTeX2e sie also nie vor dem ersten Verweis plaziert, schiebt man die
entsprechende `figure'- bzw. `table'-Umgebung einfach hinter die erste
\ref- bzw. \pageref-Anweisung.

flafter:  CTAN: macros/latex/{base,unpacked}/ (LaTeX2e-Verteilung)



5.4) Fussnoten, Endnoten, etc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.4.1) Die Fußnoten sollen gesammelt am Ende des Kapitels erscheinen.

endnotes:  CTAN: macros/latex209/contrib/misc/endnotes.sty


5.4.2) Ich möchte meine Fußnoten auf jeder Seite neu beginnend
       durchzählen, d.h. auf jeder Seite soll mit `1' begonnen werden.

footnpag:  CTAN: macros/latex/contrib/supported/footnpag/


5.4.3) Ich möchte den maximal von den Fußnoten eingenommenen Platz auf
       10 Zeilen beschränken.  Wie?

Das Längenregister \dimen\footins gibt die maximale Höhe der Box mit
den Fußnoten für eine Seite an.  Nach
	\setlength{\dimen\footins}{10\baselineskip}
wird dieser Platz von normalerweise 8 Inch (ca. 20,5 cm) auf ca. 10
Zeilen beschränkt.


5.4.4) Wie erreiche ich eine andere Formatierung der Fußnoten?

Mit dem Paket `footnote' von Robin Fairbairns kann man sehr einfach
einige andere Formatierungen auswählen.  Ansonsten findet man im Buch
`Der LaTeX-Begleiter' nähere Informationen.

foonote:  CTAN: macros/latex/contrib/supported/footnote/



5.5) LaTeX2e -- Grundlegendes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.5.1) Was benötige ich, wenn ich von LaTeX 2.09 auf LaTeX2e umsteigen
       bzw. eine neuere LaTeX2e-Version installieren will?

Grundsätzlich sollte man sich beim Umstieg von 2.09 oder beim Update
einer älteren 2e-Version immer die komplette LaTeX2e-Distribution im
Verzeichnis ``base'' besorgen und installieren, nie einzelne Dateien
oder nur einzelne Class-Dateien.  Nach dem Entpacken der Distribution
und Installation der einzelnen Dateien ist ein neues Format zu
generieren.  Die Anleitung ``base/install.txt'' enthält genauere
Informationen und wichtige Hinweise -- bitte durchlesen!

Notwendig:
 - alle Dateien im Verzeichnis ``base''.
 - die zusätzlichen CM-Schriften `cmmib' und `cmbsy' in den
   Designgrößen 5, 6, 7, 8 und 9 Punkt

Optional, da schon in ``base'' enthalten:
 - Will man sich, insbesondere auf langsameren Rechnern, das Entpacken
   der dtx-Dateien in ``base'' sparen, benötigt man noch zusätzlich
   die Dateien im Verzeichnis ``unpacked''.
 - Ebenso befindet sich im Verzeichnis ``doc'' die schon formatierte
   Dokumentation, also die Dateien ``base/???guide.tex''.

Empfohlen:
 - Standard-Zusatzpakete, in ``packages/tools''
 - Graphics-Paket zur Einbindung von externen Grafiken, in
   ``packages/graphics''
 - weitere Pakete im Verzeichnis ``packages''

base:      CTAN:  macros/latex/base/
           CTAN:  macros/latex/unpacked/  (optional)
           CTAN:  macros/latex/doc/       (optional)
packages:  CTAN:  macros/latex/packages/
line/lcircle/lasy:  CTAN: fonts/latex/{mf,tfm}/
cmmib/cmbsy:  CTAN: fonts/ams/amsfonts/{sources/extracm,tfm}/
              CTAN: fonts/cm/sauter23/


5.5.2) Ich habe gehört, daß es für meine LaTeX2e-Versionen Patches
       gibt.  Welche Dateien benötige ich, was muß ich tun?

Für jeden LaTeX2e-Patch benötigt man immer zumindest die Datei
`patches.txt'.  Sie beschreibt genau, welche weitere Dateien man noch
zu einem _kompletten_ Patch benötigt.  In vielen Fällen gibt es neben
der Datei `ltpatch.ltx', die LaTeX2e-Kernel-Patches enthält, noch neue
Versionen weiterer Dateien!  Näheres in `patches.txt'.
  Nachdem man die Dateien geholt und installiert hat, muß ein neues
Format erstellt und installiert werden, damit die Patches in
`ltpatch.ltx' aktiv werden.  Zur Kontrolle: Danach sollte beim
Formatieren eines Dokuments nach der Meldung `LaTeX2e <1996/06/01>'
noch der Zusatz `patch level X' erscheinen, wobei `X' mit dem
installierten Patch übereinstimmen muß.

patches.txt:  CTAN:  macros/latex/base/patches.txt


5.5.3) Was kann ich mit einer Datei mit Endung `.dtx' anfangen?
       Benötige ich dazu auf alle Fälle LaTeX2e?

Dateien mit `.dtx' sind sogenannte `docstrip archive files', also ein
Archiv, aus dem man mit dem Tool `docstrip' verschiedene Dateien
entpacken kann.  Zum Entpacken benötigen Sie nur die Datei
`docstrip.tex' oder `docstrip.dtx' und ein TeX-Binary.  `docstrip.tex'
können Sie mit LaTeX 2.09, LaTeX2e und auch mit plain-TeX verwenden.
  Wie Sie eine `.dtx'-Datei entpacken müssen, sollten Sie aus einer
Beschreibung zu Beginn der `.dtx'-Datei oder einer separaten
README-Datei entnehmen können.  Existiert eine gleichnamige Datei mit
Endung `.ins', so können Sie in den meisten Fällen das `.dtx'-Archiv
``file.dtx'' mit ``tex file.ins'' entpacken.  Näheres entnehmen Sie
bitte der Beschreibung des Archivs.
  Die Dokumentation eines Pakets und der Makros sind ebenso in einem
`.dtx'-Archiv enthalten.  Zum Formatieren dieser Dokumentation
benötigen Sie jedoch ein installiertes LaTeX2e -- für einige ältere
Archive reicht auch noch das alte LaTeX 2.09.  Was Sie genau tun
müssen (Formatieren, Indexerstellung, etc.), um eine Dokumentation zu
erhalten, entnehmen Sie bitte auch der mitgelieferten Beschreibung des
Archivs.

Hinweis: Mit LaTeX2e vom Dezember 1995 wurde eine Version des Tool
`docstrip.dtx' verteilt, das gleichzeitig mehrere Dateien aus einem
Archiv entpacken kann und damit um einiges schneller ist.  Deshalb
lohnt es sich, wenn Sie eine ältere Version benutzen, diese durch die
neue Version zu ersetzen.

docstrip:  CTAN:  macros/latex/base/docstrip.{dtx,ins}
           (Bestandteil von LaTeX2e, kann aber auch mit plain-TeX
           verwendet werden!)



5.6) LaTeX2e -- Probleme beim Umstieg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.6.1) Anweisungen wie \tenrm, \twlrm, \fivrm, etc., die von einigen
       Paketen wie PiCTeX verwendet werden, sind nicht mehr definiert.
       Was muß ich da ändern?

Diese Namen für Schriften wurden nie dokumentiert und sollten im alten
LaTeX 2.09 nur LaTeX-intern verwendet werden.  Da das
Fontauswahlschema (NFSS2) in LaTeX2e komplett neu geschrieben wurde,
sind diese ehemals internen Namen nicht mehr vorhanden.  Es ist daher
am besten, diese alten Pakete so umzuschreiben, daß diese internen
Schriftnamen nicht mehr verwendet werden.  In der Zwischenzeit kann
man mit Hilfe des Paketes `rawfonts' diese Namen nachdefinieren, wie
z.B. mit

	\usepackage[only,fivrm]{rawfonts}

für PiCTeX.

rawfonts.sty:  CTAN: macros/latex/packages/tools/


5.6.2) Beim Umstieg von LaTeX 2.09 mit NFSS (Version 1) auf LaTeX2e
       ändert sich auch das Verhalten der Anweisungen \rm, \bf, \it,
       etc. auf das Verhalten des Original-LaTeX 2.09.  Wie bekomme
       ich das alte, inkompatible Verhalten von NFSS Version 1?

Mit dem Paket `newlfont' erhält man das Verhalten von NFSS v1, ohne
daß man in den meisten Fällen das Dokument ändern muß:

	\usepackage{newlfont}

Für neue Dokumente sollte man jedoch besser gleich die neuen
Anweisungen \textrm{...}, \textbf{...}, \textit{...}, etc. verwenden.
Diese Anweisungen haben darüberhinaus den Vorteil, daß eine eventuell
notwendige `italic correction' automatisch eingefügt wird.

newlfont.sty:  CTAN: macros/latex/packages/tools/


5.6.3) Einige mathematische Symbole (\Box, \lhd, \leadsto, \Join,
       \mho, \sqsubset, etc.) sind nicht mehr definiert -- wieso?

Die LaTeX-Symbolschriften `lasy10' und `lasyb10' enthalten nur sehr
wenige, relativ selten benutzte Symbole.  Daher werden diese Schriften
in LaTeX2e nicht mehr per Default mitgeladen, sondern müssen vom
Benutzer explizit mit

	\usepackage{latexsym}

dazugeladen werden.


5.6.4) Kann es sein, daß es in LaTeX2e den Parameter \footheight und
       die internen Parameter \@maxsep und \@dblmaxsep nicht mehr
       gibt?  Gibt es einen Ersatz?

Der Parameter \footheight und die internen Parameter \@maxsep und
\@dblmaxsep wurden in LaTeX 2.09 nie ausgewertet.  Deshalb wurden sie
in LaTeX2e entfernt, um die dadurch gesparten Längenregister für
andere Zwecke einsetzen zu können.  Zur Anpassung von alten
Dokumentstilen an LaTeX2e kann man daher eine Zuweisung an diese
Parameter einfach ersatzlos streichen.


5.6.5) Mit älteren Dokumentklassen bekomme ich den Fehler `! Undefined
       control sequence.' oder `! LaTeX Error: \mit undefined.' für
       die Schriften \mit und \cal.  Wieso?

Bis LaTeX2e <1994/12/01> wurden \cal und \mit im Kernel definiert.
Weil diese Definitionen aber in jeder Standard-Dokumentklasse durch
robustere Varianten ersetzt werden, hat das LaTeX2e-Team sich
entschlossen, \cal und \mit nicht mehr im Kernel vorzudefinieren.
  Damit ist es aber erforderlich, daß alle Dokumentklassen, die \cal
und \mit nicht definieren oder mit \renewcommand umdefinieren,
angepaßt werden müssen.  Bei den Standard-Dokumentklassen hat das
niemand bemerkt, da die notwendigen Anpassungen dieser Dateien
automatisch mit einer neuen LaTeX2e-Version mitinstalliert werden.



5.7) Grafiken, Bilder, Farbe und andere Effekte
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.7.1) Wie kann ich eine Tabelle mit Unterschrift um 90 Grad drehen,
       die Kopf- und Fußzeile der Seite sollen aber ihre Ausrichtung
       behalten?

Dokumentteile können nur gedreht werden, wenn dies auch vom
verwendeten dvi-Gerätetreiber unterstützt wird.
  Das LaTex2e-Package `graphics' enthält das Paket `lscape', das eine
`landscape'-Umgebung zur Verfügung stellt.  Der Inhalt dieser Umgebung
wird um 90 Grad gegen den Urzeigersinn gedreht und auf eine eigene
Seite plaziert.  Zu Beginn und am Ende der Umgebung wird ein
\clearpage ausgeführt:

    \usepackage{lscape}
    % etc.etc.
    \begin{landscape}
      \begin{figure}
        gedrehte Abbildung
        \caption{gedrehte Unterschrift}
      \end{figure}
      % evtl. noch weitere Abbildungen/normaler Text/etc.
    \end{landscape}
    % etc.etc.

Will man nicht ganze Seiten drehen oder stören die implizit
ausgeführten \clearpage-Anweisungen, so kann man auch nur die
Anweisung \rotatebox aus dem `graphics'-Package verwenden:

    \usepackage{graphics} % oder `graphicx'
    % etc.etc.
    \begin{figure}
      \rotatebox{90}{%
        \begin{minipage}{.6\textheight}
        gedrehte Abbildung
        \caption{gedrehte Unterschrift}
        \end{minipage}%
      }
    \end{figure}

Das `rotating'-Paket bietet statt der einfachen \rotatebox-Anweisung
mit all ihren Nachteilen (Stichwort: `verbatim'!) die Umgebungen
`rotate', `turn' und `sideways', innerhalb der man (fast) beliebigen
Text plazieren kann.  Für den Spezialfall, daß eine Abbildung
bzw. Tafel wie mit der `landscape'-Umgebung eine komplette Seite füllt
und um 90 Grad gegen den Uhrzeigersinn gedreht werden soll, gibt es
die den `figure'- und `table'- entsprechenden `sidewaysfigure'- und
`sidewaystable'-Umgebungen.  Außerdem ist eine ältere Version dieses
Pakets auch für LaTeX 2.09 verfügbar.
  Mehr über diese Pakete findet man in der Dokumentation
`grfguide.tex' des `graphics'-Package, der mit `rotating'
mitgelieferten Dokumentation und dem Buch `Der LaTeX-Begleiter'.

graphics/
lscape.sty:   CTAN: macros/latex/package/graphics/
rotating.sty: CTAN: macros/latex/contrib/supported/rotating/
              CTAN: macros/latex209/contrib/rotating/  (für LaTeX 2.09)


5.7.2) Wie kann ich mit TeX farbigen Text setzen?
 
Das LaTeX2e-Package `graphics' enthält das Paket `color', das Befehle
zur Verfügung stellt, mit denen man Textteile einfärben, eine Box oder
den Hintergrund einer Seite farbig hinterlegen kann.  Dies
funktioniert natürlich nur, wenn das Ausgabegerät (Drucker,
Bildschirm) dazu in der Lage ist und der dvi-Treiber die dazu
notwendige Funktionalität hat, entsprechende \special-Anweisungen mit
den Farbbefehlen auszuwerten.
  Um das Paket `color' an verschiedene Ausgabegeräte und dvi-Treiber
anzupassen, muß eine entsprechende Definitionsdatei für den jeweiligen
Treiber vorhanden sein bzw. noch erstellt werden.  Auf jedem System
sollte in der Datei ``color.cfg'' eine dvi-Treiber-Definition als
Default angegeben sein.  Das Paket `color' läßt sich dann wie folgt
verwenden:

    \usepackage{color}

Will man in einem Dokument eine vom Default abweichenden dvi-Treiber
verwenden, so kann man den Namen der dvi-Treiber-Definition als
Paket-Option angeben:
 
    \usepackage[dvips]{color}
 
erzeugt eine dvi-Datei mit farb-\special-Anweisungen für den
dvi-PostScript-Treiber `dvips'.  Danach kann man die entstehende
dvi-Datei auch mit anderen dvi-Treibern übersetzen bzw. ausdrucken,
jedoch werden in den meisten Fällen die Farb-\special-Anweisungen
nicht erkannt und mit einer Warnung ignoriert.
  Eine genauere Beschreibung der einzelnen Anweisungen und der
vorhandenen Definitionsdateien findet man in der Anleitung `grfguide'
im Package `graphics'.

graphics/
color.sty:  CTAN: macros/latex/package/graphics/


5.7.3) Bei mit XFig erstellten und exportierten Zeichnungen erhalte
       ich bei der Einbindung in LaTeX den Fehler, daß \SetFigFont
       nicht definiert ist.  Was ist falsch?

Das Programm `fig2dev', das XFig zum Wandeln und Exportieren von
Fig-Bildern aufruft, hat in den Versionen vor Version 3.1pl1 einen
Fehler, der dazu führt, daß das Makro \SetFigFont nicht immer
definiert ist.  Nach einem Update des Paketes `Transfig', das
`fig2dev' enthält, verschwindet der Fehler.  Kann man auf den Update
nicht warten, bietet sich auch als Einfachstlösung die Definition
\newcommand{\SetFigFont}[3]{} in der Dokumentpräambel an.

transfig/
fig2dev:   CTAN: graphics/transfig/



5.8) Inhalts-, Abbildungs- und andere Verzeichnisse
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5.8.1) Beim Formatieren des \tableofcontents erhalte ich sehr viele
       Meldungen mit ``overfull \hbox''.  Woran liegt das?

Die Seitennummer wird in eine Box der Breite \@pnumwidth gesetzt.  Der
in den Standardklassen hierfuer verwendete Wert von 1.55em kann in
manchen Situationen (Seitennummer>=1000, breiterer Font) zu klein
sein.  Abhilfe:

  \renewcommand{\@pnumwidth}{2em}% statt `2em' evtl. größerer Wert

Eventuell muß man dann auch den Wert im Makro \@tocrmarg anpassen.
  Längere Abschnittsnummern können eine andere Ursache dieses Fehlers
sein.  Hier muß man in den Definitionen der Makros \l@<type>, wie
z.B. \l@section, im Aufruf des Makros \@dottedtocline das dritte
Argument entsprechend vergrößern.  Näheres hierzu im Buch ``Der
LaTeX-Begleiter''.



5.9) Verschiedenes
~~~~~~~~~~~~~~~~~~

5.9.1) Wie kann ich in einer tabular-Umgebung eine Spalte speziell
       setzen, ohne dies in jedem Eintrag zu wiederholen?

Das Paket `array' erweitert die array- und tabular-Umgebung um weitere
Deklarationen, wie > und <, in der Tabellenpräambel.  So wird mit

    \begin{tabular}{c>{\scshape}cc}

die zweite der drei Spalten in Kapitälchen gesetzt.

array:  CTAN: macros/latex/packages/tools/


5.9.2) Wieso kann ich in einer tabular-Umgebung die letzte Spalte
       nicht mit \raggedright rechtsbündig setzen?

\raggedright definiert die Anweisung \\ um, die in der tabular- und
array-Umgebung zur Markierung des Zeilenendes benutzt wird.  In
LaTeX2e und den Paketen `array' und `longtable' existiert daher seit
Dezember 1994 die neue Anweisung \tabularnewline, die man für diesen
Zweck anstelle von \\ verwenden kann.
  Für andere Pakete und ältere Versionen kann man auch folgenden Trick
aus dem Buch `Der LaTeX-Begleiter' anwenden:

    \newcommand{\PreserveBackslash}[1]{\let\temp=\\#1\let\\=\temp}

Statt einem einfachen \raggedright verwendet man in einer Tabelle dann
\PreserveBackSlash{\raggedright}.


--- DE-TeX-FAQ Ende Teil 5 ---
