diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tcolorbox/tcbskins.code.tex | 363 |
1 files changed, 317 insertions, 46 deletions
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,% + % + % +} + |