
У меня есть блок с измененным стилем границы, но когда я вставляю два таких блока, стиль внутреннего не тот, который я установил. Я знаю из документации и из других вопросов на этом 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 я вложил один и тот же тип блока (т. е. a sidebox
в 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}