Miscellaneous - Разные дополнительные возможности
В этом разделе рассматриваются различные дополнительные функции tcolorbox, которые не вошли в предыдущие категории.
4.24 Miscellaneous - Разные дополнительные возможности
В этом разделе рассматриваются различные дополнительные функции tcolorbox
, которые не вошли в предыдущие категории.
1. Основные команды и параметры
1.1. Сброс настроек
Опция | Синтаксис | Описание |
---|---|---|
reset |
reset |
Сбрасывает все настройки tcolorbox к значениям по умолчанию |
Пример:
\begin{tcolorbox}[reset, title=Блок со сброшенными настройками]
Этот блок игнорирует все предыдущие \tcbset{}
\end{tcolorbox}
1.2. Условные операторы
Опция | Синтаксис | Описание |
---|---|---|
IfBlankTF |
IfBlankTF={текст}{опции если пусто}{опции если не пусто} |
Проверяет на пустоту (пробелы считаются пустотой) |
IfEmptyTF |
IfEmptyTF={текст}{опции если пусто}{опции если не пусто} |
Проверяет на полную пустоту |
IfNoValueTF |
IfNoValueTF={аргумент}{опции если нет значения}{опции если есть} |
Для обработки необязательных аргументов |
IfValueTF |
IfValueTF={аргумент}{опции если есть значение}{опции если нет} |
Обратная версия IfNoValueTF |
IfBooleanTF |
IfBooleanTF={аргумент}{опции если true}{опции если false} |
Для булевых значений |
Пример с IfValueTF:
\DeclareTColorBox{mybox}{o}{%
IfValueTF={#1}{title=#1}{title=Без названия},
colframe=blue
}
\begin{mybox}
Блок без названия
\end{mybox}
\begin{mybox}[Мой заголовок]
Блок с названием
\end{mybox}
1.3. Специальные режимы
Опция | Синтаксис | Описание |
---|---|---|
void |
void |
Полностью удаляет бокс (как комментарий) |
nirvana |
nirvana |
Обрабатывает содержимое, но не отображает бокс |
Пример:
Текст до
\begin{tcolorbox}[void]
Этот блок полностью исчезнет
\end{tcolorbox}
Текст после
2. Примеры использования
2.1. Условное форматирование
\newtcolorbox{smartbox}[1][]{
IfBlankTF={#1}{colback=red!10}{colback=green!10},
title=Умный бокс
}
\begin{smartbox}[]
Будет красным (аргумент пуст)
\end{smartbox}
\begin{smartbox}[X]
Будет зелёным (аргумент не пуст)
\end{smartbox}
2.2. Обработка необязательных аргументов
\DeclareTColorBox{mybox}{o}{
IfNoValueTF={#1}{title=Стандартный}{title=#1},
colframe=black
}
\begin{mybox}
Стандартный заголовок
\end{mybox}
\begin{mybox}[Кастомный]
Специальный заголовок
\end{mybox}
2.3. Временное отключение боксов
Текст до
\begin{tcolorbox}[nirvana]
Этот блок обработается, но не будет виден
\begin{tcolorbox}
Вложенный блок (будет виден)
\end{tcolorbox}
\end{tcolorbox}
Текст после
3. Важные особенности
-
reset
:- Не сбрасывает
capture
,shield externalize
и настройки raster - Автоматически применяется для вложенных боксов (начиная с v2.40)
- Не сбрасывает
-
Условные операторы:
- Основаны на функциях
expl3
иxparse
- Полезны для создания гибких шаблонов боксов
- Основаны на функциях
-
void
vsnirvana
:void
полностью удаляет бокс (как если бы его закомментировали)nirvana
обрабатывает содержимое (счётчики и пр.), но не отображает
-
Ограничения:
void
нельзя использовать для вложенных боксов с одинаковыми именамиvoid
не работает с\tcolorboxenvironment
4. Полный пример
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{xcolor}
% Бокс с условным форматированием
\newtcolorbox{condbox}[1][]{
IfBlankTF={#1}{colback=gray!20}{colback=#1!20},
title=Условный бокс
}
\begin{document}
\section{Примеры разных возможностей}
\begin{condbox}[]
Стандартный серый фон (аргумент пуст)
\end{condbox}
\begin{condbox}[red]
Красный фон (аргумент указан)
\end{condbox}
% Пример с void
Текст до \begin{tcolorbox}[void]Невидимый блок\end{tcolorbox} текст после
% Пример с nirvana
Текст до \begin{tcolorbox}[nirvana]
Невидимый но обработанный блок
\begin{tcolorbox}[colback=yellow]
Вложенный видимый блок
\end{tcolorbox}
\end{tcolorbox} текст после
\end{document}
5. Вывод
- Для сброса настроек используйте
reset
- Для условного форматирования применяйте:
IfBlankTF/IfEmptyTF
- проверка на пустотуIfNoValueTF/IfValueTF
- работа с аргументамиIfBooleanTF
- для булевых флагов
- Для скрытия блоков:
void
- полное удалениеnirvana
- скрытие с обработкой содержимого