Управление уровнями/слоями в пакете tcolorbox
Управление слоями в tcolorbox
1. Основные команды для управления слоями
Команда / Стиль | Синтаксис | Описание |
---|---|---|
every box |
\tcbset{every box/.style={...}} |
Стиль, применяемый ко всем tcolorbox (по умолчанию пуст). |
every box on layer n |
\tcbset{every box on layer 1/.style={...}} |
Стиль для конкретного слоя (1-4 по умолчанию). |
every box on higher layers |
\tcbset{every box on higher layers/.style={...}} |
Стиль для слоёв выше управляемых (по умолчанию reset,every box ). |
\tcbsetmanagedlayers |
\tcbsetmanagedlayers{<число>} |
Устанавливает максимальный номер управляемого слоя (только в преамбуле). |
2. Примеры использования
Пример 1: Настройка стилей для всех слоёв
\usepackage{tcolorbox}
\tcbset{
every box/.style={enhanced, colframe=blue}, % Базовый стиль
every box on layer 2/.style={colback=yellow}, % Стиль для второго слоя
every box on higher layers/.style={colframe=red} % Стиль для вложенных
}
\begin{tcolorbox}[title=Layer 1]
Внешний блок.
\begin{tcolorbox}[title=Layer 2]
Вложенный блок (жёлтый фон).
\begin{tcolorbox}[title=Layer 3]
Ещё глубже (красная рамка).
\end{tcolorbox}
\end{tcolorbox}
\end{tcolorbox}
Пример 2: Сброс стилей (reset
)
\tcbset{
every box/.style={fonttitle=\bfseries},
every box on layer 2/.style={reset, colback=green} % Сброс стилей перед применением
}
\begin{tcolorbox}[title=Layer 1]
Заголовок жирный.
\begin{tcolorbox}[title=Layer 2]
Заголовок НЕ жирный (сброшен), фон зелёный.
\end{tcolorbox}
\end{tcolorbox}
Пример 3: Увеличение числа управляемых слоёв
\usepackage{tcolorbox}
\tcbsetmanagedlayers{5} % В преамбуле
\tcbset{
every box on layer 5/.style={colframe=purple}
}
\begin{tcolorbox}[title=Layer 1]
\begin{tcolorbox}[title=Layer 2]
\begin{tcolorbox}[title=Layer 3]
\begin{tcolorbox}[title=Layer 4]
\begin{tcolorbox}[title=Layer 5]
Фиолетовая рамка (5-й слой).
\end{tcolorbox}
\end{tcolorbox}
\end{tcolorbox}
\end{tcolorbox}
\end{tcolorbox}
3. Важные примечания
- Команда
\tcbsetmanagedlayers
работает только в преамбуле. - По умолчанию для вложенных блоков применяется
reset
, что сбрасывает стили родительского блока. - Для глобального применения стиля используйте
\tcbsetforeverylayer{...}
.