blob: bb260533ab7ffb398c081084bef4868bfd6efd3b (
plain)
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
|
% tcolorbox.4ht (2024-01-15-13:12), generated from tex4ht-4ht.tex
% Copyright 2020-2024 TeX Users Group
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c 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.3c or later is part of all distributions
% of LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work
% is the TeX4ht Project <http://tug.org/tex4ht>.
%
% If you modify this program, changing the
% version identification would be appreciated.
\immediate\write-1{version 2024-01-15-13:12}
% use custom counter that increments for every \tcolorbox
\newcounter{:tcbcolcount}
\def\:tempa{%
\stepcounter{:tcbcolcount}%
% save text and background colors for use in CSS
\get:xcolorcss{tcbcolbacktitle}\:tcbcolbacktitle%
\get:xcolorcss{tcbcoltitle}\:tcbcoltitle%
\get:xcolorcss{tcbcolback}\:tcbcolback%
\get:xcolorcss{tcbcolframe}\:tcbcolframe%
\get:xcolorcss{tcbcolupper}\:tcbcolupper%
% make unique ID for this box
\gdef\:tcbcolid{tcolobox-\arabic{:tcbcolcount}}
% Open box
\a:tcolorbox%
% set label if it exists
\ifdefined\tcolorbox:label:key%
\let\@currentlabel\tcolorbox:currentlabel% at this moment, \@currentlabel has wrong value
\o:tcb@set@label:{\tcolorbox:label:key}%
\AnchorLabel% save cross-ref destination
\global\let\tcolorbox:label:key\undefined%
\fi%
% open title
\b:tcolorbox%
\kvtcb@before@title\kvtcb@title\kvtcb@after@title%
% close title and open main box
\c:tcolorbox%
\box\tcb@upperbox%
% the paragraph opened in the upper box can be unclosed
% but I cannot find an example where it matters. \RecallEndP caused issues in the following sample:
% https://github.com/michal-h21/make4ht/issues/142#issuecomment-1891507567
% \RecallEndP
% deal with lower box, if it is set
\iftcb@hasLower%
\a:tcolorlowerbox%
\box\tcb@lowerbox%
\b:tcolorlowerbox%
\fi%
% We need to close box in \tcb@endboxanddraw
}
\HLet\tcb@drawcolorbox\:tempa
% overwrite other versions of box drawing macros
\HLet\tcb@drawcolorbox@standalone\:tempa
\HLet\tcb@drawcolorbox@breakable\:tempa
% save the state of paragraph before opening the content box
\pend:def\tcb@set@@upper@and@lower{\SaveEndP}
% we need to close tcolorbox environment here,
% in the box. otherwise, last paragraph end
% would be ignored and we would get invalid XML
\def\:tempb{\d:tcolorbox\o:tcb@endboxanddraw:}
\HLet\tcb@endboxanddraw\:tempb
% tcolorbox supports libraries, but it loads them
% in a way that doesn't register them for the use
% with .4ht files.
% this fix is for tcblistingscore.code.tex
\NewConfigure{tcblisting}{1}
\def\:tempb{\o:endtcblisting:\d:tcolorbox\a:tcblisting}
\HLet\endtcblisting\:tempb
% this code prevents emptying of the box title when
% some Tcolorbox options are used
\def\:tempb{}
\HLet\tcb@detach@title@code\:tempb
% require end of paragraph before Tcolorbox
\long\def\:tempb[#1]{\EndP\o:tcb@@icolorbox:[#1]}
\HLet\tcb@@icolorbox\:tempb
\NewConfigure{tcolorbox}{4}
\NewConfigure{tcolorlowerbox}{2}
% we need to save current label for a later use
\def\:tempa#1{%
\xdef\tcolorbox:label:key{#1}%
\global\let\tcolorbox:currentlabel\@currentlabel%
}
\HLet\tcb@set@label\:tempa
\pend:def\tcb@minipage{\SaveEndP}
\pend:def\tcb@minipage@top{\SaveEndP}
\pend:def\tcb@minipage@bottom{\SaveEndP}
\pend:def\tcb@minipage@center{\SaveEndP}
\AfterEndPreamble{%
% fix \nameref support
\def\:tempa#1{%
\gdef\NR:Title{\a:newlabel{#1}}%
\o:tcb@gettitle:{#1}%
}%
\HLet\tcb@gettitle\:tempa
}
\Hinput{tcolorbox}
\endinput
|