
상황: 을 사용하는데 tcolorbox
, 상자의 내용과 범례가 페이지 나누기로 분리되는 경우가 있습니다. 나는 그것을 피하고 싶지만 상자의 내용이 깨질 수 있도록 하고 싶습니다.
내용과 범례 사이의 줄 바꿈을 억제하는 등 다양한 방법을 시도했지만(비록 차선책인 경우에도) 제가 잘못하고 있는 것 같습니다.
다음은 상황의 예입니다.
\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}
답변1
\nopagebreak
범례 바로 앞에 추가할 수 있습니다 .
\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
},
}
그건 그렇고, title
키를 사용하여 범례를 처리할 수도 있습니다. 상자 아래에 넣으려면 detach title
; 그런 다음 제목 텍스트를 로 사용할 수 \tcbtitletext
있고 형식이 지정된 제목을 로 사용할 수 있습니다 \tcbtitle
. 나는 다음 tcolorbox
과 같이 정의하는 것을 제안합니다.
\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
}
인수는 #1
마지막에 넣었으므로 특정 상자 하나에 추가 옵션을 설정할 수 있습니다.
전체 예:
\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}