PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : longtable in subfig



ProfessorChaos
21-11-2010, 12:13
Hi,

ich habe zwei Tabellen, die inhaltlich zusammen gehören. Daher möchte ich sie in einer "gemeinsamen" figure zusammenfassen, da es dann eine zusammenfassende Caption gibt und zwei Individuelle. Dies sieht dann also so aus:



Table 1: Caption for both tables.

(a) Caption for Table (a).
-- the 1st actual table --

(b) Caption for Table (b)
-- the 2nd actual table --

Mit dem Paket subfig kann ich das so auch wunderbar erreichen... Das ganze sieht in LaTeX wie folgt aus:


\documentclass{article}
\usepackage{subfig}
\begin{document}

\begin{table}
\centering
\caption{Caption for both Tables.}
\subfloat[][Caption for Table (a)]{
\begin{tabular}{ccc}
a & b & c\\
a & b & c
\end{tabular}
}
\\
\subfloat[][Caption for Table (b)]{
\begin{tabular}{ccc}
a & b & c\\
a & b & c
\end{tabular}
}
\end{table}

\end{document}

Nun (endlich^^) zu meinem Problem: Die erste sub-Tabelle ist sehr lang, so dass diese auf mehrere Seiten aufgeteilt werden muss. Nur wie?

Mir scheint (durch probieren, googeln und doc lesen), als würde longtabe innerhalb einer Subfg nicht funktionieren. Ersetzt man also die erste tabular-Umgebung durch eine longtable-Umgebung (und fügt natürlich \usepackage{longtable} ein), so kompiliert das Dokument nicht mehr.
Weiß also jemand, ob man subfig und longtable doch irgendwie kombinieren kann?

Als Alternative habe ich das Paket subfloat versucht, allerdings habe ich auch hier Probleme. :(

Mit dem folgenden Code:


\documentclass{article}
\usepackage{subfloat}
\usepackage{longtable}
\begin{document}

\begin{subtables}
\begin{longtable}[c]{ccc}
\caption{Caption for Table (a)}\\
a & b & c\\
a & b & c
\end{longtable}
\ \\
\begin{table}
\centering
\caption{Caption for Table (a)}
\begin{tabular}{ccc}
a & b & c\\
a & b & c
\end{tabular}
\end{table}
\end{subtables}

\end{document}


erreicht man die folgende Ausgabe:


Table 1a: Caption for Table (a).
-- the 1st actual table --
*HERE, THERE IS A PAGEBREAK*
Table 1b: Caption for Table (b).
-- the 2nd actual table --
-- the continuation of the 1st table --

D.h. also, dass auf der zweiten Seite zuerst die zweite Tabelle abgedruckt wird und *danach* die erste Tabelle fortgesetzt wird! Das ist natürlich vollkommener Unsinn... Was man hier natürlich eigentlich möchte, ist:


Table 1a: Caption for Table (a).
-- the 1st actual table --
*HERE, THERE IS A PAGEBREAK*
-- the continuation of the 1st table --
Table 1b: Caption for Table (b).
-- the 2nd actual table --

Weiß jemand, wie man dieses Problem löst?

Von diesem Problem abgesehen ist natürlich auch noch etwas doof, dass es keine gemeinsame Caption für beide Tabellen gibt, wie es bei subfig der Fall ist. Aber dies kann man eventuell mit dem Caption-Paket lösen. Ich habe mir das nur noch nicht angesehen, da ich das Hauptproblem (Vertauschung der Tabellenfortsetzung und der neuen Tabelle) noch nicht gelöst habe...

Ich bin um alle Hilfestellungen dankbar, denn ich versuche dieses Problem schon seit einigen Stunden zu lösen...

u_fischer
21-11-2010, 14:46
Gleitumgebungen (table, subtables usw) sind immer einseitig. Wenn du möchtest, dass eine longtable über mehrere Seiten geht, darfst du sie nicht in eine derartige Umgebung stecken.

ProfessorChaos
22-11-2010, 13:46
Wenn du möchtest, dass eine longtable über mehrere Seiten geht, darfst du sie nicht in eine derartige Umgebung stecken.
Ich weiß nicht, ob diese Aussage pauschal so stimmt, denn wie oben beschrieben funktioniert die Longtable schließlich innerhalb der subtables-Umgebung. Einziges Problem ist, dass die Reihenfolge der Tabellen auf der nächsten Seite vertauscht ist.

Aber egal, ich habe mich für das folgende Workaround entschieden:
Ich simuliere die longtable einfach von Hand und passe die Counter entsprechend an. Das sieht dann in LaTeX so aus:


\documentclass{article}
\usepackage{subfig}
\begin{document}

\begin{table}
\centering
\caption{Caption for both Tables}
\subfloat[][Caption for Table (a)]{
\begin{tabular}{ccc}
a & b & c\\
a & b & c
\end{tabular}
}
\end{table}

\begin{table}
\centering
\addtocounter{table}{-1}
\caption{Caption for both Tables (continued)}
\subfloat[][Caption for Table (a) (continued)]{
\begin{tabular}{ccc}
a & b & c\\
a & b & c
\end{tabular}
}
\ \\
\subfloat[][Caption for Table (b)]{
\begin{tabular}{ccc}
a & b & c\\
a & b & c
\end{tabular}
}
\end{table}

\end{document}

Und in der PDF dann so:


Table 1: Caption for both tables.
(a) Caption for Table (a).
-- the beginning of the first table --
*HERE, THERE IS A PAGEBREAK*
Table 1: Caption for both tables (continued).
(a) Caption for Table (a) (continued).
-- the end of the first table --
(b) Caption for Table (b)
-- the 2nd table --

Ich weiß, dass das subfig-Paket den Befehl \ContinuedFloat zur Verfügung stellt, allerdings würde dann das Ende der ersten Tabelle mit (b) beginnen, statt mit (a).

Vielleicht hilft dies ja dem ein oder anderen...