Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit subfig package und Tabellen
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, 17: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¹
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, 19: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.
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, 21: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, 21: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.
Ah, besten Dank localghost und sommerfee . Jetzt ist es genau so wie ich es haben wollte.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.