PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrzeilige Abbildungs- und Tabellenunterschriften



Joerka
19-09-2010, 17:25
Hallo zusammen,

hier im Forum konnte mir bereits einmal bei mehrzeiligen Tabellen- und Abbildungsbeschriftungen geholfen werden:

http://www.mrunix.de/forums/showthread.php?t=68615


Ich arbeite nun erneut unter der Maßgabe, nach den Beschriftungen der Tabellen und Abbildungen eine Quellenangabe in kleinerer Schrift einfügen zu müssen.

Dies klappt u.U. ohne Probleme (siehe Abb. 0.1 und 0.2). In Fällen, in denen die Quellenangabe zu lang ist, um sie mit in die Zeile packen zu können, wende ich den Trick an, der mir im oben angegebenen Thread bereits unterbreitet wurde; wobei ich für die Tabelle standardmäßig die kleinere Schrift wähle, damit der Zeilenabstand nicht zu groß wirkt (Abb. 0.3).

In Fällen, in denen die Quellenangabe über eine Zeile hinaus läuft (Abb. 0.4 und 0.5) fällt mir jedoch keine Lösung ein. Weder der Tabellen-Trick hilft (Abb. 0.4), noch macht es Sinn, alles hintereinander zu schreiben, da dann der Zeilenabstand bei der kleinen Schrift unschön wirkt (Abb. 0.5).

Weiß jemand Rat?

Vielen Dank im Voraus... ich grübel schon wieder viel zu lange über diesem Problem...


\documentclass[oneside,parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tikz}

\newcommand{\Abb}[1]{%
\begin{tikzpicture}
\foreach \x in {0,20,...,340} {%
\draw[rotate=\x,draw=#1,fill=#1!20,opacity=.3] (0,0) rectangle (.5,1);
}
\end{tikzpicture}
}


\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Problemlos
\textbf{Problemlos\hrulefill}

\begin{minipage}{\textwidth}
\centering
\Abb{blue}
\captionof{figure}
{Abbildungsbezeichnung in normaler Schrift. {\scriptsize Quelle in kleinerer Schrift.}}
\end{minipage}

\begin{minipage}{\textwidth}
\centering
\Abb{blue}
\captionof{figure}
{Abbildungsbezeichnung in normaler Schrift und so lang, dass sie nicht in eine Zeile passt.
{\scriptsize Quelle in kleinerer Schrift.}}
\end{minipage}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Mit kleinem Trick (tabular)
\textbf{Mit kleinem Trick (tabular)\hrulefill}

\begin{minipage}{\textwidth}
\centering
\Abb{blue}
\captionof{figure}
[Abbildungsbezeichnung in normaler Schrift]
{\scriptsize
\begin{tabular}[t]{l}
\normalsize Abbildungsbezeichnung in normaler Schrift.\\
Quelle in kleinerer Schrift und so lang, dass sie nicht mit in die erste Zeile passt.
\end{tabular}}
\end{minipage}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fälle ohne Lösung
\textbf{\textcolor{red}{Fälle ohne Lösung\hrulefill}}

\begin{minipage}{\textwidth}
\centering
\Abb{red}
\captionof{figure}
[Abbildungsbezeichnung in normaler Schrift]
{\scriptsize
\begin{tabular}[t]{l}
\normalsize Abbildungsbezeichnung in normaler Schrift.\\
Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzige Zeile untergebracht werden kann. \textcolor{red}{Overfull}
\end{tabular}}
\end{minipage}

\begin{minipage}{\textwidth}
\centering
\Abb{red}
\captionof{figure}
{Abbildungsbezeichnung in normaler Schrift und so lang, dass sie nicht in eine Zeile passt.
{\scriptsize Quelle in kleinerer Schrift und so lang, dass sie nicht mit in die zweite Zeile passt.
\textcolor{red}{Sieht unschön aus, da Zeilenabstand bei kleiner Schrift wie bei normaler Schrift.}}}
\end{minipage}



\end{document}

mechanicus
19-09-2010, 17:51
Hi,


\documentclass[oneside,parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tikz}
\usepackage{linegoal}
\usepackage{tabularx}
\newcommand{\Abb}[1]{%
\begin{tikzpicture}
\foreach \x in {0,20,...,340} {%
\draw[rotate=\x,draw=#1,fill=#1!20,opacity=.3] (0,0) rectangle (.5,1);
}
\end{tikzpicture}
}


\begin{document}
\begin{minipage}{\textwidth}
\centering
\Abb{red}
\captionof{figure}
[Abbildungsbezeichnung in normaler Schrift]
{\scriptsize
\begin{tabularx}{\linegoal}[t]{X}
\normalsize Abbildungsbezeichnung in normaler Schrift.\\
Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzige Zeile untergebracht werden kann. \textcolor{red}{Overfull}\\
\end{tabularx}}
\end{minipage}

\begin{minipage}{\textwidth}
\centering
\Abb{red}
\captionof{figure}[]%
{Abbildungsbezeichnung in normaler Schrift und so lang, dass sie nicht in eine Zeile passt.
{\scriptsize%
\begin{tabularx}{\linegoal}[t]{X}
Quelle in kleinerer Schrift und so lang, dass sie nicht mit in die zweite Zeile passt
\color{red}Sieht unschön aus, da Zeilenabstand bei kleiner Schrift wie bei normaler Schrift.
\end{tabularx}}
}
\end{minipage}



\end{document}

wobei ich nicht verstehe, warum du es so kompliziert machen willst.
\caption[bla]{asdlö }
Würde doch auch gehen.

Gruß
Marco

Joerka
19-09-2010, 18:03
Vielen Dank für Deine Hilfe! \linegoal kannte ich noch nicht... Diese Lösung funktioniert aber nur für die erste Abbildung in Deinem Minimalbeispiel.



wobei ich nicht verstehe, warum du es so kompliziert machen willst.
\caption[bla]{asdlö }
Würde doch auch gehen.

Gruß
Marco

Ich habe tatsächlich mehrmals die Problematik, dass sowohl Abbildungsbezeichnung als auch Quellenangabe jeweils über mehr als eine Zeile gehen. Wende ich \caption[bla]{bla bla} an, so sind die Zeilenabstände zu groß (siehe Abb. 0.5 aus meinem ersten Post)...

sommerfee
19-09-2010, 18:22
Zu Abbildung 0.4:



\begin{tabular}[t]{l}


Nimm mal \begin{tabular}[t]{p{330pt}} stattdessen, das ist dann zwar ein Hack, aber das ganze ist es sowieso irgendwie...

Bei Abbildung 0.5 sieht es IMHO so oder so mistig aus, selbst (bzw. gerade) wenn man den Zeilenabstand verkleinern würde. Ich würde daher die Quellenangabe immer in eine extra Zeile packen.

Warum nicht einfach \caption[...]{...\\{\scriptsize ...\par}} verwendet wird, habe ich auch noch nicht verstanden.

Liebe Grüße,
Axel

Joerka
19-09-2010, 18:28
Vielen Dank für Eure Hilfe!

Werde direkt morgen nachfragen, ob es in Ordnung ist, die Quellenangabe stets in die nächste Zeile zu packen. In diesem Fall könnte ich mir immer mit der Lösung zu Abb. 0.2 behelfen (siehe unten).

Fürchte aber, dass ich für die Fälle, in denen die Beschriftung so grade über eine Zeile reicht, keine neue Zeile für die Quellenangabe verwenden soll. Dann hab ich das Problem aus Abb. 0.3 (siehe unten): Der Zeilenabstand bei der kleinen Schrift ist zu groß....


\documentclass[oneside,parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx,linegoal}

\usepackage{tikz}

\newcommand{\Abb}[1]{%
\begin{tikzpicture}
\foreach \x in {0,20,...,340} {%
\draw[rotate=\x,draw=#1,fill=#1!20,opacity=.3] (0,0) rectangle (.5,1);
}
\end{tikzpicture}
}


\begin{document}


\begin{minipage}{\textwidth}
\centering
\Abb{blue}
\captionof{figure}
[] {%
\scriptsize
% Beschriftung
{\normalsize Abbildungsbezeichnung in normaler Schrift.}
% Quellenangabe
Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann.
}
\end{minipage}


\begin{minipage}{\textwidth}
\centering
\Abb{blue}
\captionof{figure}
[] {%
\begin{tabularx}{\linegoal}[t]{@{}X@{}}
% Beschriftung
Abbildungsbezeichnung in normaler Schrift und so lang, dass sie nicht in einer
einzigen Zeile untergebracht werden kann.\\[-1mm]
% Quellenangabe
\scriptsize Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann.
\end{tabularx}
}
\end{minipage}


\begin{minipage}{\textwidth}
\centering
\Abb{red}
\captionof{figure}
[Abbildungsbezeichnung in normaler Schrift] {%
% Beschriftung
Abbildungsbezeichnung in normaler Schrift reicht so grade über eine Zeile hinaus.
% Quellenangabe
{\scriptsize Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann.}
}
\end{minipage}

\end{document}

Edit: Ok, hab jetzt erst Sommerfees Ergänzung gelesen! Damit bin ich nun für alle Fälle gewappnet! Vielen Dank, ich liebe dieses Forum!


\documentclass[oneside,parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx,linegoal}

\usepackage{tikz}

\newcommand{\Abb}[1]{%
\begin{tikzpicture}
\foreach \x in {0,20,...,340} {%
\draw[rotate=\x,draw=#1,fill=#1!20,opacity=.3] (0,0) rectangle (.5,1);
}
\end{tikzpicture}
}


\begin{document}


\begin{minipage}{\textwidth}
\centering
\Abb{blue}
\captionof{figure}
[] {%
\scriptsize
% Beschriftung
{\normalsize Abbildungsbezeichnung in normaler Schrift.}
% Quellenangabe
Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann.
}
\end{minipage}


\begin{minipage}{\textwidth}
\centering
\Abb{blue}
\captionof{figure}
[] {%
% Beschriftung
Abbildungsbezeichnung in normaler Schrift und so lang, dass sie nicht in einer
einzigen Zeile untergebracht werden kann.\\
% Quellenangabe
{\scriptsize Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann.\par}
}
\end{minipage}


\begin{minipage}{\textwidth}
\centering
\Abb{red}
\captionof{figure}
[Abbildungsbezeichnung in normaler Schrift] {%
% Beschriftung
Abbildungsbezeichnung in normaler Schrift reicht so grade über eine Zeile hinaus.
% Quellenangabe
{\scriptsize Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann.\par}
}
\end{minipage}

\end{document}

Joerka
19-09-2010, 19:04
Zu früh gefreut. Das ist das Problem mit Minimalbeispielen: Manchmal berücksichtigen sie doch nicht alle notwendigen Details. Dachte, mir \par wären meine Probleme gelöst...

Man kann mein Problem so zusammenfassen: Sobald sowohl Beschriftung als auch Quellenangabe über zwei Zeilen gehen, gibt es Schwierigkeiten, weil nur ein Zeilenabstand gewählt werden kann, der sich entweder auf die große (siehe Abb. 0.3) oder kleine Schrift bezieht. Meine einzige Lösung besteht darin, für die Quellenangabe generell eine neue Zeile zu beginnen (siehe Abb. 0.4).

Ich werde morgen nachfragen, denke aber, dass ich in Fällen, in denen die Beschriftung so grade in eine neue Zeile reicht (Abb. 0.3) keine neue Zeile für die Quellenangabe einfügen soll (wie in Abb. 0.4).



\documentclass[oneside,parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx,linegoal}

\usepackage{setspace}
\onehalfspacing

\usepackage{tikz}

\newcommand{\Abb}[1]{%
\begin{tikzpicture}
\foreach \x in {0,20,...,340} {%
\draw[rotate=\x,draw=#1,fill=#1!20,opacity=.3] (0,0) rectangle (.5,1);
}
\end{tikzpicture}
}


\begin{document}

\begin{minipage}{\textwidth}
\centering
\Abb{green}
\captionof{figure}
[] {%
% Beschriftung
Abbildungsbezeichnung in normaler Schrift und mit korrektem Zeilenabstand.
% Quellenangabe
{\scriptsize Quellenangabe. \textcolor{green}{Hier ist der Zeilenabstand korrekt.}}
}
\end{minipage}

\begin{minipage}{\textwidth}
\centering
\Abb{green}
\captionof{figure}
[] {%
\scriptsize
% Beschriftung
{\normalsize Abbildungsbezeichnung in normaler Schrift.}
% Quellenangabe
Quellenangabe ist so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann. \textcolor{green}{Der Zeilenabstand ist
auch hier i.~O., weil als Standard die kleine Schrift gesetzt werden kann.}
}
\end{minipage}

\begin{minipage}{\textwidth}
\centering
\Abb{red}
\captionof{figure}
[] {%
% Beschriftung
Abbildungsbezeichnung in normaler Schrift und mit korrektem Zeilenabstand.
% Quellenangabe
{\scriptsize Quellenangabe ist so lang, dass sie nicht in einer einzigen Zeile
untergebracht werden kann. \textcolor{red}{Hier ist der Zeilenabstand nicht mehr korrekt,
da auch für die kleinere Schrift der Abstand der großen verwendet werden muss.}}
}
\end{minipage}


\begin{minipage}{\textwidth}
\centering
\Abb{green}
\captionof{figure}
[] {%
\begin{tabularx}{\linegoal}[t]{@{}X@{}}
% Beschriftung
Abbildungsbezeichnung in normaler Schrift und so lang, dass sie nicht in einer einzigen Zeile
untergebracht werden kann.\\[-1mm]
% Quellenangabe
\scriptsize Quelle in kleinerer Schrift und so lang, dass sie nicht in einer einzigen
Zeile untergebracht werden kann. \textcolor{green}{Dies ist bisher meine einzige Lösung, bei der für
die Quellenangabe aber stets eine neue Zeile begonnen werden muss.}
\end{tabularx}
}
\end{minipage}


\end{document}

voss
19-09-2010, 19:55
Zu früh gefreut. Das ist das Problem mit Minimalbeispielen: Manchmal berücksichtigen sie doch nicht alle notwendigen Details. Dachte, mir \par wären meine Probleme gelöst...

Man kann mein Problem so zusammenfassen: Sobald sowohl Beschriftung als auch Quellenangabe über zwei Zeilen gehen, gibt es Schwierigkeiten, weil nur ein Zeilenabstand gewählt werden kann, der sich entweder auf die große (siehe Abb. 0.3) oder kleine Schrift bezieht. Meine einzige Lösung besteht darin, für die Quellenangabe generell eine neue Zeile zu beginnen (siehe Abb. 0.4).




\documentclass[oneside,parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx,linegoal}

\usepackage{setspace}
\onehalfspacing

\usepackage{tikz}

\newcommand{\Abb}[1]{%
\begin{tikzpicture}
\foreach \x in {0,20,...,340} {%
\draw[rotate=\x,draw=#1,fill=#1!20,opacity=.3] (0,0) rectangle (.5,1);
}
\end{tikzpicture}
}

\usepackage[format=hang]{caption}

\begin{document}

\begin{minipage}{\textwidth}
\centering
\Abb{green}
\captionof{figure}[]{Abbildungsbezeichnung in normaler Schrift und so lang,
dass sie nicht in einer einzigen Zeile
untergebracht werden kann.\par\medskip
\scriptsize Quelle in kleinerer Schrift und so lang, dass sie nicht
in einer einzigen Zeile untergebracht werden kann.
\textcolor{green}{Dies ist bisher meine einzige Lösung, bei der für
die Quellenangabe aber stets eine neue Zeile begonnen werden muss.}\par}
\end{minipage}

\end{document}

Herbert

Joerka
20-09-2010, 10:49
Mir wurde heute Morgen dringend ans Herz gelegt, für die Quellenangabe keine neue Zeile zu beginnen. Auf der einen Seite finde ich es sehr kleinkariert, auf der anderen macht es schon absolut Sinn:

Wenn die normale Bezeichnung einer Abbildung so grade über eine Zeile geht, sieht es unschön aus, den Rest der zweiten Zeile frei zu lassen und die Quellenangabe komplett in die dritte Zeile zu versetzen (insbesondere, wenn die Quellenangabe eventuell ebenfalls über eine Zeile lang ist und somit eine vierte Zeile begonnen wird).

Ich fürchte nur, dass sich mein Problem mit LaTeX nicht lösen lässt. Vielleicht spornt es die/den ein oder andere(n) an, dass Word automatisch alles so darstellen würde, wie ich es brauche.


\documentclass[parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx}

\usepackage{xcolor,setspace}
\onehalfspacing

\begin{document}

\begin{minipage}{.4\textwidth}
\textcolor{red}{Problem:}

Große Schrift mit entsprechendem Zeilenabstand.
{\tiny Direkt anknüpfend kleine Schrift, für die der Zeilenabstand der großen gilt...}
\end{minipage}


\begin{minipage}{.4\textwidth}
\textcolor{red}{Einzige Lösung bisher:}

\begin{tabularx}{\textwidth}{@{}X@{}}
Große Schrift mit entsprechendem Zeilenabstand.\\[-2mm]
\tiny In nächster Zeile kleine Schrift mit entsprechendem Zeilenabstand.
\end{tabularx}
\end{minipage}

\textcolor{red}{Ich darf aber für die kleine Schrift keine neue Zeile beginnen! Sie muss, wie ganz oben dargestellt, in der zweiten Zeile beginnen. Nur darf dann zwischen der dritten und vierten Zeile nicht der Zeilenabstand der großen Schrift gelten.}

\end{document}

voss
20-09-2010, 11:45
Mir wurde heute Morgen dringend ans Herz gelegt, für die Quellenangabe keine neue Zeile zu beginnen. Auf der einen Seite finde ich es sehr kleinkariert, auf der anderen macht es schon absolut Sinn:

Wenn die normale Bezeichnung einer Abbildung so grade über eine Zeile geht, sieht es unschön aus, den Rest der zweiten Zeile frei zu lassen und die Quellenangabe komplett in die dritte Zeile zu versetzen (insbesondere, wenn die Quellenangabe eventuell ebenfalls über eine Zeile lang ist und somit eine vierte Zeile begonnen wird).

Ich fürchte nur, dass sich mein Problem mit LaTeX nicht lösen lässt. Vielleicht spornt es die/den ein oder andere(n) an, dass Word automatisch alles so darstellen würde, wie ich es brauche.


wenn es nicht zu viele Quellenangaben sind, dann setzt du sie erst normal mit dem falschen Zeilenabstand und merkst dir die Stellen, wo der erste Umbruch der Quelle erscheint. Dort fügst du dann das unten gezeigte ein! Kannst dafür auch ein Makro definieren.

Herbert


\documentclass[parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx}

\usepackage{xcolor,setspace}
\onehalfspacing

\begin{document}

\begin{minipage}{.4\textwidth}
\textcolor{red}{Problem:}

Große Schrift mit entsprechendem Zeilenabstand.
{\tiny Direkt anknüpfend kleine}\parfillskip=0pt\par\tiny
Schrift, für die der Zeilenabstand der großen jetzt nicht mehr gilt \ldots
\end{minipage}

\end{document}

Joerka
20-09-2010, 12:39
Hallo Herbert,

vielen Dank für Deine Hilfe! Ich bin grade dabei, den ganzen Rückstand aufzuholen, der dadurch entstanden ist, dass ich mich um dieses diskussionswürdige "Problemchen" gekümmert habe.

Ich werde sehr gerne auf Deine Lösung zurückgreifen. Beim ersten Test fiel mir auf, dass die Wörter weit auseinander gezogen werden, damit jede Zeile am Zeilenende abschließt. Vielleicht habe ich aber auch irgendetwas falsch umgesetzt (Dein Header lief bei mir leider nicht):


\documentclass[parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx}

\usepackage{xcolor,setspace}
\onehalfspacing

\begin{document}

\begin{minipage}{.4\textwidth}
\textcolor{red}{Problem:}

Große Schrift mit entsprechendem Zeilenabstand.
{\tiny Direkt anknüpfend kleine %}\parfillskip=0pt\par % hier erstes Kommentarzeichen entfernen
\tiny Schrift, für die der Zeilenabstand der großen jetzt nicht mehr gilt} % hier geschweifte Klammer entfernen
\end{minipage}

\end{document}

voss
20-09-2010, 13:32
Mach doch einfach beides übereinander, dann siehst du doch gleich, wie
einfach es ist.


\documentclass[parskip=full-]{scrbook}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage[ngerman]{babel}

\usepackage{tabularx}

\usepackage{xcolor,setspace}
\onehalfspacing

\def\Umbruch{\parfillskip=0pt\par\tiny}
\begin{document}

\begin{minipage}{.4\textwidth}
\textcolor{red}{Problem:}

Große Schrift mit entsprechendem Zeilenabstand.
{\tiny Direkt anknüpfend kleine
Schrift, für die der Zeilenabstand der großen gilt \ldots}
\end{minipage}


\begin{minipage}{.4\textwidth}
\textcolor{red}{Problem:}

Große Schrift mit entsprechendem Zeilenabstand.
{\tiny Direkt anknüpfend kleine}\Umbruch
Schrift, für die der Zeilenabstand der großen gilt \ldots
\end{minipage}

\end{document}

Herbert

Schweinebacke
20-09-2010, 14:34
Ich finde zwar nicht, dass das gut aussieht, aber trotzdem mal zur Demonstration:
\documentclass[parskip=full-,noonelinecaptions]{scrbook}

\makeatletter
\newlength{\myindent}
\newcommand{\captionmitqualle}[2]{%
\caption[{#1}]{%
\setlength{\myindent}{\hangindent}%
\pdfsavepos\protect\protected@write\@auxout{}{%
\protect\@savecapstartpos{\expandafter\the\value{\ @captype}}%
{\noexpand\number\pdflastxpos}%
}%
#1%
\pdfsavepos\protect\protected@write\@auxout{}{%
\protect\@savecappos{\expandafter\the\value{\@capt ype}}%
{\noexpand\number\pdflastxpos}%
}%
\\\tiny\\[-3\baselineskip]\endgraf
\@hangfrom{\hspace{\myindent}}
\hspace{\@getcapskip{\the\value{\@captype}}}%
\ \ignorespaces #2\endgraf
}
}
\newcommand*{\@savecappos}[2]{%
\expandafter\gdef\csname cappos@#1\endcsname{#2sp}%
}
\newcommand*{\@savecapstartpos}[2]{%
\expandafter\gdef\csname capstartpos@#1\endcsname{#2sp}%
}
\newcommand*{\@getcapskip}[1]{%
\expandafter\ifx\csname cappos@#1\endcsname\relax 0pt
\else\dimexpr \csname cappos@#1\endcsname-\csname capstartpos@#1\endcsname\fi
}
\makeatother

\begin{document}
\begin{figure}
\centering
\captionmitqualle{Dies ist ein Beispieltext, der gerade lange genug ist, umd
das Problem mit der Quelle zu zeigen.}{Und dies ist dann die Quelle, die
nat\"urlich auch lang genug sein sollte, damit sie mehrere Zeilen
ben\"otigt und man sieht, was dann passiert. }.
\end{figure}
\end{document}
Es werden zwei LaTeX-Läufe benötigt, damit die Darstellung stimmt.

Wenn man eine Klasse verwendet, bei der die Abbildungen abhängig von den Kapiteln neu gezählt werden, muss man das ganze ein wenig abändern, damit die Speicherung der Positionen wieder stimmt. Vermutlich bietet das zref-Paket einen guten Ansatz, um das etwas allgemeiner zu definieren. Da mir die Darstellung aber ohnehin nicht gefällt, wollte ich keine zeit darauf verschwenden.

Joerka
21-09-2010, 15:39
Vielen Dank für die Mühe, die Ihr Euch beide gemacht habt!

In Anbetracht von rund 50 Abbildungen bin ich sehr dankbar für den Tex-Code von Dir, Mr. Schweinebacke!

P.S.: Ich kenne mich mit reinem Tex-Code leider nicht genug aus, um die ganzen Underfull-Meldungen auszubügeln, die der Code verursacht. Falls das schnell getan sein sollte, wär ich für Hinweise dankbar! Ansonsten ist das Thema für mich nun abgeschlossen.

Joerka
21-09-2010, 16:17
P.P.S.: Und eine stylistische Frage: Wie würdet Ihr denn die Beschriftung vornehmen, wenn sowohl normale Bildbeschriftung als auch zugehörige Quellenangabe jeweils zwei Zeilen umfassen?

Schweinebacke
22-09-2010, 07:41
Vielleicht wie hier (http://www.komascript.de/node/1010#comment-2556).