diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex')
-rw-r--r-- | macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex | 509 |
1 files changed, 509 insertions, 0 deletions
diff --git a/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex new file mode 100644 index 0000000000..ecd2d24dd2 --- /dev/null +++ b/macros/latex/contrib/tcolorbox/tcbdocumentation.code.tex @@ -0,0 +1,509 @@ +%% The LaTeX package tcolorbox - version 4.20 (2019/03/02) +%% tcbdocumentation.code.tex: Code for LaTeX documentations +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2019 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\tcb@set@library@version{4.20} + +\tcbuselibrary{listings,skins,xparse,external} + +\RequirePackage{pifont}[2005/04/12] +\RequirePackage{marvosym}[2011/07/20] +\ifdefined\printindex\else\RequirePackage{makeidx}[2000/03/29]\fi +\RequirePackage{refcount}[2011/10/16] +\RequirePackage{hyperref}[2012/02/06] +\ifdefined\marginnote\else\RequirePackage{marginnote}[2012/03/29]\fi + +\definecolor{Option}{rgb}{0.118,0.546,0.222} +\definecolor{Definition}{rgb}{0.784,0.06,0.176} +\definecolor{ExampleFrame}{rgb}{0.628,0.705,0.942} +\definecolor{ExampleBack}{rgb}{0.963,0.971,0.994} +\definecolor{Hyperlink}{rgb}{0.281,0.275,0.485} + +\def\colDef#1{\textcolor{\kvtcb@col@command}{#1}} +\def\colOpt#1{\textcolor{\kvtcb@col@opt}{#1}} + +\lstdefinestyle{tcbdocumentation}{language={[LaTeX]TeX}, + aboveskip={0\p@ \@plus 6\p@}, + belowskip={0\p@ \@plus 6\p@}, + columns=fullflexible, + keepspaces=true, + breaklines=true, + prebreak={\Righttorque}, + postbreak={\space\Lefttorque}, + breakatwhitespace=true, + basicstyle=\ttfamily\footnotesize, + extendedchars=true, + moredelim={[is][\itshape\rmfamily]{^^a7}{^^a7}}, + nolol,inputencoding=\kvtcb@listingencoding} + +% The following macros are taken from ltxdoc +\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} +\def\meta@font@select{\rmfamily\itshape} + +\AtEndPreamble{% + \@ifpackageloaded{doc}{% + }{% code taken from doc.sty + \ifx\l@nohyphenation\undefined + \newlanguage\l@nohyphenation + \fi + \DeclareRobustCommand\meta[1]{% + \ensuremath\langle + \ifmmode \expandafter \nfss@text \fi + {% + \meta@font@select + \edef\meta@hyphen@restore + {\hyphenchar\the\font\the\hyphenchar\font}% + \hyphenchar\font\m@ne + \language\l@nohyphenation + #1\/% + \meta@hyphen@restore + }\ensuremath\rangle + }% + }% +}% + +\def\marg#1{% + {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}} +\def\oarg#1{% + \colOpt{{\ttfamily[}\meta{#1}{\ttfamily]}}} + +\newrobustcmd\tcb@cs[1]{{\catcode`\_=12\relax\catcode`\@11\relax\ttfamily\char`\\\scantokens{#1}\unskip}} +\newrobustcmd\tcb@scantokens[1]{{\catcode`\_=12\relax\catcode`\@11\relax\ttfamily\scantokens{#1}\unskip}} + +\newif\iftcb@doc@toindex +\newif\iftcb@doc@colorize +\newif\iftcb@doc@annotate + +% language specific texts +\tcbset{ + doclang/.cd, + color/.store in=\kvtcb@text@color, + colors/.store in=\kvtcb@text@colors, + counter/.store in=\kvtcb@text@counter, + counters/.store in=\kvtcb@text@counters, + environment content/.store in=\kvtcb@text@envcontent, + environment/.store in=\kvtcb@text@env, + environments/.store in=\kvtcb@text@envs, + index/.store in=\kvtcb@text@index, + key/.store in=\kvtcb@text@key, + keys/.store in=\kvtcb@text@keys, + length/.store in=\kvtcb@text@length, + lengths/.store in=\kvtcb@text@lengths, + new/.store in=\kvtcb@text@new, + pageshort/.store in=\kvtcb@text@pageshort, + updated/.store in=\kvtcb@text@updated, + value/.store in=\kvtcb@text@value, + values/.store in=\kvtcb@text@values, +} + +% documentation options +\tcbset{ + documentation listing options/.store in=\kvtcb@doclistingoptions,% + documentation listing style/.style={documentation listing options={style=#1}},% + documentation minted language/.store in=\kvtcb@docminted@language, + documentation minted style/.store in=\kvtcb@docmintstyle, + documentation minted options/.store in=\kvtcb@docmintoptions, + color command/.store in=\kvtcb@col@command, + color environment/.store in=\kvtcb@col@environment, + color key/.store in=\kvtcb@col@key, + color value/.store in=\kvtcb@col@value, + color counter/.store in=\kvtcb@col@counter, + color length/.store in=\kvtcb@col@length, + color color/.store in=\kvtcb@col@color, + color definition/.style={color command={#1},color environment={#1},color key={#1}, + color value={#1},color color={#1},color counter={#1},color length={#1}}, + color option/.store in=\kvtcb@col@opt, + color hyperlink/.store in=\kvtcb@colhyper, + color frame/.store in=\kvtcb@colhyper, + index actual/.store in=\idx@actual, + index quote/.store in=\idx@quote, + index level/.store in=\idx@level, + index format/.store in=\idx@format, + index colorize/.is if=tcb@doc@colorize,% + index annotate/.is if=tcb@doc@annotate,% + index command/.code={\def\kvtcb@index@command##1{#1{##1}}},% + index command name/.code={\def\kvtcb@index@command##1{\index[#1]{##1}}},% + doc left/.dimstore in=\kvtcb@doc@left, + doc right/.dimstore in=\kvtcb@doc@right, + doc left indent/.dimstore in=\kvtcb@doc@indentleft, + doc right indent/.dimstore in=\kvtcb@doc@indentright, + doc head command/.style={doc@head@command/.style={#1}}, + doc head environment/.style={doc@head@environment/.style={#1}}, + doc head key/.style={doc@head@key/.style={#1}}, + doc head/.style={doc head command={#1},doc head environment={#1},doc head key={#1}}, + before doc body command/.store in=\kvtcb@doc@body@command@before, + after doc body command/.store in=\kvtcb@doc@body@command@after, + before doc body environment/.store in=\kvtcb@doc@body@environment@before, + after doc body environment/.store in=\kvtcb@doc@body@environment@after, + before doc body key/.store in=\kvtcb@doc@body@key@before, + after doc body key/.store in=\kvtcb@doc@body@key@after, + before doc body/.style={before doc body command={#1},before doc body environment={#1},before doc body key={#1}}, + after doc body/.style={after doc body command={#1},after doc body environment={#1},after doc body key={#1}}, + doc description/.store in=\kvtcb@doc@description,% + doc into index/.is if=tcb@doc@toindex,% + doc updated/.style={before upper={\tcbdocmarginnote{\tcbdocupdated{#1}}}}, + doc new/.style={before upper={\tcbdocmarginnote{\tcbdocnew{#1}}}}, + doc new and updated/.style 2 args={before upper={\tcbdocmarginnote{\tcbdocnew{#1}\\\tcbdocupdated{#2}}}}, + doc marginnote/.style={doc@marginnote/.style={#1}}, + keywords bold/.is choice,% + keywords bold/.default=true,% + keywords bold/true/.code={\let\tcb@doc@bfseries\bfseries}, + keywords bold/false/.code={\let\tcb@doc@bfseries\mdseries}, +} + + +% styles +\tcbset{ + docexample/.style={colframe=ExampleFrame,colback=ExampleBack, + before skip=\medskipamount,after skip=\medskipamount, + fontlower=\footnotesize}, + documentation minted language=latex, + documentation minted style=, + documentation minted options={tabsize=2,fontsize=\small}, + index default settings/.style={index actual={@},index quote={"},index level={!}}, + index german settings/.style={index actual={=},index quote={!},index level={>}}, + english language/.code={\tcbset{doclang/.cd, + color=color,colors=Colors, + counter=counter,counters=Counters, + environment content=environment content, + environment=environment,environments=Environments, + index=Index, + key=key,keys=Keys, + length=length,lengths=Lengths, + new=New, + pageshort={P.}, + updated=Updated, + value=value,values=Values}}, +} + +\AtBeginDocument{% + \csname tcb@doc@index@\idx@format\endcsname% + \hypersetup{ + citecolor=\kvtcb@colhyper, + linkcolor=\kvtcb@colhyper, + urlcolor=\kvtcb@colhyper, + filecolor=\kvtcb@colhyper, + menucolor=\kvtcb@colhyper +}} + +\def\dispExample{\tcb@layer@pushup\tcbset{docexample}\begingroup\tcbwritetemp} + +\def\enddispExample{% + \endtcbwritetemp\endgroup% + \begin{tcolorbox}% + \tcb@doc@usetemplisting% + \tcblower% + \tcbusetemp% + \end{tcolorbox}% +} + +\newenvironment{dispExample*}[1]{% + \tcb@layer@pushup\tcbset{docexample,#1}\begingroup\tcbwritetemp% + }{\enddispExample} + +\def\dispListing{\tcb@layer@pushup\tcbset{docexample}\begingroup\tcbwritetemp} + +\def\enddispListing{% + \endtcbwritetemp\endgroup% + \begin{tcolorbox}% + \tcb@doc@usetemplisting% + \end{tcolorbox}% +} + +\newenvironment{dispListing*}[1]{% + \tcb@layer@pushup\tcbset{docexample,#1}\begingroup\tcbwritetemp% + }{\enddispListing} + +% index auxiliary macros +\def\tcb@Index@Print@CA#1#2#3{% + \iftcb@doc@colorize\textcolor{#2}{\tcb@scantokens{#1}}\else\tcb@scantokens{#1}\fi% + \iftcb@doc@annotate\ #3\fi% +} + +\def\tcb@Index@Print@C#1#2{% + \iftcb@doc@colorize\textcolor{#2}{\tcb@scantokens{#1}}\else\tcb@scantokens{#1}\fi% +} + +\def\tcb@Index@Print@ComCA#1#2#3{% + \iftcb@doc@colorize\textcolor{#2}{\tcb@cs{#1}}\else\tcb@cs{#1}\fi% + \iftcb@doc@annotate\ #3\fi% +} + +\def\tcb@Index@Print@ComC#1#2{% + \iftcb@doc@colorize\textcolor{#2}{\tcb@cs{#1}}\else\tcb@cs{#1}\fi% +} + +\newrobustcmd{\tcbIndexPrintComC}[1]{\tcb@Index@Print@ComC{#1}{\kvtcb@col@command}} +\def\tcb@Print@Com#1{\textcolor{\kvtcb@col@command}{\tcb@doc@bfseries\tcb@cs{#1}}} + +\newrobustcmd{\tcbIndexPrintEnvCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@environment}{\kvtcb@text@env}} +\newrobustcmd{\tcbIndexPrintEnvC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@environment}} +\def\tcb@Print@Env#1{\textcolor{\kvtcb@col@environment}{\tcb@doc@bfseries\tcb@scantokens{#1}}} + +\newrobustcmd{\tcbIndexPrintKeyCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@key}{\kvtcb@text@key}} +\newrobustcmd{\tcbIndexPrintKeyC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@key}} +\def\tcb@Print@Key#1{\textcolor{\kvtcb@col@key}{\tcb@doc@bfseries\tcb@scantokens{#1}}} + +\newrobustcmd{\tcbIndexPrintValCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@value}{\kvtcb@text@value}} +\newrobustcmd{\tcbIndexPrintValC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@value}} +\def\tcb@Print@Val#1{\textcolor{\kvtcb@col@value}{\tcb@doc@bfseries\tcb@scantokens{#1}}} + +\newrobustcmd{\tcbIndexPrintColCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@color}{\kvtcb@text@color}} +\newrobustcmd{\tcbIndexPrintColC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@color}} +\def\tcb@Print@Col#1{\textcolor{\kvtcb@col@color}{\tcb@doc@bfseries\tcb@scantokens{#1}}} + +\newrobustcmd{\tcbIndexPrintCountCA}[1]{\tcb@Index@Print@CA{#1}{\kvtcb@col@counter}{\kvtcb@text@counter}} +\newrobustcmd{\tcbIndexPrintCountC}[1]{\tcb@Index@Print@C{#1}{\kvtcb@col@counter}} +\def\tcb@Print@Count#1{\textcolor{\kvtcb@col@counter}{\tcb@doc@bfseries\tcb@scantokens{#1}}} + +\newrobustcmd{\tcbIndexPrintLenCA}[1]{\tcb@Index@Print@ComCA{#1}{\kvtcb@col@length}{\kvtcb@text@length}} +\newrobustcmd{\tcbIndexPrintLenC}[1]{\tcb@Index@Print@ComC{#1}{\kvtcb@col@length}} +\def\tcb@Print@Len#1{\textcolor{\kvtcb@col@length}{\tcb@doc@bfseries\tcb@cs{#1}}} + +\def\tcb@index@Com#1{\iftcb@doc@toindex\kvtcb@index@command{#1\idx@actual\tcbIndexPrintComC{#1}}\fi} +\def\tcb@index@Env#1{\iftcb@doc@toindex\kvtcb@index@command{#1\idx@actual\tcbIndexPrintEnvCA{#1}}\kvtcb@index@command{\kvtcb@text@envs\idx@level#1\idx@actual\tcbIndexPrintEnvC{#1}}\fi} +\def\tcb@index@Key#1{\iftcb@doc@toindex\kvtcb@index@command{#1\idx@actual\tcbIndexPrintKeyCA{#1}}\kvtcb@index@command{\kvtcb@text@keys\idx@level#1\idx@actual\tcbIndexPrintKeyC{#1}}\fi}% +\def\tcb@index@KeyPath#1#2{\iftcb@doc@toindex\kvtcb@index@command{#2\idx@actual\tcbIndexPrintKeyCA{#2}}\kvtcb@index@command{\kvtcb@text@keys\idx@level#1\idx@actual\tcbIndexPrintKeyC{/#1/}\idx@level#2\idx@actual\tcbIndexPrintKeyC{#2}}\fi}% +\def\tcb@index@Val#1{\iftcb@doc@toindex\kvtcb@index@command{#1\idx@actual\tcbIndexPrintValCA{#1}}\kvtcb@index@command{\kvtcb@text@values\idx@level#1\idx@actual\tcbIndexPrintValC{#1}}\fi} +\def\tcb@index@Col#1{\iftcb@doc@toindex\kvtcb@index@command{#1\idx@actual\tcbIndexPrintColCA{#1}}\kvtcb@index@command{\kvtcb@text@colors\idx@level#1\idx@actual\tcbIndexPrintColC{#1}}\fi} +\def\tcb@index@Count#1{\iftcb@doc@toindex\kvtcb@index@command{#1\idx@actual\tcbIndexPrintCountCA{#1}}\kvtcb@index@command{\kvtcb@text@counters\idx@level#1\idx@actual\tcbIndexPrintCountC{#1}}\fi} +\def\tcb@index@Len#1{\iftcb@doc@toindex\kvtcb@index@command{#1\idx@actual\tcbIndexPrintLenCA{#1}}\kvtcb@index@command{\kvtcb@text@lengths\idx@level#1\idx@actual\tcbIndexPrintLenC{#1}}\fi} + +\def\brackets#1{{\ttfamily\char`\{}#1{\ttfamily\char`\}}} + +\newenvironment{tcb@manual@entry}{\begin{list}{}{% + \setlength{\leftmargin}{\kvtcb@doc@left}% + \setlength{\itemindent}{0pt}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}% + \setlength{\rightmargin}{\kvtcb@doc@right}% + }\item}{\end{list}} + +\def\tcb@manual@top#1{\itemsep=0pt\parskip=0pt\item\strut{#1}\par\topsep=0pt} + +\def\tcb@doc@do@description{% + \ifx\kvtcb@doc@description\@empty\else\tcblower\raggedleft(\kvtcb@doc@description)\fi% +} + +\newtcolorbox{tcb@doc@head}[1]{blank,colback=white,colframe=white, + code={\tcbdimto\tcb@temp@grow@left{-\kvtcb@doc@indentleft}% + \tcbdimto\tcb@temp@grow@right{-\kvtcb@doc@indentright}}, + grow to left by=\tcb@temp@grow@left,% + grow to right by=\tcb@temp@grow@right, + sidebyside,sidebyside align=top, + sidebyside gap=-\tcb@w@upper@real, + phantom=\phantomsection,% + enlarge bottom by=-0.2\baselineskip,#1} + +% main documentation environments +\newenvironment{docCommand}[3][]{\tcbset{#1}% + \begin{tcb@manual@entry}% + \begin{tcb@doc@head}{doc@head@command}% + \tcb@Print@Com{#2}\tcb@index@Com{#2}\protected@edef\@currentlabel{\noexpand\tcb@cs{#2}}\label{com:#2}{\ttfamily #3}% + \tcb@doc@do@description% + \end{tcb@doc@head}\nobreak\tcbset{before upper=}\kvtcb@doc@body@command@before\ignorespaces}% + {\ifvmode\else\unskip\fi\kvtcb@doc@body@command@after\end{tcb@manual@entry}} + +\newenvironment{docCommand*}{\bgroup\tcb@doc@toindexfalse\begin{docCommand}}{\end{docCommand}\egroup} + +\newenvironment{docEnvironment}[3][]{\tcbset{#1}% + \begin{tcb@manual@entry}% + \begin{tcb@doc@head}{doc@head@environment}% + \strut\cs{begin}\brackets{\tcb@Print@Env{#2}}\tcb@index@Env{#2}\protected@edef\@currentlabel{#2}\label{env:#2}{\ttfamily #3}\par% + \strut~~\meta{\kvtcb@text@envcontent}\par% + \strut\cs{end}\brackets{\tcb@Print@Env{#2}}% + \tcb@doc@do@description% + \end{tcb@doc@head}\nobreak\tcbset{before upper=}\kvtcb@doc@body@environment@before\ignorespaces}% + {\ifvmode\else\unskip\fi\kvtcb@doc@body@environment@after\end{tcb@manual@entry}} + +\newenvironment{docEnvironment*}{\bgroup\tcb@doc@toindexfalse\begin{docEnvironment}}{\end{docEnvironment}\egroup} + +\NewDocumentEnvironment{docKey}{ O{} +O{} m m +m }{\tcbset{#2,doc description={#5}}% + \begin{tcb@manual@entry}% + \begin{tcb@doc@head}{doc@head@key}% + \ifblank{#1}{% + \tcb@Print@Key{#3}\tcb@index@Key{#3}\protected@edef\@currentlabel{#3}\label{key:#3}{\ttfamily #4}% + }{% + \tcb@Print@Key{/#1/#3}% + \tcb@index@KeyPath{#1}{#3}\protected@edef\@currentlabel{/#1/#3}\label{key:/#1/#3}{\ttfamily #4}% + }% + \tcb@doc@do@description% + \end{tcb@doc@head}\nobreak\tcbset{before upper=}\kvtcb@doc@body@key@before\ignorespaces}% + {\ifvmode\else\unskip\fi\kvtcb@doc@body@key@after\end{tcb@manual@entry}} + +\newenvironment{docKey*}{\bgroup\tcb@doc@toindexfalse\begin{docKey}}{\end{docKey}\egroup} + +\def\tcbmakedocSubKey#1#2{% + \NewDocumentEnvironment{#1}{ O{} +O{} m m +m }{% + \ifblank{##1}{\def\tcb@key@path{#2}}{\def\tcb@key@path{#2/##1}}% + \begin{docKey}[\tcb@key@path][##2]{##3}{##4}{##5}}% + {\end{docKey}}% + \newenvironment{#1*}{\bgroup\tcb@doc@toindexfalse\begin{#1}}{\end{#1}\egroup}% +} + +\DeclareDocumentCommand\docAuxCommand{sm}{% + \tcb@Print@Com{#2}% + \IfBooleanTF{#1}{}{\tcb@index@Com{#2}}% +} + +\DeclareDocumentCommand\docAuxEnvironment{sm}{% + \tcb@Print@Env{#2}% + \IfBooleanTF{#1}{}{\tcb@index@Env{#2}}% +} + +\DeclareDocumentCommand\docAuxKey{sO{}m}{% + \ifblank{#2}{% + \tcb@Print@Key{#3}% + \IfBooleanTF{#1}{}{\tcb@index@Key{#3}}% + }{% + \tcb@Print@Key{/#2/#3}% + \IfBooleanTF{#1}{}{\tcb@index@KeyPath{#2}{#3}}% +}} + +\DeclareDocumentCommand\docColor{sm}{% + \tcb@Print@Col{#2}% + \IfBooleanTF{#1}{}{\tcb@index@Col{#2}}% +} + +\DeclareDocumentCommand\docCounter{sm}{% + \tcb@Print@Count{#2}% + \IfBooleanTF{#1}{}{\tcb@index@Count{#2}}% +} + +\DeclareDocumentCommand\docLength{sm}{% + \tcb@Print@Len{#2}% + \IfBooleanTF{#1}{}{\tcb@index@Len{#2}}% +} + +\DeclareDocumentCommand\docValue{sm}{% + \tcb@Print@Val{#2}% + \IfBooleanTF{#1}{}{\tcb@index@Val{#2}}% +} + +\setrefcountdefault{-1} +\DeclareDocumentCommand\tcb@ref@doc{msm}{% + \hyperref[#1:#3]{\texttt{\ref*{#1:#3}}% + \IfBooleanTF{#2}{}{% + \ifnum\getpagerefnumber{#1:#3}=\thepage% + \else% + \textsuperscript{\ding{213}\,\kvtcb@text@pageshort\,\pageref*{#1:#3}}% + \fi}}% +} + +\def\refCom{\tcb@ref@doc{com}} +\def\refEnv{\tcb@ref@doc{env}} +\def\refKey{\tcb@ref@doc{key}} + +\def\refAux#1{\textcolor{\kvtcb@colhyper}{\tcb@scantokens{#1}}} +\def\refAuxcs#1{\textcolor{\kvtcb@colhyper}{\tcb@cs{#1}}} + +\newenvironment{absquote} + {\list{}{\leftmargin2cm\rightmargin\leftmargin}% + \item\relax\footnotesize} + {\endlist} + +\newcommand{\tcbdocmarginnote}[2][]{% + \marginnote{% + \begin{tcolorbox}[enhanced jigsaw,size=fbox,boxrule=1pt,leftrule=0pt,rightrule=0pt, + arc=0pt,outer arc=1pt,boxsep=1pt,top=1pt,bottom=1pt, + nobeforeafter,width=\marginparwidth, + colframe=red!50!white,colback=red!25!yellow!5!white,fontupper=\scriptsize, + if odd page or oneside={flushright upper}{flushleft upper}, + doc@marginnote,#1]#2\end{tcolorbox}}} + +\newcommand*{\tcbdocnew}[1]{\kvtcb@text@new: #1} +\newcommand*{\tcbdocupdated}[1]{\kvtcb@text@updated: #1} + +%--- index macros taken from pgfmanual-en-macros +\def\tcb@doc@index@pgf@{% + \ifdefined\c@IndexColumns% + \c@IndexColumns=2% + \fi% + \def\theindex{\@restonecoltrue + \columnseprule \z@ \columnsep 29\p@ + \twocolumn[\index@prologue]% + \parindent -30pt% + \columnsep 15pt% + \parskip 0pt plus 1pt% + \leftskip 30pt% + \rightskip 0pt plus 2cm% + \small% + \def\@idxitem{\par}% + \let\item\@idxitem\ignorespaces} + \def\endtheindex{\onecolumn}% + \def\noindexing{\let\index=\@gobble}% +} + +\def\tcb@doc@index@pgfsection{% + \def\index@prologue{\section*{\kvtcb@text@index}\addcontentsline{toc}{section}{\kvtcb@text@index}% + \par\noindent% + }% + \tcb@doc@index@pgf@% +} + +\def\tcb@doc@index@pgfchapter{% + \def\index@prologue{\ifdefined\phantomsection\phantomsection\fi\@makeschapterhead{\kvtcb@text@index}\addcontentsline{toc}{chapter}{\kvtcb@text@index}}% + \tcb@doc@index@pgf@% +} + +\let\tcb@doc@index@pgf=\tcb@doc@index@pgfsection% + +\def\tcb@doc@index@doc{% + \let\tcb@index@Com=\SpecialMainIndex%% + \let\tcb@index@Env=\SpecialMainEnvIndex% + \tcbset{index german settings}% + \EnableCrossrefs% + \PageIndex% +} + +\def\tcb@doc@index@off{}% + +\tcbset{% + reset@documentation/.style={% + }, + documentation listing style=tcbdocumentation, + doc left=2em, + doc right=0pt, + doc left indent=-2em, + doc right indent=0pt, + doc head=, + before doc body=, + after doc body=, + doc description=, + doc into index=true, + doc marginnote=, + initialize@reset=reset@documentation, + color option=Option, + color definition=Definition, + color hyperlink=Hyperlink, + index command=\index,% + index format=pgf, + index default settings, + index colorize=false, + index annotate=true, + english language, + keywords bold, +} + +% deprecated +\tcbset{ + before example/.store in=\kvtcb@beforeexample, + after example/.store in=\kvtcb@afterexample, + before example=\par\smallskip, + after example=, +} |