Библиотека цветных блоков и рамок tcolorbox для Latex

Этот пакет предоставляет окружение для цветных и обрамленных текстовых блоков с заголовком.

Официальное описание пакета по адресу: 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.