PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Subfig und autoref



slowfox
22-04-2009, 09:58
Ich verwende i.d.R. den Befehl \autoref für Verknüpfungen. Im Zusammenhang mit dem Paket subfig habe ich jedoch ein Problem: Verweise ich auf die Gesamtabbildung, ergänzt mir autoref korrekterweise den Begriff Abbildung zur Abbildungsnummer, verweise ich aber auf eine Unterabbildung, so kennt autoref keine Bezeichnung, sondern schreibt nur die Abbildungs- und Unterabbildungsnummer. Wie kann ich autoref beibringen, richtig auf Unterabbildungen zu verweisen?

mechanicus
22-04-2009, 11:45
Hallo,

das Thema hatten wir vor kurzem. Die einfachste Lösung war es, einfach das subcaption-Paket zu nehmen und auf subfig zu verzichten.

Gruß
Marco

slowfox
22-04-2009, 13:43
Moin Marco,

danke für den Hinweis auf subcaption. Habe mein Dokument jetzt entsprechend umgestellt. Aber löst man ein Problem, findet man gleich das nächste: Ich habe verschieden hohe Grafiken, die zugehörigen Unterschriften sind ein- oder zweizeilig. Wie kann ich subcaption mitteilen, dass alle Bilder/Unterschriften so angeordnet werden, dass alle Bilderunterseiten und damit auch alle ersten Zeilen der Unterschriften auf der gleichen Höhe sind? Mit der Option [b] wird ja die gesamte Minipage bestehend aus Bild und Unterschrift unten ausgerichtet. Bei sowohlö ein- als auch zweizeiligen Unterschriften springen damit die Unterkante der Abbildungen unschön.

Beste Grüße
Marco

mechanicus
22-04-2009, 14:07
Hallo,

ich habe es mal so gelöst. Es gibt bestimmt eine bessere Möglichkeit, welche spätestens Axel präsentieren wird;)

\documentclass[ngerman,12pt]{scrreprt}
\usepackage{babel,blindtext}
\usepackage{caption}
\usepackage{subcaption}

\usepackage{graphicx}
\newsavebox{\tempboxA}
\newsavebox{\tempboxB}
\def\BILDGROSS{\rule{5cm}{5cm}}
\def\BILDKLEIN{\rule{3cm}{3cm}}
\begin{document}
\chapter{foo}
\blindtext

\begin{figure}[ht]
\sbox{\tempboxA}{\BILDGROSS}%
\sbox{\tempboxB}{\BILDKLEIN}%
\begin{subfigure}[t]{0.5\textwidth}\centering
\usebox{\tempboxA}
\caption{Bild GROSS - mit langer Beschriftung - mit langer Beschriftung - mit langer Beschriftung - mit langer Beschriftung}
\end{subfigure}
\begin{subfigure}[t]{0.5\textwidth}\centering
\vbox to \ht\tempboxA{%
\vfil
\usebox{\tempboxB}
\vfil}
\caption{Bild KLEIN}
\end{subfigure}
\caption{Two more sub-floats.}
\end{figure}

\blindtext
\end{document}

Gruß
Marco

sommerfee
22-04-2009, 20:16
ich habe es mal so gelöst. Es gibt bestimmt eine bessere Möglichkeit, welche spätestens Axel präsentieren wird;)

Ob's besser ist weiß ich nicht, aber ich würde es wohl so machen:


\documentclass[ngerman,12pt]{scrreprt}
\usepackage{babel,blindtext}
\usepackage{caption}
\usepackage{subcaption}

\def\BILDGROSS{\rule{5cm}{5cm}}
\def\BILDKLEIN{\rule{3cm}{3cm}}

\begin{document}
\chapter{foo}
\blindtext

\begin{figure}[ht]
\centering
\subcaptionbox{Bild GROSS - mit langer Beschriftung - mit langer Beschriftung - mit langer Beschriftung - mit langer Beschriftung}
{\BILDGROSS}
\hspace{1cm}
\subcaptionbox{Bild KLEIN}
{\BILDKLEIN}
\caption{Two more sub-floats.}
\end{figure}

\blindtext
\end{document}


Liebe Grüße,
Axel

slowfox
23-04-2009, 08:22
Moin Axel,

danke für den Hinweis auf \subcaptionbox. Ich hatte im Manual überlesen, dass dieser Befehl genau das leistet, was ich möchte. ("[...] the baseline of the resulting box will be placed right between contents and heading [...]") Sorry!

Aber ein Frage dazu habe ich gleich: Gebe ich als optionalen Parameter die Breite bei \subcaptionbox vor, beispielsweise jeweils auf 0.5\textwidth, so werden die Abbildungen untereinander und nicht nebeneinander gesetzt. Mit 0.49\textwidth geht es wiederum. Ich kann also nicht die volle Textbreite verwenden. Verwende ich \subfigure wie in Marcos Vorschlag, ist 0.5\textwidth kein Problem. Ergänzt \subcaptionbox automatisch zusätzlichen horizontalen Abstand?

Beste Grüße,
Marco

rais
23-04-2009, 21:03
Moin moin,


Aber ein Frage dazu habe ich gleich: Gebe ich als optionalen Parameter die Breite bei \subcaptionbox vor, beispielsweise jeweils auf 0.5\textwidth, so werden die Abbildungen untereinander und nicht nebeneinander gesetzt. Mit 0.49\textwidth geht es wiederum. Ich kann also nicht die volle Textbreite verwenden. Verwende ich \subfigure wie in Marcos Vorschlag, ist 0.5\textwidth kein Problem. Ergänzt \subcaptionbox automatisch zusätzlichen horizontalen Abstand?

nö, aber ergänze mal ein Kommentarzeichen direkt im Anschluß an die letzte, schließende Klammer der ersten \subcaptionbox -- den \hspace haste ja sicher rausgenommen ...

zum Vergleich vllt


\documentclass{article}
\newcommand*\foo[1]{#1}
\begin{document}
\foo{foo}
\foo{bar}

vs.

\foo{foo}%
\foo{bar}
\end{document}

MfG