
境界線のスタイルが変更されたボックスがありますが、そのようなボックスを 2 つネストすると、内側のボックスのスタイルが設定したスタイルと異なります。ドキュメントやこの 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 では、同じ種類のボックス (つまり、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}