Официальное описание пакета по адресу: https://ctan.org/pkg/tcolorbox
tcolorbox – Цветные рамки для примеров и теорем в LaTeX и т. д.
Этот пакет предоставляет среду для цветных текстовых рамок с заголовком. По желанию, такая рамка может быть разделена на верхнюю и нижнюю части; таким образом, пакет может быть использован для настройки примеров LaTeX, где одна часть рамки отображает исходный код, а другая часть показывает результат. Другой распространенный случай использования – настройка теорем. Пакет поддерживает сохранение и повторное использование исходного кода и частей текста.
Пакет зависит от пакетов pgf, verbatim, environ и etoolbox.
Пример обложки документации
\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage[all]{tcolorbox}
\usepackage{incgraph}
\usepackage{lipsum}
\usepackage{accsupp}
\begin{document}
\begin{inctext}
\begin{tikzpicture}
\definecolorseries{boxcol}{rgb}{last}{blue}{red}
\resetcolorseries[28]{boxcol}
\coordinate (A) at (0,0); \coordinate (B) at (21,29.7);
\path[use as bounding box] (A) rectangle coordinate (C) (B);
\node[transform shape,xslant=0.7,rotate=-10,xshift=0cm] at (C) {%
\BeginAccSupp{method=plain,ActualText={}}%
\begin{tcbraster}[raster columns=4,title=tcolorbox,
fonttitle=\small\bfseries,raster width=50cm]
\foreach \b in {1,...,28} {\begin{tcolorbox}[enhanced,
watermark text=\thetcbrasternum,
colframe=boxcol!30!white,
colback=boxcol!25!white!30!white,
colbacktitle=boxcol!!+!50!black!30!white,
colupper=black!30!white]\lipsum[2]\end{tcolorbox}}
\end{tcbraster}%
\EndAccSupp{}%
};
\node at (C) {%
\begin{tcbitemize}[title=tcolorbox ,fonttitle=\small\bfseries,
enhanced jigsaw,opacityback=0.5,opacitybacktitle=0.75,
halign=center,valign=center,arc=5mm,
raster width=16cm,raster column skip=8mm,raster halign=center,
raster force size=false,
raster row 1/.style={height=6cm},
raster row 2/.style={width=6cm,height=4cm},
raster column 1/.style={flushright title,
frame style={left color=yellow!50!black,right color=green!50!black},
title style={left color=yellow!50!blue,right color=blue!50!green!50!black},
interior style={left color=yellow!70,right color=green!70},
underlay={\draw[line width=6mm,line cap=round,black!60]
([shift={(0.4,-0.15)}]frame.north east)
--([shift={(0.4,0.15)}]frame.south east); }},
raster column 2/.style={
frame style={left color=green!50!black,right color=yellow!50!black},
title style={left color=blue!50!green!50!black,right color=yellow!50!blue},
interior style={left color=green!70,right color=yellow!70}}]
\tcbitem[fontupper=\Huge\bfseries,sharp corners=east,
underlay={\draw[line width=6mm,line cap=round,black!60]
([shift={(0.4,0.30)}]frame.north east)-- coordinate(A) +(0,0.2);
\draw[line width=1mm,line cap=round,black!60](A) -- +(30:1.5cm);
\draw[line width=1mm,line cap=round,black!60](A) -- +(150:1.5cm);}]
tcolorbox
\tcbitem[fontupper=\large\bfseries,sharp corners=west]
Manual for
\tcbitem[sharp corners=northeast]
\tcbitem[sharp corners=northwest] Thomas F.~Sturm
\end{tcbitemize}%
};
\end{tikzpicture}
\end{inctext}
\end{document}
Установка пакета
\usepackage{tcolorbox}
Пакет принимает ключи опций в синтаксисе “ключ-значение”. В качестве альтернативы вы можете использовать эти ключи позже в преамбуле с помощью команды \tcbuselibrary
.
\tcbuselibrary{⟨key list⟩}
Вот перевод на русский язык с примерами, обернутыми в latex
:
Следующие ключи используются внутри \tcbuselibrary соответственно \usepackage без ключа:
-
tree path
/tcb/library/.
-
/tcb/library/skins (LIB skins)
Загружает пакетtikzfill.image
→ CTAN и предоставляет дополнительные стили (skins) для внешнего вида цветных коробок;\tcbuselibrary{skins}
-
/tcb/library/vignette (LIB vignette)
Предоставляет код для более орнаментального оформления;\tcbuselibrary{vignette}
-
/tcb/library/raster (LIB raster)
Предоставляет дополнительные макросы и опции для наборки нескольких коробок, расположенных в виде растровой сетки;\tcbuselibrary{raster}
-
/tcb/library/listings (LIB listings)
Загружает пакетlistings
→ CTAN и предоставляет дополнительные макросы для наборки листингов\tcbuselibrary{listings}
-
/tcb/library/listingsutf8 (LIB listingsutf8)
Загружает пакетыlistings
→ CTAN иlistingsutf8
для поддержки UTF-8.\tcbuselibrary{listingsutf8}
-
/tcb/library/minted (LIB minted)
Загружает пакетminted
→ CTAN для наборки листингов с помощью инструмента Pygments;\tcbuselibrary{minted}
-
/tcb/library/theorems (LIB theorems)
Предоставляет дополнительные макросы для наборки теорем\tcbuselibrary{theorems}
-
/tcb/library/breakable (LIB breakable)
Предоставляет поддержку автоматического разбиения коробок с одной страницы на другую;\tcbuselibrary{breakable}
-
/tcb/library/magazine (LIB magazine)
Предоставляет поддержку для хранения частей разбитых коробок для последующего использования или в измененном порядке;\tcbuselibrary{magazine}
-
/tcb/library/poster (LIB poster)
Предоставляет поддержку для создания постеров;\tcbuselibrary{poster}
-
/tcb/library/fitting (LIB fitting)
Предоставляет поддержку адаптации размера шрифта содержимого коробки к размерам коробки;\tcbuselibrary{fitting}
-
/tcb/library/hooks (LIB hooks)
Расширяет несколько опций до “hookable” ключей;\tcbuselibrary{hooks}
-
/tcb/library/xparse (LIB xparse)
Загружает пакетxparse
→ CTAN и считается устаревшей библиотекой, сохраненной для совместимости;\tcbuselibrary{xparse}
-
/tcb/library/external (LIB external)
Предоставляет поддержку экстернализации для фрагментов документов, которые могут быть самостоятельными;\tcbuselibrary{external}
-
/tcb/library/documentation (LIB documentation)
Предоставляет дополнительные макросы для наборки документации LATEX
Основные параметры рамок tcolorbox
Создание рамок
Команды tcolorbox и \tcbox
\begin{tcolorbox}
This is a \textbf{tcolorbox}.
\end{tcolorbox}
\begin{tcolorbox}[colback=red!5!white,colframe=red!75!black,title=My nice heading]
This is another \textbf{tcolorbox}.
\tcblower %разделитель бокса
Here, you see the lower part of the box.
\end{tcolorbox}
\tcblower
Используется внутри tcolorbox
для разделения верхней части коробки от необязательной нижней части коробки. Верхняя и нижняя части рассматриваются как отдельные функциональные единицы. Если вы хотите просто провести линию, используйте \tcbline
.
Пример использования:
\begin{tcolorbox}
Верхняя часть коробки.
\tcblower
Нижняя часть коробки.
\end{tcolorbox}
\tcbset{⟨options⟩}
Устанавливает параметры для всех последующих tcolorbox
внутри текущей группы TEX. По умолчанию это не применяется к вложенным коробкам.
Например, цвета коробок могут быть определены для всего документа следующим образом:
\tcbset{colback=red!5!white, colframe=red!75!black}
После этого все последующие tcolorbox
будут использовать указанные цвета фона и рамки.
\tcbsetforeverylayer{⟨options⟩}
Устанавливает параметры для всех последующих tcolorbox
внутри текущей группы TEX. В отличие от \tcbset
, это также применяется к вложенным коробкам. Технически, параметры ⟨options⟩ добавляются к значениям по умолчанию для каждой tcolorbox
, которые применяются с помощью /tcb/reset
Не следует использовать этот макрос, если вы не уверены, что хотите применять ⟨options⟩ также для коробок в коробках (в коробках в коробках и т.д.).
Пример использования:
\tcbset{colback=green!10!white}
\tcbsetforeverylayer{colframe=red!75!black}
В этом примере все последующие tcolorbox
будут иметь зеленый фон и красную рамку, включая вложенные коробки.
\tcbox[⟨options⟩]{⟨box content⟩}
Создает цветную коробку, которая подгоняется по ширине к заданному содержимому ⟨box content⟩. В принципе, большинство ⟨options⟩ для tcolorbox
могут быть использованы для \tcbox
с некоторыми ограничениями. \tcbox
не может иметь нижнюю часть и не может быть разбита.
Пример использования:
\tcbox[colback=blue!10!white, colframe=blue!75!black]{Это содержимое цветной коробки.}
В этом примере создается цветная коробка с заданным фоном и рамкой, подгоняющаяся по ширине к тексту внутри.
\tcboxverb[⟨options⟩]{⟨verbatim box content⟩}
Создает цветную коробку на основе \tcbox
, которая подгоняется по ширине к заданному содержимому ⟨verbatim box content⟩. Основная \tcbox
стилизована с помощью /tcb/verbatim
плюс заданные ⟨options⟩. Разница с \tcbox
заключается в том, что ⟨verbatim box content⟩ интерпретируется как текст без форматирования. Поэтому \tcboxverb
действует аналогично \verb
.
Пример использования:
\tcboxverb[colback=yellow!10!white, colframe=yellow!75!black]{\texttt{Это содержимое в verbatim-формате.}}
В этом примере создается цветная коробка с заданным фоном и рамкой, подгоняющаяся по ширине к тексту, который интерпретируется без форматирования.
Создание окружений и команд tcolorbox
\newtcolorbox[⟨init options⟩]{⟨name⟩}[⟨number⟩][⟨default⟩]{⟨options⟩}
Создает новое окружение ⟨name⟩ на основе tcolorbox
. В принципе, \newtcolorbox
работает как \newenvironment
. Это означает, что новое окружение ⟨name⟩ может принимать ⟨number⟩ аргументов, где ⟨default⟩ — это значение по умолчанию для необязательного первого аргумента. Параметры ⟨options⟩ передаются основной tcolorbox
. Обратите внимание, что /tcb/savedelimiter
автоматически устанавливается на заданное ⟨name⟩. Параметры ⟨init options⟩ позволяют настроить автоматическую нумерацию.
Пример использования:
\newtcolorbox[auto numbered]{mybox}[2][default value]{colback=blue!5!white, colframe=blue!75!black, title=Заголовок}
В этом примере создается новое окружение mybox
, которое может принимать два аргумента, где первый аргумент имеет значение по умолчанию “default value”. Параметры для tcolorbox
задают цвет фона, цвет рамки и заголовок.
\newtcolorbox{mybox}{colback=red!5!white,
colframe=red!75!black}
\begin{mybox}
This is my own box.
\end{mybox}
\newtcolorbox{mybox}[1]{colback=red!5!white,
colframe=red!75!black,fonttitle=\bfseries,
title={#1}}
\begin{mybox}{Hello there}
This is my own box with a mandatory title.
\end{mybox}
\newtcolorbox{mybox}[2][]{colback=red!5!white,
colframe=red!75!black,fonttitle=\bfseries,
colbacktitle=red!85!black,enhanced,
attach boxed title to top center={yshift=-2mm},
title={#2},#1}
\begin{mybox}[colback=yellow]{Hello there}
This is my own box with a mandatory title
and options.
\end{mybox}
\newtcolorbox[auto counter,number within=section]{pabox}[2][]{%
colback=red!5!white,colframe=red!75!black,fonttitle=\bfseries,
title=Examp.~\thetcbcounter: #2,#1}
\begin{pabox}[colback=yellow]{Hello there}
This is my own box with a mandatory
numbered title and options.
\end{pabox}
\renewtcolorbox[⟨init options⟩]{⟨name⟩}[⟨number⟩][⟨default⟩]{⟨options⟩}
Работает аналогично \newtcolorbox
, но основан на \renewenvironment
вместо \newenvironment
. Существующее окружение переопределяется.
Пример использования:
\renewtcolorbox[auto numbered]{mybox}[2][default value]{colback=green!5!white, colframe=green!75!black, title=Обновленный заголовок}
В этом примере существующее окружение mybox
переопределяется с новыми параметрами, включая цвет фона, цвет рамки и заголовок. Теперь это окружение будет использовать новые настройки при каждом вызове.
\NewTColorBox[⟨init options⟩]{⟨name⟩}{⟨specification⟩}{⟨options⟩}
Создает новое окружение ⟨name⟩ на основе tcolorbox
. В принципе, \NewTColorBox
работает как \NewDocumentEnvironment
. Это означает, что новое окружение ⟨name⟩ создается с заданным аргументом LATEX3 ⟨specification⟩. Если окружение с именем ⟨name⟩ уже было определено, будет выдана ошибка. Параметры ⟨options⟩ передаются основной tcolorbox
. Обратите внимание, что /tcb/savedelimiter
автоматически устанавливается на заданное ⟨name⟩. Параметры ⟨init options⟩ позволяют настроить автоматическую нумерацию.
Пример использования:
% counter из предыдущего примера pabox продолжается в этом стиле
\NewTColorBox[use counter from=pabox]{mybox}{ O{red} m d"" !O{} }
{enhanced,colframe=#1!75!black,colback=#1!5!white,
fonttitle=\bfseries,title={\thetcbcounter~#2},
IfValueT={#3}{watermark text={#3}},#4}
\begin{mybox}{My title}
This is a tcolorbox.
\end{mybox}
\begin{mybox}[blue]{My title}
This is a tcolorbox.
\end{mybox}
\begin{mybox}[green]{My title}"My Watermark"
This is a tcolorbox.
\end{mybox}
\begin{mybox}[yellow]{My title}[colbacktitle=yellow!50!white,coltitle=black]
This is a tcolorbox.
\end{mybox}
\begin{mybox}[purple]{My title}"All together"[coltitle=yellow]
This is a tcolorbox.
\end{mybox}
В этом примере создается новое окружение mynewbox
с заданной спецификацией и параметрами, включая цвет фона, цвет рамки и заголовок. Если окружение с именем mynewbox
уже существует, будет выдана ошибка.
\RenewTColorBox[⟨init options⟩]{⟨name⟩}{⟨specification⟩}{⟨options⟩}
Работает аналогично \NewTColorBox
, но основан на \RenewDocumentEnvironment
вместо \NewDocumentEnvironment
. Существующее окружение переопределяется.
Пример использования:
\RenewTColorBox[auto numbered]{mybox}{m}{colback=red!10!white, colframe=red!75!black, title=Обновленный заголовок}
В этом примере существующее окружение mybox
переопределяется с новыми параметрами.
\ProvideTColorBox[⟨init options⟩]{⟨name⟩}{⟨specification⟩}{⟨options⟩}
Работает аналогично \NewTColorBox
, но основан на \ProvideDocumentEnvironment
вместо \NewDocumentEnvironment
. Окружение ⟨name⟩ создается только в том случае, если оно еще не определено.
Пример использования:
\ProvideTColorBox[auto numbered]{mybox}{m}{colback=green!10!white, colframe=green!75!black, title=Предоставленный заголовок}
В этом примере окружение mybox
будет создано только если оно еще не существует.
\DeclareTColorBox[⟨init options⟩]{⟨name⟩}{⟨specification⟩}{⟨options⟩}
Работает аналогично \NewTColorBox
, но основан на \DeclareDocumentEnvironment
вместо \NewDocumentEnvironment
. Новое окружение всегда создается, независимо от того, существует ли уже окружение с тем же именем.
Пример использования:
\DeclareTColorBox[auto numbered]{mybox}{m}{colback=blue!10!white, colframe=blue!75!black, title=Объявленный заголовок}
В этом примере окружение mybox
будет создано, даже если оно уже существует, что может привести к ошибке.
\NewTotalTColorBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Создает новую команду \⟨name⟩ на основе tcolorbox
. В отличие от \NewTColorBox
, также указывается ⟨content⟩ для tcolorbox
. В принципе, \NewTotalTColorBox
работает как \NewDocumentCommand
. Это означает, что новая команда \⟨name⟩ создается с заданным аргументом LATEX3 ⟨specification⟩. Если \⟨name⟩ уже было определено, будет выдана ошибка. Параметры ⟨options⟩ передаются основной tcolorbox
, которая заполняется указанным ⟨content⟩. Обратите внимание, что /tcb/savedelimiter
автоматически устанавливается на заданное \⟨name⟩. Также обратите внимание, что /tcb/saveto
, /tcb/savelowerto
и /tcb/redirectlowerto
не могут использоваться с \NewTotalTColorBox
и аналогичными командами. Параметры ⟨init options⟩ позволяют настроить автоматическую нумерацию.
Пример использования:
\NewTotalTColorBox{\diabox}{ O{} v m }
{ bicolor,nobeforeafter,equal height group=diabox,width=5.7cm,
fonttitle=\bfseries\ttfamily,adjusted title={#2},center title,
colframe=blue!20!black,leftupper=0mm,rightupper=0mm,colback=black!75!white,#1}
{ \tikz\path[fill zoom image={#2}] (0,0) rectangle (\linewidth,4cm);%
\tcblower#3}
\diabox{blueshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
\diabox{goldshade.png}{Created with |GIMP|.\\\url{http://www.gimp.org}}
В этом примере создается новая команда mytotalbox
, которая принимает содержимое и параметры, включая цвет фона и цвет рамки. Если команда с именем mytotalbox
уже существует, будет выдана ошибка.
\RenewTotalTColorBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Работает аналогично \NewTotalTColorBox
, но основан на \RenewDocumentCommand
вместо \NewDocumentCommand
. Существующая команда переопределяется.
Пример использования:
\RenewTotalTColorBox[auto numbered]{mytotalbox}{m}{colback=purple!10!white, colframe=purple!75!black}{Обновленное содержимое команды.}
В этом примере существующая команда mytotalbox
переопределяется с новыми параметрами и содержимым.
\ProvideTotalTColorBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Работает аналогично \NewTotalTColorBox
, но основан на \ProvideDocumentCommand
вместо \NewDocumentCommand
. Команда \⟨name⟩ создается только в том случае, если она еще не определена.
Пример использования:
\ProvideTotalTColorBox[auto numbered]{mytotalbox}{m}{colback=teal!10!white, colframe=teal!75!black}{Предоставленное содержимое команды.}
В этом примере команда mytotalbox
будет создана только если она еще не существует.
\DeclareTotalTColorBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Работает аналогично \NewTotalTColorBox
, но основан на \DeclareDocumentCommand
вместо \NewDocumentCommand
. Новая команда всегда создается, независимо от того, существует ли уже команда с тем же именем.
Пример использования:
\DeclareTotalTColorBox[auto numbered]{mytotalbox}{m}{colback=cyan!10!white, colframe=cyan!75!black}{Объявленное содержимое команды.}
В этом примере команда mytotalbox
будет создана, даже если она уже существует, что может привести к ошибке.
Создание команд на основе \tcbox
\newtcbox[⟨init options⟩]{\⟨name⟩}[⟨number⟩][⟨default⟩]{⟨options⟩}
Создает новый макрос \⟨name⟩ на основе \tcbox
. В принципе, \newtcbox
работает как \newcommand
. Новый макрос \⟨name⟩ может принимать ⟨number⟩+1 аргументов (до 10), где ⟨default⟩ — это значение по умолчанию для необязательного первого аргумента. В дополнение к аргументам ⟨number⟩ есть автоматический последний (обязательный) аргумент \⟨name⟩, который принимает содержимое коробки. Параметры ⟨options⟩ передаются основной tcbox
. Параметры ⟨init options⟩ позволяют настроить автоматическую нумерацию.
Пример использования:
\newtcbox{\mybox}[1][red]{on line,
arc=0pt,outer arc=0pt,colback=#1!10!white,colframe=#1!50!black,
boxsep=0pt,left=1pt,right=1pt,top=2pt,bottom=2pt,
boxrule=0pt,bottomrule=1pt,toprule=1pt}
\newtcbox{\xmybox}[1][red]{on line,
arc=7pt,colback=#1!10!white,colframe=#1!50!black,
before upper={\rule[-3pt]{0pt}{10pt}},boxrule=1pt,
boxsep=0pt,left=6pt,right=6pt,top=2pt,bottom=2pt}
The \mybox[green]{quick} brown \mybox{fox} \mybox[blue]{jumps} over the \mybox[green]{lazy} \mybox{dog}.\par
The \xmybox[green]{quick} brown \xmybox{fox} \xmybox[blue]{jumps} over the \xmybox[green]{lazy} \xmybox{dog}.
В этом примере создается новый макрос mytcbox
, который может принимать два аргумента, где первый аргумент имеет значение по умолчанию “default value”. Параметры для tcbox
задают цвет фона и цвет рамки.
\renewtcbox[⟨init options⟩]{\⟨name⟩}[⟨number⟩][⟨default⟩]{⟨options⟩}
Работает аналогично \newtcbox
, но основан на \renewcommand
вместо \newcommand
. Существующий макрос переопределяется.
Пример использования:
\renewtcbox[auto numbered]{mytcbox}[2][default value]{colback=blue!10!white, colframe=blue!75!black}
В этом примере существующий макрос mytcbox
переопределяется с новыми параметрами и значением по умолчанию для первого аргумента.
\NewTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}
Создает новую команду \⟨name⟩ на основе \tcbox
. В принципе, \NewTCBox
работает как \NewDocumentCommand
. Это означает, что новая команда \⟨name⟩ создается с заданным аргументом LATEX3 ⟨specification⟩. В дополнение к аргументу ⟨specification⟩ есть автоматический последний (обязательный) аргумент \⟨name⟩, который принимает содержимое коробки. Таким образом, \⟨name⟩ может иметь до 10 аргументов в сумме. Если \⟨name⟩ уже было определено, будет выдана ошибка. Параметры ⟨options⟩ передаются основной \tcbox
. Обратите внимание, что /tcb/savedelimiter
автоматически устанавливается на заданное \⟨name⟩. Параметры ⟨init options⟩ позволяют настроить автоматическую нумерацию.
Пример использования:
\NewTCBox[auto numbered]{mynewtcbox}{m}{colback=green!10!white, colframe=green!75!black}
В этом примере создается новая команда mynewtcbox
, которая принимает спецификацию и параметры, включая цвет фона и цвет рамки. Если команда с именем mynewtcbox
уже существует, будет выдана ошибка.
\RenewTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}
Работает аналогично \NewTCBox
, но основан на \RenewDocumentCommand
вместо \NewDocumentCommand
. Существующая команда переопределяется.
Пример использования:
\RenewTCBox[auto numbered]{mytcbox}{m}{colback=red!10!white, colframe=red!75!black}
В этом примере существующая команда mytcbox
переопределяется с новыми параметрами.
\ProvideTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}
Работает аналогично \NewTCBox
, но основан на \ProvideDocumentCommand
вместо \NewDocumentCommand
. Команда \⟨name⟩ создается только в том случае, если она еще не определена.
Пример использования:
\ProvideTCBox[auto numbered]{mytcbox}{m}{colback=green!10!white, colframe=green!75!black}
В этом примере команда mytcbox
будет создана только если она еще не существует.
\DeclareTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}
Работает аналогично \NewTCBox
, но основан на \DeclareDocumentCommand
вместо \NewDocumentCommand
. Новая команда всегда создается, независимо от того, существует ли уже команда с тем же именем.
Пример использования:
\DeclareTCBox[auto numbered]{mytcbox}{m}{colback=blue!10!white, colframe=blue!75!black}
В этом примере команда mytcbox
будет создана, даже если она уже существует, что может привести к ошибке.
\NewTotalTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Создает новую команду \⟨name⟩ на основе \tcbox
. В отличие от \NewTCBox
, также указывается ⟨content⟩ для tcbox
. В принципе, \NewTotalTCBox
работает как \NewDocumentCommand
. Это означает, что новая команда \⟨name⟩ создается с заданным аргументом LATEX3 ⟨specification⟩. Если \⟨name⟩ уже было определено, будет выдана ошибка. Параметры ⟨options⟩ передаются основной \tcbox
, которая заполняется указанным ⟨content⟩. Обратите внимание, что /tcb/savedelimiter
автоматически устанавливается на заданное \⟨name⟩. Параметры ⟨init options⟩ позволяют настроить автоматическую нумерацию.
Пример использования:
\NewTotalTCBox[auto numbered]{mytotaltcbox}{m}{colback=yellow!10!white, colframe=yellow!75!black}{Это содержимое новой команды.}
В этом примере создается новая команда mytotaltcbox
, которая принимает спецификацию и параметры, включая цвет фона и цвет рамки, а также содержимое коробки. Если команда с именем mytotaltcbox
уже существует, будет выдана ошибка.
\NewTotalTCBox{\myverb}{ O{red} v !O{} }
{ fontupper=\ttfamily,nobeforeafter,tcbox raise base,arc=0pt,outer arc=0pt,
top=0pt,bottom=0pt,left=0mm,right=0mm,
leftrule=0pt,rightrule=0pt,toprule=0.3mm,bottomrule=0.3mm,boxsep=0.5mm,
colback=#1!10!white,colframe=#1!50!black,#3}{#2}
To set a word \textbf{bold} in \myverb{\LaTeX}, use
\myverb[green]{\textbf{bold}}. Alternatively, write
\myverb[yellow]{{\bfseries bold}}.
In \myverb[blue]{\LaTeX}[enhanced,fuzzy halo], other font settings are
done in the same way, e.\,g. \myverb{\textit}, \myverb{\itshape}\\
or \myverb[brown]{\texttt}, \myverb[brown]{\ttfamily}.
% \usepackage{listings} or \tcbuselibrary{listings}
\NewTotalTCBox{\commandbox}{ s v }
{verbatim,colupper=white,colback=black!75!white,colframe=black}
{\IfBooleanT{#1}{\textcolor{red}{\ttfamily\bfseries > }}%
\lstinline[language=command.com,keywordstyle=\color{blue!35!white}\bfseries]^#2^}
\commandbox*{cd "My Documents"} changes to directory \commandbox{My Documents}.
\commandbox*{dir /A} lists the directory content.
\commandbox*{copy example.txt d:\target} copies \commandbox{example.txt} to
\commandbox{d:\target}.
\RenewTotalTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Работает аналогично \NewTotalTCBox
, но основан на \RenewDocumentCommand
вместо \NewDocumentCommand
. Существующая команда переопределяется.
Пример использования:
\RenewTotalTCBox[auto numbered]{mytotaltcbox}{m}{colback=purple!10!white, colframe=purple!75!black}{Обновленное содержимое команды.}
В этом примере существующая команда mytotaltcbox
переопределяется с новыми параметрами и содержимым.
\ProvideTotalTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Работает аналогично \NewTotalTCBox
, но основан на \ProvideDocumentCommand
вместо \NewDocumentCommand
. Команда \⟨name⟩ создается только в том случае, если она еще не определена.
Пример использования:
\ProvideTotalTCBox[auto numbered]{mytotaltcbox}{m}{colback=teal!10!white, colframe=teal!75!black}{Предоставленное содержимое команды.}
В этом примере команда mytotaltcbox
будет создана только если она еще не существует.
\DeclareTotalTCBox[⟨init options⟩]{\⟨name⟩}{⟨specification⟩}{⟨options⟩}{⟨content⟩}
Работает аналогично \NewTotalTCBox
, но основан на \DeclareDocumentCommand
вместо \NewDocumentCommand
. Новая команда всегда создается, независимо от того, существует ли уже команда с тем же именем.
Пример использования:
\DeclareTotalTCBox[auto numbered]{mytotaltcbox}{m}{colback=cyan!10!white, colframe=cyan!75!black}{Объявленное содержимое команды.}
В этом примере команда mytotaltcbox
будет создана, даже если она уже существует, что может привести к ошибке.
Переопределение других сред (обертывание с помощью tcolorbox)
\tcolorboxenvironment{⟨name⟩}{⟨options⟩}
Существующая среда ⟨name⟩ переопределяется, чтобы быть обернутой внутри tcolorbox с заданными ⟨options⟩.
% tcbuselibrary{skins}
\newenvironment{myitemize}{%
\begin{itemize}}{\end{itemize}}
\tcolorboxenvironment{myitemize}{blanker,
before skip=6pt,after skip=6pt,
borderline west={3mm}{0pt}{red}}
Some text.
\begin{myitemize}
\item Alpha
\item Beta
\item Gamma
\end{myitemize}
More text.