PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellen über mehrere Seiten im Tabellenverzeichnis



shevvy
07-04-2014, 10:52
Hallo zusammen,

ich benutze in meiner Masterarbeit Tabellen, die über mehrere Seiten verlaufen. Das Problem: Die Fortsetzungen sind jeweils ein eigenständiger Eintrag im Tabellenverzeichnis. Ich möchte aber nur einen Eintrag pro Tabelle dort stehen haben. Im Internet habe ich als Lösung den Befehl \captionsetup{list=no} gefunden, das funktioniert aber nicht. Kann mir jemand bei meinem Problem helfen?

Lauffähiges Mnimalbeispiel:

\documentclass[german,%
fontsize=12pt,%
fleqn,%
toc=listof,%
numbers=noenddot,%
footnotes=multiple]{scrreprt}

\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage[labelfont=bf]{caption}


% - - - - - - -
\begin{document}

\listoftables
\newpage
% - - - Anfang der Tabelle - - -
\begin{ThreePartTable}
% - - - Fußnoten - - -
\begin{TableNotes}\footnotesize
\item [1] Test
\end{TableNotes}

% - - - Tabellenkopf - - -
\begin{longtable}{@{}p{0,2\textheight}p{0,2\texthe ight}p{0,2\textheight}@{}}
\caption{Tabelle über mehrere Seiten}\\[6pt]
\toprule
Spalte 1 & Spalte 2 & Spalte 3 \\
\midrule
\endfirsthead
\captionsetup{list=no} % Fortsetzung soll kein eigenständiger Eintrag im Tabellenverzeichnis sein
\caption{Tabelle über mehrere Seiten \emph{(Fortsetzung)}}\\[6pt]
\toprule
Spalte 1 & Spalte 2 & Spalte 3 \\
\midrule
\endhead

% - - - Tabellenfuß - - -
\midrule\nopagebreak
\multicolumn3r\dots % ... unten rechts zum Anzeigen der Fortsetzung
\endfoot
\bottomrule
\insertTableNotes
\endlastfoot

% - - - - Inhalt - - - - - - - - - - - -
\multicolumn{3}{c}{\emph{Kategorie 1}} \\
\midrule
Text 1 & Text 2 & Text 3\tnote{1}\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
\midrule
\multicolumn{3}{c}{\emph{Kategorie 2}} \\
\midrule
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
\midrule
\multicolumn{3}{c}{\emph{Kategorie 3}} \\
\midrule
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
\midrule
\multicolumn{3}{c}{\emph{Kategorie 4}} \\
\midrule
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3\\
Text 1 & Text 2 & Text 3
% - - - - - - - - - - - - - - - -
\label{tab:test}
\end{longtable}
\end{ThreePartTable}
% - - - Ende der Tabelle - - -
\end{document}

bobmalaria
07-04-2014, 12:08
hi,

dein fehler ist die zeile


\caption{Tabelle über mehrere Seiten \emph{(Fortsetzung)}}\\[6pt]

damit setz du eine caption auf jeder seite. denn alles was zwischen \endfisthead und \endhead steht ist der kopf auf jeder tabellenseite.
richtig ist, nur 1x caption aufzurufen, so wie du es direkt nach \begin{longtable} machst. sonst setzt du auf jeder seite einen anker und folglich erscheint auch so immer eine neue überschrift.

hier solltest du also nicht eine caption setzen sondern einfach eine


\multiocolumn{3}{c}{Fortsetzung der Tabelle}\\
damit bekommst du eine zentrierte spalte die so breit ist wie deine anderen spalten zusammen.

dazu gibt es auch ein beispiel in der longtable doku wenn ich mich recht erinnere.

klops
07-04-2014, 12:24
\caption für den Fortsetzungstitel zu verwenden ist keineswegs falsch, sondern sogar empfehlenswert, damit die Formatierung übereinstimmt. Man sollte in dem Fall aber ein leeres optionales Argument verwenden, damit kein Eintrag ins Tabellenverzeichnis erfolgt. Siehe die longtable-Anleitung, Abschnitt 3:


You may wish the caption on later pages to be different to that on the first page.
In this case put the \caption command in the first heading, and put a subsidiary
caption in a \caption[] command in the main heading. If the optional argument
to \caption is empty, no entry is made in the list of tables. Alternatively, if
you do not want the table number to be printed each time, use the \caption*
command.

BTW: shevvy, Du solltest Code in Beiträgen als solchen markieren (http://www.mrunix.de/forums/misc.php?do=bbcode). Das geht in der erweiterten Ansicht auch einfach mit Hilfe des #-Knopfes in der Toolbar.

shevvy
07-04-2014, 15:58
Vielen Dank für die schnelle Antwort, macht genau das was ich wollte :)

PS: Hinweis aufgenommen, werde Code nächstes mal als solchen kenntlich machen