Posted-By: auto-faq 3.2.1.3
Archive-name: de-tex-faq/part6
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 6: TeX, LaTeX, Makros, etc. (II) ==


6.1) Abbildungen und Tafeln
~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

Das optionale Argument der `figure'- oder `table'-Umgebung _schrnkt_
die Plazierungsmglichkeiten auf die angegebenen Orte ein.  Mit dem
optionalen Argument gibt man also _nicht_, wie oft flschlich geglaubt
und weiterverbreitet wird, die Plazierung fr weitere Orte an.
Deshalb nie Plazierungsangaben nur auf [h] einschrnken, 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 verndert, 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!  Fgen Sie spter fr eine Endfassung Ihres
Dokuments nur an den Stellen ein optionales Argument mit
Plazierungseinschrnkungen ein, wo eine Abbildung/Tafel z.B. auf einer
eigenen Seite oder auf einer Seite oben erscheinen sollte.


6.1.2) Wie kann ich die Default-Plazierungseinschrnkungen ndern?
       Ich mchte meine Abbildungen auch `h'ier plazieren, ohne
       jedesmal das optionale Argument angeben zu mssen.

In LaTeX werden diese Angaben, die sogenannten `float placement
specifier' fr 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!) fgt 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 Fllen auch sinnvoll, da
Abbildungen und Tafel nur dazu dienen, die Aussagen im Text durch
beispielsweie eine anschaulichere Darstellung oder kompakte bersicht
zu untersttzen.  Die Abbildung/Tafel ist damit _nicht_ integraler
Bestandteil des Textes, sondern ein dem Text noch zustzlich
zugeordneter Bestandteil des Dokuments.  Daher sollte diese den Text
nicht unterbrechen, was eine `h'ier-Plazierung zweifellos tun wrde.
Daher ist der Default `tbp' in den meisten Fllen sinnvoll.


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

LaTeX allokiert fr 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 fr 18 noch zu plazierende `floats' fr alle
Gegebenheiten ausreichen, so da dieser Fehler nur auftreten kann,
wenn a) ein `float' beispielsweise aufgrund von zu restriktiven
Plazierungsangaben (siehe Abschnitt 6.1.1) nicht auf eine Seite
gesetzt werden kann oder b) sehr viele, meist unterschiedlich groe
`floats' mit sehr wenig Text auftreten.  In Fall a) kann man durch
andere Plazierungseinschrnkungen oder nderungen der `float'-
Parameter den berlauf vermeiden.  Fr Fall b) kann man mehr
erluternden Text schreiben, eine eigene nicht-flieende Umgebung
definieren (da ja die Abbildungen im Vordergrund stehen und eher der
Text zwischen die Abbildungen `fliet') 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-, Zhler-,
Lngen- und Glue-Register weniger, soda man jetzt evtl. auf den
Fehler `No room for a new ...' stt :-(

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


6.1.4) Wie kann ich es erreichen, da zwei Abbildungen nicht auf
       verschiedenen Seiten, sondern mglichst direkt untereinander
       plaziert werden?

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

\begin{figure}
  erstes Bild
\caption{erstes Bild}
\vspace{\floatsep}    % zustzlicher 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.


6.1.5) 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 rechts
  \caption{Bildunterschrift rechts}
\end{minipage}
\end{figure}


6.1.6) 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 bentigt 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.


6.1.7) Gibt es bei der Option `twocolumn' die Mglichkeit,
       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.


6.1.8) 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 `fliet' 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}


6.1.9) Wie kann ich das Layout der Bildunterschriften (\caption)
       verndern?

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. fr Tafeln \fnum@table entsprechend umzudefinieren.
  Zur Erleichterung gibt es einige, leicht zu verwendende Pakete:
`caption' bzw. `caption2' hat viele Optionen, dieses Paket ermglicht
die Variation der Schriftart und -gre und des Layouts (zentriert,
berhngend, Absatz mit Einrckung, usw.).  Beispiel:

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

fr einen etwas kleineren und kursiv gesetzten Unterschriftentext,
wobei die Bildnummer weiterhin fett gesetzt wird.
  Speziellere Lsungen existieren natrlich 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 verndern.

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


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

Prinzipiell mu man fr einen neuen Typ von Gleitumgebung einige
Makros definieren.  Beispielsweise sind fr 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
durchgefhrt 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 knnen ebenso
einfach verwendet werden.

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


6.1.11) Abbildungen und Tafeln sollen _immer_ nach dem ersten Verweis
        auf sie gesetzt werden. Wie? Es ist mglich, da LaTeX sie vor
        der Abschnittsberschrift 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)



6.2) Fussnoten, Endnoten, etc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

6.2.1) Die Funoten sollen gesammelt am Ende des Kapitels erscheinen.

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


6.2.2) Ich mchte meine Funoten auf jeder Seite neu beginnend
       durchzhlen, d.h. auf jeder Seite soll mit `1' begonnen werden.

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


6.2.3) Ich mchte den maximal von den Funoten eingenommenen Platz auf
       10 Zeilen beschrnken.  Wie?

Das Lngenregister \dimen\footins gibt die maximale Hhe der Box mit
den Funoten fr eine Seite an.  Nach
	\setlength{\dimen\footins}{10\baselineskip}
wird dieser Platz von normalerweise 8 Inch (ca. 20,5 cm) auf ca. 10
Zeilen beschrnkt.


6.2.4) Wie erreiche ich eine andere Formatierung der Funoten?

Mit dem Paket `footnote' von Robin Fairbairns kann man sehr einfach
einige andere Formatierungen auswhlen.  Ansonsten findet man im Buch
`Der LaTeX-Begleiter' nhere Informationen.

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



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

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

Dokumentteile knnen nur gedreht werden, wenn dies auch vom
verwendeten dvi-Gertetreiber untersttzt wird.
  Das LaTex2e-Package `graphics' enthlt das Paket `lscape', das eine
`landscape'-Umgebung zur Verfgung stellt.  Der Inhalt dieser Umgebung
wird um 90 Grad gegen den Uhrzeigersinn gedreht und auf eine eigene
Seite plaziert.  Zu Beginn und am Ende der Umgebung wird ein
\clearpage ausgefhrt:

    \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 stren die implizit
ausgefhrten \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.  Fr den Spezialfall, da eine Abbildung
bzw. Tafel wie mit der `landscape'-Umgebung eine komplette Seite fllt
und um 90 Grad gegen den Uhrzeigersinn gedreht werden soll, gibt es
die den `figure'- und `table'- entsprechenden `sidewaysfigure'- und
`sidewaystable'-Umgebungen.  Auerdem ist eine ltere Version dieses
Pakets auch fr LaTeX 2.09 verfgbar.
  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/  (fr LaTeX 2.09)


6.3.2) Wie kann ich mit TeX farbigen Text setzen?
 
Das LaTeX2e-Package `graphics' enthlt das Paket `color', das Befehle
zur Verfgung stellt, mit denen man Textteile einfrben, eine Box oder
den Hintergrund einer Seite farbig hinterlegen kann.  Dies
funktioniert natrlich nur, wenn das Ausgabegert (Drucker,
Bildschirm) dazu in der Lage ist und der dvi-Treiber die dazu
notwendige Funktionalitt hat, entsprechende \special-Anweisungen mit
den Farbbefehlen auszuwerten.
  Um das Paket `color' an verschiedene Ausgabegerte und dvi-Treiber
anzupassen, mu eine entsprechende Definitionsdatei fr 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' lt 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 fr 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 Fllen 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/


6.3.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 fhrt, da das Makro \SetFigFont nicht immer
definiert ist.  Nach einem Update des Paketes `Transfig', das
`fig2dev' enthlt, verschwindet der Fehler.  Kann man auf den Update
nicht warten, bietet sich auch als Einfachstlsung die Definition
\newcommand{\SetFigFont}[3]{} in der Dokumentprambel an.

transfig/
fig2dev:   CTAN: graphics/transfig/

--- DE-TeX-FAQ Ende Teil 6 ---
