Externalization - Интеграция с внешними файлами TikZ
В этом разделе рассматривается взаимодействие tcolorbox с системой внешних файлов (externalization) пакета TikZ.
Externalization - Интеграция с внешними файлами TikZ
В этом разделе рассматривается взаимодействие tcolorbox
с системой внешних файлов (externalization
) пакета TikZ.
1. Основные команды и параметры
Опция/Команда | Синтаксис | Описание |
---|---|---|
shield externalize |
shield externalize=true /false |
Защищает tcolorbox от внешнего экспорта (по умолчанию false ) |
external |
external=имя_файла |
Устанавливает имя файла для экспорта TikZ-рисунков внутри бокса |
remake |
remake=true /false |
Форсирует пересоздание внешнего файла для TikZ-рисунка |
2. Примеры использования
2.1. Базовое использование
\documentclass{article}
\usepackage{tcolorbox}
\usetikzlibrary{external}
\tikzexternalize % Включаем систему внешних файлов
\begin{document}
\begin{tcolorbox}[
shield externalize, % Защищаем сам бокс от экспорта
title=Защищённый бокс
]
Этот tcolorbox не будет экспортирован как внешний файл.
\begin{tikzpicture}
\draw (0,0) circle (1cm); % Этот рисунок БУДЕТ экспортирован
\end{tikzpicture}
\end{tcolorbox}
\end{document}
2.2. Управление экспортом отдельных рисунков
\begin{tcolorbox}[
external=myplot, % Устанавливаем имя файла для экспорта
remake=true, % Форсируем пересоздание
title=Бокс с управляемым экспортом
]
\begin{tikzpicture}
\draw[red] (0,0) rectangle (2,2); % Экспортируется в myplot.pdf
\end{tikzpicture}
\end{tcolorbox}
3. Важные особенности
-
Автоматическое отключение в TikZ-окружении:
- Внутри
tikzpicture
опцияshield externalize
автоматически отключается - Не используйте
\tikzexternaldisable
перед tcolorbox в этом случае
- Внутри
-
Рекомендуемые паттерны использования:
\tikzexternalenable % Рисунки для экспорта \tikzexternaldisable % Обычные tcolorbox
-
Требования:
- Для работы необходимо подключить библиотеку TikZ:
\usetikzlibrary{external} \tikzexternalize
- Для работы необходимо подключить библиотеку TikZ:
-
Ограничения:
- Рисунки, созданные через
tikz upper
и аналогичные опции, не экспортируются - Для сложных документов может потребоваться несколько компиляций
- Рисунки, созданные через
4. Полный пример
\documentclass{article}
\usepackage{tcolorbox}
\usetikzlibrary{external}
\tikzexternalize % Активируем систему внешних файлов
\tcbset{shield externalize} % Глобально защищаем все tcolorbox
\begin{document}
\section{Пример интеграции с внешними файлами}
\begin{tcolorbox}[title=Обычный защищённый бокс]
Этот блок не будет экспортирован как внешний файл.
\end{tcolorbox}
\begin{tcolorbox}[
external=mycircle,
title=Бокс с экспортируемым рисунком
]
\begin{tikzpicture}
\draw[blue, thick] (0,0) circle (1.5cm);
\node at (0,0) {Экспортируется};
\end{tikzpicture}
\end{tcolorbox}
\tikzexternaldisable % Временно отключаем экспорт
\begin{tcolorbox}[title=Временный незащищённый бокс]
Этот блок создан при отключённом экспорте.
\end{tcolorbox}
\tikzexternalenable % Возобновляем экспорт
\end{document}
5. Вывод
-
Защита боксов:
- Используйте
shield externalize
для предотвращения экспорта tcolorbox - Устанавливайте глобально через
\tcbset
, если не нужен экспорт
- Используйте
-
Управление экспортом:
- Для экспорта отдельных рисунков используйте
external=имя_файла
- Для принудительного обновления -
remake=true
- Для экспорта отдельных рисунков используйте
-
Лучшие практики:
- Чётко разделяйте код, требующий экспорта и не требующий
- Используйте
\tikzexternalenable/disable
для группировки экспортируемых элементов
Эти механизмы позволяют эффективно комбинировать tcolorbox с системой внешних файлов TikZ, оптимизируя процесс сборки сложных документов.