我试图将一个整体放入\chapter
一个可破坏的 中tcolorbox
。这导致盒子在章节标题之前就被破坏了,并且几乎添加了空白页。以下 MWE 显示了这一点:
\documentclass[a4paper]{book}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\begin{document}
\begin{tcolorbox}[enhanced, breakable]
\chapter*{A chapter}
\lipsum[1-7]
\end{tcolorbox}
\end{document}
有没有什么办法可以防止出现这个初始分页符?
答案1
提前断裂的原因是\clearpage
——某章默认使用了\cleardoublepage
,\clearpage
因此发送了一个新页面,导致 过早断裂tcolorbox
。
预防这种情况:
使用before upper={\let\clearpage\relax}
as 选项将更改保留在\clearpage
内部,tcolorbox
并且不会泄漏到外部:
\documentclass[a4paper]{book}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\begin{document}
\tableofcontents
\begin{tcolorbox}[enhanced, breakable,before upper={\let\clearpage\relax}]
\chapter*{A chapter}
\lipsum[1-7]
\end{tcolorbox}
% Just for testing
\chapter{Another chapter}
\end{document}
答案2
您可以本地重新定义似乎使用的\clearpage
命令\chapter
,以防止它执行任何操作。
\documentclass[a4paper]{book}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\begin{document}
\newcommand*{\mychap}[1]{%
\begingroup%
\let\clearpage\relax%
\chapter*{#1}
\endgroup%
}
\begin{tcolorbox}[enhanced, breakable]
\mychap{A chapter}
\lipsum[1-7]
\end{tcolorbox}
\end{document}
不过,可能会有副作用;我不确定。或者,重新定义\@makeschapterhead
(它适用于report
documentclass,所以可能也适用于书籍)。这是一个排版标题的命令\chapter*
。这应该在某些地方记录下来。