
Situation: Ich verwende eine tcolorbox
, aber manchmal sind Inhalt und Legende der Box durch eine Trennseite getrennt. Das möchte ich vermeiden, aber die Box inhaltlich teilbar lassen.
Ich habe verschiedene Dinge ausprobiert, unter anderem das Unterdrücken des Zeilenumbruchs zwischen dem Inhalt und der Legende (auch wenn das eher die zweitbeste Lösung ist), aber ich nehme an, ich mache es falsch.
Hier ist ein Beispiel für die Situation:
\documentclass{scrbook}
\usepackage[most]{tcolorbox}
\usepackage{setspace}
\usepackage{needspace}
\usepackage{lipsum}
\usepackage[french]{babel}
\newtcolorbox{carnetethno}[1][]{
breakable, %pour casser les boîtes sur deux pages
empty,
before upper*={
\newcommand{\transfert}{#1}
\setstretch{1.1}
\par\noindent\nobreak
},
after upper*={
\par\textsc{\transfert}
},
}
\begin{document}
\section{Example}
\lipsum[1-3] \\
Bla~~\\
\begin{carnetethno}[Here the legend]
\lipsum[1]
\end{carnetethno}
\end{document}
Antwort1
Sie können \nopagebreak
direkt vor der Legende hinzufügen:
\newtcolorbox{carnetethno}[1][]{
breakable, %pour casser les boîtes sur deux pages
empty,
before upper*={
\newcommand{\transfert}{#1}
\setstretch{1.1}
\par\noindent\nobreak
},
after upper*={
\nopagebreak\par\textsc{\transfert}% <-- prevent page break before
},
}
Übrigens kannst du die Legende auch mit der title
Taste bearbeiten. Um sie unter die Box zu setzen, verwende detach title
; der Titeltext steht dann mit zur Verfügung \tcbtitletext
und der formatierte Titel mit \tcbtitle
. Ich schlage vor, du definierst deine tcolorbox
mit:
\newtcolorbox{carnetethno}[1][]{
breakable, %pour casser les boîtes sur deux pages
empty,
before upper*={
\setstretch{1.1}
\par\noindent\nobreak
},
detach title,
fonttitle=\scshape,
coltitle=black,
after upper*={
\nopagebreak\par\tcbtitle
},
#1
}
Ich habe das Argument #1
am Ende eingefügt, damit Sie einem bestimmten Feld zusätzliche Optionen zuweisen können.
Vollständiges Beispiel:
\documentclass{scrbook}
\usepackage[most]{tcolorbox}
\usepackage{setspace}
\usepackage{needspace}
\usepackage{lipsum}
\usepackage[french]{babel}
\newtcolorbox{carnetethno}[1][]{
breakable, %pour casser les boîtes sur deux pages
empty,
before upper*={
\setstretch{1.1}
\par\noindent\nobreak
},
detach title,
fonttitle=\scshape,
coltitle=black,
after upper*={
\nopagebreak\par\tcbtitle
},
#1
}
\begin{document}
\section{Example}
\lipsum[1-3] \\
% Bla~~\\
\begin{carnetethno}[title={Here the legend}]
\lipsum[1]
\end{carnetethno}
\begin{carnetethno}[title={Here the legend}, coltitle=red]
\lipsum[1]
\end{carnetethno}
\end{document}