Ich habe in meinem Dokument eine tcolorbox. Dafür möchte ich gern eine Beschriftung (\caption) angeben. Dies geht über den Befehl \captionof. Allerdings wird dadurch der Absatzabstand, den ich in der KOMA-Script-Klasse definiert habe (parskip=full), unterdrückt.

Wird in dem folgenden Beispiel die Zeile

Open in Online-Editor
\captionof{figure}{ ...

oder die Zeile

Open in Online-Editor
\usepackage{caption}

auskommentiert, ist der Absatzabstand wieder vorhanden.

Was kann ich also tun, um die tcolorbox korrekt zu beschriften und den Absatzabstand beizubehalten?

Open in Online-Editor
\documentclass[
  12pt,
  parskip=full,
  ]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{caption}

\usepackage{tcolorbox}

\usepackage{blindtext}

\begin{document}

\begin{tcolorbox}[boxrule=.25mm,colframe=black,colback=white]
\blindtext
\end{tcolorbox}
\captionof{figure}{Dies ist die Beschreibung zur Abbildung.}

\blindtext

Normalerweise sollte hier ein Absatzabstand erscheinen.

\blindtext

\blindtext

\end{document}

gefragt 27 Sep '15, 17:18

Andr%C3%A9's gravatar image

André
986252836
Akzeptiert-Rate: 33%

1

Ginge mit \begin{tcolorbox}[...,after=\captionof{figure}{Dies ist die Beschreibung zur Abbildung.}]. Trotzdem kann es dann aber einen Seitenumbruch zwischen der tcolorbox und der Beschriftung geben. Wenn Du das nicht möchtest, dann setze beides zusammen in eine minipage.

(27 Sep '15, 19:23) esdd

@esdd Ich finde Deine Variante am besten. Wenn Du eine Antwort aus dem Kommentar machst, würde ich sie als korrekte Lösung markieren.

(11 Okt '15, 15:38) André

Ich finde es übrigens eher seltsam, dass die Beschreibung außerhalb der Box liegt.

(11 Okt '15, 16:00) Johannes

Wie schon in einem Kommentar erwähnt, kann man mit der tcolorbox-Option after das Einfügen der Beschriftung nach der Box, aber noch innerhalb der Gruppe veranlassen. Mit dem analogen before kann man mit dem von @saputello erwähnten \KOMAoptions{parskip=full-} oder mit \centering etc. die Warnung wegen der overfull hbox verhindern.

Open in Online-Editor
\documentclass[
  12pt,
  parskip=full,
  ]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{caption}
\usepackage{tcolorbox}
\usepackage{blindtext}

\begin{document}

\blindtext

\begin{tcolorbox}[boxrule=.25mm,colframe=black,colback=white,
  before={\centering},
  after={\captionof{figure}{Dies ist die Beschreibung zur Abbildung.}}
]
\blindtext
\end{tcolorbox}

\blindtext

Normalerweise sollte hier ein Absatzabstand erscheinen.

\blindtext

\blindtext

\end{document}

Zu beachten ist, dass trotzdem zwischen der Box und der Beschriftung ein Seitenumbruch erfolgen kann. Wie man das verhindern kann, ist ein der Antwort von @saputello beschrieben.

Permanenter link

beantwortet 11 Okt '15, 21:25

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Die \captionof-Anweisung von caption verändert die Einstellungen. Die einfachste Lösung ist daher, in der Tat auf caption zu verzichten. Im Beispiel wird es auch gar nicht benötigt. Genügen aus irgendwelchen Gründen die Möglichkeiten von KOMA-Script nicht oder wird caption aus anderen Gründen benötigt, beispielsweise wegen subcaption, so genügt es, sämtliche Auswirkungen mit Hilfe einer Gruppe zu begrenzen:

Open in Online-Editor
\documentclass[
  12pt,
  parskip=full,
  ]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{caption}

\usepackage{tcolorbox}

\usepackage{blindtext}

\begin{document}

\begingroup
\begin{tcolorbox}[boxrule=.25mm,colframe=black,colback=white]
\blindtext
\end{tcolorbox}
\captionof{figure}{Dies ist die Beschreibung zur Abbildung.}
\endgroup

\blindtext

Normalerweise sollte hier ein Absatzabstand erscheinen.

\blindtext

\blindtext

\end{document}

Wenn Du außerdem verhindern willst, dass zwischen der tcolorbox und der Bildunterschrift ein Seitenumbuch erfolgen kann, solltest Du beides zusammen in eine minipage packen. Außerdem führt parskip=full zu einer »overfull hbox«-Warnung, wenn man Material verwendet, das über die gesamte Seitenbreite geht. Das kann man beispielsweise mit einer lokalen Änderung der Option verhindern:

Open in Online-Editor
\documentclass[
  12pt,
  parskip=full,
  ]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{caption}

\usepackage{tcolorbox}

\usepackage{blindtext}

\begin{document}

\begingroup
\KOMAoption{parskip}{full-}% letzte Zeile des Absatzes darf voll werden
\noindent\begin{minipage}{\linewidth}
\begin{tcolorbox}[boxrule=.25mm,colframe=black,colback=white]
\blindtext
\end{tcolorbox}
\captionof{figure}{Dies ist die Beschreibung zur Abbildung.}
\end{minipage}\par
\endgroup

\blindtext

Normalerweise sollte hier ein Absatzabstand erscheinen.

\blindtext

\blindtext

\end{document}

Man kann auch eine der Umgebungen center, flushleft oder flushright verwenden, die allerdings zusätzlich einen vertikalen Abstand verursachen:

Open in Online-Editor
\documentclass[
  12pt,
  parskip=full,
  ]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{caption}

\usepackage{tcolorbox}

\usepackage{blindtext}

\begin{document}

\begin{center}
\begin{minipage}{\linewidth}
\begin{tcolorbox}[boxrule=.25mm,colframe=black,colback=white]
\blindtext
\end{tcolorbox}
\captionof{figure}{Dies ist die Beschreibung zur Abbildung.}
\end{minipage}
\end{center}

\blindtext

Normalerweise sollte hier ein Absatzabstand erscheinen.

\blindtext

\blindtext

\end{document}

Ob man dann noch wie von @esdd vorgeschlagen das after-Argument für \captionof verwendet, ist eher eine Geschmacksfrage.

Permanenter link

beantwortet 27 Sep '15, 18:16

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 28 Sep '15, 08:49

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×55
×40
×14

gestellte Frage: 27 Sep '15, 17:18

Frage wurde gesehen: 11,629 Mal

zuletzt geändert: 11 Okt '15, 21:25