summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/tex4ht/tcolorbox.4ht
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