% % bgteubner class bundle % % tex_bilder.tex % Copyright 2003--2012 Harald Harders % % This program may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your opinion) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % This program consists of all files listed in manifest.txt. % =================================================================== \chapter{Bilder und Tabellen}% \label{chap:tex:bilder}% Bilder und Tabellen sind so genannte \emph{Fließobjekte}\texindex{Fließobjekt}, die von der Stelle, an der sie im Quelltext stehen, an die Position im Dokument "`fließen"'. Da für beide größtenteils die gleichen Dinge gelten, werden sie hier gemeinsam am Beispiel von Bildern behandelt. % =================================================================== \section{Bilder}% \texindex{Bild}% Der Aufbau eines Bildes im Quelltext ist etwa folgendermaßen: \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] \begin{figure}% \centering \includegraphics|marg[Dateiname]% \caption|marg[Bildunterschrift]% \label|marg[Label]% \end{figure}% \end{verbatim} \envindex{figure}\macroindex{caption}\macroindex{label}% Der \verb|\centering|"=Befehl\macroindex{centering} sorgt dafür, dass das Bild horizontal zentriert gesetzt wird. Die von vielen \LaTeX"=Benutzern verwendete Umgebung \cs{begin\{center\}} \ldots\ \cs{end\{center\}} fügt vertikalen Platz ein und \emph{darf deshalb nicht verwendet werden!} Anstelle des hier gezeigten \macroindex{includegraphics}% \feinschliff{Befehls \cs{includegraphics}}{\cs{includegraphics}"=Befehls}% {\cs{includegraphics}"=Befehls}{\cs{includegraphics}"=Befehls} können alle Dinge stehen, die zur Darstellung des Bildes notwendig sind, beispielsweise Unterbilder, erzeugt mit dem \verb|\subfigure|"=Befehl\macroindex{subfigure} \cite{cochran1995a}, der zur Verfügung steht, weil automatisch das Paket \verb|hhsubfigure| geladen wird, das eine leicht veränderte Version des \verb|subfigure|"=Pakets ist. Die Angabe des Dateinamens im \verb|\includegraphics|"=Befehl sollte ohne die Dateiendung\texindex{Dateiendung} auskommen, da \pdfLaTeX\ dann automatisch die entsprechende Endung auswählen kann. Da für den Teubner Verlag zur Erzeugung von \acro{PDF}"=Dateien das Programm \pdfLaTeX\texindex{pdflatex@\pdfLaTeX} verwendet werden muss, müssen alle Bilder in einem der folgenden Dateiformate vorliegen: \acro{JPG}\texindex{JPG"=Datei@\acro{JPG}"=Datei}, \acro{PNG}\texindex{PNG"=Datei@\acro{PNG}"=Datei} oder \acro{PDF}\texindex{PDF"=Datei@\acro{PDF}"=Datei}. \acro{EPS}"=Dateien\texindex{EPS"=Datei@\acro{EPS}"=Datei} können nicht verarbeitet werden. Sie können jedoch unter Verwendung des Programms \verb|epstopdf|\srcindex{epstopdf} und Ghostscript\footnote{Sowohl \texttt{epstopdf} als auch Ghostscript sind auf der \TeXLive"=\acro{CD} enthalten. Siehe dazu auch Anhang~\ref{sec:installation-hilfe}.} bzw.\ mit Adobe Acrobat ins \acro{PDF}"=Format umgewandelt werden. Die Bildunterschrift\texindex{Bildunterschrift} sollte so ausführlich sein, dass man den Bildinhalt versteht, auch ohne den Fließtext zu lesen. Wenn ein Bilderverzeichnis erstellt wird, sollte dann für das Bilderverzeichnis eine Kurzform der Bildunterschrift verwendet werden. Das wird erreicht, indem in eckigen Klammern die Kurzform angegeben wird: \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] \caption|oarg[Kurzform]|marg[Langform der Bildunterschrift]% \end{verbatim} \macroindex{caption}% Das Label muss \emph{in} den oder \emph{nach} dem \verb|\caption|"=Befehl eingefügt werden, da ansonsten die Bildnummer nicht zuverlässig richtig zugeordnet wird. Die Kommentarzeichen, die am Ende der Zeilen \verb|\begin{figure}|\envindex{figure} und \verb|\end{figure}| angehängt sind, sind in den meisten Fällen ohne Wirkung. Sie werden dann wichtig, wenn innerhalb eines Absatzes zwei Fließumgebungen aufeinander folgen, wie im folgenden Beispiel illustriert: \begin{verbatim}[\small] ... Fließtext Fließtext. % \begin{figure}% ... \end{figure}% % \begin{figure}% ... \end{figure}% % Fließtext Fließtext ... \end{verbatim} Ohne die \verb|%|"=Zeichen würde in den Fließtext ein zusätzliches, unerwünschtes Leerzeichen eingefügt werden. Aus diesem Grund sollten Sie immer die Kommentarzeichen an die entsprechenden Zeilen anhängen. Wie im vorigen Beispiel gezeigt, ist es hier, wie auch bei den Formeln, sinnvoll, eine Gliederung des Quelltextes durch Zeilen, die nur ein Kommentarzeichen enthalten, zu erstellen. Die in \LaTeX\ mögliche Einschränkung der Fließumgebungsplatzierung (Stichwort \verb|htbp|) soll bei Büchern des Teubner Verlags nicht verwendet werden. In Ausnahmefällen sind die Parameter \verb|t| und \verb|p| erlaubt, \verb|h|, \verb|b| und \verb|!| jedoch nicht. Um die Fließumgebungen in der Nähe des zugehörigen Textes zu halten, ist es eine vernünftige Strategie, ein Bild oder eine Tabelle im Quelltext immer direkt nach dem entsprechenden Verweis einzufügen. Wenn man dabei überflüssige Leerzeilen vermeidet, werden auch keine unerwünschten Absätze erzeugt. Folgendes Beispiel illustriert das: \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] Bild~\ref{fig:bild1} zeigt dies und jenes Verhalten. % \begin{figure}% \centering |meta[Bilddefinitionen] \label{fig:bild1}% \end{figure}% % Auf der linken Seite ist |ldots zu sehen |ldots \end{verbatim} Sollen einzeln nummerierte Teilbilder wie in Bild~\ref{fig:bildpositionen} erzeugt werden, kann dies mit dem Befehl \cs{subfigure\oarg{Bildunterschrift}\marg{Bilddefinitionen}} erreicht werden. Anders als bei den Defaulteinstellungen des zugrunde liegenden \verb|subfigure|"=Pakets werden um die Teilbilder keine automatischen Abstände eingefügt. Dies muss vom Autoren selbst vorgenommen werden. Dadurch können die gewünschten Abstände exakt erzeugt werden. Sollen beispielsweise zwei Teilbilder nebeneinander gesetzt werden, kann dies durch folgenden Code erreicht werden: \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] \begin{figure}% \hfil \subfigure|oarg[Bildunterschrift 1]{% \includegraphics|marg[Dateiname 1]% \label|meta[Label 1]% }% \hfil \subfigure|oarg[Bildunterschrift 2]{% \includegraphics|marg[Dateiname 2]% \label|meta[Label 2]% }% \hfil \caption|marg[Bildunterschrift 3]% \label|marg[Label 3]% \end{figure}% \end{verbatim} Die \cs{hfil}"=Befehle sorgen dafür, dass links, in der Mitte und rechts die gleichen Abstände gesetzt werden. Sollen die beiden Teilbilder dagegen links und rechts außen gesetzt werden, kann zwischen die beiden \cs{subfigure}"=Befehle ein \cs{hfill} geschrieben und die \cs{hfil} fortgelassen werden. Wird mit dem \cs{label}"=Befehl auf ein Teilbild verwiesen, so wird die Hauptbildnummer sowie die Teilbildnummer geschrieben, z.\,B.\ "`Bild~\ref{fig:bildpositionen1}"'. Soll nur auf ein Teilbild verwiesen werden, zum Beispiel "`Siehe Teilbild~\subref{fig:bildpositionen1} aus Bild~\ref{fig:bildpositionen}"', so kann dies mit dem \cs{subref}"=Befehl getan werden, der ansonsten wie der \cs{label}"=Befehl verwendet wird. \bigskip Manchmal kommt es vor, dass in einem Bild so viele Informationen untergebracht werden sollen, dass diese nicht auf eine Seite passen. Es ist dann zweckmäßig, wenn die Bilder auf unterschiedlichen Seiten eine gemeinsame Bildnummer erhalten. Dies kann mit der \env{subfigures}"=Umgebung aus dem \verb|subfloat|"=Paket~\cite{subfloat2003a} erreicht werden. Diese wird \emph{außerhalb} der \env{figure}"=Umgebungen, die eine gemeinsame Nummer erhalten sollen, gesetzt, z.\,B.\ so: \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] \begin{subfigures}% \begin{figure}% \centering \includegraphics|marg[Dateiname 1]% \caption|marg[Bildunterschrift 1]% \label|marg[Label 1]% \end{figure}% |dots \begin{figure}% \centering \includegraphics|marg[Dateiname 2]% \caption|marg[Bildunterschrift 2]% \label|marg[Label 2]% \end{figure}% \end{subfigures}% \end{verbatim} Die Nummerierung der \feinschliff{einzelnen }{}{}{}% Bilder erhält zusätzlich zur gemeinsamen Nummer eine Nummerierung des Teilbildes in der Form "`Bild~\meta{Hauptnummer}\,(\meta{Teilnummer}/\meta{Anzahl})"', z.\,B.\ "`Bild~3.1\,(1/3)"'. % =================================================================== \section{Tabellen}% \label{sec:tex:tabellen}% \texindex{Tabelle}% Eine Tabelle\texindex{Tabelle} wird folgendermaßen erzeugt: \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] \begin{table}% \centering \caption|marg[Tabellenüberschriftstext]% \label|marg[Label]% \begin{tabular}|marg[Spaltendefinition] \toprule |meta[Tabellenkopf] \\ \midrule |meta[Tabelleninhalt] \\ \midrule |meta[Tabellenfuß] \\ \bottomrule \end{tabular} \end{table}% \end{verbatim} \envindex{table}\envindex{tabular}% Der wichtigste Unterschied zu einem Bild ist, dass die Tabellenüberschrift\texindex{Tabellenüberschrift} \emph{vor} der eigentlichen Tabelle definiert wird, damit sie auch wirklich als Überschrift gesetzt wird. Der \meta{Tabellenfuß} (inklusive dem vorangehenden \cs{midrule}) ist häufig nicht nötig und kann weggelassen werden, wie es auch in Tabelle~\ref{tab:tabelle_beispiel} getan wurde. In der Tabelle selbst werden \feinschliff{--~wie im Sourcecode oben zu sehen~-- }{}{}{}% zur Unterteilung die Befehle \verb|\toprule|\macroindex{toprule}, \verb|\midrule|\macroindex{midrule} und \verb|\bottomrule|\macroindex{bottomrule} verwendet, die horizontale Linien unterschiedlicher Dicke erzeugen. Ein weiterer Unterschied zu dem normalen Befehl \verb|\hline|\macroindex{hline}, der nicht verwendet werden darf, besteht in den Abständen, die bei den drei Befehlen besser gestaltet werden. Als Ersatz für den \verb|\cline|"=Befehl\macroindex{cline} dient der Befehl \verb|\cmidrule|\macroindex{cmidrule}. Die Verwendung dieses Befehls ist in der Beschreibung zum \verb|booktabs|"=Paket~\cite{fear2003a} erläutert. In der Spaltendefinition der \verb|tabular|"=Umgebung\envindex{tabular} darf das Symbol für vertikale Linien (\verb/|/) nicht verwendet werden, da, wie in Abschnitt~\ref{sec:tabellen} beschrieben, nur horizontale Linien verwendet werden dürfen. Mehrseitige Tabellen werden mit der \env{longtable}"=Umgebung gesetzt. Konsultieren Sie bitte für eine ausführliche Beschreibung die Dokumentation zum \verb|longtable|"=Paket~\cite{carlisle2000a}. An dieser Stelle wird nur eine kurze Einführung gegeben. Eine lange Tabelle wird folgendermaßen definiert: \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] \begin{longtable}|marg[Spaltendefinition] \caption|marg[Tabellenüberschriftstext]\label|marg[Label]\\ % \toprule |meta[Tabellenkopf] \\ \midrule \endhead |meta[Tabellenfuß] \\ \bottomrule \endfoot |meta[Tabelleninhalt] \\ \end{longtable} \end{verbatim} % Wichtige Unterschiede zu normalen Tabellen sind diese: \begin{itemize*} \item Die \env{longtable}"=Umgebung wird nicht wie die \env{tabular}"=Umgebung von einer \env{table}"=Umgebung umschlossen, sondern steht für sich alleine. \item Für die Zentrierung muss nicht explizit gesorgt werden. \item Der \cs{caption}"=Befehl wird innerhalb der \env{longtable}"=Umgebung angegeben. Das Label sollte im Argument des \cs{caption}"=Befehls oder direkt \emph{danach} definiert werden. Es folgt --~anders als in der \env{table}"=Umgebung~-- ein expliziter Zeilenumbruch mit Hilfe des \cs{\textbackslash}"=Befehls. \item Die Tabelle wird nicht durchgängig in der Reihenfolge definiert, in der sie gesetzt wird. Zunächst werden die Tabellenzeilen und Linien definiert, die auf jeder Seite den Tabellenkopf bilden (Im Beispiel \meta{Tabellenkopf}). Ihre Definition wird mit \cs{endhead} abgeschlossen.\footnote{Soll sich der Tabellenkopf auf der ersten Tabellenseite von den anderen unterscheiden, kann zusätzlich ein mit \cs{endfirsthead} abgeschlossener Abschnitt eingefügt werden.} Es folgt die Definition des \meta{Tabellenfuß}es, die mit \cs{endfoot} abgeschlossen werden.\footnote{Hier kann für die letzte Seite ein Bereich mit \cs{endlastfoot} eingefügt werden.} Auch wenn kein Tabellenfuß vorgesehen ist, sollte hier zumindest ein \cs{bottomrule} enthalten sein, damit die Tabelle auf jeder Seite am Fuß eine Linie erhält. Als letztes wird der eigentliche Inhalt der Tabelle definiert. \item Da \env{longtable}"=Umgebungen im Gegensatz zu \env{table}"=Umgebungen nicht fließen, kann es vorkommen, dass die Reihenfolge der Tabellen an einer langen Tabelle durcheinander gerät. Achten Sie bitte selbst darauf, dass die Reihenfolge korrekt bleibt. Verschieben Sie zum Beheben des Problems beispielsweise die Definition der fließenden Tabellen etwas im Sourcecode. \end{itemize*} Es kann vorkommen, dass eine Linie in der Mitte der Tabelle auf den Fuß der Seite fällt, so dass zwei Linien direkt aufeinander folgen. Dies ist nicht erwünscht. Leider bietet \LaTeX\ keine Möglichkeit, dies zu verhindern. Daher muss der Autor selbst dafür sorgen, dass die überflüssige Linie entfernt wird. Dies wird normalerweise dadurch erreicht, dass der \cs{midrule}"=Befehl in der Definition des Tabelleninhalts auskommentiert wird. Dies sollte allerdings als eine der letzten Arbeiten am Dokument getan werden, da jede noch so geringfügige Änderung am Umbruch dafür sorgt, dass die Linien --~wie gewünscht~-- nicht mehr aufeinandertreffen. Hat der Autor die Linie voreilig gelöscht, so fehlt sie dann in der Tabelle. % =================================================================== \section{Eigene Fließumgebungen}% \label{sec:tex:fliessumgebung}% \texindex{Fließumgebung}% Außer Bildern und Tabellen kann es auch notwendig werden, weitere Fließumgebungen einzurichten. Beispielsweise kann der Autor zwischen Grafiken und Fotografien unterscheiden wollen. Neue Fließumgebungen können mit Hilfe des \LaTeX"=Pakets \texttt{float} erzeugt werden. Es wird mittels \begin{verbatim}[\small] \usepackage{float} \end{verbatim} eingebunden. Eine neue Fließumgebungsart wird schließlich mit folgender Befehlsfolge eingerichtet: \begin{verbatim}[\small\makeescape\|\makebgroup\(\makeegroup\)] \floatstyle|marg(Position) \newfloat|marg(Typ){tp}|marg(Dateiendung)[chapter] \floatname|marg(Typ)|marg(Überschrift) \end{verbatim} Dabei wird für \meta{Position} entweder \texttt{komaabove} oder \texttt{komabelow} eingesetzt, je nachdem, ob die Legende als Überschrift (wie bei Tabellen) oder als Unterschrift (wie bei Bildern) gesetzt wird. Die anderen vom \texttt{float}"=Paket angebotenen Stile dürfen nicht verwendet werden. \meta{Typ} ist der Name der neu eingerichteten Umgebung. \texttt{\{tp\}} sorgt für die korrekte Platzierung der neuen Fließumgebung. Die Optionen \texttt{h} und \texttt{b} dürfen nicht verwendet werden. Die \meta{Dateiendung} gibt die Endung der Datei für das Verzeichnis der neuen Fließumgebung an. Bilder verwenden z.\,B.\ \texttt{lof} für "`List of figures"'. Es ist darauf zu achten, dass eine Endung verwendet wird, die noch unbenutzt ist. Der Eintrag \texttt{[chapter]} sorgt dafür, dass die neue Fließumgebung kapitelweise nummeriert wird, wie es auch bei den Bildern und Tabellen getan wird. Mit \cs{floatname} wird für den Fließumgebungs"=\meta{Typ} festgelegt, welche \meta{Überschrift} sie trägt. Beispielsweise erzeugt \begin{verbatim}[\small] \floatstyle{komabelow} \newfloat{graphics}{tp}{gra}[chapter] \floatname{graphics}{Grafik} \end{verbatim} die \texttt{graphics}"=Umgebung, die wie eine \texttt{figure}"=Umgebung die Legende unter dem Umgebungsinhalt hat, die wiederum die Überschrift "`Grafik"' trägt, wie in der Beispielgrafik~\ref{gra:beispiel1} gezeigt.% % \begin{graphics}% \centering Hier wäre eine Grafik \ldots \caption{Dies ist die Legende zur Grafik.}% \label{gra:beispiel1}% \end{graphics}% Ein Verzeichnis der neuen Fließumgebung wird mit dem Befehl \begin{verbatim}[\small\makeescape\|\makebgroup\[\makeegroup\]] \listof|marg[Typ]|marg[Überschrift] \end{verbatim} erzeugt, beispielsweise mit folgendem Befehl: \begin{verbatim}[\small] \listof{graphics}{Verzeichnis der Grafiken} \end{verbatim} % =================================================================== %%% Local Variables: %%% mode: latex %%% TeX-master: "bgteubner" %%% End: