tcolorbox:可以将可破坏的盒子放在彼此后面(重叠)吗?

tcolorbox:可以将可破坏的盒子放在彼此后面(重叠)吗?

由于可破坏的盒子无法放入可破坏的盒子中,正如可破碎的盒子,带有 tcolorbox 的可破碎盒子以及手册tcolorbox

所以我想到了一个替代方案:是否可以将可破坏的盒子放在彼此后面(重叠)?背景中的盒子比前景中的盒子稍大一些,因此看起来像是“盒子中的盒子”,但实际上它们只是彼此外面的可破坏盒子。人们会期望它们正常破裂吗?

例如,从手册tcolorbox。我怎样才能通过重叠来模拟“盒子中的盒子”,以便人们能够正常地打破它们? 在此处输入图片描述

答案1

这只是一个想法。

由于嵌套盒子是牢不可破的,当我们只有两个嵌套盒子时,一个可能的解决方案是将内层盒子定义为可破坏的,并使用一些overlay选项绘制外层盒子。

为了模拟内框,我们必须使用enlarge ...选项调整边距并定义相应的width。外框的标题、colframe 和 colback 在覆盖命令中是固定的。外框的几何形状可能不正确,但我留给您使用更好的调整尺寸。

\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}

\newtcolorbox{myfakebreakablebox}[2][]{
    title=#2,
    enhanced, breakable, 
    enlarge top initially by=1cm,
    enlarge bottom finally by=5mm,
    enlarge left by=5mm,
    enlarge right by=5mm,
    width=\linewidth-10mm,
    overlay first={
        \draw[green!70!black, line width=.5mm, rounded corners]
            ([xshift=-5mm]frame.south west)|-([yshift=1cm]frame.north)-|
            ([xshift=5mm]frame.south east);
        \node[fill=green!70!black, minimum height=5mm, 
            minimum width=\linewidth, anchor=north] at ([yshift=1cm]frame.north) 
            (outertitle) {};
        \node[text=white, anchor=west] at ([xshift=3mm]outertitle.west) {Outer title};
        },
    overlay middle={
        \draw[green!70!black, line width=.5mm, rounded corners]
             ([xshift=-5mm]frame.north west)--([xshift=-5mm]frame.north west);
        \draw[green!70!black, line width=.5mm, rounded corners]
             ([xshift=-5mm]frame.north east)--([xshift=-5mm]frame.north east);
    },
    overlay last={
        \draw[green!70!black, line width=.5mm, rounded corners]
             ([xshift=-5mm]frame.north west)|-([yshift=-5mm]frame.south)
             -|([xshift=5mm]frame.north east);
    }
}

\begin{document}
\lipsum[1-3]
\begin{myfakebreakablebox}{this is the title}
\lipsum[1-3]
\end{myfakebreakablebox}
\lipsum[1]
\end{document}

在此处输入图片描述

相关内容