如何在 tcolorbox 中调用 \chapter 时防止初始分页符

如何在 tcolorbox 中调用 \chapter 时防止初始分页符

我试图将一个整体放入\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(它适用于reportdocumentclass,所以可能也适用于书籍)。这是一个排版标题的命令\chapter*。这应该在某些地方记录下来。

相关内容