当 tcolorbox 中断时,分段代码将被忽略

当 tcolorbox 中断时,分段代码将被忽略

考虑以下 mwe:

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable}
\usetikzlibrary{calc}
\usepackage{lipsum}
\begin{document}
   \begin{tcolorbox}[enhanced,breakable,segmentation code={\draw[red]($(segmentation.west)+(1,0)$)--($(segmentation.east)+(-1,0)$);}]
    test
    \tcblower
    Works as expected
   \end{tcolorbox}

    \begin{tcolorbox}[enhanced,breakable,segmentation code={\draw[red]($(segmentation.west)+(1,0)$)--($(segmentation.east)+(-1,0)$);}]
    \lipsum
    \tcblower
    Does not work as expected
   \end{tcolorbox}
\end{document}

未破损的盒子结果:

在此处输入图片描述

破箱结果:

在此处输入图片描述

目标是拥有具有给定分割样式的 tcolorbox,例如比框宽度短一点的红线。

如果盒子没有破损,代码可以正常工作,但是如果盒子破损,代码似乎会被忽略。我做错了什么?

编辑:我刚刚发现我可以在中断后强制分段代码并将其放入其中extend freelance last,但这不是一个可行的解决方案,因为它也会以不受欢迎的方式改变框架的外观。

答案1

对于tcolorbox3.00 (2014/05/08) 之前的版本,如果您想使用,segmentation code则需要freelance密钥而不是enhanced(事实上,使用您的原始设置,您的代码不会生成您在问题中显示的图像;在两种情况下,如果使用 和不使用 ,segmentation code该选项都会被忽略):enhancedfreelance

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable}
\usetikzlibrary{calc}
\usepackage{lipsum}
\begin{document}
   \begin{tcolorbox}[freelance,breakable,segmentation code={\draw[red]($(segmentation.west)+(1,0)$)--($(segmentation.east)+(-1,0)$);}]
    test
    \tcblower
    Works as expected
   \end{tcolorbox}

    \begin{tcolorbox}[freelance,breakable,segmentation code={\draw[red]($(segmentation.west)+(1,0)$)--($(segmentation.east)+(-1,0)$);}]
    \lipsum
    \tcblower
    Works as expected
   \end{tcolorbox}
\end{document}

在此处输入图片描述

但是,使用freelance皮肤会改变框在分页时的行为方式,因此您需要重新做框的某些部分才能获得原始行为。

tcolorbox3.00 (2014/05/08) 开始,segmentation code也可以与 一起使用enhanced,但我建议使用segmentation style而不是segmentation code(这适用于所有版本):

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins,breakable}
\usetikzlibrary{calc}
\usepackage{lipsum}

\newtcolorbox{mybox}{
  enhanced,
  breakable,
  segmentation style={red,solid,shorten >= 1cm,shorten <= 1cm}
}

\begin{document}
   \begin{mybox}
    test
    \tcblower
    Works as expected
   \end{mybox}

    \begin{mybox}
    \lipsum
    \tcblower
    Works as expected
   \end{mybox}

\end{document}

在此处输入图片描述

相关内容