嵌套 tcolorbox 改变边框样式

嵌套 tcolorbox 改变边框样式

我有一个修改了边框样式的框,但是当我嵌套两个这样的框时,内部框的样式不是我设置的样式。我从文档和此 stackexchange 上的其他问题中知道,嵌套breakable框会产生问题,但我不记得读过有关样式的任何内容。

所以我的问题是:如果内部框未嵌套,我该如何嵌套框同时保留样式?

一个有两个框的图像,第一个框显示正常;第二个框里面包含另一个框,但其类型不正确。

\documentclass{article}
\usepackage[skins, breakable]{tcolorbox}
\tcbset{
    enhanced,
    frame hidden,
    sharp corners,
    }

\newtcolorbox{sidebox}{
    borderline={1pt}{0pt}{gray!80!cyan},
    colback=gray!80!cyan!5,
}

\begin{document}
\begin{sidebox}
    \[A=B\]
\end{sidebox}

\begin{sidebox}
\begin{sidebox}
    \[A=B\]
\end{sidebox}
\end{sidebox}
\end{document}

请注意,在这个 MWE 中,我嵌套了相同类型的盒子(即 asidebox在 a 中sidebox),但实际上,情况并非一定如此,并且该盒子可能是用 创建的\tcolorboxenvironment

答案1

我建议阅读部分4.16 分层框及每个框的设置tcolorbox文档中解释了分层样式之间的关系。

通过您的例子,看起来改变\tcbset\tcbsetfoereverylayer有效的。

\documentclass{article}
\usepackage[skins, breakable]{tcolorbox}
\tcbsetforeverylayer{
    enhanced,
    frame hidden,
    sharp corners,
    }

\newtcolorbox{sidebox}{
    borderline={1pt}{0pt}{gray!80!cyan},
    colback=gray!80!cyan!5,
}

\begin{document}
\begin{sidebox}
    \[A=B\]
\end{sidebox}

\begin{sidebox}
\begin{sidebox}
    \[A=B\]
\end{sidebox}
\end{sidebox}
\end{document}

在此处输入图片描述

相关内容