Ich nutze KOMA-Script mit der Option parskip=half. Dies verursacht bei einer tcolorbox eine "overfull \hbox"-Warnung. Ich habe versucht, mit before= und after= von tcolorbox das Problem zu beheben. Folgendes Beispiel

Öffne in Overleaf
\documentclass[chapterprefix,parskip=half]{scrreprt}
\usepackage[theorems,breakable]{tcolorbox}
\tcbset{before=\KOMAoptions{parskip=half-},after=\par}
\newtcbtheorem[number within=chapter]{definition}{Definition}%
  {left=1em,right=1em,toptitle=1mm,fonttitle=\bfseries\sffamily,separator sign={:\ },description delimiters parenthesis}{th}
\begin{document}
  \chapter{Eins}
  \section{Eins}
  \begin{definition}{Test}{}
    Text
  \end{definition}
\end{document}

zeigt, dass die Warnung trotzdem auftritt. Wie kann ich dies beheben?

gefragt 26 Jan '17, 21:02

tom75's gravatar image

tom75
2.2k277984
Akzeptiert-Rate: 57%

geschlossen 20 Feb '17, 08:36

Die Frage wurde aus folgenden Grund "Das Problem wurde mit Version 4.00 von tcolorbox behoben." geschlossen tom75 20 Feb '17, 08:36


Laut tcolorbox-Anleitung wird before nach Überschriften nur angewendet, wenn ignore nobreak auf true steht:

It is not used for floating boxes. Also, it is not used, if the box follows a heading immediately and /tcb/ignore nobreak is set to false.

Die Voreinstellung von ignore nobreak ist false. Also wird before nach Überschriften nicht angwendet.

Aber Du denkst vielleicht auch einfach zu kompliziert:

Öffne in Overleaf
\documentclass[chapterprefix,parskip=half,draft]{scrreprt}
\usepackage[theorems,breakable]{tcolorbox}
\usepackage{showframe}
\tcbset{after={\parfillskip 0pt plus 1fil\par}}
\newtcbtheorem[number within=chapter]{definition}{Definition}%
  {left=1em,right=1em,toptitle=1mm,fonttitle=\bfseries\sffamily,separator
    sign={:\ },description delimiters parenthesis}{th}
\begin{document}
  \chapter{Eins}
  \section{Eins}

  \begin{definition}{Test}{}
    Text
  \end{definition}
\end{document}

Wie bei anderen Absatzparametern gilt für den gesamten Absatz auch bezüglich \parfillskip die Einstellung am Ende des Absatzes. Also genügt es, vor dem finalen \par einen passenden Wert einzustellen. Dieser gilt auch nur innerhalb der tcolorbox-Umgebungen. Das direkte Setzen von \parfillskip hat in diesem speziellen Fall den Vorteil, dass es unabhängig von der aktuellen Einstellung von Option parskip funktioniert.

BTW: Mach doch mal einen Feature-Request an den tcolorbox-Autor. Der ist normalerweise sehr aufgeschlossen. Vielleicht kann er das ja in den Code einbauen, den er ohnehin verwendet, um festzustellen ob mit Absatzabstand gearbeitet wird oder nicht. Der ist zwar eigentlich für das Paket parskip aber auch dieses setzt inzwischen \parfillskip, wenn man Option parfill verwendet.

Permanenter link

beantwortet 27 Jan '17, 08:43

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 27 Jan '17, 09:21

@saputello Dank! Ich hatte meine Idee aus einer anderen Frage hier, da ging es um ein ähnliches Problem mit minipages. Für tabularx-Umgebungen funktioniert meine Lösung, auch wenn sie vielleicht umständlich ist.

Ich habe gestern noch rausgefunden, dass mein obiger Code auch funktioniert, wenn zwischen der section und der tcbtheorem-Umgebung Text steht.

Ich werde den Autor anschreiben.

(27 Jan '17, 08:56) tom75

@tom75 Das mit der Abhängigkeit von der Überschrift ist eigentlich klar. Ich habe das jetzt aber noch explizit erwähnt.

(27 Jan '17, 09:20) saputello
1

Der Autor hat den Code eingebaut und eine Preview-Version veröffentlicht. Wenn es keine Probleme damit gibt, wird der Code in die nächste offizielle Version übernommen.

(04 Feb '17, 13:58) tom75

@tom75 Wenn die nächste Version erschienen ist und das Problem damit nicht mehr auftritt, darfst Du die Frage gerne mit einem entsprechenden Hinweis schließen.

(04 Feb '17, 15:02) saputello

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:

×131
×14

gestellte Frage: 26 Jan '17, 21:02

Frage wurde gesehen: 6,454 Mal

zuletzt geändert: 20 Feb '17, 08:36