打破上部和下部之间的 tcolorbox

打破上部和下部之间的 tcolorbox

我使用的是可折断的 tcolorboxes,其上半部分和下半部分的颜色不同(双色)。但是,当盒子恰好在上半部分和下半部分之间折断时,折断后的盒子部分会从上半部分的颜色开始,然后才继续使用下半部分的颜色。有什么方法可以解决这个问题吗?

梅威瑟:

\documentclass[11pt]{scrbook}

\usepackage{lipsum}

\usepackage[many]{tcolorbox}

\newtcolorbox{example}{breakable,bicolor,colback=black!10!white,colbacklower=black!5!white,title={Example}}


\begin{document}

\begin{example}

\lipsum[3-7]

\tcblower

\lipsum[8]

\end{example}

\end{document}

编辑:我意识到选项“pad after break=0mm”很有用,但它应该只适用于 tcolorbox 在上部和下部之间断裂的情况。

答案1

更新:对于tcolorbox版本4.03或更高版本,此功能将作为选项实现segmentation at break=false

首先,这种行为不是 bug。如果在上半部分和下半部分之间的分割处发生中断,则分割线和下半部分将转到下一页。在那里,分割会显示出来以表示下半部分已开始。

为了bicolor,颜色变化也标志着下半部分的开始。因此,这里最好不要有明确的分割线。我把它看作功能要求分割是可选地未在分页符上绘制:-)

对于带有的“伪造”分割\tcbline,已经可以选择使用\tcbline*来获取此功能。

对于“真实”细分,此选项目前不可用。但我认为我们可以使用以下新选项来实现:

\tcbset{
  experimental split/.code={\let\tcb@split@SL=\tcb@split@L},
}

有了它,分割线就不会在分割框的开头绘制。我必须调查一下,这是否会导致一些不必要的副作用。此外,还必须为该功能找到一个好名字(欢迎提出建议)。

完整示例代码为:

\documentclass[11pt]{scrbook}

\usepackage{lipsum}
\usepackage[many]{tcolorbox}

\makeatletter
\tcbset{
  experimental split/.code={\let\tcb@split@SL=\tcb@split@L},
}
\makeatother


\newtcolorbox{example}{breakable,
  experimental split,
  bicolor,
  colback=red!10!white,
  colbacklower=blue!5!white,
  title={Example}}


\begin{document}

\begin{example}
\lipsum[3-7]
\tcblower
\lipsum[8]
\end{example}

\end{document}

在此处输入图片描述

相关内容