PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit subfig package und Tabellen



urias84
06-10-2008, 15:58
Hallo zusammen,

ich bruache Hilfe mit dem subfig package. Wenn ich ein subfloat innerhalb einer Tabelle öffne und dann anschließend darauf im Text verweise, dann stimmt die angezeigte Zahl nicht (1 zu hoch). Dies geschieht jedoch nur wenn ich Tabellenüberschriften verwende. Bei Tabellenunterschriften funktioniert alles einwandfrei. Kann mir da jemand weiterhelfen wie ich dies Problem bei den Überschriften beseitigen kann?

Das Ganze sieht in etwa so aus:

\begin{table}[htbp]\caption{table}\label{table}
\subfloat[subf1]{\label{subf1}\begin{tabular}...\end{tabular}}
\subfloat[subf2]{\label{subf2}\begin{tabular}...\end{tabular}}
\end{table}

Wenn ich nun mit \ref{subf1} einen Verweise erzeuge, ist die angezeigte Zahl um 1 zu hoch (bspw. 1.2 statt 1.1).

Besten Dank schonmal.

localghost
06-10-2008, 16:09
Könnte mit der richtigen Platzierung der Referenzmarke für die subfloat-Umgebungen zusammenhängen.


\begin{table}[!ht]
\centering
\caption{Tabelle}\label{tab:tabelle}
\subfloat[subf1\label{subf1}]{%
\begin{tabular}
...
\end{tabular}
}
\subfloat[subf2\label{subf2}]{
\begin{tabular}
...
\end{tabular}
}
\end{table}

Achte darauf, dass die Marken direkt bei den Überschriften der subfloat-Umgebungen stehen.


MfG
Thorsten¹

urias84
06-10-2008, 16:13
Ich hab das jetzt mal geändert und leider tut sich nichts. Wie gesagt der Verweis funktioniert, wenn ich \caption vor \end{table} und nach der letzten subfloat schreibe.

localghost
06-10-2008, 18:25
Kann ich so nicht nachvollziehen. Tste mal dieses Minimalbeispiel (http://www.minimalbeispiel.de).

\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[font=small,labelfont=bf]{caption}
\usepackage[font=footnotesize]{subfig}
\usepackage{txfonts}

\parindent0em

\begin{document}
\begin{table}[!ht]
\centering
\caption{Tabelle}\label{tab:tabelle}
\subfloat[Teiltabelle Eins\label{subtab-1:tabelle}]{%
\begin{tabular}{lcr}
Eins & Zwei & Drei
\end{tabular}
}
\subfloat[Teiltabelle Zwei\label{subtab-2:tabelle}]{%
\begin{tabular}{lcr}
Eins & Zwei & Drei
\end{tabular}
}
\end{table}
Tabelle~\subref{subtab-1:tabelle} oder Tabelle\subref*{subtab-1:tabelle}
\end{document}
Funktioniert bei mir einwandfrei.

urias84
06-10-2008, 20:24
Das Beispiel funktioniert bei mir auch. Wenn man allerdings \subref durch \ref ersetzt klappt es nicht mehr. Dann steht da bei mir "Tabelle 2a". Ist der Befehl \ref in diesem Zusammenhang einfach falsch und man kann einen anderen verwenden? Ich möchte da aber ausf jeden Fall Tabelle 1a und nicht nur Tabelle a stehen haben. Kann man vielleicht die counter irgendwie manipulieren, sodass es funktioniert?

sommerfee
06-10-2008, 20:35
Das subfig-Paket ist darauf angewiesen, daß es per Option gesagt bekommt, ob die \caption oben (also vor \subfloat) oder unten (also nach \subfloat) steht.

Ein \captionsetup{tableposition=top} im Dokumentenvorspann bzw. die Aufnahme von "tableposition=top" in die Optionen beim Laden des caption-Paketes sollte also dein Problem lösen.

Zum Nachlesen siehe subfig-Anleitung, Abschnitt 3.1.5: "If you find that you sub-references do not agree with the top-level labels, than you may need to specifically set the ‘position’."

Gruß,
Axel

localghost
06-10-2008, 20:45
Wo Axel schon caption (http://www.ctan.org/pkg/caption) erwähnt, solltest Du vielleicht einen Blick auf das Paket subcaption werfen, das damit zusammen ausgeliefert wird. Es hat eine eigene Anleitung und bietet ähnliche Strukturen.

urias84
06-10-2008, 21:10
Ah, besten Dank localghost und sommerfee . Jetzt ist es genau so wie ich es haben wollte.