ネストしたtcolorboxは境界線のスタイルを変更します

ネストしたtcolorboxは境界線のスタイルを変更します

境界線のスタイルが変更されたボックスがありますが、そのようなボックスを 2 つネストすると、内側のボックスのスタイルが設定したスタイルと異なります。ドキュメントやこの StackExchange の他の質問から、breakableボックスをネストすると問題が発生する可能性があることはわかっていますが、スタイルについて何か読んだ覚えはありません。

そこで質問です。内側のボックスがネストされていない場合のように、スタイルを維持しながらボックスをネストするにはどうすればよいでしょうか。

2 つのボックスがある画像で、最初のボックスは適切に表示されますが、2 番目のボックス内には別のボックスが含まれており、その stype は正しくありません。

\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 では、同じ種類のボックス (つまり、sidebox内の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}

ここに画像の説明を入力してください

関連情報