ich schreibe gerade meine PHD Thesis und habe öfter den Fall, dass ich große Abbildungen (etwa halbseitige Größe) mit sehr langen Bildunterschriften (auch etwa halbseitige Länge) einbinden muss.
Das Problem besteht darin, dass Latex standardmäßig nicht in der Lage ist, eine Bildunterschrift auf der nächsten Seite fortzusetzen, falls diese das Ende einer Seite erreicht.
Problembild
Das folgende Minimalbeispiel zeigt das Fehlerverhalten (Im Anhang befindet sich noch das entsprechende PDF, das in Texmaker erzeugt wurde):
\RequirePackage{fix-cm} \documentclass[a4paper,twoside,openright,headsepline,parskip]{scrreprt} \usepackage[scaled=0.92]{helvet} \usepackage{setspace} \onehalfspacing \usepackage[a4paper]{geometry} \geometry{width=16cm, left=3cm, top=2.5cm, bottom=2.5cm} \usepackage[headsepline]{scrpage2} \pagestyle{scrheadings} \lehead{\fontfamily{cmr}\textsc{Results}} \rohead{\fontfamily{cmr}\textsc{Results}} \usepackage[english]{babel} \usepackage[nooneline]{caption} \usepackage{graphicx} \usepackage[format=plain, font={small, singlespacing}, labelfont=bf]{caption} \usepackage{kantlipsum} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \kant[1-2] \begin{figure}% \includegraphics[scale=1.1]{example-image-c} \caption{\kant[1-5]} \end{figure} \kant[2-5] \end{document}
Hoffnungsvollste Lösung
Beim Durchforsten des Internets nach diesem Problem stieß ich auf einen Beitrag, der mein Problem fast lösen konnte: https://groups.google.com/forum/#!topic ... Dz1cXtJZHA.
Ich verstehe zwar nicht genau, wie der zusätzliche Codeblock das Problem umgeht, aber ich lese heraus, dass die Art der Erzeugung von Captions neu definiert wurde und damit die Float-Umgebung ignoriert wurde. Wenn ich mein Minimalbeispiel von oben entsprechend anpasse ergibt sich der folgende Code. Das gerenderte PDF befindet sich auch im Anhang.
\RequirePackage{fix-cm} \documentclass[a4paper,twoside,openright,headsepline,parskip]{scrreprt} \usepackage[scaled=0.92]{helvet} \usepackage{setspace} \onehalfspacing \usepackage[a4paper]{geometry} \geometry{width=16cm, left=3cm, top=2.5cm, bottom=2.5cm} \usepackage[headsepline]{scrpage2} \pagestyle{scrheadings} \lehead{\fontfamily{cmr}\textsc{Results}} \rohead{\fontfamily{cmr}\textsc{Results}} \usepackage[english]{babel} \usepackage[nooneline]{caption} \usepackage{graphicx} \usepackage[format=plain, font={small, singlespacing}, labelfont=bf]{caption} \usepackage{kantlipsum} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % LONG CAPTIONS Configuration % to be inserted before \begin{document} % source: https://groups.google.com/forum/#!topic/latexusersgroup/9Dz1cXtJZHA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \makeatletter %Figure environment without an float format \newenvironment{Figure}{% \par\addvspace{12pt plus2pt}% \def\@captype{figure}% }{% \par\addvspace{12pt plus2pt}% }% %taken from article.cls \long\def\@makecaption#1#2{% \vskip\abovecaptionskip \sbox\@tempboxa{#1: #2}% \ifdim \wd\@tempboxa >\hsize #1: #2\par \else \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip\belowcaptionskip} %% If you are having all the figures with huge caption then use thebelow commands: %% Otherwise, just comment the below two lines and %% use "\begin{Figure}...\end{Figure}" instead of "\begin{figure}...\end{figure}" \let\figure\Figure% replacing by default \let\endfigure\endFigure% %% \makeatother %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \kant[1] \begin{figure}% \includegraphics[scale=1.1]{example-image-c} \caption{\kant[1-3]} \end{figure} \kant[2-5] \end{document}
-> einzeiliger Zeilenabstand
-> Captionnummerierung und Lable ("Figure") müssen fett sein
-> kleinerer Schriftgrad als im Fließtext (z.B. SMALL oder TINY)
Zumindest für die Fettschreibung habe ich einen workaround gefunden. Leider jedoch bekomme ich nun sowohl den einzeiligen Zeilenabstand als auch die kleinere Schriftgröße nicht mehr hin

Weitere getestete Lösungen
Ich habe bereits andere Lösungen für die extralangen Captions gefunden die ich getestet habe um das o.g. Problem zu umgehen. Die meisten davon haben jedoch das Problem, dass sie zwar in der Dokumentenklasse article funktionieren, aber nicht in der für mich verbindlichen Dokumentenklasse scrreprt. Folgende Lösungen habe ich ausprobiert:
- https://tex.stackexchange.com/questions ... iple-pages
-> funktioniert bei mir leider nicht. Wenn die caption zu lang wird, wird sie komplett auf die nächste Seite verschoben, es erfolgt nicht der gewünschte Umbruch, sodass damit zuviel Platz verschenkt wird.
- https://tex.stackexchange.com/questions ... n-new-page
-> funktioniert nur dann, wenn ich die Dokumentenklasse article verwende, was bei mir leider nicht möglich ist (siehe oben)
- https://tex.stackexchange.com/questions ... -two-pages
-> Funktioniert leider nicht bei mir. Wenn ich die captions hier sehr lang mache, dann wird sie nicht umgebrochen, sie verläuft im Nirvana. Ich bin mir bei der Lösung aber auch nicht ganz sicher, ob sie wirklich mein Problem adresiert.
Zusammengefasst brauche ich also eine Lösung die...
- ...lange captions an der Seitengrenze umbrechen kann
- ...diese langen captions auch mit einzeiligem Zeilenabstand formatieren kann
- ... diese langen captions auch mit einer kleineren Schriftart darstellen kann.
- ... die generell mit langen captions ugehen kann. Eine Lösung alá "mach bitte die captions kürzer" funktioniert bei mir leider nicht. der wissenschaftliche Standard gibt das hier leider so vor

Meine nächsten Schritte (Hinweise sind willkommen!)
- ich werde versuchen manuell den einzeiligen Zeilenabstand und die kleinere Schriftgröße zusammen mit der Lösung oben (https://groups.google.com/forum/#!topic ... Dz1cXtJZHA) zu kombinieren. Habe hier schon viele Hacks probiert, jedoch hebelt die mit der genannten Lösung eingeführte Neudefinition von makecaptions diese Lösungen aus, d.h. ich kann de captions nicht mehr von außen formatieren (nutzte bislang dafür das Paket "caption".
- vielleicht ist es möglich sich eine Art "custom caption" zu definieren, die im Grunde normaler Fließtext ist, jedoch die gleiche Formatierung wie die gewünschte Caption mitbringt.
Ich bin Euch sehr dankbar für jeden Vorschlag der zur Lösung meines Problems beiträgt!
liebe Grüße,
Stephan