From 1e84af656d85ead0ddce5b7b00f799f28bc11ab5 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 8 May 2014 22:44:24 +0000 Subject: tcolorbox (8may14) git-svn-id: svn://tug.org/texlive/trunk@33921 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/tcolorbox/tcbbreakable.code.tex | 51 ++- .../tex/latex/tcolorbox/tcbdocumentation.code.tex | 4 +- .../tex/latex/tcolorbox/tcbfitting.code.tex | 4 +- .../tex/latex/tcolorbox/tcbhooks.code.tex | 29 +- .../tex/latex/tcolorbox/tcblistings.code.tex | 4 +- .../tex/latex/tcolorbox/tcblistingscore.code.tex | 26 +- .../tex/latex/tcolorbox/tcblistingsutf8.code.tex | 4 +- .../tex/latex/tcolorbox/tcbminted.code.tex | 4 +- .../tex/latex/tcolorbox/tcbskins.code.tex | 343 ++++++++++++++++----- .../tex/latex/tcolorbox/tcbskinsjigsaw.code.tex | 19 +- .../tex/latex/tcolorbox/tcbtheorems.code.tex | 16 +- .../tex/latex/tcolorbox/tcbxparse.code.tex | 4 +- .../texmf-dist/tex/latex/tcolorbox/tcolorbox.sty | 137 +++++--- 13 files changed, 466 insertions(+), 179 deletions(-) (limited to 'Master/texmf-dist/tex/latex/tcolorbox') diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbbreakable.code.tex index bfb14903208..921add99e7d 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbbreakable.code.tex: Code for breakable colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \let\tcb@parboxrestore@true=\tcb@parboxrestore \def\tcb@parboxrestore@false{\vskip-\parskip\linewidth\hsize} @@ -245,10 +245,9 @@ \let\tcb@after@middle=\tcb@after@first% \let\tcb@after@last=\kvtcb@afterbox% \else% - \edef\tcb@float@env@start{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]}% - \let\tcb@before@first=\tcb@float@env@start% - \let\tcb@before@middle=\tcb@float@env@start% - \let\tcb@before@last=\tcb@float@env@start% + \edef\tcb@before@first{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]}% + \let\tcb@before@middle=\tcb@before@first% + \let\tcb@before@last=\tcb@before@first% \let\tcb@after@first=\tcb@float@env@end% \let\tcb@after@middle=\tcb@float@env@end% \let\tcb@after@last=\tcb@float@env@end% @@ -463,15 +462,13 @@ \tcbdimto\tcb@natheight{\tcb@h@padtitle+\kvtcb@top@rule+\kvtcb@bottom@rule+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom+\tcb@h@upper+\tcb@h@segment+\tcb@h@lower+\csname tcb@h@breaksep@\tcb@split@state\endcsname}% \tcb@ch@natural% \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% - \csname tcb@before@\tcb@split@state\endcsname% - \begin{\kvtcb@graphenv}% - \tcb@bbdraw% + \tcb@drawing@env@begin% \tcb@extensions@preframe% % draw frame and interior \tcb@adraw@frame% \tcb@adraw@interior% \iftcb@lowerseparated% - \csname tcb@drawlower@\kvtcb@engine@segmentation\endcsname% + \tcb@segmentation@code% \fi% \tcb@adraw@title% \tcb@extensions@postframe% @@ -479,8 +476,8 @@ \tcb@tdraw@title% \tcb@tdraw@upper% \tcb@tdraw@lower% - \end{\kvtcb@graphenv}% - \csname tcb@after@\tcb@split@state\endcsname% + \tcb@extensions@final% + \tcb@drawing@env@end% } @@ -490,9 +487,7 @@ \tcbdimto\tcb@natheight{\tcb@h@padtitle+\kvtcb@top@rule+\kvtcb@bottom@rule+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom+\tcb@h@upper+\csname tcb@h@breaksep@\tcb@split@state\endcsname}% \tcb@ch@natural% \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% - \csname tcb@before@\tcb@split@state\endcsname% - \begin{\kvtcb@graphenv}% - \tcb@bbdraw% + \tcb@drawing@env@begin% \tcb@extensions@preframe% % draw frame and interior \tcb@adraw@frame% @@ -502,8 +497,8 @@ % draw text boxes \tcb@tdraw@title% \tcb@tdraw@upper% - \end{\kvtcb@graphenv}% - \csname tcb@after@\tcb@split@state\endcsname% + \tcb@extensions@final% + \tcb@drawing@env@end% } @@ -513,23 +508,21 @@ \tcbdimto\tcb@natheight{\tcb@h@padtitle+\kvtcb@top@rule+\kvtcb@bottom@rule+\kvtcb@bottom+\kvtcb@boxsep+\tcb@h@segment+\tcb@h@lower+\csname tcb@h@breaksep@\tcb@split@state\endcsname}% \tcb@ch@natural% \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% - \csname tcb@before@\tcb@split@state\endcsname% - \begin{\kvtcb@graphenv}% - \tcb@bbdraw% + \tcb@drawing@env@begin% \tcb@extensions@preframe% % draw frame and interior \tcb@adraw@frame% \tcb@adraw@interior% \iftcb@lowerseparated% - \csname tcb@drawlower@\kvtcb@engine@segmentation\endcsname% + \tcb@segmentation@code% \fi% \tcb@adraw@title% \tcb@extensions@postframe% % draw text boxes \tcb@tdraw@title% \tcb@tdraw@lower% - \end{\kvtcb@graphenv}% - \csname tcb@after@\tcb@split@state\endcsname% + \tcb@extensions@final% + \tcb@drawing@env@end% } @@ -539,9 +532,7 @@ \tcbdimto\tcb@natheight{\tcb@h@padtitle+\kvtcb@top@rule+\kvtcb@bottom@rule+\kvtcb@boxsep*2+\kvtcb@top+\kvtcb@bottom+\ht\tcb@lowerbox+\dp\tcb@lowerbox+\csname tcb@h@breaksep@\tcb@split@state\endcsname}% \tcb@ch@natural% \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% - \csname tcb@before@\tcb@split@state\endcsname% - \begin{\kvtcb@graphenv}% - \tcb@bbdraw% + \tcb@drawing@env@begin% \tcb@extensions@preframe% % draw frame and interior \tcb@adraw@frame% @@ -551,8 +542,8 @@ % draw text boxes \tcb@tdraw@title% \tcb@tdraw@lower% - \end{\kvtcb@graphenv}% - \csname tcb@after@\tcb@split@state\endcsname% + \tcb@extensions@final% + \tcb@drawing@env@end% } @@ -570,12 +561,8 @@ adjusted title after break/.style={title after break={#1\vphantom{\kvtcb@adjusttext}}},% lines before break/.store in=\kvtcb@breakminlines,% shrink break goal/.store in=\kvtcb@shrinkbreakgoal,% -% toprule at break/.store in=\kvtcb@top@rule@break, bottomrule at break/.store in=\kvtcb@bottom@rule@break, - enlarge top at break by/.store in=\kvtcb@bbtop@break, - enlarge bottom at break by/.store in=\kvtcb@bbbottom@break, -% topsep at break/.store in=\kvtcb@topsep,% bottomsep at break/.store in=\kvtcb@bottomsep,% pad before break/.code={\let\kvtcb@bottom@rule@break=\tcb@zpt% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbdocumentation.code.tex index 0837c7e36bd..4c51dae1732 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbdocumentation.code.tex: Code for LaTeX documentations %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \tcbuselibrary{listings,skins} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex index 6906177bf6d..2c7f30a9141 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbfitting.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbfitting.code.tex: Code for fit boxes %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \newdimen\tcbfitdim \newdimen\tcb@lowerfitdim diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbhooks.code.tex index d6a056574f0..848c6a46a72 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbhooks.code.tex: Code for adding hooks %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \tcbset{% before upper app/.code={\appto\kvtcb@before@upper{#1}},% @@ -55,6 +55,8 @@ overlay broken pre/.style={overlay first pre={#1},overlay middle pre={#1},overlay last pre={#1}},% overlay unbroken and first app/.style={overlay unbroken app={#1},overlay first app={#1}},% overlay unbroken and first pre/.style={overlay unbroken pre={#1},overlay first pre={#1}},% + overlay unbroken and last app/.style={overlay unbroken app={#1},overlay last app={#1}},% + overlay unbroken and last pre/.style={overlay unbroken pre={#1},overlay last pre={#1}},% overlay middle and last app/.style={overlay middle app={#1},overlay last app={#1}},% overlay middle and last pre/.style={overlay middle pre={#1},overlay last pre={#1}},% % @@ -67,8 +69,27 @@ interior code pre/.code={\preto\tcb@interior@code{#1}},% segmentation code app/.code={\appto\tcb@segmentation@code{#1}},% segmentation code pre/.code={\preto\tcb@segmentation@code{#1}},% - title code app/.code={\appto\tcb@segmentation@code{#1}},% - title code pre/.code={\preto\tcb@segmentation@code{#1}},% + title code app/.code={\appto\tcb@title@code{#1}},% + title code pre/.code={\preto\tcb@title@code{#1}},% + % + underlay unbroken pre/.code={\preto\tcb@underlay@unbroken{#1}},% + underlay first pre/.code={\preto\tcb@underlay@first{#1}},% + underlay middle pre/.code={\preto\tcb@underlay@middle{#1}},% + underlay last pre/.code={\preto\tcb@underlay@last{#1}},% + underlay pre/.style={underlay unbroken pre={#1},underlay first pre={#1},underlay middle pre={#1},underlay last pre={#1}},% + underlay broken pre/.style={underlay first pre={#1},underlay middle pre={#1},underlay last pre={#1}},% + underlay unbroken and first pre/.style={underlay unbroken pre={#1},underlay first pre={#1}},% + underlay unbroken and last pre/.style={underlay unbroken pre={#1},underlay last pre={#1}},% + underlay middle and last pre/.style={underlay middle pre={#1},underlay last pre={#1}},% + finish unbroken pre/.code={\preto\tcb@finish@unbroken{#1}},% + finish first pre/.code={\preto\tcb@finish@first{#1}},% + finish middle pre/.code={\preto\tcb@finish@middle{#1}},% + finish last pre/.code={\preto\tcb@finish@last{#1}},% + finish pre/.style={finish unbroken pre={#1},finish first pre={#1},finish middle pre={#1},finish last pre={#1}},% + finish broken pre/.style={finish first pre={#1},finish middle pre={#1},finish last pre={#1}},% + finish unbroken and first pre/.style={finish unbroken pre={#1},finish first pre={#1}},% + finish unbroken and last pre/.style={finish unbroken pre={#1},finish last pre={#1}},% + finish middle and last pre/.style={finish middle pre={#1},finish last pre={#1}},% % watermark tikz app/.style={overlay app={\tcb@drawspec@watermark@tikz{#1}}}, watermark tikz pre/.style={overlay pre={\tcb@drawspec@watermark@tikz{#1}}}, diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistings.code.tex index de560bf5ccd..6104beb190e 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcblistings.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \RequirePackage{listings}[2007/02/22] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex index 3e7b8326273..c375c6d13ac 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingscore.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcblistingscode.code.tex: Auxiliary code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \def\tcbuselistingtext{\input{\kvtcb@listingfile}}% \def\tcbuselistingcomment{\kvtcb@listingcomment}% @@ -68,6 +68,13 @@ \kvtcb@afterbox% } +\newenvironment{tcb@outside@environment}{% + \tcb@before@unbroken% + \begin{minipage}{\tcb@width}}% +{% + \end{minipage}% + \tcb@after@unbroken} + \def\tcb@inputlisting@out@prepare{% \tcbdimto\tcb@width{\kvtcb@width}% \tcbdimto\tcb@innerwidth{\tcb@width-\kvtcb@left@rule-\kvtcb@right@rule}% @@ -79,10 +86,11 @@ \tcbdimto\tcb@w@sbs{\tcb@w@upper@real-\kvtcb@sbs@gap}% \tcb@sbs@quota% \ifx\kvtcb@float\@empty% - \newenvironment{tcb@sbsfloat}{\kvtcb@beforebox}{\kvtcb@afterbox}% + \let\tcb@before@unbroken=\kvtcb@beforebox% + \let\tcb@after@unbroken=\kvtcb@afterbox% \else% - \edef\tcb@float@env@start{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]}% - \newenvironment{tcb@sbsfloat}{\tcb@float@env@start}{\tcb@float@env@end}% + \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]}% + \let\tcb@after@unbroken=\tcb@float@env@end% \fi% } @@ -90,21 +98,21 @@ \tcb@inputlisting@out@prepare% \tcbdimto\tcb@w@outside{\tcb@w@lower}% \tcbdimto\tcb@w@inside{\tcb@width-\tcb@w@lower-\kvtcb@sbs@gap}% - \begin{tcb@sbsfloat}\begin{minipage}{\tcb@width}% + \begin{tcb@outside@environment}% \tcb@minipage{\tcb@w@inside}% \begin{tcolorbox}[width=\tcb@w@inside,nobeforeafter,nofloat,sidebyside=false,savedelimiter=tcolorbox]\tcbuselistinglisting\end{tcolorbox}% \endminipage\kern\kvtcb@sbs@gap% \iftcb@lowervisible% \tcb@use@lower@outside{\tcb@w@outside}% \fi% - \end{minipage}\end{tcb@sbsfloat}% + \end{tcb@outside@environment}% } \def\tcb@inputlisting@out@otherAndListing{% \tcb@inputlisting@out@prepare% \tcbdimto\tcb@w@outside{\tcb@w@upper}% \tcbdimto\tcb@w@inside{\tcb@width-\tcb@w@upper-\kvtcb@sbs@gap}% - \begin{tcb@sbsfloat}\begin{minipage}{\tcb@width}% + \begin{tcb@outside@environment}% \iftcb@lowervisible% \tcb@use@lower@outside{\tcb@w@outside}% \tcbdimto{\tcb@temp@wd}{\tcb@w@outside-\tcb@temp@wd+\kvtcb@sbs@gap}% @@ -114,7 +122,7 @@ \kern\tcb@temp@wd\tcb@minipage{\tcb@w@inside}% \begin{tcolorbox}[width=\tcb@w@inside,nobeforeafter,nofloat,sidebyside=false,savedelimiter=tcolorbox]\tcbuselistinglisting\end{tcolorbox}% \endminipage% - \end{minipage}\end{tcb@sbsfloat}% + \end{tcb@outside@environment}% } \def\tcb@inputlisting@inside{% diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcblistingsutf8.code.tex index c7842f2fcc4..c0055ebee35 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcblistingsutf8.code.tex: Code for colorboxes with listings in UTF-8 %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \RequirePackage{listingsutf8}[2011/11/10] \tcbuselibrary{listings} diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex index 9e165ec1d33..039a36bc4e8 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbminted.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbminted.code.tex: Code for colorboxes with listings %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \RequirePackage{minted}[2011/09/17] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex index 49f9ba6c6d0..b4d63e464f1 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbskins.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \RequirePackage{tikz}[2010/10/13] @@ -84,23 +84,23 @@ } \tikzset{% - tcb@fill@frame/.style={fill=\kvtcb@colframe,fill opacity=\kvtcb@opacityframe,tcb@spec,frame@style},% - tcb@fill@interior/.style={fill=\kvtcb@colback,fill opacity=\kvtcb@opacityback,tcb@spec,interior@style},% - tcb@fill@title/.style={fill=\kvtcb@colbacktitle,fill opacity=\kvtcb@opacitybacktitle,tcb@spec,title@style},% + tcb fill frame/.style={fill=\kvtcb@colframe,fill opacity=\kvtcb@opacityframe,tcb@spec,frame@style},% + tcb fill interior/.style={fill=\kvtcb@colback,fill opacity=\kvtcb@opacityback,tcb@spec,interior@style},% + tcb fill title/.style={fill=\kvtcb@colbacktitle,fill opacity=\kvtcb@opacitybacktitle,tcb@spec,title@style},% } % fill frame -\def\tcb@drawframe@path{\tcb@pathboundary{tcb@fill@frame}{\tcb@outerboundary}} +\def\tcb@drawframe@path{\tcb@pathboundary{tcb fill frame}{\tcb@outerboundary}} \let\tcb@drawframe@pathfirst=\tcb@drawframe@path \let\tcb@drawframe@pathmiddle=\tcb@drawframe@path \let\tcb@drawframe@pathlast=\tcb@drawframe@path % fill inner box with title -\def\tcb@drawwithtitle@path{\tcb@pathboundary{tcb@fill@interior}{\tcb@boundaryinterior@title@standard}} +\def\tcb@drawwithtitle@path{\tcb@pathboundary{tcb fill interior}{\tcb@boundaryinterior@title@standard}} \def\tcb@drawwithtitle@pathfirst{% - \tcb@pathbase{tcb@fill@interior}{interior.west|-frame.south}{interior.north east}% + \tcb@pathbase{tcb fill interior}{interior.west|-frame.south}{interior.north east}% {\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}% } @@ -109,30 +109,30 @@ \let\tcb@drawwithtitle@pathlast=\tcb@drawwithtitle@path % fill inner box without title -\def\tcb@drawwithouttitle@path{\tcb@pathboundary{tcb@fill@interior}{\tcb@boundaryinterior@notitle@standard}} +\def\tcb@drawwithouttitle@path{\tcb@pathboundary{tcb fill interior}{\tcb@boundaryinterior@notitle@standard}} \def\tcb@drawwithouttitle@pathfirst{% - \tcb@pathbase{tcb@fill@interior}{interior.west|-frame.south}{interior.north east}% + \tcb@pathbase{tcb fill interior}{interior.west|-frame.south}{interior.north east}% {\tcb@arc@zpt}{\tcb@arc@ins}{\tcb@arc@ins}{\tcb@arc@zpt}% } \def\tcb@drawwithouttitle@pathmiddle{% - \tcb@pathbase{tcb@fill@interior}{interior.west|-frame.south}{interior.east|-frame.north}% + \tcb@pathbase{tcb fill interior}{interior.west|-frame.south}{interior.east|-frame.north}% {\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}% } \def\tcb@drawwithouttitle@pathlast{% - \tcb@pathbase{tcb@fill@interior}{interior.south west}{interior.east|-frame.north}% + \tcb@pathbase{tcb fill interior}{interior.south west}{interior.east|-frame.north}% {\tcb@arc@ins}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@ins}% } % draw title box -\def\tcb@drawtitle@path{\tcb@pathboundary{tcb@fill@title}{\tcb@boundarytitle@standard}} +\def\tcb@drawtitle@path{\tcb@pathboundary{tcb fill title}{\tcb@boundarytitle@standard}} \let\tcb@drawtitle@pathfirst=\tcb@drawtitle@path \def\tcb@drawtitle@pathmiddle{% - \tcb@pathbase{tcb@fill@title}{title.south west}{title.north east}% + \tcb@pathbase{tcb fill title}{title.south west}{title.north east}% {\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}% } @@ -168,17 +168,17 @@ % draw special versions \def\tcb@drawspec@UT{% - \tcb@pathbase{tcb@fill@interior}{segmentation.west}{interior.north east}% + \tcb@pathbase{tcb fill interior}{segmentation.west}{interior.north east}% {\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}% } \def\tcb@drawspec@UR{% - \tcb@pathbase{tcb@fill@interior}{segmentation.west}{interior.north east}% + \tcb@pathbase{tcb fill interior}{segmentation.west}{interior.north east}% {\tcb@arc@zpt}{\tcb@arc@ins}{\tcb@arc@ins}{\tcb@arc@zpt}% } \def\tcb@drawspec@US{% - \tcb@pathbase{tcb@fill@interior}{segmentation.west}{interior.east|-frame.north}% + \tcb@pathbase{tcb fill interior}{segmentation.west}{interior.east|-frame.north}% {\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}{\tcb@arc@zpt}% } @@ -294,25 +294,50 @@ \tcbset{% frame style/.code={\tikzset{frame@style/.style={#1}}},% frame hidden/.style={frame style={draw=none,fill=none}}, - frame code/.code={\def\tcb@frame@code{#1}},% - frame code/.default=\tcb@drawframe@standard,% + frame engine/path/.style={frame code=\tcb@drawframe@path}, + frame engine/pathfirst/.style={frame code=\tcb@drawframe@pathfirst}, + frame engine/pathmiddle/.style={frame code=\tcb@drawframe@pathmiddle}, + frame engine/pathlast/.style={frame code=\tcb@drawframe@pathlast}, + frame engine/freelance/.style={frame code=\tcb@drawframe@standard}, + frame engine/spartan/.style={frame code=\tcb@drawframe@spartan}, + frame engine/empty/.style={frame code=}, + % + interior titled engine/path/.style={interior titled code=\tcb@drawwithtitle@path}, + interior titled engine/pathfirst/.style={interior titled code=\tcb@drawwithtitle@pathfirst}, + interior titled engine/pathmiddle/.style={interior titled code=\tcb@drawwithtitle@pathmiddle}, + interior titled engine/pathlast/.style={interior titled code=\tcb@drawwithtitle@pathlast}, + interior titled engine/freelance/.style={interior titled code=\tcb@drawwithtitle@standard}, + interior titled engine/spartan/.style={interior titled code=\tcb@drawwithtitle@spartan}, + interior titled engine/empty/.style={interior titled code=}, + % + interior engine/path/.style={interior code=\tcb@drawwithouttitle@path}, + interior engine/pathfirst/.style={interior code=\tcb@drawwithouttitle@pathfirst}, + interior engine/pathmiddle/.style={interior code=\tcb@drawwithouttitle@pathmiddle}, + interior engine/pathlast/.style={interior code=\tcb@drawwithouttitle@pathlast}, + interior engine/freelance/.style={interior code=\tcb@drawwithouttitle@standard}, + interior engine/spartan/.style={interior code=\tcb@drawwithouttitle@spartan}, + interior engine/empty/.style={interior code=}, + % + segmentation engine/path/.style={segmentation code=\tcb@drawlower@path}, + segmentation engine/freelance/.style={segmentation code=\tcb@drawlower@standard}, + segmentation engine/spartan/.style={segmentation code=\tcb@drawlower@spartan}, + segmentation engine/empty/.style={segmentation code=}, + % + title engine/path/.style={@title code=\tcb@drawtitle@path}, + title engine/pathfirst/.style={@title code=\tcb@drawtitle@pathfirst}, + title engine/pathmiddle/.style={@title code=\tcb@drawtitle@pathmiddle}, + title engine/pathlast/.style={@title code=\tcb@drawtitle@pathlast}, + title engine/freelance/.style={@title code=\tcb@drawtitle@standard}, + title engine/spartan/.style={@title code=\tcb@drawtitle@spartan}, + title engine/empty/.style={@title code=}, + % interior style/.code={\tikzset{interior@style/.style={#1}}},% interior hidden/.style={interior style={draw=none,fill=none}}, - interior titled code/.code={\def\tcb@interiortitled@code{#1}},% - interior titled code/.default=\tcb@drawwithtitle@standard,% - interior code/.code={\def\tcb@interior@code{#1}},% - interior code/.default=\tcb@drawwithouttitle@standard,% segmentation style/.code={\tikzset{segmentation@style/.style={#1}}},% segmentation hidden/.style={segmentation style={draw=none,fill=none}}, - segmentation code/.code={\def\tcb@segmentation@code{#1}},% - segmentation code/.default=\tcb@drawlower@standard,% @title style/.code={\tikzset{title@style/.style={#1}}},% title style/.style={title filled,@title style={#1}}, title hidden/.style={title style={draw=none,fill=none}}, - @title code/.code={\def\tcb@title@code{#1}},% - @title code/.default=\tcb@drawtitle@standard,% - title code/.style={title filled,@title code={#1}},% - title code/.default=\tcb@drawtitle@standard,% colbacklower/.store in=\kvtcb@colbacklower,% clear@spec/.code={\tcb@spec{}},% tikz/.code={\appto\tcb@tikz@option@hook{,#1}},% @@ -345,25 +370,29 @@ clear@spec,graphical environment=tikzpicture@tcb@hooked,geometry nodes,% set@outerboundary=\tcb@boundaryframe@standard,% set@extensions@preframe={\tcb@draw@shadow@unbroken},% - set@extensions@postframe={\tcb@draw@border@unbroken\tcb@apply@overlay},% + set@extensions@postframe={\tcb@draw@border@unbroken\tcb@apply@underlay\tcb@apply@overlay},% + set@extensions@final={\tcb@apply@finish}% },% base@first/.style={% clear@spec,graphical environment=tikzpicture@tcb@hooked,geometry nodes,% set@outerboundary=\tcb@boundaryframe@pathfirst,% set@extensions@preframe={\tcb@draw@shadow@first},% - set@extensions@postframe={\tcb@draw@border@first\tcb@apply@overlay},% + set@extensions@postframe={\tcb@draw@border@first\tcb@apply@underlay\tcb@apply@overlay},% + set@extensions@final={\tcb@apply@finish}% },% base@middle/.style={% clear@spec,graphical environment=tikzpicture@tcb@hooked,geometry nodes,% set@outerboundary=\tcb@boundaryframe@pathmiddle,% set@extensions@preframe={\tcb@draw@shadow@middle},% - set@extensions@postframe={\tcb@draw@border@middle\tcb@apply@overlay},% + set@extensions@postframe={\tcb@draw@border@middle\tcb@apply@underlay\tcb@apply@overlay},% + set@extensions@final={\tcb@apply@finish}% },% base@last/.style={% clear@spec,graphical environment=tikzpicture@tcb@hooked,geometry nodes,% set@outerboundary=\tcb@boundaryframe@pathlast,% set@extensions@preframe={\tcb@draw@shadow@last},% - set@extensions@postframe={\tcb@draw@border@last\tcb@apply@overlay},% + set@extensions@postframe={\tcb@draw@border@last\tcb@apply@underlay\tcb@apply@overlay},% + set@extensions@final={\tcb@apply@finish}% },% } @@ -387,33 +416,54 @@ 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,% + arc=0pt,outer arc=0pt,boxsep=0pt,top=0pt,bottom=0pt,left=0pt,right=0pt,boxrule=0pt,% + bottomtitle=6pt,middle=3pt}} + +\tcb@new@skin{empty}{base@unbroken,% + frame engine=empty,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=empty,% + skin first=emptyfirst,skin middle=emptymiddle,skin last=emptylast} + +\tcb@new@skin{emptyfirst}{base@first,% + frame engine=empty,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=empty,% + skin first=emptyfirst,skin middle=emptymiddle,skin last=emptymiddle} + +\tcb@new@skin{emptymiddle}{base@middle,% + frame engine=empty,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=empty,% + skin first=emptymiddle,skin middle=emptymiddle,skin last=emptymiddle} + +\tcb@new@skin{emptylast}{base@last,% + frame engine=empty,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=empty,% + skin first=emptymiddle,skin middle=emptymiddle,skin last=emptylast} + +\tcbset{empty/.style={skin=empty},% + blanker/.style={empty,arc=0pt,outer arc=0pt,boxsep=0pt,top=0pt,bottom=0pt,left=0pt,right=0pt,boxrule=0pt,% bottomtitle=6pt,middle=3pt}} \tcb@new@skin{freelance}{base@unbroken,% frame engine=freelance,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=freelance,% - skin first=freelancefirst,skin middle=freelancemiddle,skin last=freelancelast,freelance@extension} + skin first=freelancefirst,skin middle=freelancemiddle,skin last=freelancelast}%,freelance@extension} \tcb@new@skin{freelancefirst}{base@first,% frame engine=freelance,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=freelance,% - skin first=freelancefirst,skin middle=freelancemiddle,skin last=freelancemiddle,freelancefirst@extension} + skin first=freelancefirst,skin middle=freelancemiddle,skin last=freelancemiddle}%,freelancefirst@extension} \tcb@new@skin{freelancemiddle}{base@middle,% frame engine=freelance,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=freelance,% - skin first=freelancemiddle,skin middle=freelancemiddle,skin last=freelancemiddle,freelancemiddle@extension} + skin first=freelancemiddle,skin middle=freelancemiddle,skin last=freelancemiddle}%,freelancemiddle@extension} \tcb@new@skin{freelancelast}{base@last,% frame engine=freelance,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=freelance,% - skin first=freelancemiddle,skin middle=freelancemiddle,skin last=freelancelast,freelancelast@extension} + skin first=freelancemiddle,skin middle=freelancemiddle,skin last=freelancelast}%,freelancelast@extension} -\tcbset{freelance/.style={skin=freelance},% - extend freelance/.code={\tcbset{freelance@extension/.style={#1}}},% - extend freelancefirst/.code={\tcbset{freelancefirst@extension/.style={#1}}},% - extend freelancemiddle/.code={\tcbset{freelancemiddle@extension/.style={#1}}},% - extend freelancelast/.code={\tcbset{freelancelast@extension/.style={#1}}}} +\tcbset{freelance/.style={skin=freelance}, + % for backward compatibility: + extend freelance/.style={#1},% + extend freelancefirst/.style={skin first is subskin of={freelancefirst}{#1}},% + extend freelancemiddle/.style={skin middle is subskin of={freelancemiddle}{#1}},% + extend freelancelast/.style={skin last is subskin of={freelancelast}{#1}}} \tcb@new@skin{bicolor}{base@unbroken,% - frame engine=path,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=path,% + frame engine=path,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=path,% interior titled code={% \iftcb@lowerseparated% \ifcase\tcb@segment@state% @@ -446,7 +496,7 @@ \tcbset{bicolor/.style={skin=bicolor}} \tcb@new@skin{bicolorfirst}{base@first,% - frame engine=pathfirst,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=pathfirst,% + frame engine=pathfirst,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=pathfirst,% interior titled code={% \iftcb@lowerseparated% \ifcase\tcb@segment@state% @@ -477,7 +527,7 @@ skin first=bicolorfirst,skin middle=bicolormiddle,skin last=bicolormiddle} \tcb@new@skin{bicolormiddle}{base@middle,% - frame engine=pathmiddle,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=pathmiddle,% + frame engine=pathmiddle,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=pathmiddle,% interior titled code={% \iftcb@lowerseparated% \ifcase\tcb@segment@state% @@ -508,7 +558,7 @@ skin first=bicolormiddle,skin middle=bicolormiddle,skin last=bicolormiddle} \tcb@new@skin{bicolorlast}{base@last,% - frame engine=pathlast,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=pathlast,% + frame engine=pathlast,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=pathlast,% interior titled code={% \iftcb@lowerseparated% \ifcase\tcb@segment@state @@ -542,7 +592,7 @@ \tikzset{beamer@color/.style={top color=\kvtcb@colback,bottom color=\kvtcb@colback!85!black}} \tcb@new@skin{beamer}{base@unbroken,% - frame engine=path,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=path,% + frame engine=path,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=path,% interior titled code={% \iftcb@lowerseparated% \ifnum\tcb@segment@state=1% @@ -570,7 +620,7 @@ \tcbset{beamer/.style={skin=beamer,boxrule=0mm,titlerule=1mm,toptitle=0.5mm,arc=2mm,fonttitle=\bfseries,drop fuzzy shadow}} \tcb@new@skin{beamerfirst}{base@first,% - frame engine=pathfirst,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=pathfirst,% + frame engine=pathfirst,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=pathfirst,% interior titled code={% \iftcb@lowerseparated% \ifnum\tcb@segment@state=1% @@ -596,7 +646,7 @@ skin first=beamerfirst,skin middle=beamermiddle,skin last=beamermiddle} \tcb@new@skin{beamermiddle}{base@middle,% - frame engine=pathmiddle,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=pathmiddle,% + frame engine=pathmiddle,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=pathmiddle,% interior titled code={% \iftcb@lowerseparated% \ifnum\tcb@segment@state=1% @@ -622,7 +672,7 @@ skin first=beamermiddle,skin middle=beamermiddle,skin last=beamermiddle} \tcb@new@skin{beamerlast}{base@last,% - frame engine=pathlast,interior titled engine=freelance,interior engine=freelance,segmentation engine=freelance,title engine=pathlast,% + frame engine=pathlast,interior titled engine=empty,interior engine=empty,segmentation engine=empty,title engine=pathlast,% interior titled code={% \iftcb@lowerseparated% \ifnum\tcb@segment@state=1% @@ -659,7 +709,7 @@ \tikzset{widget@color/.style={left color=\kvtcb@colframe!75!white,right color=\kvtcb@colframe!75!white!25!\kvtcb@colback}} \tcb@new@skin{widget}{base@unbroken,% - frame engine=path,interior titled engine=path,interior engine=path,segmentation engine=freelance,title engine=freelance,% + frame engine=path,interior titled engine=path,interior engine=path,segmentation engine=empty,title engine=empty,% title code={{\tcb@spec{widget@color}\tcb@drawtitle@path}}, segmentation code={\tcb@drawspec@widgetsegment},% skin first=widgetfirst,skin middle=widgetmiddle,skin last=widgetlast} @@ -667,25 +717,25 @@ \tcbset{widget/.style={skin=widget,arc=0.5mm,fonttitle=\bfseries,titlerule=0mm,toprule at break=0mm}} \tcb@new@skin{widgetfirst}{base@first,% - frame engine=pathfirst,interior titled engine=pathfirst,interior engine=pathfirst,segmentation engine=freelance,title engine=freelance,% + frame engine=pathfirst,interior titled engine=pathfirst,interior engine=pathfirst,segmentation engine=empty,title engine=empty,% title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathfirst}},% segmentation code={\tcb@drawspec@widgetsegment},% skin first=widgetfirst,skin middle=widgetmiddle,skin last=widgetmiddle} \tcb@new@skin{widgetmiddle}{base@middle,% - frame engine=pathmiddle,interior titled engine=pathmiddle,interior engine=pathmiddle,segmentation engine=freelance,title engine=freelance,% + frame engine=pathmiddle,interior titled engine=pathmiddle,interior engine=pathmiddle,segmentation engine=empty,title engine=empty,% title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathmiddle}},% segmentation code={\tcb@drawspec@widgetsegment},% skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetmiddle} \tcb@new@skin{widgetlast}{base@last,% - frame engine=pathlast,interior titled engine=pathlast,interior engine=pathlast,segmentation engine=freelance,title engine=freelance,% + frame engine=pathlast,interior titled engine=pathlast,interior engine=pathlast,segmentation engine=empty,title engine=empty,% title code={{\tcb@spec{widget@color}\tcb@drawtitle@pathlast}}, segmentation code={\tcb@drawspec@widgetsegment},% skin first=widgetmiddle,skin middle=widgetmiddle,skin last=widgetlast} -\tcb@new@skin{spartan}{graphical environment=tikzpicture@tcb@hooked,geometry nodes=false, - set@extensions@preframe=,set@extensions@postframe=, +\tcb@new@skin{spartan}{graphical environment=tikzpicture@tcb@hooked,geometry nodes=true, + set@extensions@preframe=,set@extensions@postframe={\tcb@apply@underlay},set@extensions@final=,% frame engine=spartan,interior titled engine=spartan,interior engine=spartan,title engine=spartan,segmentation engine=spartan,% set@outerboundary=\tcb@boundaryframe@standard,% skin first=spartan,skin middle=spartan,skin last=spartan} @@ -693,10 +743,11 @@ \tcbset{spartan/.style={skin=spartan}} \tcb@new@skin{draft}{clear@spec,graphical environment=tikzpicture@tcb@hooked,geometry nodes,% - frame engine=freelance,interior titled engine=freelance,interior engine=freelance,segmentation engine=path,title engine=path,% - interior style=,frame style=,segmentation style={draw=black,dashed}, + frame engine=empty,interior titled engine=empty,interior engine=empty,segmentation engine=path,title empty,% + segmentation style={draw=black,dashed}, + set@extensions@postframe=, + set@extensions@final={\tcb@apply@finish},no finish,% colupper=black!50!white,collower=black!50!white,coltitle=black!50!white, - title hidden,% frame code={% \path[draw=blue!10!white,double,line width=1pt,dashed] (current bounding box.south west) rectangle (current bounding box.north east); {\tcb@spec{fill=black!15!white,draw=black}\tcb@drawframe@path}% @@ -772,8 +823,6 @@ \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} }, - set@extensions@postframe={},% - interior titled code=,interior code=, skin first=draft,skin middle=draft,skin last=draft} \tcbset{draft/.style={skin=draft}} @@ -798,9 +847,11 @@ \tcb@spec{tcb@forced@clip}% \def\tcb@spec##1{}% \iftcb@hasTitle% - \csname tcb@drawwithtitle@\kvtcb@engine@interiortitled\endcsname% + %\csname tcb@drawwithtitle@\kvtcb@engine@interiortitled\endcsname% + \tcb@interiortitled@code% \else% - \csname tcb@drawwithouttitle@\kvtcb@engine@interior\endcsname% + %\csname tcb@drawwithouttitle@\kvtcb@engine@interior\endcsname% + \tcb@interior@code% \fi% \endgroup% } @@ -811,7 +862,8 @@ \tcb@spec{tcb@forced@clip}% \def\tcb@spec##1{}% \iftcb@hasTitle% - \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% + %\csname tcb@drawtitle@\kvtcb@engine@title\endcsname% + \tcb@title@code% \fi% \endgroup% } @@ -821,6 +873,117 @@ \newenvironment{tcbclipinterior}{\begin{scope}\tcb@clip@interior}{\end{scope}} \newenvironment{tcbcliptitle}{\begin{scope}\tcb@clip@title}{\end{scope}} +\def\tcb@apply@underlay{\csname tcb@underlay@\tcb@split@state\endcsname}% +\def\tcb@apply@finish{\csname tcb@finish@\tcb@split@state\endcsname}% + +\tcbset{% + underlay unbroken/.code={\appto\tcb@underlay@unbroken{#1}},% + underlay first/.code={\appto\tcb@underlay@first{#1}},% + underlay middle/.code={\appto\tcb@underlay@middle{#1}},% + underlay last/.code={\appto\tcb@underlay@last{#1}},% + underlay/.style={underlay unbroken={#1},underlay first={#1},underlay middle={#1},underlay last={#1}},% + underlay broken/.style={underlay first={#1},underlay middle={#1},underlay last={#1}},% + underlay unbroken and first/.style={underlay unbroken={#1},underlay first={#1}},% + underlay unbroken and last/.style={underlay unbroken={#1},underlay last={#1}},% + underlay middle and last/.style={underlay middle={#1},underlay last={#1}},% + no underlay unbroken/.code={\let\tcb@underlay@unbroken\@empty},% + no underlay first/.code={\let\tcb@underlay@first\@empty},% + no underlay middle/.code={\let\tcb@underlay@middle\@empty},% + no underlay last/.code={\let\tcb@underlay@last\@empty},% + no underlay/.style={no underlay unbroken,no underlay first,no underlay middle,no underlay last},% + finish unbroken/.code={\appto\tcb@finish@unbroken{#1}},% + finish first/.code={\appto\tcb@finish@first{#1}},% + finish middle/.code={\appto\tcb@finish@middle{#1}},% + finish last/.code={\appto\tcb@finish@last{#1}},% + finish/.style={finish unbroken={#1},finish first={#1},finish middle={#1},finish last={#1}},% + finish broken/.style={finish first={#1},finish middle={#1},finish last={#1}},% + finish unbroken and first/.style={finish unbroken={#1},finish first={#1}},% + finish unbroken and last/.style={finish unbroken={#1},finish last={#1}},% + finish middle and last/.style={finish middle={#1},finish last={#1}},% + no finish unbroken/.code={\let\tcb@finish@unbroken\@empty},% + no finish first/.code={\let\tcb@finish@first\@empty},% + no finish middle/.code={\let\tcb@finish@middle\@empty},% + no finish last/.code={\let\tcb@finish@last\@empty},% + no finish/.style={no finish unbroken,no finish first,no finish middle,no finish last},% +} + + +\tcbset{% + before@boxed@title/.store in=\kvtcb@before@boxedtitle,% + after@boxed@title/.store in=\kvtcb@after@boxedtitle,% + boxed title style/.store in=\kvtcb@style@boxedtitle,%.style={boxed@title@style/.style={#1}}, + % + varwidth boxed title/.style={before@boxed@title={\tcbdimto\tcb@w@title{#1}\begin{varwidth}{\tcb@w@title}},after@boxed@title={\end{varwidth}}},% + varwidth boxed title/.default={\kvtcb@width-\kvtcb@left@rule-\kvtcb@right@rule-\kvtcb@boxsep*2-\kvtcb@lefttitle-\kvtcb@righttitle}, + varwidth boxed title*/.style={varwidth boxed title={\kvtcb@width+#1}}, + varwidth boxed title*/.default={-\kvtcb@left@rule-\kvtcb@right@rule-\kvtcb@boxsep*2-\kvtcb@lefttitle-\kvtcb@righttitle}, + % + minipage boxed title/.style={before@boxed@title={\tcbdimto\tcb@w@title{#1}\begin{minipage}{\tcb@w@title}},after@boxed@title={\end{minipage}}},% + minipage boxed title/.default={\kvtcb@width-\kvtcb@left@rule-\kvtcb@right@rule-\kvtcb@boxsep*2-\kvtcb@lefttitle-\kvtcb@righttitle}, + minipage boxed title*/.style={minipage boxed title={\kvtcb@width+#1}}, + minipage boxed title*/.default={-\kvtcb@left@rule-\kvtcb@right@rule-\kvtcb@boxsep*2-\kvtcb@lefttitle-\kvtcb@righttitle}, + % + tikznode boxed title/.style={before@boxed@title={\centering\tcb@shield@externalize\begin{tikzpicture}\node[align=center,inner sep=0pt,outer sep=0pt,#1]\bgroup},after@boxed@title={\egroup;\end{tikzpicture}}},% + hbox boxed title/.style={before@boxed@title=,after@boxed@title=},% + % + boxtitle/xshift/.dimstore in=\kvtcb@xshift@boxedtitle,% + boxtitle/yshift/.dimstore in=\kvtcb@yshift@boxedtitle,% + boxtitle/yshifttext/.dimstore in=\kvtcb@yinnershift@boxedtitle,% + % + boxtitle/yshift*@top/.style={yshift*/.code={% + \tcbdimto\kvtcb@yshift@boxedtitle{##1}% + \tcbdimto\kvtcb@yinnershift@boxedtitle{\kvtcb@yshift@boxedtitle+\kvtcb@top@rule@stand}% + \ifdim\dimexpr\kvtcb@yinnershift@boxedtitle>0pt\relax\let\kvtcb@yinnershift@boxedtitle\tcb@zpt\fi% + }}, + boxtitle/yshift*@bottom/.style={yshift*/.code={% + \tcbdimto\kvtcb@yshift@boxedtitle{##1}% + \tcbdimto\kvtcb@yinnershift@boxedtitle{\kvtcb@yshift@boxedtitle-\kvtcb@bottom@rule@stand}% + \ifdim\dimexpr\kvtcb@yinnershift@boxedtitle<0pt\relax\let\kvtcb@yinnershift@boxedtitle\tcb@zpt\fi% + }}, + boxtitle/adapt@top/.code={% + \ifdim\dimexpr\tcboxedtitleheight+\kvtcb@yshift@boxedtitle>0pt\relax + \tcbdimto\kvtcb@bbtop@stand{\kvtcb@bbtop@stand+\tcboxedtitleheight+\kvtcb@yshift@boxedtitle}% + \fi% + \tcbdimto\kvtcb@top{\kvtcb@top-\kvtcb@yinnershift@boxedtitle}% + }, + boxtitle/adapt@bottom/.code={% + \ifdim\dimexpr\tcboxedtitleheight-\kvtcb@yshift@boxedtitle>0pt\relax + \tcbdimto\kvtcb@bbbottom@stand{\kvtcb@bbbottom@stand+\tcboxedtitleheight-\kvtcb@yshift@boxedtitle}% + \fi% + \tcbdimto\kvtcb@bottom{\kvtcb@bottom+\kvtcb@yinnershift@boxedtitle}% + }, + attach@title@boxed/.style n args={5}{% + detach title, + code={\def\tcb@specialtitle@hook{% + \ifx\tcbtitletext\@empty\else% + \let\tcb@trans@colframe\kvtcb@colframe% + \let\tcb@trans@colback\kvtcb@colbacktitle% + \let\tcb@trans@boxedstyle\kvtcb@style@boxedtitle% + \setbox\tcb@titlebox\hbox{\bgroup\color{\kvtcb@coltitle}\kvtcb@fonttitle\kvtcb@before@boxedtitle\kvtcb@before@title\tcbtitletext\kvtcb@after@title\kvtcb@after@boxedtitle\egroup}% + \setbox\tcb@titlebox\hbox{\tcbox[colframe=\tcb@trans@colframe,colback=\tcb@trans@colback,size=title,code={\pgfkeysalsofrom\tcb@trans@boxedstyle}]{\box\tcb@titlebox}}% + % + \tcbdimto\tcboxedtitleheight{\ht\tcb@titlebox+\dp\tcb@titlebox}% + \tcbdimto\tcboxedtitlewidth{\wd\tcb@titlebox}% + \tcbset{boxtitle/.cd,xshift=0pt,yshift=0pt,yshifttext=0pt,yshift*@#2, + #1,adapt@#2}% + % + \tcbset{% + underlay unbroken and #3={\node[inner sep=0pt,outer sep=0pt,#4,name=title] at ([xshift=\kvtcb@xshift@boxedtitle,yshift=\kvtcb@yshift@boxedtitle]frame.#5) {\box\tcb@titlebox};}% + }% + \fi}}% + }, + attach@title@boxed@top/.style n args={3}{attach@title@boxed={#1}{top}{first}{#2}{#3}},% + attach@title@boxed@bottom/.style n args={3}{attach@title@boxed={#1}{bottom}{last}{#2}{#3}},% + % + attach boxed title to top left/.style={attach@title@boxed@top={#1}{above right}{north west}}, + attach boxed title to top center/.style={attach@title@boxed@top={#1}{above}{north}}, + attach boxed title to top right/.style={attach@title@boxed@top={#1}{above left}{north east}}, + attach boxed title to bottom left/.style={attach@title@boxed@bottom={#1}{below right}{south west}}, + attach boxed title to bottom center/.style={attach@title@boxed@bottom={#1}{below}{south}}, + attach boxed title to bottom right/.style={attach@title@boxed@bottom={#1}{below left}{south east}}, +} + + \newbox\tcb@waterbox \def\tcb@setratio#1#2#3{\edef#1{\strip@pt\dimexpr\number\numexpr\number\dimexpr#2\relax*65536/\number\dimexpr#3\relax\relax sp\relax}} @@ -897,7 +1060,7 @@ 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, - show bounding box/.style={overlay={% + show bounding box/.style={border@line app={% \path[preaction={draw,line width=0.1pt,#1},draw,double=white,line width=1pt,dashed,opacity=0.5,#1] (current bounding box.south west) rectangle (current bounding box.north east);}},% show bounding box/.default={red},% @@ -928,6 +1091,7 @@ \pgf@process{\pgfpointanchor{path picture bounding box}{north east}}% \pgf@xb\pgf@x\pgf@yb\pgf@y% \pgfsetfillopacity{\tcb@tikz@fill@graphics@opacity}% + \pgfsetstrokeopacity{\tcb@tikz@fill@graphics@opacity}% } \def\tcb@process@ppbb@wh{% @@ -940,6 +1104,10 @@ \setbox\tcb@waterbox=\hbox{\pgfinterruptpicture{\expandafter\includegraphics\expandafter[\tcb@tikz@fill@graphics@options]{#1}}\endpgfinterruptpicture}% } +\def\tcb@set@waterbox@to@picture#1{% + \setbox\tcb@waterbox=\hbox{\pgfinterruptpicture{\pgfsetbaseline{0pt}\begin{tikzpicture}#1\end{tikzpicture}}\endpgfinterruptpicture}% +} + \tikzset{% fill image opacity/.store in=\tcb@tikz@fill@graphics@opacity,% fill image opacity=1,% @@ -950,33 +1118,49 @@ fill plain image/.style={path picture={% \node at (path picture bounding box.center) {\expandafter\includegraphics\expandafter[\tcb@tikz@fill@graphics@options]{#1}}; }}, + fill plain picture/.style={path picture={% + \tcb@set@waterbox@to@picture{#1}% + \node at (path picture bounding box.center) {\box\tcb@waterbox}; + }}, fill stretch image/.style={path picture={% \tcb@process@ppbb@wh% \node at (path picture bounding box.center) {\expandafter\includegraphics\expandafter[\tcb@tikz@fill@graphics@options,% width=\the\dimexpr\tcb@tikz@fill@graphics@scale\dimexpr\tcb@ppbb@width\relax,% height=\the\dimexpr\tcb@tikz@fill@graphics@scale\dimexpr\tcb@ppbb@height\relax]{#1}}; }}, - fill overzoom image/.style={path picture={% + fill stretch picture/.style={path picture={% \tcb@process@ppbb@wh% - \tcb@set@waterbox@to@graphics{#1}% + \tcb@set@waterbox@to@picture{#1}% + \tcb@comp@waterbox@stretch{\tcb@tikz@fill@graphics@scale}{\tcb@ppbb@width}{\tcb@ppbb@height}% + \node at (path picture bounding box.center) {\tcb@box@scaled@waterbox};% + }}, + fill@overzoom/.style={path picture={% + \tcb@process@ppbb@wh% + #1% \tcb@comp@waterbox@overzoom{\tcb@tikz@fill@graphics@scale}{\tcb@ppbb@width}{\tcb@ppbb@height}% \node at (path picture bounding box.center) {\tcb@box@scaled@waterbox};% }}, - fill zoom image/.style={path picture={% + fill overzoom image/.style={fill@overzoom={\tcb@set@waterbox@to@graphics{#1}}},% + fill overzoom picture/.style={fill@overzoom={\tcb@set@waterbox@to@picture{#1}}},% + fill@zoom/.style={path picture={% \tcb@process@ppbb@wh% - \tcb@set@waterbox@to@graphics{#1}% + #1% \tcb@comp@waterbox@zoom{\tcb@tikz@fill@graphics@scale}{\tcb@ppbb@width}{\tcb@ppbb@height}% \node at (path picture bounding box.center) {\tcb@box@scaled@waterbox};% }}, - fill shrink image/.style={path picture={% + fill zoom image/.style={fill@zoom={\tcb@set@waterbox@to@graphics{#1}}},% + fill zoom picture/.style={fill@zoom={\tcb@set@waterbox@to@picture{#1}}},% + fill@shrink/.style={path picture={% \tcb@process@ppbb@wh% - \tcb@set@waterbox@to@graphics{#1}% + #1% \tcb@comp@waterbox@shrink{\tcb@tikz@fill@graphics@scale}{\tcb@ppbb@width}{\tcb@ppbb@height}% \node at (path picture bounding box.center) {\tcb@box@scaled@waterbox};% }}, - fill tile image/.style={path picture={% + fill shrink image/.style={fill@shrink={\tcb@set@waterbox@to@graphics{#1}}},% + fill shrink picture/.style={fill@shrink={\tcb@set@waterbox@to@picture{#1}}},% + fill@tile/.style={path picture={% \tcb@process@ppbb% - \tcb@set@waterbox@to@graphics{#1}% + #1% \tcbdimto\tcb@ppbb@tilew{\wd\tcb@waterbox}% \tcbdimto\tcb@ppbb@tileh{\ht\tcb@waterbox+\dp\tcb@waterbox}% \pgf@xc\pgf@xa\pgf@yc\pgf@yb% @@ -991,6 +1175,11 @@ \pgf@xc\pgf@xa% \pgfutil@repeat% }},% + fill tile image/.style={fill@tile={\tcb@set@waterbox@to@graphics{#1}}},% + fill tile picture/.style={fill@tile={\tcb@set@waterbox@to@picture{#1}}},% + fill tile picture*/.style 2 args={fill@tile={\tcb@set@waterbox@to@picture{#2}% + \setbox\tcb@waterbox=\hbox{\scalebox{#1}{\box\tcb@waterbox}}}},% + % fill plain image*/.style 2 args={fill image options={#1},fill plain image={#2}},% fill stretch image*/.style 2 args={fill image options={#1},fill stretch image={#2}},% fill overzoom image*/.style 2 args={fill image options={#1},fill overzoom image={#2}},% @@ -1259,14 +1448,14 @@ \tcbset{% reset@skins/.style={% frame style=,interior style=,segmentation style=,@title style=,% - frame code,interior titled code,interior code,segmentation code,% - @title code,colbacklower=black!15!white,% + colbacklower=black!15!white,% extend freelance=,extend freelancefirst=,extend freelancemiddle=,extend freelancelast=,% clear@spec,% watermark opacity=1.00,watermark color=\kvtcb@colback!85!\kvtcb@colframe,% watermark zoom=0.75,clip watermark,% clip title=false,clip upper=false,clip lower=false,% - no borderline,no shadow,tikz reset,at begin tikz reset,at end tikz reset% + no borderline,no shadow,no underlay,no finish,tikz reset,at begin tikz reset,at end tikz reset,% + boxed title style=,hbox boxed title,% }, initialize@reset=reset@skins, } diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex index 6e13a79ad82..ce0396ab2ce 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbskinsjigsaw.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbskinsjigsaw.code.tex: Code for colorboxes with different skins %% %% ------------------------------------------------------------------------------------------- @@ -17,12 +17,12 @@ %% %% This work consists of all files listed in README %% -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \tcbuselibrary{skins} \def\tcb@drawframe@pathjigsaw{% - \tcb@pathboundary{tcb@fill@frame}{\tcb@boundaryframe@standardjigsaw}% + \tcb@pathboundary{tcb fill frame}{\tcb@boundaryframe@standardjigsaw}% } \def\tcb@boundary@pathfirstjigsaw@A{% @@ -54,7 +54,7 @@ } \def\tcb@drawframe@pathfirstjigsaw{% - \tcb@pathboundary{tcb@fill@frame}{% + \tcb@pathboundary{tcb fill frame}{% \pgfseteorule% \iftcb@hasTitle% \iftcb@titlefilled% @@ -108,7 +108,7 @@ } \def\tcb@drawframe@pathmiddlejigsaw{% - \tcb@pathboundary{tcb@fill@frame}{% + \tcb@pathboundary{tcb fill frame}{% \pgfseteorule% \iftcb@hasTitle% \iftcb@titlefilled% @@ -132,7 +132,7 @@ } \def\tcb@drawframe@pathlastjigsaw{% - \tcb@pathboundary{tcb@fill@frame}{% + \tcb@pathboundary{tcb fill frame}{% \pgfseteorule% \iftcb@hasTitle% \iftcb@titlefilled% @@ -217,6 +217,11 @@ set@extensions@preframe={\tcb@draw@shadowjigsaw@last},% skin first=enhancedmiddle jigsaw,skin middle=enhancedmiddle jigsaw,skin last=enhancedlast jigsaw} -\tcbset{enhanced jigsaw/.style={skin=enhanced jigsaw}% +\tcbset{% + enhanced jigsaw/.style={skin=enhanced jigsaw},% + frame engine/pathjigsaw/.style={frame code=\tcb@drawframe@pathjigsaw}, + frame engine/pathfirstjigsaw/.style={frame code=\tcb@drawframe@pathfirstjigsaw}, + frame engine/pathmiddlejigsaw/.style={frame code=\tcb@drawframe@pathmiddlejigsaw}, + frame engine/pathlastjigsaw/.style={frame code=\tcb@drawframe@pathlastjigsaw}, } diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbtheorems.code.tex index b3545a560b4..8247ab0e25b 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbtheorems.code.tex: Code for theorems in colorboxes %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \RequirePackage{amsmath} @@ -28,6 +28,8 @@ \def\tcb@theo@form@numbername#1#2{\hbox{#2~#1}} \def\tcb@theo@form@name#1#2{\hbox{#1}} +\def\tcb@theo@desc@form@std#1{\tcb@desc@col\kvtcb@desc@font\kvtcb@desc@delim@left#1\kvtcb@desc@delim@right} + \def\tcb@theo@title#1#2#3{% \ifdefempty{#2}{\setbox\z@=\hbox{#1}}{\setbox\z@=\tcb@theo@form{#1}{#2}}% \def\temp@a{#3}% @@ -37,7 +39,7 @@ \setbox\z@=\hbox{\unhbox\z@\kvtcb@separatorsign\ }% \hangindent\wd\z@% \hangafter=1% - \mbox{\unhbox\z@}\kvtcb@desc@delim@left#3\kvtcb@desc@delim@right\kvtcb@terminatorsign% + \mbox{\unhbox\z@}{\tcb@theo@desc@form{#3}}\kvtcb@terminatorsign% \fi% } @@ -93,6 +95,13 @@ description delimiters/.code 2 args={\def\kvtcb@desc@delim@left{#1}\def\kvtcb@desc@delim@right{#2}},% description delimiters parenthesis/.style={description delimiters=()}, description delimiters none/.style={description delimiters={}{}}, + description color/.code={\def\temp@a{#1}\ifx\temp@a\@empty\relax% + \def\tcb@desc@col{}\else\def\tcb@desc@col{\color{#1}}\fi},% + description color/.default=, + description font/.store in=\kvtcb@desc@font, + description font/.default=, + description formatter/.code={\let\tcb@theo@desc@form=#1},% + description formatter/.default={\tcb@theo@desc@form@std},% theorem name and number/.code={\let\tcb@theo@form=\tcb@theo@form@namenumber}, theorem number and name/.code={\let\tcb@theo@form=\tcb@theo@form@numbername}, theorem name/.code={\let\tcb@theo@form=\tcb@theo@form@name}, @@ -139,6 +148,7 @@ \tcbset{% reset@theorems/.style={% + description formatter,description color,description font, highlight math style={colframe=red,colback=yellow!25!white},% theorem style=standard,% }, diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex b/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex index 97affc0ad60..5797773f9de 100644 --- a/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex +++ b/Master/texmf-dist/tex/latex/tcolorbox/tcbxparse.code.tex @@ -1,4 +1,4 @@ -%% The LaTeX package tcolorbox - version 2.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcbhooks.code.tex: Code for adding hooks %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README %% %\makeatletter -\tcb@set@library@version{2.80} +\tcb@set@library@version{3.00} \RequirePackage{xparse}[2013/12/31] diff --git a/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty b/Master/texmf-dist/tex/latex/tcolorbox/tcolorbox.sty index 4789a631490..45551823a69 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.80 (2014/03/31) +%% The LaTeX package tcolorbox - version 3.00 (2014/05/08) %% tcolorbox.sty: Text color boxes %% %% ------------------------------------------------------------------------------------------- @@ -18,8 +18,8 @@ %% This work consists of all files listed in README %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tcolorbox}[2014/03/31 version 2.80 text color boxes] -\def\tcb@version{2.80} +\ProvidesPackage{tcolorbox}[2014/05/08 version 3.00 text color boxes] +\def\tcb@version{3.00} \RequirePackage{pgf}[2008/01/15] \RequirePackage{verbatim}[2003/08/22] @@ -105,6 +105,7 @@ \fi} \def\tcb@new@skin#1#2{\tcbset{skin@#1/.style={#2}}} +\newcommand{\tcbsubskin}[3]{\tcb@new@skin{#1}{skin@#2,#3}} \pgfkeys{/handlers/.dimstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\def#1{\the\dimexpr##1\relax}}} @@ -117,6 +118,7 @@ \tcbset{title/.store in=\tcbtitletext}% \let\tcb@detach@title@code\@empty% \let\tcb@attach@title@code\tcb@attach@title@code@% + \let\tcb@specialtitle@hook\@empty% } \def\tcb@attach@title@code@{% @@ -125,6 +127,7 @@ \tcbset{title/.store in=\kvtcb@title}% \let\tcb@attach@title@code\@empty% \let\tcb@detach@title@code\tcb@detach@title@code@% + \let\tcb@specialtitle@hook\@empty% } \tcbset{% @@ -215,14 +218,12 @@ split/.code={\def\tcb@height@fraction{#1}\let\tcb@ch@fixed@both=\tcb@ch@fixed@split}, valign/.store in=\kvtcb@valign, valign lower/.store in=\kvtcb@valignlower, - enlarge top by/.code={% - \def\kvtcb@bbtop@stand{#1}% - \let\kvtcb@bbtop@break=\kvtcb@bbtop@stand% - }, - enlarge bottom by/.code={% - \def\kvtcb@bbbottom@stand{#1}% - \let\kvtcb@bbbottom@break=\kvtcb@bbbottom@stand% - }, + enlarge top initially by/.store in=\kvtcb@bbtop@stand,% + enlarge top at break by/.store in=\kvtcb@bbtop@break,% + enlarge top by/.style={enlarge top initially by={#1},enlarge top at break by={#1}},% + enlarge bottom finally by/.store in=\kvtcb@bbbottom@stand,% + enlarge bottom at break by/.store in=\kvtcb@bbbottom@break,% + enlarge bottom by/.style={enlarge bottom finally by={#1},enlarge bottom at break by={#1}},% enlarge left by/.store in=\kvtcb@bbleft, enlarge right by/.store in=\kvtcb@bbright, enlarge by/.style={enlarge top by={#1},enlarge bottom by={#1},enlarge left by={#1},enlarge right by={#1}},% @@ -243,20 +244,53 @@ toggle left and right/forced/.code={\let\tcb@lrtoggle=\tcb@lrtoggle@forced}, toggle left and right/.default=evenpage, graphical environment/.store in=\kvtcb@graphenv, - frame engine/.store in=\kvtcb@engine@frame, - interior titled engine/.store in=\kvtcb@engine@interiortitled, - interior engine/.store in=\kvtcb@engine@interior, - segmentation engine/.store in=\kvtcb@engine@segmentation, - title engine/.store in=\kvtcb@engine@title, + % + frame engine/.is choice, + frame engine/standard/.style={frame code=\tcb@drawframe@standard}, + frame engine/standardjigsaw/.style={frame code=\tcb@drawframe@standardjigsaw}, + frame code/.code={\def\tcb@frame@code{#1}},% + frame code/.default=\tcb@drawframe@standard,% + frame empty/.style={frame code=}, + % + interior titled engine/.is choice, + interior titled engine/standard/.style={interior titled code=\tcb@drawwithtitle@standard}, + interior titled code/.code={\def\tcb@interiortitled@code{#1}},% + interior titled code/.default=\tcb@drawwithtitle@standard,% + interior titled empty/.style={interior titled code=}, + % + interior engine/.is choice, + interior engine/standard/.style={interior code=\tcb@drawwithouttitle@standard}, + interior code/.code={\def\tcb@interior@code{#1}},% + interior code/.default=\tcb@drawwithouttitle@standard,% + interior empty/.style={interior code=}, + % + segmentation engine/.is choice, + segmentation engine/standard/.style={segmentation code=\tcb@drawlower@standard}, + segmentation code/.code={\def\tcb@segmentation@code{#1}},% + segmentation code/.default=\tcb@drawlower@standard,% + segmentation empty/.style={segmentation code=}, + % + title engine/.is choice, + title engine/standard/.style={@title code=\tcb@drawtitle@standard}, + @title code/.code={\def\tcb@title@code{#1}},% + @title code/.default=\tcb@drawtitle@standard,% + title code/.style={title filled,@title code={#1}},% + title code/.default=\tcb@drawtitle@standard,% + title empty/.style={@title code=}, + % 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,% + set@extensions@final/.store in=\tcb@extensions@final,% set@outerboundary/.store in=\tcb@outerboundary,% skin first/.store in=\kvtcb@skin@first, skin middle/.store in=\kvtcb@skin@middle, skin last/.store in=\kvtcb@skin@last, skin/.style={skin@#1}, + skin first is subskin of/.style 2 args={skin@local@first/.style={skin@#1,#2},skin first=local@first},% + skin middle is subskin of/.style 2 args={skin@local@middle/.style={skin@#1,#2},skin middle=local@middle},% + skin last is subskin of/.style 2 args={skin@local@last/.style={skin@#1,#2},skin last=local@last},% parbox/.store in=\kvtcv@parbox, parbox/.default=true,% hyphenationfix/.is choice,% @@ -279,6 +313,9 @@ overlay unbroken and first/.code={\def\tcb@overlay@temp{#1}% \let\tcb@overlay@unbroken=\tcb@overlay@temp% \let\tcb@overlay@first=\tcb@overlay@temp},% + overlay unbroken and last/.code={\def\tcb@overlay@temp{#1}% + \let\tcb@overlay@unbroken=\tcb@overlay@temp% + \let\tcb@overlay@last=\tcb@overlay@temp},% overlay middle and last/.code={\def\tcb@overlay@temp{#1}% \let\tcb@overlay@middle=\tcb@overlay@temp% \let\tcb@overlay@last=\tcb@overlay@temp},% @@ -312,6 +349,9 @@ tikznode upper/.style={before upper={\centering\tcb@shield@externalize\begin{tikzpicture}\node[align=center,inner sep=0pt,outer sep=0pt,#1]\bgroup},after upper={\egroup;\end{tikzpicture}}},% tikznode lower/.style={before lower={\centering\tcb@shield@externalize\begin{tikzpicture}\node[align=center,inner sep=0pt,outer sep=0pt,#1]\bgroup},after lower={\egroup;\end{tikzpicture}}},% tikznode/.style={tikznode upper={#1},tikznode lower={#1}},% + varwidth upper/.style={before upper={\tcbdimto\tcb@w@upper{#1-\kvtcb@left@rule-\kvtcb@right@rule-\kvtcb@boxsep*2-\kvtcb@leftupper-\kvtcb@rightupper}% + \begin{varwidth}{\tcb@w@upper}},after upper={\end{varwidth}}},% + varwidth upper/.default=\kvtcb@width, oversize/.style={% width=\the\dimexpr\dimexpr\linewidth+#1+\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-#1/2\relax,% @@ -380,6 +420,21 @@ opacityfill/.style={opacityframe={#1},opacityback={#1},@opacitybacktitle={#1}}, opacitytext/.style={opacityupper={#1},opacitylower={#1}}, spartan@fit/.code={},% + % + size/.is choice, + size/normal/.style={boxrule=0.5mm,boxsep=1mm,left=4mm,right=4mm,top=2mm,bottom=2mm,toptitle=0pt,bottomtitle=0pt, + middle=2mm,arc=1mm,auto outer arc}, + size/title/.style={boxrule=0.4mm,boxsep=1mm,left=2mm,right=2mm,top=0.25mm,bottom=0.25mm,toptitle=0pt,bottomtitle=0pt, + middle=0.75mm,arc=0.75mm,auto outer arc}, + size/small/.style={boxrule=0.3mm,boxsep=1mm,left=1mm,right=1mm,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt, + middle=0.5mm,arc=0.5mm,auto outer arc}, + size/fbox/.style={boxrule=0.4pt,boxsep=3pt,left=0pt,right=0pt,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt, + middle=1pt,arc=1pt,auto outer arc}, + size/tight/.style={boxrule=0.4pt,boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt, + middle=0.2pt,arc=0pt,outer arc=0pt}, + size/minimal/.style={boxrule=0pt,boxsep=0pt,left=0pt,right=0pt,top=0pt,bottom=0pt,toptitle=0pt,bottomtitle=0pt, + middle=0pt,arc=0pt,outer arc=0pt}, + on line/.style={tcbox raise base,nobeforeafter}, } \def\kvtcb@beforebox{} @@ -387,7 +442,7 @@ \tcbset{% autoparskip,minipage,savedelimiter=tcolorbox,% - set@extensions@preframe=,set@extensions@postframe=,% + set@extensions@preframe=,set@extensions@postframe=,set@extensions@final=,% }% \def\tcb@set@label#1{% @@ -465,7 +520,7 @@ \tcb@hasPhantomtrue% \sbox\tcb@phantombox{\kvtcb@phantom}% \fi% - \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\else% + \ifx\kvtcb@title\@empty\tcb@hasTitlefalse\tcb@specialtitle@hook\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}% @@ -944,25 +999,37 @@ \def\tcb@apply@overlay{\csname tcb@overlay@\tcb@split@state\endcsname}% \def\tcb@adraw@frame{% - \csname tcb@drawframe@\kvtcb@engine@frame\endcsname% + \tcb@frame@code% } \def\tcb@adraw@interior{% \iftcb@hasTitle% - \csname tcb@drawwithtitle@\kvtcb@engine@interiortitled\endcsname% + \tcb@interiortitled@code% \else% - \csname tcb@drawwithouttitle@\kvtcb@engine@interior\endcsname% + \tcb@interior@code% \fi% } \def\tcb@adraw@title{% \iftcb@hasTitle% \iftcb@titlefilled% - \csname tcb@drawtitle@\kvtcb@engine@title\endcsname% + \tcb@title@code% \fi% \fi% } +\def\tcb@drawing@env@begin{% + \csname tcb@before@\tcb@split@state\endcsname% + \begin{\kvtcb@graphenv}% + \tcb@bbdraw% +} + +\def\tcb@drawing@env@end{% + \end{\kvtcb@graphenv}% + \csname tcb@after@\tcb@split@state\endcsname% +} + + \def\tcb@drawcolorbox{% \edef\tcb@split@state{unbroken}% \let\kvtcb@top@rule=\kvtcb@top@rule@stand% @@ -973,10 +1040,11 @@ \let\tcb@break@bottomsep=\tcb@zpt% % floats \ifx\kvtcb@float\@empty% - \newenvironment{tcb@float}{\kvtcb@beforebox}{\kvtcb@afterbox}% + \let\tcb@before@unbroken=\kvtcb@beforebox% + \let\tcb@after@unbroken=\kvtcb@afterbox% \else% - \edef\tcb@float@env@start{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]}% - \newenvironment{tcb@float}{\tcb@float@env@start}{\tcb@float@env@end}% + \edef\tcb@before@unbroken{\noexpand\tcb@float@env@begin{tcbfloat}[\kvtcb@float]}% + \let\tcb@after@unbroken=\tcb@float@env@end% \fi% \setcounter{tcbbreakpart}{1}% % computation of total height @@ -989,8 +1057,7 @@ \fi% \tcb@ch% \tcbdimto\tcb@innerheight{\tcb@height-\kvtcb@top@rule-\kvtcb@bottom@rule-\tcb@h@padtitle}% - \begin{tcb@float}\begin{\kvtcb@graphenv}% - \tcb@bbdraw% + \tcb@drawing@env@begin% \pgfsetbaseline{\the\dimexpr\kvtcb@baseline-\kvtcb@bbbottom\relax}% \tcb@extensions@preframe% % draw frame and interior @@ -998,9 +1065,9 @@ \tcb@adraw@interior% \iftcb@lowerseparated% \iftcb@lowerspace% - \csname tcb@drawlower@\kvtcb@engine@segmentation\endcsname% + \tcb@segmentation@code% \else\iftcb@sidebyside% - \csname tcb@drawlower@\kvtcb@engine@segmentation\endcsname% + \tcb@segmentation@code% \fi\fi% \fi% \tcb@adraw@title% @@ -1009,7 +1076,8 @@ \tcb@tdraw@title% \tcb@tdraw@upper% \iftcb@hasLower\tcb@tdraw@lower\fi% - \end{\kvtcb@graphenv}\end{tcb@float}% + \tcb@extensions@final% + \tcb@drawing@env@end% } \let\tcb@drawcolorbox@standalone=\tcb@drawcolorbox @@ -1280,7 +1348,7 @@ \tcb@new@skin{standard}{frame engine=standard,interior titled engine=standard, interior engine=standard,segmentation engine=standard,title engine=standard, graphical environment=pgfpicture,geometry nodes=false, - set@extensions@preframe=,set@extensions@postframe={\tcb@apply@overlay},% + set@extensions@preframe=,set@extensions@postframe={\tcb@apply@overlay},set@extensions@final=,% set@outerboundary=\tcb@boundaryframe@standard,% skin first=standard,skin middle=standard,skin last=standard% } @@ -1295,15 +1363,14 @@ reset@core/.style={code={\let\tcbtitletext\@empty\tcb@attach@title@code@}, width=\linewidth,autoparskip, natural height,height plus=0pt,space to lower,valign=top,valign lower=top, - boxsep=1mm,boxrule=0.5mm, - left=4mm,right=4mm,top=2mm,bottom=2mm,middle=2mm,arc=1mm, + size=normal, enlarge top by=0mm,enlarge bottom by=0mm,enlarge left by=0mm,enlarge right by=0mm, - toggle enlargement=none,toggle left and right=none,toptitle=0mm,bottomtitle=0mm, + toggle enlargement=none,toggle left and right=none, baseline=0pt,adjust text={\"Apgjy},lowerbox=visible,lower separated, colback=black!5!white,colframe=black!75!white,@colbacktitle=black!50!white,coltext=black,coltitle=white, fonttitle=,fontupper=,fontlower=,floatplacement=htb,nofloat,savelowerto=, tempfile={\jobname.tcbtemp}, - standard,parbox,hyphenationfix=false,overlay=,auto outer arc, + standard,parbox,hyphenationfix=false,overlay=, before title=,after title=,before upper=,after upper=,before lower=,after lower=, sidebyside=false,sidebyside align=center,sidebyside gap=10mm, lefthand ratio=0.5,check odd page=false,nophantom, -- cgit v1.2.3