Even and Odd Pages - Разное оформление для чётных и нечётных страниц
В этом разделе рассматриваются механизмы для различного оформления tcolorbox на чётных и нечётных страницах документа.
Even and Odd Pages - Разное оформление для чётных и нечётных страниц
В этом разделе рассматриваются механизмы для различного оформления tcolorbox
на чётных и нечётных страницах документа.
1. Основные команды и параметры
1.1. Основные опции
Опция/Команда | Синтаксис | Описание |
---|---|---|
check odd page |
check odd page=true /false |
Включает точную проверку чётности страницы (требует 2-х компиляций) |
if odd page |
if odd page={нечётные}{чётные} |
Разные стили для чётных/нечётных страниц |
if odd page or oneside |
if odd page or oneside={нечётные}{чётные} |
Для односторонней печати всегда применяет “нечётные” стили |
if odd page* |
if odd page*={нечётные}{чётные} |
Аналог if odd page для breakable-боксов (требует библиотеку breakable ) |
\tcbifoddpage |
\tcbifoddpage{нечётный код}{чётный код} |
Условный оператор в коде |
\thetcolorboxnumber |
\thetcolorboxnumber |
Уникальный номер бокса (внутри бокса) |
\thetcolorboxpage |
\thetcolorboxpage |
Номер страницы бокса (требует check odd page=true ) |
2. Примеры использования
2.1. Разные цвета для чётных/нечётных страниц
\begin{tcolorbox}[
if odd page={colback=yellow!30}{colback=blue!30},
title=Блок на \tcbifoddpage{нечётной}{чётной} странице
]
Этот блок будет жёлтым на нечётных и синим на чётных страницах.
Текущая страница: \thetcolorboxpage.
\end{tcolorbox}
2.2. Для breakable-боксов (с разрывом)
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\begin{tcolorbox}[
breakable,
if odd page*={colback=red!20}{colback=green!20},
title=Разрываемый блок
]
Длинный текст, который может занимать несколько страниц...
Каждая часть будет окрашена в зависимости от чётности страницы.
\end{tcolorbox}
2.3. Использование в водяных знаках
\begin{tcolorbox}[
enhanced,
check odd page,
watermark text={\tcbifoddpage{НЕЧЁТНАЯ}{ЧЁТНАЯ}},
title=Пример с водяным знаком
]
Содержимое блока. Водяной знак покажет чётность страницы.
\end{tcolorbox}
3. Важные особенности
-
Точность проверки:
- Для точного определения чётности страницы требуется:
- Установить
check odd page=true
- Двойная компиляция документа
- Установить
- Без этой опции проверка может работать некорректно для первого блока на странице
- Для точного определения чётности страницы требуется:
-
Разрываемые боксы:
- Для breakable-боксов используйте
if odd page*
вместоif odd page
- Либо упакуйте
if odd page
вextras
:
- Для breakable-боксов используйте
\begin{tcolorbox}[
breakable,
check odd page,
extras={if odd page={colback=yellow}{colback=blue}}
]
...
\end{tcolorbox}
- Односторонняя печать:
- Для документов с
oneside
используйтеif odd page or oneside
- В этом случае всегда будут применяться “нечётные” стили
- Для документов с
4. Полный пример
\documentclass[twoside]{article}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\usepackage{lipsum}
\newtcolorbox{smartbox}[1][]{
check odd page,
if odd page*={colback=yellow!10}{colback=blue!10},
colframe=black,
title=Блок на странице \thetcolorboxpage,
#1
}
\begin{document}
\section{Разное оформление для чётных/нечётных страниц}
\begin{smartbox}
Этот блок автоматически меняет цвет в зависимости от страницы.
\begin{itemize}
\item Номер бокса: \thetcolorboxnumber
\item Номер страницы: \thetcolorboxpage
\end{itemize}
\end{smartbox}
\begin{smartbox}[breakable]
\lipsum[1-4]
Длинное содержимое, которое может переноситься на несколько страниц.
Каждая часть будет окрашена соответствующим образом.
\end{smartbox}
\end{document}
5. Вывод
-
Для разного оформления на чётных/нечётных страницах:
- Используйте
if odd page
для обычных боксов - Используйте
if odd page*
для breakable-боксов - Для точности добавьте
check odd page=true
- Используйте
-
Специальные команды:
\tcbifoddpage
- условный оператор в коде\thetcolorboxnumber
- уникальный номер бокса\thetcolorboxpage
- точный номер страницы
-
Для односторонней печати используйте варианты с
or oneside
.