diff options
author | Karl Berry <karl@freefriends.org> | 2013-06-23 23:43:36 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-06-23 23:43:36 +0000 |
commit | 3f214aab9775b3253253bc72fa7a58a0278206d4 (patch) | |
tree | 95424a0f9a874d042df4d3762e2a677ea15b010b /Master/texmf-dist/tex | |
parent | 0ade4baaa2b1857abfa6b1385ca4a72b9c68a08b (diff) |
tcolorbox (23jun13)
git-svn-id: svn://tug.org/texlive/trunk@30869 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
9 files changed, 828 insertions, 157 deletions
diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex index b6b98be075f..455d18d6686 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbbreakable.code.tex: Code for breakable colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@breakable@loaded{} +\tcb@set@library@version{2.32} \let\tcb@parboxrestore@true=\tcb@parboxrestore \def\tcb@parboxrestore@false{\vskip-\parskip} @@ -103,9 +102,6 @@ \tcb@comp@h@page% % % height calculation - %\tcbdimto\tcb@h@padding{\kvtcb@bbtop@stand+\kvtcb@bbbottom@stand+\kvtcb@top@rule@stand+\kvtcb@bottom@rule@stand+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom}% - % - %\tcbdimto\tcb@h@total{\tcb@h@before+\tcb@h@after+\tcb@h@padding+\tcb@h@padtitle+\tcb@h@upper+\tcb@h@segment+\tcb@h@lower}% \tcb@comp@h@total@standalone% % \let\tcb@split@next=\relax% @@ -251,7 +247,7 @@ \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@before-\tcb@h@padding@first-\tcb@h@padtitle}% \ifdim\tcb@split@dim<\tcb@h@upper\relax% \tcb@split@upper@box% - \ifvoid\tcb@totalupperbox% + \ifdim\wd\tcb@totalupperbox=0pt\relax% \iftcb@lowerspace% \tcb@sdraw@U% \let\tcb@split@next=\tcb@split@SL% @@ -275,7 +271,7 @@ \fi% \else \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@standalone% \tcb@drawcolorbox@standalone% \else% @@ -318,7 +314,7 @@ \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@padding@middle-\tcb@h@padtitle}% \ifdim\tcb@split@dim<\tcb@h@upper\relax% \tcb@split@upper@box% - \ifvoid\tcb@totalupperbox% + \ifdim\wd\tcb@totalupperbox=0pt\relax% \iftcb@lowerspace% \tcb@sdraw@U% \let\tcb@split@next=\tcb@split@SL% @@ -339,7 +335,7 @@ \let\tcb@split@next=\tcb@split@SL% \else \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@last% \tcb@sdraw@USL% \else% @@ -374,7 +370,7 @@ \tcb@split@setstate@middle% \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@padding@middle+\kvtcb@top+\kvtcb@boxsep-\tcb@h@padtitle-\tcb@h@segment}% \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@last% \tcb@sdraw@SL% \else @@ -403,7 +399,7 @@ \tcb@split@setstate@middle% \tcbdimto\tcb@split@dim{\tcb@h@page-\tcb@h@padding@middle-\tcb@h@padtitle}% \tcb@split@lower@box% - \ifvoid\tcb@totallowerbox% + \ifdim\wd\tcb@totallowerbox=0pt\relax% \tcb@split@force@last% \tcb@sdraw@L% \else @@ -424,6 +420,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -435,7 +432,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@upper% @@ -454,6 +451,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -464,7 +462,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@upper% @@ -482,6 +480,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -493,7 +492,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@lower% @@ -511,6 +510,7 @@ \csname tcb@before@\tcb@split@state\endcsname% \begin{\kvtcb@graphenv}% \tcb@bbdraw% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -521,7 +521,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \csname tcb@overlay@\tcb@split@state\endcsname% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@lower% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex index 7cb9b5cf1d2..2bd4ad3b087 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbdocumentation.code.tex: Code for LaTeX documentations %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@documentation@loaded{} +\tcb@set@library@version{2.32} \tcbuselibrary{listings} @@ -84,6 +83,7 @@ index actual/.store in=\idx@actual, index quote/.store in=\idx@quote, index level/.store in=\idx@level, + index format/.store in=\idx@format, } % styles @@ -104,6 +104,7 @@ % presets \tcbset{ + index format=pgf, english language, documentation listing style=tcbdocumentation, index default settings, @@ -114,7 +115,9 @@ after example=, } -\AtBeginDocument{\hypersetup{ +\AtBeginDocument{% + \csname tcb@doc@index@\idx@format\endcsname% + \hypersetup{ citecolor=\kvtcb@colhyper, linkcolor=\kvtcb@colhyper, urlcolor=\kvtcb@colhyper, @@ -208,22 +211,31 @@ {\endlist} %--- index macros taken from pgfmanual-en-macros -\def\index@prologue{\section*{\kvtcb@text@index}\addcontentsline{toc}{section}{\kvtcb@text@index}% - \par\noindent% -} -\c@IndexColumns=2 +\def\tcb@doc@index@pgf{% + \def\index@prologue{\section*{\kvtcb@text@index}\addcontentsline{toc}{section}{\kvtcb@text@index}% + \par\noindent% + }% + \c@IndexColumns=2 \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} + \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@doc{% + \let\index@Com=\SpecialMainIndex%% + \let\index@Env=\SpecialMainEnvIndex% + \tcbset{index german settings}% + \EnableCrossrefs% + \PageIndex% +} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex new file mode 100644 index 00000000000..174b062f093 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex @@ -0,0 +1,269 @@ +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) +%% tcbfitting.code.tex: Code for fit boxes +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2006-2012 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 +%% +%\makeatletter +\tcb@set@library@version{2.32} + +\newdimen\tcbfitdim +\newdimen\tcb@lowerfitdim +\newdimen\tcb@upperfitdim +\newif\iftcb@continue + +\tcbset{% + fit/.style={capture=fitbox},% + fit to/.style args={#1 and #2}{capture=fitbox,width=#1,height=#2},% + fit to height/.style={capture=fitbox,height=#1},% + fit basedim/.code={\def\kvtcb@fit@basedim{#1}\tcbfitdim\kvtcb@fit@basedim},% + fit skip/.store in=\kvtcb@fit@skip,% + fit fontsize macros/.code={% + \renewcommand\tiny{\tcb@setfontsize\tiny{0.5}}% + \renewcommand\scriptsize{\tcb@setfontsize\scriptsize{0.7}}% + \renewcommand\footnotesize{\tcb@setfontsize\footnotesize{0.8}}% + \renewcommand\small{\tcb@setfontsize\small{0.9}}% + \renewcommand\normalsize{\tcb@setfontsize\normalsize{1}}% + \renewcommand\large{\tcb@setfontsize\large{1.2}}% + \renewcommand\Large{\tcb@setfontsize\Large{1.44}}% + \renewcommand\LARGE{\tcb@setfontsize\LARGE{1.728}}% + \renewcommand\huge{\tcb@setfontsize\huge{2.0736}}% + \renewcommand\Huge{\tcb@setfontsize\Huge{2.48832}}},% + fit height plus/.dimstore in=\kvtcb@fit@plus@height,% + fit width plus/.dimstore in=\kvtcb@fit@plus@width,% + fit height from/.style args={#1 to #2}{fit,height={#1},fit height plus={#2-#1}}, + fit width from/.style args={#1 to #2}{fit,width={#1},fit width plus={#2-#1}}, + fit maxstep/.store in=\kvtcb@fit@maxstep,% + fit maxfontdiff/.store in=\kvtcb@fit@maxfontdiff,% + fit maxfontdiffgap/.store in=\kvtcb@fit@maxfontdiffgap,% + fit maxwidthdiff/.store in=\kvtcb@fit@maxwidthdiff,% + fit maxwidthdiffgap/.store in=\kvtcb@fit@maxwidthdiffgap,% +} + +\tcbset{% + fit basedim=10pt,fit skip=1.2, + fit height plus=0pt,fit width plus=0pt, + fit maxstep=20,fit maxfontdiff=0.1pt,fit maxfontdiffgap=1pt, + fit maxwidthdiff=1pt,fit maxwidthdiffgap=10pt, +} + +\def\tcb@@capture@fitbox{% + \let\endtcolorbox=\relax% + \Collect@Body\tcbox@inner@fitbox% +} + + +\def\tcbfontsize#1{\fontsize{#1\tcbfitdim}{#1\dimexpr\kvtcb@fit@skip\tcbfitdim}\selectfont} + +\def\tcb@setfontsize#1#2{\@setfontsize#1{#2\tcbfitdim}{#2\dimexpr\kvtcb@fit@skip\tcbfitdim}} + +\long\def\tcbox@inner@fitbox#1{% + \tcbset{breakable@false,sidebyside=false}% + \let\tcb@val@raisebase=\tcb@zpt% + \unless\ifdefined\tcb@height@fixed% + \tcbset{height=\kvtcb@width}% + \fi% + \tcb@hasLowerfalse% + % + \count@\z@% + \tcbfitdim\kvtcb@fit@basedim% + % + % + \def\tcb@fit@@box{% + \tcbdimto\tcb@fit@@line{\kvtcb@fit@skip\tcbfitdim}% + \tcbdimto\tcb@w@upper{\tcb@width-\kvtcb@left@rule-\kvtcb@right@rule-\kvtcb@boxsep*2-\kvtcb@leftupper-\kvtcb@rightupper}% + \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}% + \color{\kvtcb@colupper}% + \kvtcb@fontupper\fontsize{\tcbfitdim}{\tcb@fit@@line}\selectfont% + \kvtcb@before@upper#1\kvtcb@after@upper% + \end{tcb@savebox}% + \tcbdimto\tcb@fit@@h{\ht\tcb@upperbox+\dp\tcb@upperbox}% + \tcbdimto\tcb@fit@@target{\tcb@height@fixed-\kvtcb@top@rule@stand-\kvtcb@bottom@rule@stand-\kvtcb@top-\kvtcb@bottom-\kvtcb@boxsep*2-\tcb@h@titletotal}% + \advance\count@ 1\relax% + }% + \def\tcb@fit@@box@titled{% + \tcb@set@@dim@and@title% + \iftcb@hasTitle% + \tcbdimto\tcb@h@titletotal{\ht\tcb@titlebox+\dp\tcb@titlebox+\kvtcb@title@rule+\kvtcb@boxsep*2+\kvtcb@toptitle+\kvtcb@bottomtitle}% + \else% + \let\tcb@h@titletotal=\tcb@zpt% + \fi% + \tcb@fit@@box% + } + % + \tcb@fit@@box@titled% + % + % height fit + \ifdim\kvtcb@fit@plus@height>0pt\relax% + \let\tcb@fit@@minheight=\tcb@height@fixed% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \ifdim\dimexpr\tcb@fit@@h>\dimexpr\tcb@fit@@target+\kvtcb@fit@plus@height\relax% + \tcbdimto\tcb@height@fixed{\tcb@height@fixed+\kvtcb@fit@plus@height}% + \tcbdimto\tcb@fit@@target{\tcb@fit@@target+\kvtcb@fit@plus@height}% + \else% + \tcbdimto\tcb@height@fixed{\tcb@height@fixed+\tcb@fit@@h-\tcb@fit@@target}% + \let\tcb@fit@@target=\tcb@fit@@h% + \fi% + \fi% + \fi% + % + % width fit + \ifdim\kvtcb@fit@plus@width>0pt\relax% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@lowerfitdim\kvtcb@width% + \tcb@upperfitdim\dimexpr\kvtcb@width+\kvtcb@fit@plus@width\relax% + \tcbdimto\kvtcb@width{\tcb@upperfitdim}% + \tcb@fit@@box@titled% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \else% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcbdimto\kvtcb@width{(\tcb@lowerfitdim+\tcb@upperfitdim)/2}% + \loop% + \tcb@fit@@box@titled% + \tcb@continuetrue% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxwidthdiff\relax% + \tcb@continuefalse% + \else% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxwidthdiffgap\relax% + \ifdim\dimexpr\tcb@fit@@gap<\tcb@fit@@line\relax% + \tcb@continuefalse% + \fi% + \fi% + \fi% + \else% + \tcb@continuefalse% + \fi% + \iftcb@continue% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@lowerfitdim\kvtcb@width% + \tcbdimto\kvtcb@width{(\tcb@lowerfitdim+\tcb@upperfitdim)/2}% + \else% + \tcb@upperfitdim\kvtcb@width% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcbdimto\kvtcb@width{(\tcb@lowerfitdim+\tcb@upperfitdim)/2}% + \fi% + \else% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcbdimto\kvtcb@width{\tcb@upperfitdim}% + \tcb@fit@@box@titled% + \fi% + \fi% + \iftcb@continue \repeat% + \fi% + \fi% + \fi% + \fi% + \fi% + % + % font fit + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@continuetrue% + \loop% + \tcbfitdim.5\tcbfitdim% + \tcb@fit@@box% + \ifnum\count@=\kvtcb@fit@maxstep\relax% + \tcb@continuefalse% + \else% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \ifdim\tcbfitdim<18000sp\relax% + \count@\kvtcb@fit@maxstep\relax% + \tcb@continuefalse% + \fi% + \else% + \tcb@continuefalse% + \fi% + \fi% + \iftcb@continue \repeat% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcb@lowerfitdim\tcbfitdim% + \tcb@upperfitdim2\tcbfitdim% + \tcbfitdim1.5\tcbfitdim% + \loop% + \tcb@fit@@box% + \tcb@continuetrue% + \ifnum\count@<\kvtcb@fit@maxstep\relax% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxfontdiff\relax% + \tcb@continuefalse% + \else% + \ifdim\dimexpr\tcb@upperfitdim-\tcb@lowerfitdim<\kvtcb@fit@maxfontdiffgap\relax% + \ifdim\dimexpr\tcb@fit@@gap<\tcb@fit@@line\relax% + \tcb@continuefalse% + \fi% + \fi% + \fi% + \else% + \tcb@continuefalse% + \fi% + \iftcb@continue% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcb@upperfitdim\tcbfitdim% + \advance\tcbfitdim\tcb@lowerfitdim% + \tcbfitdim0.5\tcbfitdim% + \else% + \tcbdimto\tcb@fit@@gap{\tcb@fit@@target-\tcb@fit@@h}% + \tcb@lowerfitdim\tcbfitdim% + \advance\tcbfitdim\tcb@upperfitdim% + \tcbfitdim0.5\tcbfitdim% + \fi% + \else% + \ifdim\dimexpr\tcb@fit@@h>\tcb@fit@@target\relax% + \tcbfitdim\tcb@lowerfitdim% + \tcb@fit@@box% + \fi% + \fi% + \iftcb@continue \repeat% + \fi% + \fi% + \fi% + % + % last height fit + \ifdim\kvtcb@fit@plus@height>0pt\relax% + \ifdim\dimexpr\tcb@fit@@h<\tcb@fit@@target\relax% + \tcbdimto\tcb@temp{\tcb@height@fixed+\tcb@fit@@h-\tcb@fit@@target}% + \ifdim\dimexpr\tcb@temp<\tcb@fit@@minheight\relax% + \else% + \let\tcb@height@fixed=\tcb@temp% + \fi% + \fi% + \fi% + % + \edef\tcbfitsteps{\the\count@}% + \tcb@draw@color@box% +} + + +\newcommand{\tcboxfit}[2][]{% + \tcb@ox{capture=fitbox,#1}{#2}% +} + +\long\def\tcb@newtcboxfit#1#2{\newcommand{#1}{\tcboxfit[#2]}} + +\long\def\tcb@new@tcboxfit#1[#2]#3{\newcommand{#1}[#2]{\tcboxfit[#3]}} + +\long\def\tcb@new@@tcboxfit#1[#2][#3]#4{\newcommand{#1}[#2][#3]{\tcboxfit[#4]}} + +\long\def\new@tcboxfit#1[#2]{% + \@ifnextchar[{\tcb@new@@tcboxfit{#1}[#2]}{\tcb@new@tcboxfit{#1}[#2]}} + +\long\def\newtcboxfit#1{% + \@ifnextchar[{\new@tcboxfit{#1}}{\tcb@newtcboxfit{#1}}} + + diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex index 3a5dbc4f98f..1cc71312634 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbhooks.code.tex: Code for adding hooks %% %% ------------------------------------------------------------------------------------------- @@ -17,27 +17,8 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@hooks@loaded{} - -% expandonce from etoolbox -\newcommand{\tcb@expandonce}[1]{\unexpanded\expandafter{#1}} - -% slim version of etoolbox'es more general macro -\newcommand{\tcb@appto}[2]{% - \ifx#1\relax% - \edef#1{\unexpanded{#2}}% - \else% - \edef#1{\tcb@expandonce#1\unexpanded{#2}}% - \fi} - -% slim version of etoolbox'es more general macro -\newcommand{\tcb@preto}[2]{% - \ifx#1\relax% - \edef#1{\unexpanded{#2}}% - \else% - \edef#1{\unexpanded{#2}\tcb@expandonce#1}% - \fi} +%\makeatletter +\tcb@set@library@version{2.32} \tcbset{% before upper app/.code={\tcb@appto\kvtcb@before@upper{#1}},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex index 3c12ec06328..e3b5c89614e 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcblistings.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,8 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@listings@loaded{} +%\makeatletter +\tcb@set@library@version{2.32} \RequirePackage{listings}[2007/02/22] @@ -119,8 +119,9 @@ \tcbset{% listing file/.store in=\kvtcb@listingfile,% listing options/.store in=\kvtcb@listingoptions,% - comment/.store in=\kvtcb@listingcomment,% listing style/.style={listing options={style=#1}},% + no listing options/.style={listing options=},% + comment/.store in=\kvtcb@listingcomment,% listing and text/.code={\tcb@set@listing@process{\tcb@listing@listingAndText}},% text and listing/.code={\tcb@set@listing@process{\tcb@listing@textAndListing}},% listing and comment/.code={\tcb@set@listing@process{\tcb@listing@listingAndComment}},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex index bc2b02ebd0b..9288f75428e 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8 %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@listingsutf8@loaded{} +\tcb@set@library@version{2.32} \RequirePackage{listingsutf8}[2011/11/10] \tcbuselibrary{listings} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex index 9c2bf760b1f..0d585183416 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbskins.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,7 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@skins@loaded{} +\tcb@set@library@version{2.32} \RequirePackage{tikz}[2010/10/13] @@ -118,9 +117,10 @@ } \long\def\tcb@pseudo@segmentation#1{% -{\parskip\z@\par\nointerlineskip}\begingroup% +{\parskip\z@\par\nointerlineskip\hfilneg\kern-\@totalleftmargin}\begingroup% \begin{tikzpicture}% - \path[use as bounding box] (0,{\the\dimexpr-\kvtcb@middle-\kvtcb@boxsep\relax}) rectangle (0,{\the\dimexpr\kvtcb@middle+\kvtcb@boxsep\relax}); + \path[use as bounding box] (0,{\the\dimexpr-\kvtcb@middle-\kvtcb@boxsep\relax}) + rectangle (\linewidth,{\the\dimexpr\kvtcb@middle+\kvtcb@boxsep\relax}); \node[line width=0mm,inner sep=0mm,draw=none,fill=none,rectangle, name=segmentation,at={({\the\dimexpr-#1-\kvtcb@boxsep\relax},0)},right,% minimum width=\tcb@innerwidth,minimum height=\the\dimexpr\kvtcb@middle*2\relax]{}; @@ -268,43 +268,66 @@ } -\tcbset{skin@enhanced/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{% + base@unbroken/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@unbroken},% + set@extensions@postframe={\tcb@draw@border@unbroken\tcb@apply@overlay},% + },% + base@first/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@first},% + set@extensions@postframe={\tcb@draw@border@first\tcb@apply@overlay},% + },% + base@middle/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@middle},% + set@extensions@postframe={\tcb@draw@border@middle\tcb@apply@overlay},% + },% + base@last/.style={% + clear@spec,graphical environment=tikzpicture,geometry nodes,% + set@extensions@preframe={\tcb@draw@shadow@last},% + set@extensions@postframe={\tcb@draw@border@last\tcb@apply@overlay},% + },% +} + +\tcbset{skin@enhanced/.style={base@unbroken,% frame engine=path,interior titled engine=path, interior engine=path,segmentation engine=path,title engine=path, skin first=enhancedfirst,skin middle=enhancedmiddle,skin last=enhancedlast}, - enhanced/.style={skin=enhanced}} + enhanced/.style={skin=enhanced},% + enhanced standard/.style={skin=enhanced, + skin first=enhanced,skin middle=enhanced,skin last=enhanced},% + blank/.style={enhanced,frame hidden,interior hidden,segmentation hidden,% + arc=0pt,boxsep=0pt,top=0pt,bottom=0pt,left=0pt,right=0pt,boxrule=0pt,% + bottomtitle=6pt,middle=3pt},% +} -\tcbset{skin@enhancedfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@enhancedfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=pathfirst, interior engine=pathfirst,segmentation engine=path,title engine=pathfirst, skin first=enhancedfirst,skin middle=enhancedmiddle,skin last=enhancedmiddle }} -\tcbset{skin@enhancedmiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@enhancedmiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=pathmiddle, interior engine=pathmiddle,segmentation engine=path,title engine=pathmiddle, skin first=enhancedmiddle,skin middle=enhancedmiddle,skin last=enhancedmiddle }} -\tcbset{skin@enhancedlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@enhancedlast/.style={base@last,% frame engine=pathlast,interior titled engine=pathlast, interior engine=pathlast,segmentation engine=path,title engine=pathlast, skin first=enhancedmiddle,skin middle=enhancedmiddle,skin last=enhancedlast }} -\tcbset{skin@freelance/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@freelance/.style={base@unbroken,% frame engine=freelance,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=freelance, skin first=freelance,skin middle=freelance,skin last=freelance}, freelance/.style={skin=freelance}} -\tcbset{skin@bicolor/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolor/.style={base@unbroken,% frame engine=path,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=path, interior titled code={% @@ -329,8 +352,7 @@ skin first=bicolorfirst,skin middle=bicolormiddle,skin last=bicolorlast}, bicolor/.style={skin=bicolor}} -\tcbset{skin@bicolorfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolorfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathfirst, interior titled code={% @@ -355,8 +377,7 @@ skin first=bicolorfirst,skin middle=bicolormiddle,skin last=bicolormiddle }} -\tcbset{skin@bicolormiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolormiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathmiddle, interior titled code={% @@ -381,8 +402,7 @@ skin first=bicolormiddle,skin middle=bicolormiddle,skin last=bicolormiddle }} -\tcbset{skin@bicolorlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@bicolorlast/.style={base@last,% frame engine=pathlast,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathlast, interior titled code={% @@ -411,8 +431,7 @@ \tikzset{beamer@color/.style={top color=\kvtcb@colback,bottom color=\kvtcb@colback!85!black}} \tcbset{% - skin@beamer/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamer/.style={base@unbroken,% frame engine=path,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=path, interior titled code={% @@ -431,12 +450,12 @@ segmentation code={\iftcb@sidebyside\tcb@drawlower@path\else\tcb@drawspec@LR{beamer@color}\fi},% skin first=beamerfirst,skin middle=beamermiddle,skin last=beamerlast}, beamer/.style={skin=beamer,boxrule=0mm,titlerule=1mm,toptitle=0.5mm,arc=2mm,fonttitle=\bfseries, - frame style={fill=\kvtcb@colframe,drop shadow}}, + drop fuzzy shadow, + }, } \tcbset{% - skin@beamerfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamerfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathfirst, interior titled code={% @@ -455,8 +474,7 @@ skin first=beamerfirst,skin middle=beamermiddle,skin last=beamermiddle}} \tcbset{% - skin@beamermiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamermiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathmiddle, interior titled code={% @@ -476,8 +494,7 @@ skin first=beamermiddle,skin middle=beamermiddle,skin last=beamermiddle}} \tcbset{% - skin@beamerlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, + skin@beamerlast/.style={base@last,% frame engine=pathlast,interior titled engine=freelance, interior engine=freelance,segmentation engine=freelance,title engine=pathlast, interior titled code={% @@ -508,8 +525,7 @@ \tikzset{widget@color/.style={left color=\kvtcb@colframe!75!white,right color=\kvtcb@colframe!75!white!25!\kvtcb@colback}} -\tcbset{skin@widget/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widget/.style={base@unbroken,% frame engine=path,interior titled engine=path, interior engine=path,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@path}}, @@ -519,16 +535,14 @@ titlerule=0mm,toprule at break=0mm}, } -\tcbset{skin@widgetfirst/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widgetfirst/.style={base@first,% frame engine=pathfirst,interior titled engine=pathfirst, interior engine=pathfirst,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathfirst}}, segmentation code={\tcb@drawspec@widgetsegment},% skin first=widgetfirst,skin middle=widgetmiddle,skin last=widgetmiddle}} -\tcbset{skin@widgetmiddle/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widgetmiddle/.style={base@middle,% frame engine=pathmiddle,interior titled engine=pathmiddle, interior engine=pathmiddle,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathmiddle}}, @@ -536,13 +550,12 @@ skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetmiddle}} -\tcbset{skin@widgetlast/.style={clear@spec,% - graphical environment=tikzpicture,geometry nodes, +\tcbset{skin@widgetlast/.style={base@last,% frame engine=pathlast,interior titled engine=pathlast, interior engine=pathlast,segmentation engine=freelance,title engine=freelance, title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathlast}}, segmentation code={\tcb@drawspec@widgetsegment},% - skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetlast}} + skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetlast}} \tcbset{skin@draft/.style={clear@spec,% @@ -590,7 +603,7 @@ +(\tcb@w@lower,\tcb@height@upper); \fi% \or% - \ifvoid\tcb@upperbox + \ifdim\wd\tcb@upperbox=0pt\relax \path[fill=white,draw,dotted] ([xshift={\kvtcb@boxsep},yshift={\kvtcb@boxsep+\tcb@break@bottomsep}]interior.south west) rectangle ([xshift={-\kvtcb@boxsep},yshift={-\kvtcb@boxsep-\tcb@break@topsep}]interior.north east); @@ -627,9 +640,46 @@ \path[draw=blue!10!white,double,line width=1pt,dashed,opacity=0.3] (current bounding box.south west) rectangle (current bounding box.north east); \pgfsetfillopacity{0.3} }, - interior titled code=,interior code=,overlay=,}, + set@extensions@postframe={},% + interior titled code=,interior code=,}, draft/.style={skin=draft}} +\def\tcb@clip@interior{% + \begingroup% + \tcbset{interior hidden}% + \tcb@spec{forced clip}% + \def\tcb@spec##1{}% + \iftcb@hasTitle% + \csname tcb@drawwithtitle@\kvtcb@engine@interiortitled\endcsname% + \else% + \csname tcb@drawwithouttitle@\kvtcb@engine@interior\endcsname% + \fi% + \endgroup% +} + +\def\tcb@clip@frame{% + \begingroup% + \tcbset{frame hidden}% + \tcb@spec{forced clip}% + \def\tcb@spec##1{}% + \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% + \endgroup% +} + +\def\tcb@clip@title{% + \begingroup% + \tcbset{title hidden}% + \tcb@spec{forced clip}% + \def\tcb@spec##1{}% + \iftcb@hasTitle% + \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% + \fi% + \endgroup% +} + +\newenvironment{tcbclipinterior}{\begin{scope}\tcb@clip@interior}{\end{scope}} +\newenvironment{tcbclipframe}{\begin{scope}\tcb@clip@frame}{\end{scope}} +\newenvironment{tcbcliptitle}{\begin{scope}\tcb@clip@title}{\end{scope}} \newbox\tcb@waterbox @@ -648,11 +698,23 @@ \ifdim\dimexpr\tcb@scale@x pt\relax<\dimexpr\tcb@scale@y pt\relax\let\tcb@scale@y=\tcb@scale@x\else\let\tcb@scale@x=\tcb@scale@y\fi% } -\def\tcb@drawspec@watermark{% +\def\tcb@comp@wm@overzoom{% + \tcb@setratiorobust\tcb@scale@x{\dimexpr\kvtcb@watermark@factor\dimexpr\tcb@innerwidth\relax\relax}{\wd\tcb@waterbox}% + \tcb@setratiorobust\tcb@scale@y{\dimexpr\kvtcb@watermark@factor\dimexpr\tcb@innerheight\relax\relax}{\ht\tcb@waterbox+\dp\tcb@waterbox}% + \ifdim\dimexpr\tcb@scale@x pt\relax>\dimexpr\tcb@scale@y pt\relax\let\tcb@scale@y=\tcb@scale@x\else\let\tcb@scale@x=\tcb@scale@y\fi% +} + +\def\tcb@drawspec@watermark@@noclip{% \tcb@comp@wm% \node[opacity=\kvtcb@watermark@opacity,anchor=center] at (interior) {\scalebox{\tcb@scale@x}[\tcb@scale@y]{\box\tcb@waterbox}};% } +\def\tcb@drawspec@watermark@@clip{% + \begin{tcbclipinterior}% + \tcb@drawspec@watermark@@noclip% + \end{tcbclipinterior}% +} + \def\tcb@drawspec@watermark@tikz#1{% \setbox\tcb@waterbox=\hbox{\pgfinterruptpicture{\begin{tikzpicture}[color=\kvtcb@watermark@color]#1\end{tikzpicture}}\endpgfinterruptpicture}% \tcb@drawspec@watermark% @@ -667,10 +729,13 @@ \tcb@drawspec@watermark@tikz{\node[inner sep=0pt,align=flush center]{#1};}% } +\tikzset{forced clip/.code={\tikz@addmode{\tikz@mode@cliptrue}\let\tikz@options=\pgfutil@empty}} + \tcbset{% watermark opacity/.store in=\kvtcb@watermark@opacity,% watermark color/.store in=\kvtcb@watermark@color,% watermark zoom/.code={\def\kvtcb@watermark@factor{#1}\let\tcb@comp@wm=\tcb@comp@wm@zoom},% + watermark overzoom/.code={\def\kvtcb@watermark@factor{#1}\let\tcb@comp@wm=\tcb@comp@wm@overzoom},% watermark stretch/.code={\def\kvtcb@watermark@factor{#1}\let\tcb@comp@wm=\tcb@comp@wm@stretch},% % watermark tikz/.style={overlay={\tcb@drawspec@watermark@tikz{#1}}}, @@ -680,10 +745,48 @@ watermark text/.style={overlay={\tcb@drawspec@watermark@text{#1}}}, watermark text on/.style args={#1 is #2}{overlay #1={\tcb@drawspec@watermark@text{#2}}}, no watermark/.style={no overlay}, + clip watermark/.is choice, + clip watermark/true/.code={\let\tcb@drawspec@watermark=\tcb@drawspec@watermark@@clip}, + clip watermark/false/.code={\let\tcb@drawspec@watermark=\tcb@drawspec@watermark@@noclip}, + clip watermark/.default=true, % watermark opacity=1.00, watermark color=\kvtcb@colback!85!\kvtcb@colframe, watermark zoom=0.75, + clip watermark, +} + +\def\tcb@tdraw@title@clip{% + \begin{tcbcliptitle}% + \tcb@tdraw@title@core% + \end{tcbcliptitle}% +} + +\def\tcb@tdraw@upper@clip{% + \begin{tcbclipinterior}% + \tcb@tdraw@upper@core% + \end{tcbclipinterior}% +} + +\def\tcb@tdraw@lower@clip{% + \begin{tcbclipinterior}% + \tcb@tdraw@lower@core% + \end{tcbclipinterior}% +} + +\tcbset{% + clip title/.is choice, + clip title/true/.code={\let\tcb@tdraw@title=\tcb@tdraw@title@clip}, + clip title/false/.code={\let\tcb@tdraw@title=\tcb@tdraw@title@core}, + clip title/.default=true, + clip upper/.is choice, + clip upper/true/.code={\let\tcb@tdraw@upper=\tcb@tdraw@upper@clip}, + clip upper/false/.code={\let\tcb@tdraw@upper=\tcb@tdraw@upper@core}, + clip upper/.default=true, + clip lower/.is choice, + clip lower/true/.code={\let\tcb@tdraw@lower=\tcb@tdraw@lower@clip}, + clip lower/false/.code={\let\tcb@tdraw@lower=\tcb@tdraw@lower@core}, + clip lower/.default=true, } @@ -703,7 +806,175 @@ width=\the\dimexpr\linewidth+1.6cm\relax, frame style={top color=\kvtcb@colframe,bottom color=\kvtcb@colframe,middle color=yellow!75!\kvtcb@colframe}, title style={left color=\kvtcb@colframe,right color=\kvtcb@colframe,middle color=yellow!75!\kvtcb@colframe}, - watermark tikz={\draw[line width=2mm] (interior) circle (1cm) node{\fontfamily{ptm}\fontseries{b}\fontsize{20mm}{20mm}\selectfont!};}, + watermark tikz={\draw[line width=2mm] circle (1cm) node{\fontfamily{ptm}\fontseries{b}\fontsize{20mm}{20mm}\selectfont!};}, watermark zoom=0.75, }} + +\def\tcb@border@prepare#1#2{% + \tcbdimto\tcb@border@ts{#2+(#1)/2}% + \ifdim\dimexpr\tcb@outer@arc>\tcb@border@ts\relax% + \tcbdimto\tcb@border@arc{\tcb@outer@arc-\tcb@border@ts}% + \else% + \let\tcb@border@arc=\tcb@zpt% + \fi% +} + +\def\tcb@border@unbroken#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,rounded corners=\tcb@border@arc,#3] + ([xshift=\tcb@border@ts,yshift=\tcb@border@ts]frame.south west)% + rectangle ([xshift=-\tcb@border@ts,yshift=-\tcb@border@ts]frame.north east);% +} + +\def\tcb@border@first#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,rounded corners=\tcb@border@arc,#3] + ([xshift=\tcb@border@ts]frame.south west) -- + ([xshift=\tcb@border@ts,yshift=-\tcb@border@ts]frame.north west) -- + ([xshift=-\tcb@border@ts,yshift=-\tcb@border@ts]frame.north east) -- + ([xshift=-\tcb@border@ts]frame.south east);% +} + +\def\tcb@border@middle#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,#3] + ([xshift=\tcb@border@ts]frame.north west) -- ([xshift=\tcb@border@ts]frame.south west);% + \draw[line width=#1,#3] + ([xshift=-\tcb@border@ts]frame.north east) -- ([xshift=-\tcb@border@ts]frame.south east);% +} + +\def\tcb@border@last#1#2#3{% + \tcb@border@prepare{#1}{#2}% + \draw[line width=#1,rounded corners=\tcb@border@arc,#3] + ([xshift=\tcb@border@ts]frame.north west) -- + ([xshift=\tcb@border@ts,yshift=\tcb@border@ts]frame.south west) -- + ([xshift=-\tcb@border@ts,yshift=\tcb@border@ts]frame.south east) -- + ([xshift=-\tcb@border@ts]frame.north east);% +} + + +\def\tcb@draw@border@unbroken{% + \let\tcb@border=\tcb@border@unbroken% + \kvtcb@borderline% +} + +\def\tcb@draw@border@first{% + \let\tcb@border=\tcb@border@first% + \kvtcb@borderline% +} + +\def\tcb@draw@border@middle{% + \let\tcb@border=\tcb@border@middle% + \kvtcb@borderline% +} + +\def\tcb@draw@border@last{% + \let\tcb@border=\tcb@border@last% + \kvtcb@borderline% +} + +\tcbset{% + border@line app/.code={\tcb@appto\kvtcb@borderline{#1}},% + borderline/.style args={#1#2#3}{border@line app={\tcb@border{#1}{#2}{#3}}},% + no borderline/.code={\def\kvtcb@borderline{}},% + % + no borderline,% +} + +\def\tcb@shadow@prepare#1#2{% + \ifdim#2>0pt\relax\tcbdimto\tcb@shadow@ts{#1-#2/2}%% + \else\tcbdimto\tcb@shadow@ts{#1+#2/2}\fi% + \ifdim\dimexpr\tcb@outer@arc>\tcb@shadow@ts\relax% + \tcbdimto\tcb@shadow@arc{\tcb@outer@arc-\tcb@shadow@ts}% + \else% + \let\tcb@shadow@arc=\tcb@zpt% + \fi% +} + +\def\tcb@shadow@unbroken#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,rounded corners=\tcb@shadow@arc,#4]% + ([xshift=#1+#3,yshift=#2+#3]frame.south west)% + rectangle ([xshift=#1-#3,yshift=#2-#3]frame.north east);% +} + + +\def\tcb@shadow@first#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,rounded corners=\tcb@shadow@arc,#4] + ([xshift=#1+#3,yshift=#2+#3]frame.south west) -- + ([xshift=#1+#3,yshift=#2-#3]frame.north west) -- + ([xshift=#1-#3,yshift=#2-#3]frame.north east)[sharp corners] -- + ([xshift=#1-#3,yshift=#2+#3]frame.south east) -- cycle;% +} + +\def\tcb@shadow@middle#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,sharp corners,#4]% + ([xshift=#1+#3,yshift=#2+#3]frame.south west)% + rectangle ([xshift=#1-#3,yshift=#2-#3]frame.north east);% +} + +\def\tcb@shadow@last#1#2#3#4{% + \tcb@shadow@prepare{#3}{#1}% + \fill[line width=0pt,rounded corners=\tcb@shadow@arc,#4] + ([xshift=#1-#3,yshift=#2-#3]frame.north east) -- + ([xshift=#1-#3,yshift=#2+#3]frame.south east) -- + ([xshift=#1+#3,yshift=#2+#3]frame.south west)[sharp corners] -- + ([xshift=#1+#3,yshift=#2-#3]frame.north west) -- cycle;% +} + +\def\tcb@draw@shadow@unbroken{% + \let\tcb@shadow=\tcb@shadow@unbroken% + \kvtcb@shadow% +} + +\def\tcb@draw@shadow@first{% + \let\tcb@shadow=\tcb@shadow@first% + \kvtcb@shadow% +} + +\def\tcb@draw@shadow@middle{% + \let\tcb@shadow=\tcb@shadow@middle% + \kvtcb@shadow% +} + +\def\tcb@draw@shadow@last{% + \let\tcb@shadow=\tcb@shadow@last% + \kvtcb@shadow% +} + + +\tcbset{% + shad@w app/.code={\tcb@appto\kvtcb@shadow{#1}},% + shadow/.style args={#1#2#3#4}{shad@w app={\tcb@shadow{#1}{#2}{#3}{#4}}},% + no shadow/.code={\def\kvtcb@shadow{}},% + fuzzy shadow/.style args={#1#2#3#4#5}{shad@w app={% + \begin{scope}[#5]% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-4\dimexpr#4\relax}{opacity=0.01}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-3\dimexpr#4\relax}{opacity=0.02}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-2\dimexpr#4\relax}{opacity=0.04}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3-#4\relax}{opacity=0.07}% + \tcb@shadow{#1}{#2}{#3}{opacity=0.11}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+#4\relax}{opacity=0.11}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+2\dimexpr#4\relax}{opacity=0.07}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+3\dimexpr#4\relax}{opacity=0.04}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+4\dimexpr#4\relax}{opacity=0.02}% + \tcb@shadow{#1}{#2}{\the\dimexpr#3+5\dimexpr#4\relax}{opacity=0.01}% + \end{scope}}},% + % + drop shadow/.style={shadow={0.9mm}{-0.9mm}{0mm}{opacity=0.5,#1}}, + drop shadow/.default={black!50!white},% + halo/.style args={#1 with #2}{shadow={0mm}{0mm}{-#1}{opacity=0.5,#2}}, + halo/.default={0.9mm with yellow},% + drop fuzzy shadow/.style={fuzzy shadow={1.0mm}{-1.0mm}{0mm}{0.12mm}{#1}}, + drop fuzzy shadow/.default={black!50!white},% + fuzzy halo/.style args={#1 with #2}{fuzzy shadow={0mm}{0mm}{-#1}{0.12mm}{#2}}, + fuzzy halo/.default={1.0mm with yellow},% + % + no shadow,% + % + % +} + diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex index 4bb334b5d5b..b587416f7a6 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcbtheorems.code.tex: Code for theorems in colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -17,8 +17,8 @@ %% %% This work consists of all files listed in README %% -\makeatletter -\def\tcblibrary@theorems@loaded{} +%\makeatletter +\tcb@set@library@version{2.32} \RequirePackage{amsmath} @@ -26,8 +26,7 @@ \tcbset{ theorem/.code args={#1#2#3#4}{% - \refstepcounter{#2}\label{#4}% - \pgfkeysalso{title={\setbox\z@=\hbox{#1~\csname the#2\endcsname:\ }\hangindent\wd\z@\hangafter=1 \mbox{#1~\csname the#2\endcsname:\ }#3}}},% + \pgfkeysalso{title={\refstepcounter{#2}\setbox\z@=\hbox{#1~\csname the#2\endcsname:\ }\hangindent\wd\z@\hangafter=1 \mbox{#1~\csname the#2\endcsname:\label{#4}\ }#3}}},% math upper/.style={before upper=$\displaystyle,after upper=$},% math lower/.style={before lower=$\displaystyle,after lower=$},% math/.style={math upper,math lower},% @@ -50,7 +49,7 @@ ams gather* lower/.style={before lower=\tcb@hack@amsmath\csname gather*\endcsname,after lower=\endgather},% ams gather*/.style={ams gather* upper,ams gather* lower},% ams nodisplayskip upper/.style={before upper=\vskip-\abovedisplayskip},% - ams nodisplayskip lower/.style={before upper=\vskip-\abovedisplayskip},% + ams nodisplayskip lower/.style={before lower=\vskip-\abovedisplayskip},% ams nodisplayskip/.style={ams nodisplayskip upper,ams nodisplayskip lower},% highlight math style/.style={highlight math/.style={#1}},% highlight math style={colframe=red,colback=yellow!25!white,notitle},% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty index 8238c1589b5..a4f76aab89b 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.22 (2013/05/15) +%% The LaTeX package tcolorbox - version 2.32 (2013/06/23) %% tcolorbox.sty: Text color boxes %% %% ------------------------------------------------------------------------------------------- @@ -18,10 +18,12 @@ %% This work consists of all files listed in README %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tcolorbox}[2013/05/15 version 2.22 text color boxes] +\ProvidesPackage{tcolorbox}[2013/06/23 version 2.32 text color boxes] +\def\tcb@version{2.32} \RequirePackage{pgf}[2008/01/15] \RequirePackage{verbatim}[2003/08/22] +\RequirePackage{environ}[2013/04/01] % register \newif\iftcb@lowerignored @@ -42,6 +44,7 @@ \def\tcbset{\pgfqkeys{/tcb}} +\def\tcb@dim@to#1#2{\def#1{\the\dimexpr#2\relax}} \def\tcbdimto#1#2{\edef#1{\the\dimexpr#2\relax}} \def\tcb@zpt{0pt} @@ -87,12 +90,14 @@ \tcbdimto\tcb@w@upper{\tcb@w@sbs-\tcb@w@lower}% } -\tcbset{ +\pgfkeys{/handlers/.dimstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\def#1{\the\dimexpr##1\relax}}} + +\tcbset{% title/.store in=\kvtcb@title, notitle/.style={title=}, adjust text/.store in=\kvtcb@adjusttext, adjusted title/.style={title={#1\vphantom{\kvtcb@adjusttext}}}, - width/.store in=\kvtcb@width, + width/.dimstore in=\kvtcb@width, boxsep/.store in=\kvtcb@boxsep, toprule/.code={% \def\kvtcb@top@rule@stand{#1}% @@ -157,7 +162,7 @@ lowerbox/invisible/.code={\tcb@lowerignoredfalse\tcb@lowervisiblefalse}, lowerbox/ignored/.code={\tcb@lowerignoredtrue\tcb@lowervisiblefalse}, natural height/.code={\let\tcb@ch=\tcb@ch@natural}, - height/.code={\def\tcb@height@fixed{#1}\let\tcb@ch=\tcb@ch@fixed}, + height/.code={\tcb@dim@to\tcb@height@fixed{#1}\let\tcb@ch=\tcb@ch@fixed}, equal height group/.code={\edef\tcb@ehgid{#1}\let\tcb@ch=\tcb@ch@equalheight}, minimum for equal height group/.code args={#1:#2}{\edef\tcb@ehgid{#1}\tcb@ehgadd{#2}}, space/.code={\def\tcb@height@fraction{#1}\let\tcb@ch@fixed@both=\tcb@ch@fixed@space}, @@ -186,13 +191,18 @@ title engine/.store in=\kvtcb@engine@title, geometry nodes/.store in=\kvtcv@geonodes, geometry nodes/.default=true,% + set@extensions@preframe/.store in=\tcb@extensions@preframe,% + set@extensions@postframe/.store in=\tcb@extensions@postframe,% skin first/.store in=\kvtcb@skin@first, skin middle/.store in=\kvtcb@skin@middle, skin last/.store in=\kvtcb@skin@last, skin@standard/.style={frame engine=standard,interior titled engine=standard, interior engine=standard,segmentation engine=standard,title engine=standard, graphical environment=pgfpicture, - geometry nodes=false,skin first=standard,skin middle=standard,skin last=standard}, + geometry nodes=false, + set@extensions@preframe=,% + set@extensions@postframe={\tcb@apply@overlay},% + skin first=standard,skin middle=standard,skin last=standard}, skin/.style={skin@#1}, parbox/.store in=\kvtcv@parbox, parbox/.default=true,% @@ -223,9 +233,15 @@ after upper/.store in=\kvtcb@after@upper,% before lower/.store in=\kvtcb@before@lower,% after lower/.store in=\kvtcb@after@lower,% - center title/.style={before title=\begin{center},after title=\end{center}},% - center upper/.style={before upper=\begin{center},after upper=\end{center}},% - center lower/.style={before lower=\begin{center},after lower=\end{center}},% + center title/.style={before title=\centering},% + center upper/.style={before upper=\centering},% + center lower/.style={before lower=\centering},% + flushleft title/.style={before title=\raggedright},% + flushleft upper/.style={before upper=\raggedright},% + flushleft lower/.style={before lower=\raggedright},% + flushright title/.style={before title=\raggedleft},% + flushright upper/.style={before upper=\raggedleft},% + flushright lower/.style={before lower=\raggedleft},% tabularx*/.style 2 args={% boxsep=0pt,top=0pt,bottom=0pt,leftupper=0pt,rightupper=0pt, toptitle=1mm,bottomtitle=1mm,boxrule=0.5mm, @@ -233,14 +249,15 @@ \tcb@hack@currenvir\tabularx{\linewidth}{#2}}, after upper=\endtabularx}, tabularx/.style={tabularx*={}{#1}}, - tikz upper/.style={before upper=\begin{center}\begin{tikzpicture}[#1],after upper=\end{tikzpicture}\end{center}},% - tikz lower/.style={before lower=\begin{center}\begin{tikzpicture}[#1],after lower=\end{tikzpicture}\end{center}},% + tikz upper/.style={before upper=\centering\tikzpicture[#1],after upper=\endtikzpicture},% + tikz lower/.style={before lower=\centering\tikzpicture[#1],after lower=\endtikzpicture},% oversize/.style={% width=\the\dimexpr\dimexpr\linewidth\relax+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax,% enlarge left by=\the\dimexpr-\kvtcb@left@rule-\kvtcb@leftupper-\kvtcb@boxsep\relax,% enlarge right by=\the\dimexpr-\kvtcb@boxsep-\kvtcb@rightupper-\kvtcb@right@rule\relax},% - tcbox raise/.store in=\kvtcb@box@raise,% - tcbox raise base/.style={tcbox raise=\the\dimexpr-\tcb@temp@dp-\kvtcb@bbbottom@stand\relax},% + baseline/.store in=\kvtcb@baseline,% + tcbox raise/.style={baseline=-#1},% + tcbox raise base/.style={baseline=\tcb@val@raisebase},% shrink tight/.style={boxsep=0mm,top=-\kvtcb@top@rule@stand,bottom=-\kvtcb@bottom@rule@stand,left=-\kvtcb@left@rule,right=-\kvtcb@right@rule},% extrude left by/.code={\tcbdimto\kvtcb@leftupper{\kvtcb@leftupper+#1}\tcbdimto\kvtcb@bbleft{\kvtcb@bbleft-#1}},% extrude right by/.code={\tcbdimto\kvtcb@rightupper{\kvtcb@rightupper+#1}\tcbdimto\kvtcb@bbright{\kvtcb@bbright-#1}},% @@ -259,6 +276,15 @@ \let\endtcb@savebox=\endtcb@lrbox% \let\tcb@drawcolorbox=\tcb@drawcolorbox@standalone}, code/.code={#1}, + capture/.store in=\kvtcb@capture,% + hbox/.style={capture=hbox},% + minipage/.style={capture=minipage},% + check odd page/.is choice, + check odd page/true/.code={\let\tcb@checkoddpage=\checkoddpage% + \let\tcb@setbb@toggle@evenpage=\tcb@setbb@toggle@evenpage@strict}, + check odd page/false/.code={\let\tcb@checkoddpage=\relax% + \let\tcb@setbb@toggle@evenpage=\tcb@setbb@toggle@evenpage@easy}, + check odd page/.default=true, } \tcbset{notitle,width=\linewidth,boxsep=1mm,boxrule=0.5mm,adjust text={\"Apgjy}, @@ -270,8 +296,9 @@ toggle enlargement=none,toptitle=0mm,bottomtitle=0mm, standard,parbox,overlay=,auto outer arc, before title=,after title=,before upper=,after upper=,before lower=,after lower=, - tcbox raise=0pt,sidebyside=false,sidebyside align=center,sidebyside gap=10mm, - lefthand ratio=0.5, + baseline=0pt,sidebyside=false,sidebyside align=center,sidebyside gap=10mm, + lefthand ratio=0.5,capture=minipage,check odd page=false, + set@extensions@preframe=,set@extensions@postframe=,% }% \let\tcb@parboxrestore=\@parboxrestore @@ -330,15 +357,20 @@ \long\def\tcb@colorbox{% \@ifnextchar[{\tcb@@icolorbox}{\tcb@@icolorbox[]}} -\long\def\tcb@@icolorbox[#1]{% - % setting the keys - \tcbset{#1}% - \tcb@hasLowerfalse% +\def\tcb@set@@dim@and@title{% % computation of text width \tcbdimto\tcb@width{\kvtcb@width}% \tcbdimto\tcb@innerwidth{\tcb@width-\kvtcb@left@rule-\kvtcb@right@rule}% \tcbdimto\tcb@temp{\tcb@innerwidth-\kvtcb@boxsep*2}% \tcbdimto\tcb@w@upper{\tcb@temp-\kvtcb@leftupper-\kvtcb@rightupper}% + \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\else% + \tcb@hasTitletrue% + \tcbdimto\tcb@w@title{\tcb@temp-\kvtcb@lefttitle-\kvtcb@righttitle}% + \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\color{\kvtcb@coltitle}\kvtcb@fonttitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}% + \fi% +} + +\def\tcb@set@@sidebyside{% \iftcb@sidebyside% \tcbset{breakable@false}% \def\tcb@minipage{\csname tcb@minipage@\kvtcb@sbs@align\endcsname}% @@ -346,11 +378,9 @@ \tcbdimto\tcb@w@sbs{\tcb@w@upper@real-\kvtcb@sbs@gap}% \tcb@sbs@quota% \fi% - \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\else% - \tcb@hasTitletrue% - \tcbdimto\tcb@w@title{\tcb@temp-\kvtcb@lefttitle-\kvtcb@righttitle}% - \begin{tcb@savebox}{\tcb@titlebox}{\tcb@w@title}\color{\kvtcb@coltitle}\kvtcb@fonttitle\kvtcb@before@title\kvtcb@title\kvtcb@after@title\end{tcb@savebox}% - \fi% +} + +\def\tcb@set@@upper@and@lower{% \let\tcb@after@box=\kvtcb@after@upper% % switch for lower box \def\tcblower{% @@ -376,6 +406,25 @@ \tcb@saveupperbox% } + +\def\tcb@@capture@minipage{% + \let\tcb@val@raisebase=\tcb@zpt% + \tcb@set@@dim@and@title% + \tcb@set@@sidebyside% + \tcb@set@@upper@and@lower% +} + +\def\tcb@@capture@hbox{% + \let\endtcolorbox=\relax% + \Collect@Body\tcbox@inner@hbox% +} + +\long\def\tcb@@icolorbox[#1]{% + \tcbset{capture=minipage,#1}% + \tcb@hasLowerfalse% + \csname tcb@@capture@\kvtcb@capture\endcsname% +} + \let\tcolorbox\tcb@colorbox \def\tcb@endboxanddraw{% @@ -520,39 +569,49 @@ {\pgfpoint{\the\dimexpr\tcb@width+\kvtcb@bbleft\relax}{\the\dimexpr\tcb@height+\kvtcb@bbtop\relax}}% } -\def\tcb@setbb@toggle@evenpage{% +\def\tcb@setbb@toggle@evenpage@easy{% \ifodd\thepage\tcb@setbb@toggle@none\else\tcb@setbb@toggle@forced\fi% } +\let\tcb@setbb@toggle@evenpage=\tcb@setbb@toggle@evenpage@easy + +\def\tcb@setbb@toggle@evenpage@strict{% + \ifoddpage\tcb@setbb@toggle@none\else\tcb@setbb@toggle@forced\fi% +} + \def\tcb@creategeonodes@false{} \def\tcb@bbdraw{% + \tcb@checkoddpage% \csname tcb@setbb@toggle@\kvtcb@bbtoggle\endcsname% \pgfusepath{use as bounding box}% \csname tcb@creategeonodes@\kvtcv@geonodes\endcsname% } -\def\tcb@tdraw@title{% +\def\tcb@tdraw@title@core{% \iftcb@hasTitle% \pgftext[x=\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@lefttitle\relax, y=\the\dimexpr\tcb@height-\kvtcb@top@rule-\kvtcb@boxsep-\kvtcb@toptitle\relax, left,top]{\usebox{\tcb@titlebox}}% \fi% } +\let\tcb@tdraw@title=\tcb@tdraw@title@core -\def\tcb@tdraw@upper{% +\def\tcb@tdraw@upper@core{% \csname tcb@dbox@\kvtcb@valign\endcsname{\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftupper\relax}% {\the\dimexpr\tcb@innerheight+\kvtcb@bottom@rule-\kvtcb@boxsep-\tcb@break@topsep-\kvtcb@top-\tcb@height@upper\relax}% {\tcb@height@upper}{\tcb@upperbox}% } +\let\tcb@tdraw@upper=\tcb@tdraw@upper@core -\def\tcb@tdraw@lower{% +\def\tcb@tdraw@lower@core{% \iftcb@lowervisible% \csname tcb@dbox@\kvtcb@valignlower\endcsname{\the\dimexpr\kvtcb@left@rule+\kvtcb@boxsep+\kvtcb@leftlower\relax}% {\the\dimexpr\kvtcb@bottom@rule+\kvtcb@boxsep+\tcb@break@bottomsep+\kvtcb@bottom\relax}% {\tcb@height@lower}{\tcb@lowerbox}% \fi% } +\let\tcb@tdraw@lower=\tcb@tdraw@lower@core \def\tcb@sbs@mix{% \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper@real} @@ -594,8 +653,10 @@ \tcb@drawcolorbox% } +\def\tcb@apply@overlay{\csname tcb@overlay@\tcb@split@state\endcsname}% \def\tcb@drawcolorbox{% + \edef\tcb@split@state{unbroken}% \let\kvtcb@top@rule=\kvtcb@top@rule@stand% \let\kvtcb@bottom@rule=\kvtcb@bottom@rule@stand% \let\kvtcb@bbtop=\kvtcb@bbtop@stand% @@ -622,6 +683,8 @@ \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% \begin{tcb@float}\begin{\kvtcb@graphenv}% \tcb@bbdraw% + \pgfsetbaseline{\the\dimexpr\kvtcb@baseline-\kvtcb@bbbottom\relax}% + \tcb@extensions@preframe% % draw frame and interior \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% \iftcb@hasTitle% @@ -637,7 +700,7 @@ \iftcb@hasTitle% \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% \fi% - \tcb@overlay@unbroken% + \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@upper% @@ -645,23 +708,44 @@ \end{\kvtcb@graphenv}\end{tcb@float}% } +\def\tcb@draw@border#1{} + \let\tcb@drawcolorbox@standalone=\tcb@drawcolorbox -\newcommand{\tcbox}[2][]{% +\long\def\tcbox@inner@hbox#1{% + \tcbset{breakable@false,sidebyside=false}% + \setbox\tcb@upperbox=\hbox{\begingroup\color{\kvtcb@colupper}\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#1\unskip\kvtcb@after@upper\endgroup}% + \tcbdimto{\tcb@temp@wd}{\wd\tcb@upperbox}% + \tcbdimto{\tcb@val@raisebase}{\the\dimexpr\dp\tcb@upperbox+\kvtcb@bottom+\kvtcb@boxsep+\kvtcb@bottom@rule@stand+\kvtcb@bbbottom@stand\relax}% + \tcbset{width=\the\dimexpr\tcb@temp@wd+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax}% + \tcb@hasLowerfalse% + \tcb@set@@dim@and@title% + \tcb@draw@color@box% +} + +\long\def\tcbox@inner@minipage#1{% + \tcbset{breakable@false,sidebyside=false}% + \let\tcb@val@raisebase=\tcb@zpt% + \tcb@set@@dim@and@title% + \begin{tcb@savebox}{\tcb@upperbox}{\tcb@w@upper}\color{\kvtcb@colupper}\kvtcb@fontupper\kvtcb@before@upper#1\kvtcb@after@upper\end{tcb@savebox}% + \tcbdimto{\tcb@temp@wd}{\wd\tcb@upperbox}% + \tcbset{width=\the\dimexpr\tcb@temp@wd+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax}% + \tcb@hasLowerfalse% + \tcb@draw@color@box% +} + + +\long\def\tcb@ox#1#2{% \begingroup% - \tcbset{#1,breakable@false}% - \setbox0=\hbox{\begingroup\color{\kvtcb@colupper}\kvtcb@fontupper\kvtcb@before@upper\ignorespaces#2\kvtcb@after@upper\endgroup}% - \tcbdimto{\tcb@temp@wd}{\wd0}% - \tcbdimto{\tcb@temp@dp}{\dp0+\kvtcb@bottom+\kvtcb@boxsep+\kvtcb@bottom@rule@stand}% - \let\kvtcb@fontupper=\relax% - \let\kvtcb@before@upper\relax% - \let\kvtcb@after@upper\relax% - \raisebox{\kvtcb@box@raise}{\begin{tcolorbox}[width=\the\dimexpr\tcb@temp@wd+\kvtcb@left@rule+\kvtcb@leftupper+\kvtcb@boxsep*2+\kvtcb@rightupper+\kvtcb@right@rule\relax]% - \unhbox0% - \end{tcolorbox}}% + \tcbset{#1}% + \csname tcbox@inner@\kvtcb@capture\endcsname{#2}% \endgroup% } +\newcommand{\tcbox}[2][]{% + \tcb@ox{capture=hbox,#1}{#2}% +} + \long\def\tcb@newtcolorbox#1#2{\newenvironment{#1}{\tcolorbox[savedelimiter=#1,#2]}{\endtcolorbox}} \long\def\tcb@new@tcolorbox#1[#2]#3{\newenvironment{#1}[#2]{\tcolorbox[savedelimiter=#1,#3]}{\endtcolorbox}} @@ -674,6 +758,7 @@ \long\def\newtcolorbox#1{% \@ifnextchar[{\new@tcolorbox{#1}}{\tcb@newtcolorbox{#1}}} + \long\def\tcb@newtcbox#1#2{\newcommand{#1}{\tcbox[#2]}} \long\def\tcb@new@tcbox#1[#2]#3{\newcommand{#1}[#2]{\tcbox[#3]}} @@ -686,6 +771,7 @@ \long\def\newtcbox#1{% \@ifnextchar[{\new@tcbox{#1}}{\tcb@newtcbox{#1}}} + % verbatim output as in 'verbatim' \newwrite\tcb@out @@ -733,15 +819,64 @@ \def\tcbusetemp{\input{\kvtcb@tempfile}} +% expandonce from etoolbox +\newcommand{\tcb@expandonce}[1]{\unexpanded\expandafter{#1}} + +% slim version of etoolbox'es more general macro +\newcommand{\tcb@appto}[2]{% + \ifx#1\relax% + \edef#1{\unexpanded{#2}}% + \else% + \edef#1{\tcb@expandonce#1\unexpanded{#2}}% + \fi} + +% slim version of etoolbox'es more general macro +\newcommand{\tcb@preto}[2]{% + \ifx#1\relax% + \edef#1{\unexpanded{#2}}% + \else% + \edef#1{\unexpanded{#2}\tcb@expandonce#1}% + \fi} % libraries \def\tcb@optionlist{} +\def\tcb@set@library@version#1{% + \def\tcb@library@version{#1}% + \typeout{Library (tcolorbox): '\tcb@library@inload' version '\tcb@library@version'} + \tcb@check@library@version% +} + +\def\tcb@check@library@version{% + \ifx\tcb@library@version\tcb@version\else% + \PackageError{tcolorbox}{tcolorbox version '\tcb@version' loads library '\tcb@library@inload' with version '\tcb@library@version'} + \fi% +} + \def\tcbuselibrary#1{\tcbset{library/.cd,#1}} +\@onlypreamble\tcbuselibrary + +\providecommand{\tcbpkgprefix}{} + +\def\tcb@load@library#1#2{% + \pgfkeysifdefined{/tcb/libload/#1}{}{% + \pgfkeyssetvalue{/tcb/libload/#1}{}% + \def\tcb@library@inload{#2}% + \def\tcb@library@version{-}% + \edef\tcb@at@catcode{\the\catcode`@}% + \catcode`\@11\relax% + \input\tcbpkgprefix#2\relax% + \catcode`\@\tcb@at@catcode\relax% + \tcb@check@library@version}{}% +} \def\tcb@add@library#1#2{% - \tcbset{library/#1/.code={\@ifundefined{tcblibrary@#1@loaded}{\input #2}{}}}% - \DeclareOption{#1}{\edef\tcb@optionlist{\tcb@optionlist,#1}}% + \tcbset{library/#1/.code={\tcb@load@library{#1}{#2}}}% + \DeclareOption{#1}{\tcb@appto\tcb@optionlist{,#1}}% +} +\def\tcb@add@library@style#1#2{% + \tcbset{library/#1/.style={#2}}% + \DeclareOption{#1}{\tcb@appto\tcb@optionlist{,#1}}% } \tcb@add@library{listings}{tcblistings.code.tex} @@ -751,6 +886,10 @@ \tcb@add@library{skins}{tcbskins.code.tex} \tcb@add@library{breakable}{tcbbreakable.code.tex} \tcb@add@library{hooks}{tcbhooks.code.tex} +\tcb@add@library{fitting}{tcbfitting.code.tex} + +\tcb@add@library@style{most}{skins,breakable,listingsutf8,hooks,theorems,fitting} +\tcb@add@library@style{all}{most,documentation} \ProcessOptions* \edef\tcb@temp{\noexpand\tcbuselibrary{\tcb@optionlist}} |