PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei der subfig-Umgebung



dorennee
08-09-2008, 01:02
Hallo!

Ich habe folgendes Konstellation:
2 Bilder auf einer Seite untereinander.
ich bin das Problem mit figure-subfigure-minipage-Umgebung angegangen.
Das klappt auch, nur möchte ich gern die jeweiligen Beschriftungen der subfigures seitlich und nicht unter dem jeweiligen Bild. Gibt es da eine Möglichkeit?
Außerdem benutze ich die Label der subfigure in der Gesamtbildunterschrift. Leider macht er da einen Fehler. Statt der 1.2.3(a) gibt er dort eine 1.3(a) aus, verschluckt also die section-nummer.
Woran könnte das liegen und wie kann ich das Problem beheben?

Liebe grüße,
dorenne

sommerfee
08-09-2008, 08:18
Das klappt auch, nur möchte ich gern die jeweiligen Beschriftungen der subfigures seitlich und nicht unter dem jeweiligen Bild. Gibt es da eine Möglichkeit?

Weder das subfigure noch das subfig-Paket unterstützen dies. Das subcaption-Paket hingegen bietet einen Befehl namens \subcaption, mit dem man Unter-Beschriftungen an beliebigen Orten erstellen kann, also auch neben dem Bild. (Man müsste dann selber dafür sorgen, daß die Unterschrift richtig neben das Bild kommt, indem man z.B. beides in einzelne \parboxen oder Minipages packt.) Das floatrow-Paket bietet hierfür auch automatisierte Möglichkeiten an.



Außerdem benutze ich die Label der subfigure in der Gesamtbildunterschrift. Leider macht er da einen Fehler. Statt der 1.2.3(a) gibt er dort eine 1.3(a) aus, verschluckt also die section-nummer.
Woran könnte das liegen und wie kann ich das Problem beheben?

Das \label muß in den Beschriftungstext hinein (und nicht etwa nach dem \subfigure oder \subfloat-Aufruf), dann sollte es klappen.

Gruß,
Axel

dorennee
08-09-2008, 12:50
Hallo Axel, vielen Dank für die schnellen Lösungsvorschläge. Ich habe mir das floatrow-Paket angeschaut und ausprobiert. Leider bin ich latexeinsteiger und habe auch keinen experten in meiner Umgebung, deshalb nicht viel verstanden.
Wie meinst Du das mit \label in den Beschriftungstext? Ich füge einfach mal meinen bisherigen Code ein:

\begin{figure}
\subfigure[]
{
\label{fig:mini:subfig:a}
\begin{minipage}[c]{\textwidth}
\centering
\includegraphics[width=13cm]{pic1.pdf}
\end{minipage}
}
\subfigure[]
{
\label{fig:mini:subfig:b}
\begin{minipage}[c]{\textwidth}
\centering
\includegraphics[angle=-90,width=13cm]{pic2.pdf}
\end{minipage}
}
\caption{abc \ref{fig:mini:subfig:a}; def \ref{fig:mini:subfig:b}}
\label{fig:ghi}
\end{figure}
Beste Grüße,
René

sommerfee
08-09-2008, 16:39
Hallo René,

Was das floatrow-Paket angeht: Sich dort mal einzuarbeiten steht zwar schon länger auf meiner TODO-Liste, aber bisher bin ich auch noch nicht dazu gekommen.



Wie meinst Du das mit \label in den Beschriftungstext?

Ich meine z.B.


\subfigure[\label{fig:mini:subfig:a}]
{
\begin{minipage}[c]{\textwidth}
...

anstelle von


\subfigure[]
{
\label{fig:mini:subfig:a}
\begin{minipage}[c]{\textwidth}
...


Ob es aber daran wirklich liegt, weiß ich nicht, denn zumindest beim subfig-Paket kann man das \label auch in den Inhalt schreiben. Ob das beim subfigure-Paket auch so ist, kann ich nicht sagen.

Wenn eine Änderung diesbezüglich nichts hilft, bist du wohl auf eine Unverträglichkeit von subfigure mit einem anderen Paket gestoßen. Der Umstieg auf den Nachfolger subfig oder subcaption sollte in diesem Falle (hoffentlich) Abhilfe bringen. Wenn nicht, wäre ein lauffähiges Beispiel nett, welches das Problem zeigt, damit man es nachstellen & untersuchen kann.

Gruß,
Axel

dorennee
08-09-2008, 17:35
Was das floatrow-Paket angeht: Sich dort mal einzuarbeiten steht zwar schon länger auf meiner TODO-Liste, aber bisher bin ich auch noch nicht dazu gekommen.

Na viel Spass dabei...;)


Ob es aber daran wirklich liegt, weiß ich nicht, denn zumindest beim subfig-Paket kann man das \label auch in den Inhalt schreiben. Ob das beim subfigure-Paket auch so ist, kann ich nicht sagen.

Wenn eine Änderung diesbezüglich nichts hilft, bist du wohl auf eine Unverträglichkeit von subfigure mit einem anderen Paket gestoßen. Der Umstieg auf den Nachfolger subfig oder subcaption sollte in diesem Falle (hoffentlich) Abhilfe bringen. Wenn nicht, wäre ein lauffähiges Beispiel nett, welches das Problem zeigt, damit man es nachstellen & untersuchen kann.

Super, das Umstellen auf das neue Paket hat's gebracht. In subfigure hatte ich das auch schon probiert, bin aber in meiner Layenhaftigkiet nicht auf eine Paketunverträglichkeit gekommen. Vielen Dank!
Bleibt nur noch das Problem, dass die Einzelbildlabel noch unter den Bildern und nicht daneben stehen... Willste da meinen Quellcode?


Gruß,
Axel
Grüße zurück,
René

dorennee
09-09-2008, 22:19
Hallo an alle, hier nochmal mein derzeitiges Problem:
Ich habe möchte auf einer Seite 2 Bilder untereinander angeordne. dabei soll links von dem ersten Bild das Labe "a)" und vor dem 2ten Bild "b)". Leider ordnet er die Label jeweils unter den Bildern und ich weiß nicht, wie ich das ändern kann. Ich verwende die subfig-Umgebung, das Minimalmodell habe ich als Anhang angefügt.
Vielen Dank und liebe Grüße,
René

localghost
09-09-2008, 23:13
[...] Ich habe möchte auf einer Seite 2 Bilder untereinander angeordne. dabei soll links von dem ersten Bild das Labe "a)" und vor dem 2ten Bild "b)". Leider ordnet er die Label jeweils unter den Bildern und ich weiß nicht, wie ich das ändern kann. [...]
Axel hat in seinem ersten Beitrag hier schon mal auf das Paket subcaption hingewiesen, das bei caption (http://www.ctan.org/pkg/caption) mit dabei ist. Lies dir doch einfach mal die Anleitung von subcaption durch. Dort wird die Vorgehensweise in allen Einzelheiten erklärt. Zusammen mit den Hinweisen von Axel solltest Du das dann eigentlich hinkriegen.


MfG
Thorsten¹

dorennee
10-09-2008, 11:36
naja, ich habe das gemacht was vorgeschlagen wurde und verwende mittlerweile das subcaption-paket (wie man das installiert wusste ich ja auch net...). nur leider habe ich im manual von subcaption keinen Befehl gefunden, wie man die subcaptions seitlich der Grafik anordnet. Wisst Ihr vielleicht, wo ich den finde? das floatrow manual war für mich als Anfänger leider nicht verständlich...
Beste Grüße,
René

dorennee
10-09-2008, 12:24
ok, ich hab jetzt selbst mich nochmal rangesetzt und eine Lösung für das Problem gefunden. Allerdings finde ich sie nicht besonders elegant, ich würde mich über bessere Lösungsvorschläge, bzw. Verbesserungsvorschläge freuen :).
Hier mein Minimalmodell:

\documentclass[12pt, a4paper]{book}

\usepackage{epsfig}
\usepackage[latin1]{inputenc}
\usepackage{float}
\usepackage{hyperref}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{fancyhdr}

\begin {document}
\begin{figure}
\centering
\begin{minipage}[c]{.04\linewidth}
\centering
\subcaption{}
\label{fig:side:1a}
\end{minipage}
\begin{minipage}[c]{.95\linewidth}
\centering
\includegraphics[width=\linewidth]{pic1.pdf}
\end{minipage}
\centering
\begin{minipage}[c]{.04\linewidth}
\centering
\subcaption{}
\label{fig:side:1b}
\end{minipage}
\begin{minipage}[c]{.95\linewidth}
\centering
\includegraphics[width=\linewidth]{pic2.pdf}
\end{minipage}%\end{figure}
\caption{bla1 \subref{fig:side:1a}; bala2 \subref{fig:side:1b}}
\end{figure}
\end{document}

Liebe Grüße und danke für die bisherigen Vorschläge,
René