Seite 1 von 2

\cite in subfig

Verfasst: Do 23. Jul 2009, 11:12
von William
Hi,
ich nutze bei normalen Grafiken gerne die Option, ein cite-Kommando außerhalb der Caption zu benutzen, damit das Zitat direkt zentriert unter dem Bild angezeigt wird und nicht erst in der Bildbeschreibung:
\begin{figure}[htbp]
	\centering
		\includegraphics[width=0.30\textwidth]{bilder/Bild1.jpg}
	\caption{Bild1.}
	\cite{bild:Bild1}
	\label{fig:Bild1}
\end{figure}
Wenn ich diese Option aber bei mehreren Bildern benutze, die mittels subfig angeordnet sind, erscheint die Quellenangabe immer direkt hinter dem Bild in derselben Zeile, was sehr unschön ist.
\begin{figure}[htbp]
	\centering
	\subfloat[Bild2.]{
		\includegraphics[height=3cm]{bilder/Bild2.jpg}
		\cite{bild:Bild2}
		\label{fig:Bild2} 
	}
	\hspace{0.8cm}
	\subfloat[Bild3.]{
		\includegraphics[height=3cm]{bilder/Bild3.jpg}
		\cite[][S. 424]{Fin06}
		\label{fig:Bild3}
	}
		\caption{Zwei Bilder.}
\end{figure}
Was ich mir wünsche, ist also ein Zeilenumbruch zwischen Bild und Quellenangabe. Ich habe festgestellt, dass dieser Zeilenumbruch beim normalen Bild (ohne subfig) irgendwie durch das Caption kommen muss; schreibe ich cite nämlich hinter caption, bekomme ich auch keinen. Aber bei den subfigures kann man ja kein Caption benutzen.
Danke im Voraus!

Verfasst: So 2. Aug 2009, 11:53
von sommerfee
Anstelle von \subfloat könntest du die subfigure-Umgebung meines subcaption-Paketes verwenden. Innerhalb dieser Umgebung kannst du dann wie gewohnt mit \includegraphics, \caption, \cite und Zeilenumbrüchen arbeiten.

Der Nachteil allerdings wäre, daß du dich in diesem Falle um die vertikale Ausrichtung der Abbildungen selber kümmern müsstest.

Liebe Grüße,
Axel

Verfasst: Mo 10. Aug 2009, 17:18
von William
Danke, das wäre natürlich eine Möglichkeit.
Aber könnte man nicht einfach im Quellcode des subfig-Packages manuell einen Zeilenumbruch einfügen? Ich kenne mich nur leider mit der Programmierung von Packages überhaupt nicht aus.

Verfasst: Mo 10. Aug 2009, 20:01
von sommerfee
Ich habe schon lange nicht mehr in die Quellen des subfig-Paketes geschaut, aber wenn ich mich recht erinnere misst es intern die Breite des Inhaltes, um ihn dann in eine passend breite Box setzen zu können.

Mit Zeilenumbrüchen sieht das also hier ganz schlecht aus. Man bräuchte anstelle von \subfloat eine Konstruktion, wo man manuell selber eine Breite vorgeben kann. Also so etwas meine subfigure-Umgebung :wink:

Alternativ könnte man sich auch eine Konstruktion basteln, die anstelle der beiden Argumente von \subfig ein drittes Argument erlaubt, die Quellenangabe, und die passend setzt. Einfach ist das aber wohl auch nicht.

Liebe Grüße,
Axel

Verfasst: Mi 12. Aug 2009, 18:56
von William
Danke für die Antwort. Ich habe jetzt eine Grafik ins Subcaption-Paket umgesetzt. Es funktioniert auch soweit so, wie ich mir das vorgestellt hatte.
Allerdings musste ich das floatrow-Package auskommentieren, da es sich mit dem Subcaption-Package nicht vertragen hat (Fehlermeldung: Caption(s) lost.). Das brauche ich dann auch nicht unbedingt, aber ich hatte vorher mit Hilfe des Befehls
\floatsetup[figure]{style=BOXED}
einen Rahmen um jede Figure. Den hätte ich gerne wieder.
Mit \fbox bekomme ich aber nur einen Rahmen, der die Caption ausschließt. Was ist da die einfachste Möglichkeit bzw. was mache ich falsch? Am schönsten wäre es natürlich, wenn man global einen Rahmen um alle figures definieren könnte, damit ich das nicht jedes Mal da stehen habe.

Verfasst: Mi 12. Aug 2009, 19:12
von sommerfee
William hat geschrieben:Allerdings musste ich das floatrow-Package auskommentieren, da es sich mit dem Subcaption-Package nicht vertragen hat (Fehlermeldung: Caption(s) lost.).
Das sollte aber nicht sein! Hast du ein lauffähiges Dokument für mich, so daß ich das hier nachstellen und untersuchen kann?

Liebe Grüße,
Axel

Verfasst: Do 13. Aug 2009, 10:38
von William
Gerne (anbei).
Gruß
William

Verfasst: Fr 14. Aug 2009, 09:19
von sommerfee
Danke!

Das ergibt tatsächlich auch bei mir Probleme. Ich tippe darauf, daß dies mit den Änderungen von floatrow Version 0.2 zu 0.3 zusammenhängt, denn vor ca. 1-2 Jahren (also mit der damaligen floatrow-Version) hat sowas noch definitiv funktioniert.

Ich sehe zu, daß ich im Laufe des Tages einen Workaround für dich zusammenzimmere und das Problem langfristig in Zusammenarbeit mit Olga Lapko (Autorin des floatrow-Paketes) beseitige.

Liebe Grüße,
Axel

Verfasst: Fr 14. Aug 2009, 20:41
von sommerfee
Hier kommt der versprochene Workaround:
\makeatletter
\let\caption@makecaption\@makecaption
\g@addto@macro\caption@subtypehook{%
  \let\@makecaption\caption@makecaption}
\makeatother
Dies bitte nach dem Laden des caption+subcaption-Paketes einfügen.

Ab der nächsten Version des caption- und floatrow-Paketes wird das dann nicht mehr notwendig sein.

Liebe Grüße,
Axel

Verfasst: Sa 15. Aug 2009, 20:23
von William
Ok, vielen Dank für Deine Mühe!
Ich werde es am Montag testen.

Grüße

William