1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
%% The LaTeX package tcolorbox - version 6.3.0 (2024/07/10)
%% tcbhooks.code.tex: Code for adding hooks
%%
%% -------------------------------------------------------------------------------------------
%% Copyright (c) 2006-2024 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{6.3.0}
\tcbset{%
before upper app/.code={\appto\kvtcb@before@upper{#1}},%
before upper pre/.code={\preto\kvtcb@before@upper{#1}},%
after upper app/.code={\appto\kvtcb@after@upper{#1}},%
after upper pre/.code={\preto\kvtcb@after@upper{#1}},%
before lower app/.code={\appto\kvtcb@before@lower{#1}},%
before lower pre/.code={\preto\kvtcb@before@lower{#1}},%
after lower app/.code={\appto\kvtcb@after@lower{#1}},%
after lower pre/.code={\preto\kvtcb@after@lower{#1}},%
before title app/.code={\appto\kvtcb@before@title{#1}},%
before title pre/.code={\preto\kvtcb@before@title{#1}},%
after title app/.code={\appto\kvtcb@after@title{#1}},%
after title pre/.code={\preto\kvtcb@after@title{#1}},%
%
% usable inside the document or in the preamble after setting before / after
before app/.code={\appto\kvtcb@beforebox{#1}},%
before pre/.code={\preto\kvtcb@beforebox{#1}},%
after app/.code={\appto\kvtcb@afterbox{#1}},%
after pre/.code={\preto\kvtcb@afterbox{#1}},%
%
before float app/.code={\appto\kvtcb@beforefloat{#1}},%
before float pre/.code={\preto\kvtcb@beforefloat{#1}},%
after float app/.code={\appto\kvtcb@afterfloat{#1}},%
after float pre/.code={\preto\kvtcb@afterfloat{#1}},%
%
overlay unbroken app/.code={\appto\tcb@overlay@unbroken{#1}},%
overlay unbroken pre/.code={\preto\tcb@overlay@unbroken{#1}},%
overlay first app/.code={\appto\tcb@overlay@first{#1}},%
overlay first pre/.code={\preto\tcb@overlay@first{#1}},%
overlay middle app/.code={\appto\tcb@overlay@middle{#1}},%
overlay middle pre/.code={\preto\tcb@overlay@middle{#1}},%
overlay last app/.code={\appto\tcb@overlay@last{#1}},%
overlay last pre/.code={\preto\tcb@overlay@last{#1}},%
%
overlay app/.style={overlay unbroken app={#1},overlay first app={#1},overlay middle app={#1},overlay last app={#1}},%
overlay pre/.style={overlay unbroken pre={#1},overlay first pre={#1},overlay middle pre={#1},overlay last pre={#1}},%
overlay broken app/.style={overlay first app={#1},overlay middle app={#1},overlay last app={#1}},%
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}},%
overlay first and middle app/.style={overlay first app={#1},overlay middle app={#1}},%
overlay first and middle pre/.style={overlay first pre={#1},overlay middle pre={#1}},%
%
% skins:
frame code app/.code={\appto\tcb@frame@code{#1}},%
frame code pre/.code={\preto\tcb@frame@code{#1}},%
interior titled code app/.code={\appto\tcb@interiortitled@code{#1}},%
interior titled code pre/.code={\preto\tcb@interiortitled@code{#1}},%
interior code app/.code={\appto\tcb@interior@code{#1}},%
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@title@code{#1}},%
title code pre/.code={\preto\tcb@title@code{#1}},%
%
extras unbroken pre/.code={\preto\tcb@extras@unbroken{\tcbset{#1}}},%
extras first pre/.code={\preto\tcb@extras@first{\tcbset{#1}}},%
extras middle pre/.code={\preto\tcb@extras@middle{\tcbset{#1}}},%
extras last pre/.code={\preto\tcb@extras@last{\tcbset{#1}}},%
extras pre/.style={extras unbroken pre={#1},extras first pre={#1},extras middle pre={#1},extras last pre={#1}},%
extras broken pre/.style={extras first pre={#1},extras middle pre={#1},extras last pre={#1}},%
extras unbroken and first pre/.style={extras unbroken pre={#1},extras first pre={#1}},%
extras unbroken and last pre/.style={extras unbroken pre={#1},extras last pre={#1}},%
extras middle and last pre/.style={extras middle pre={#1},extras last pre={#1}},%
extras first and middle pre/.style={extras first pre={#1},extras middle pre={#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 boxed title pre/.code={\preto\tcb@underlay@boxedtitle{#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}},%
underlay first and middle pre/.style={underlay first pre={#1},underlay middle 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}},%
finish first and middle pre/.style={finish first pre={#1},finish middle pre={#1}},%
%
watermark@overlay app/.style={overlay app={\tcb@drawspec@watermark{#1}}},
watermark@overlay pre/.style={overlay pre={\tcb@drawspec@watermark{#1}}},
watermark@overlay@on app/.style n args={2}{overlay #1 app={\tcb@drawspec@watermark{#2}}},
watermark@overlay@on pre/.style n args={2}{overlay #1 pred={\tcb@drawspec@watermark{#2}}},
%
watermark tikz app/.style={watermark@overlay app={fill@picture={#1}}},
watermark tikz pre/.style={watermark@overlay pre={fill@picture={#1}}},
watermark tikz app on/.style args={#1 is #2}{watermark@overlay@on app={#1}{fill@picture={#2}}},
watermark tikz pre on/.style args={#1 is #2}{watermark@overlay@on pre={#1}{fill@picture={#2}}},
watermark graphics app/.style={watermark@overlay app={fill@image={#1}}},
watermark graphics pre/.style={watermark@overlay pre={fill@image={#1}}},
watermark graphics app on/.style args={#1 is #2}{watermark@overlay@on app={#1}{fill@image={#2}}},
watermark graphics pre on/.style args={#1 is #2}{watermark@overlay@on pre={#1}{fill@image={#2}}},
watermark text app/.style={watermark@overlay app={fill@picture={\node[inner sep=0pt,align=flush center]{#1};}}},
watermark text pre/.style={watermark@overlay pre={fill@picture={\node[inner sep=0pt,align=flush center]{#1};}}},
watermark text app on/.style args={#1 is #2}{watermark@overlay@on app={#1}{fill@picture={\node[inner sep=0pt,align=flush center]{#2};}}},
watermark text pre on/.style args={#1 is #2}{watermark@overlay@on pre={#1}{fill@picture={\node[inner sep=0pt,align=flush center]{#2};}}},
%
minted options app/.code={\appto\kvtcb@minted@options{,#1}},
minted options pre/.code={\preto\kvtcb@minted@options{#1,}},
listing options app/.code={\appto\kvtcb@listingoptions{,#1}},
listing options pre/.code={\preto\kvtcb@listingoptions{#1,}},
}
\ExplSyntaxOn
\tcbset {
__environment-app / .style~n~args = { 3 }
{
before~#1~app = { \begin{#2} #3 },
after~#1~pre = { \end{#2} }
},
environment~upper~app / .value~required,
environment~lower~app / .value~required,
environment~title~app / .value~required,
environment~upper~app / .style = { __environment-app = {upper}{#1}{ } },
environment~lower~app / .style = { __environment-app = {lower}{#1}{ } },
environment~title~app / .style = { __environment-app = {title}{#1}{ } },
environment~upper~args~app / .style~n~args = { 2 }{ __environment-app = {upper}{#1}{#2} },
environment~lower~args~app / .style~n~args = { 2 }{ __environment-app = {lower}{#1}{#2} },
environment~title~args~app / .style~n~args = { 2 }{ __environment-app = {title}{#1}{#2} },
__environment-pre / .style~n~args = { 3 }
{
before~#1~pre = { \begin{#2} #3 },
after~#1~app = { \end{#2} }
},
environment~upper~pre / .value~required,
environment~lower~pre / .value~required,
environment~title~pre / .value~required,
environment~upper~pre / .style = { __environment-pre = {upper}{#1}{ } },
environment~lower~pre / .style = { __environment-pre = {lower}{#1}{ } },
environment~title~pre / .style = { __environment-pre = {title}{#1}{ } },
environment~upper~args~pre / .style~n~args = { 2 }{ __environment-pre = {upper}{#1}{#2} },
environment~lower~args~pre / .style~n~args = { 2 }{ __environment-pre = {lower}{#1}{#2} },
environment~title~args~pre / .style~n~args = { 2 }{ __environment-pre = {title}{#1}{#2} },
}
\ExplSyntaxOff
|