Counters, Labels, and References - Счётчики, метки и ссылки в tcolorbox
В этом разделе рассматриваются механизмы работы с нумерацией, перекрёстными ссылками и гиперссылками в рамках tcolorbox.
Counters, Labels, and References - Счётчики, метки и ссылки в tcolorbox
В этом разделе рассматриваются механизмы работы с нумерацией, перекрёстными ссылками и гиперссылками в рамках tcolorbox
.
1. Основные команды и параметры
1.1. Основные опции для работы с метками
Опция |
Синтаксис |
Описание |
phantom |
phantom={\refstepcounter{mycounter}} |
Выполняет код без видимого вывода (для счётчиков и меток) |
nophantom |
nophantom |
Отключает ранее заданный phantom код |
label |
label=mylabel |
Устанавливает метку для ссылок через \ref |
phantomlabel |
phantomlabel=mylabel |
Аналог label для ненумерованных боксов |
step |
step=mycounter |
Увеличивает счётчик (\refstepcounter ) |
step and label |
step and label={mycounter}{mylabel} |
Комбинация step + label |
Пример базового использования:
\begin{tcolorbox}[
label=mybox,
title=Пример с меткой
]
Содержимое бокса. Ссылка: \ref{mybox}.
\end{tcolorbox}
1.2. Типы ссылок
Опция |
Синтаксис |
Описание |
label is label |
label is label |
Использует стандартные \label /\ref (по умолчанию) |
label is zlabel |
label is zlabel |
Использует \zlabel из пакета zref |
label type |
label type=theorem |
Задаёт тип ссылки для cleveref /zref-clever |
no label type |
no label type |
Сбрасывает тип ссылки |
Пример с cleveref
:
\usepackage{cleveref}
\begin{tcolorbox}[
label=mytheorem,
label type=theorem,
title=Теорема
]
Содержимое. Ссылка: \cref{mytheorem}.
\end{tcolorbox}
1.3. Дополнительные возможности
Опция |
Синтаксис |
Описание |
nameref |
nameref=Моё название |
Текст для \nameref |
short title |
short title=Краткое название |
Устанавливает nameref и list entry |
hypertarget |
hypertarget=mytarget |
Создаёт якорь для гиперссылок |
bookmark |
bookmark=Название |
Добавляет закладку PDF |
index |
index=Термин |
Добавляет запись в индекс |
2. Примеры использования
2.1. Автоматическая нумерация
\newtcolorbox[auto counter]{mybox}[1][]{
colback=white,
title=Блок \thetcbcounter,
#1
}
\begin{mybox}[label=box1]
Первый блок. Ссылка: \ref{box1}.
\end{mybox}
2.2. Работа с гиперссылками
\usepackage{hyperref}
\begin{tcolorbox}[
hypertarget=target1,
title=Кликабельный блок
]
\hyperlink{target2}{Перейти к другому блоку}.
\end{tcolorbox}
\begin{tcolorbox}[
hypertarget=target2,
title=Целевой блок
]
Этот блок будет целью ссылки.
\end{tcolorbox}
2.3. Индексирование и закладки
\usepackage{imakeidx,bookmark}
\makeindex
\begin{tcolorbox}[
bookmark=Важная теорема,
index=Теоремы,
title=Теорема Пифагора
]
$a^2 + b^2 = c^2$
\end{tcolorbox}
3. Полный пример
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{hyperref,cleveref,bookmark,imakeidx}
\makeindex
\newtcolorbox[auto counter]{theorem}[2][]{
colback=green!5,
title=Теорема \thetcbcounter: #2,
label type=theorem,
#1
}
\begin{document}
\section{Примеры}
\begin{theorem}[label=pyth]{Пифагора}
$a^2 + b^2 = c^2$
\end{theorem}
Ссылка на \cref{pyth}.
\begin{tcolorbox}[
bookmark=Демонстрация,
index=Примеры,
hypertarget=demo,
title=Демо-блок
]
Этот блок имеет:
\begin{itemize}
\item Закладку PDF
\item Запись в индексе
\item Якорь для ссылок
\end{itemize}
\end{tcolorbox}
\printindex
\end{document}
4. Важные замечания
- Для работы
zlabel
требуется пакет zref
phantom
код выполняется в группе - используйте \global
для глобальных изменений
- Опции
bookmark
и index
требуют соответствующих пакетов
Вывод
- Используйте
label
и phantom
для перекрёстных ссылок
label type
улучшает работу с cleveref
hypertarget
и bookmark
добавляют интерактивности PDF
index
интегрирует боксы в предметный указатель