Mehrseitige tcolorbox floaten

Tabellen und Grafiken erstellen und anordnen


SanktJay
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Mi 15. Nov 2017, 20:36

Mehrseitige tcolorbox floaten

Beitrag von SanktJay »

Hallo Allerseits,

in meiner Doktorarbeit würde ich gerne mit tcolorbox zum erstellen von Informationsboxen arbeiten. Diese Boxen werden gelegentlich mehr als eine Seite einnehmen. Folgendes würde ich gern realsisieren:
Zunächst kommt ein Fließtext. Einiges Details die in diesem Text nur genannt werden sollen in Tcolorboxen genauer erläutert werden. Diese sollen dann, beginnend oben auf einer neuen Seite anfangen, und bei bedarf auch über mehr als eine Seite gehen. Es wäre schön, wenn sie sich als floatendes Objekt in den Fließtext integrieren liesen.
Ich würde mir folgendes dabei vorstellen: zunächst kommt der blindtext. Der restliche Platz auf der Seite wird mit dem Beginn des Lorem ipsum aufgefüllt, dann kommt auf der nächsten Seite die tcolorbox und nach der box geht es mit lorem ipsum weiter...
Das funktioniert allerdings nur solange, bis die tcolorbox eine gewisse Größe erreicht (im Beispielcode \blindtext[2]). Sobald ich \blindtext[3] eingebe wird die colorbox an das ende des Dokumentes gestellt. Wie kann ich das ändern?

Gruß,
Jay

p.s.: Ich hoffe mein erster Beitrag war einigermaßen verständlich :D
\documentclass{article}

\usepackage[ngerman]{babel} 
\usepackage{xcolor}
\usepackage[most]{tcolorbox}
\tcbuselibrary{breakable, skins}
\usepackage{lipsum}
\usepackage{blindtext}	

\begin{document}
	
\blindtext[4]

\tcbset{colframe=red!75!black,fonttitle=\bfseries,
	colback=red!5!white}

\begin{tcolorbox}[enhanced jigsaw, breakable, title=Titel, float=t]
	\blindtext[3]
\end{tcolorbox}


\lipsum[1-3]
\end{document}
:D :D

Gast

Beitrag von Gast »

Wenn ich richtig verstanden habe, suchst Du afterpage:
\documentclass{article}

\usepackage[ngerman]{babel} 
\usepackage{xcolor}
\usepackage[most]{tcolorbox}
\tcbuselibrary{breakable, skins}
\usepackage{lipsum}
\usepackage{blindtext}
\usepackage{afterpage}

\begin{document}
   
\blindtext[4]

\afterpage{%
\tcbset{colframe=red!75!black,fonttitle=\bfseries,
   colback=red!5!white}%
\begin{tcolorbox}[enhanced jigsaw, breakable, title=Titel]
   \blindtext[5]
\end{tcolorbox}}

\lipsum[1-3]
\end{document}
Beachte, dass das nur funktionieren kann, wenn bei tcolorbox kein float=t angegeben wird. Die Verschiebung an den Anfang der nächsten Seite (nach dem aktuellen Absatz, falls es in einem Absatz verwendet wird) erledigt dabei \afterpage. Es sei aber auch erwähnt, dass \afterpage nicht gut in der Nähe von longtable funktioniert. Ob es zu ähnlichen Problemen mit tcolorbox kommen kann, weiß ich nicht. In obigem Beispiel funktioniert es.

SanktJay
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Mi 15. Nov 2017, 20:36

Beitrag von SanktJay »

WOW!

Vielen Dank. Man muss eben wissen wonach man suchen muss... :D

Noch ein andere Frage dazu: Gibt es eine Möglichkeit, dass die colorboxen z.b. nur auf ungeraden Seiten dargestellt wird?
Damit meine ich, dass im fließtext irgendwann eine colorbox kommt und dann auf einem zweiseitigen dokument oben auf der rechten seite beginnt. Wenn man da weiterblättert bleibt die colorbox auf der rechten seite und der fließtext geht auf der linken seite weiter.

Gruß,
Jay

Gast

Beitrag von Gast »

Ungetested:
\newcommand\afterpagetoodd[1]{%
  \afterpage{\ifodd\value{page}#1\else\afterpagetoodd{#1}\fi
}

SanktJay
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Mi 15. Nov 2017, 20:36

Beitrag von SanktJay »

Danke für die Antwort. Leider tut es nicht das, was ich mir vorstelle...
Im Beispiel würde ich mir wünschen, dass die Colorbox auf Seite 2 Beginnt und bei entsprechender größe, auf Seite 4 fortgesetzt wird. Auf Seite 3 sollte dann wieder Fließtext stehen...
In deinem Vorschlag wird die Colorbox auf ungerade Seiten geschoben. Da hab ich mich wohl missverständlich ausgedrückt.

Gast

Beitrag von Gast »

Unterbrochene tcolorbox geht damit natürlich nicht. Das müsste man dann schon in tcolorbox direkt einbauen. Du kannst den Autor fragen.

Allerdings finde ich das dann auch schon etwas fragwürdig. Das sieht für mich eher danach aus, als wollte jemand zwei einseitige Dokumente in ein doppelseitiges zusammen montieren.

SanktJay
Forum-Newbie
Forum-Newbie
Beiträge: 7
Registriert: Mi 15. Nov 2017, 20:36

Beitrag von SanktJay »

Es war eine idee Teile der Arbeit so zu gestalten um von dem klassischen Theorie - Methodik - Ergebnisse bla bla weg zu kommen... daher wollte ich den Haupttext mit diesen Informationsboxen unterstützen, in denen dann an entsprechender Stelle die wichtigsten theoretischen oder methodischen Grundlagen parallel zum eigentlich text stehen... aber kein problem das es nicht ohne weiteres geht.
Eine Frage noch: wie muss ich das \afterpagetoodd modifizieren, damit es die colorboxen immer auf gerade Seiten packt?

Gruß,
Jay

Gast

Beitrag von Gast »

Das sollte eigentlich weitgehend selbsterklärend sein …
\newcommand\afterpagetoeven[1]{%
  \afterpage{\ifodd\value{page}\afterpagetoeven{#1}\else #1\fi
}

Gast

Beitrag von Gast »

Ich sehe gerade: Da fehlt bei beiden Codebeispielen ein } nach \fi.

Gast

Beitrag von Gast »

Also so:
\newcommand\afterpagetoodd[1]{%
  \afterpage{\ifodd\value{page}#1\else\afterpagetoodd{#1}\fi}%
}
\newcommand\afterpagetoeven[1]{%
  \afterpage{\ifodd\value{page}\afterpagetoeven{#1}\else #1\fi}%
}

Antworten