1
2
3
4
5
6
7
8
9
10
11
12
13
14\registerctxluafile{colorun}{}
15
16\unprotect
17
18
19
20
21
22
23\unexpanded\gdef\showcolorbar[#1]
24 {\backgroundline[#1]{\strut\enspace\color[white]{white}\enspace\color[black]{black}\enspace}}
25
26\unexpanded\gdef\showcolor {\dosingleempty\colo_basics_show}
27\unexpanded\gdef\showcolorset {\dosingleempty\colo_basics_show_set}
28\unexpanded\gdef\showcolorcomponents{\dosingleempty\colo_basics_show_components}
29
30\gdef\colo_basics_show_set [#1]{\ctxcommand{showcolorset("#1")}}
31\gdef\colo_basics_show_components[#1]{\ctxcommand{showcolorcomponents("#1")}}
32
33\gdef\colo_basics_show[#1]
34 {\usecolors [#1]
35 \showcolorset[#1]}
36
37
38
39
40
41
42
43
44\unexpanded\gdef\showpalet
45 {\dodoubleargument\colo_show_palet}
46
47\gdef\colo_show_palet[#1][#2]
48 {\doifelsecolorpalet{#1}
49 {\doifelseinset\v!vertical{#2} \colo_palets_show_vertical \colo_palets_show_horizontal {#1}{#2}}
50 {}}
51
52\gdef\colo_palets_show_vertical#1#2
53 {\begingroup
54 \forgetall
55 \setlocalhsize
56 \hsize\localhsize
57 \offinterlineskip
58 \setuppalet[#1]
59 \tabskip\zeropoint
60 \def\colo_palets_show_palet##1
61 {\doifelseinset\v!number{#2}{##1\hskip.5\emwidth}{}
62 \aligntab
63 \color [##1]{\vrule\s!width3\emwidth\s!height\strutht\s!depth\strutdp}
64 \graycolor[##1]{\vrule\s!width3\emwidth\s!height\strutht\s!depth\strutdp}
65 \aligntab
66 \doifinset\v!value{#2}{\hskip.5\emwidth\colorvalue{##1}}
67 \crcr}
68 \halign
69 {\hss\alignmark\alignmark\aligntab\hss\alignmark\alignmark\hss\aligntab\alignmark\alignmark\cr
70 \aligntab\doifinset\v!name{#2}{\strut#1}\aligntab\cr
71 \colo_palets_process[#1]\colo_palets_show_palet\crcr}
72 \endgroup}
73
74\gdef\colo_palets_show_horizontal#1#2
75 {\vbox
76 {\forgetall
77 \setlocalhsize
78 \hsize\localhsize
79 \offinterlineskip
80 \setuppalet[#1]
81 \tabskip\zeropoint
82 \scratchwidth\zeropoint
83 \doifinset\v!number{#2}
84 {\def\colo_palets_show_palet##1
85 {\setbox\scratchbox\hbox{##1}
86 \ifdim\scratchwidth<\wd\scratchbox
87 \scratchwidth\wd\scratchbox
88 \fi}
89 \colo_palets_process[#1]\colo_palets_show_palet}
90 \advance\scratchwidth\emwidth
91 \ifdim\scratchwidth<5\emwidth
92 \scratchwidth5\emwidth
93 \fi
94 \halign
95 {\alignmark\alignmark\aligntab\aligntab\hbox to \scratchwidth{\hss\alignmark\alignmark\hss}\cr
96 \doifinset\v!number{#2}
97 {\def\colo_palets_show_palet##1{\aligntab\strut##1}
98 \colo_palets_process[#1]\colo_palets_show_palet}\cr
99 \doifinset\v!name{#2}{#1\hskip.5\emwidth}
100 \def\colo_palets_show_palet##1
101 {\aligntab\strut\color[##1]{\vrule\s!width\scratchwidth\s!height\strutht\s!depth\zeropoint}}
102 \colo_palets_process[#1]\colo_palets_show_palet\crcr
103 \noalign{\vskip\strutdepth}
104 \def\colo_palets_show_palet##1
105 {\aligntab\graycolor[##1]{\vrule\s!width\scratchwidth\s!height\zeropoint\s!depth\strutdp}}
106 \colo_palets_process[#1]\colo_palets_show_palet\crcr
107 \doifinset\v!value{#2}
108 {\def\colo_palets_show_palet##1
109 {\aligntab\vbox
110 {\hsize\scratchwidth
111 \vskip.25\exheight
112 \everypar{\strut}
113 \veryraggedcenter
114 \let\colorformatseparator\endgraf
115 \colorvalue{##1}}}
116 \colo_palets_process[#1]\colo_palets_show_palet}
117 \crcr}}}
118
119\gdef\colo_palets_process[#1]
120 {\getpaletlist[#1]
121 \normalexpanded{\globalprocesscommalist[\paletlist]}}
122
123\unexpanded\gdef\comparepalet
124 {\dosingleargument\colo_palets_compare}
125
126\gdef\colo_palets_compare[#1]
127 {\doifelsecolorpalet{#1}
128 {\hbox
129 {\colo_palets_compare_indeed\color{#1}
130 \quad
131 \colo_palets_compare_indeed\graycolor{#1}}}
132 {}}
133
134\gdef\colo_palets_compare_indeed#1#2
135 {\vbox
136 {\forgetall
137 \setlocalhsize
138 \hsize\localhsize
139 \offinterlineskip
140 \setuppalet[#2]
141 \getpaletsize[#2]
142 \getpaletlist[#2]
143 \scratchwidth2\emwidth\relax
144 \hsize\paletsize\scratchwidth
145 \def\colo_palets_compare##1
146 {\hbox
147 {\setbox0\hbox
148 {#1[##1]{\vrule\s!width\hsize\s!height3ex}}
149 \wd0\zeropoint
150 \box0
151 \hbox to \hsize
152 {\def\colo_palets_compare####1
153 {\hbox to \scratchwidth
154 {\hss#1[####1]{\vrule\s!width.5\scratchwidth\s!height2.25\exheight\s!depth.75\exheight}\hss}}
155 \processcommacommand[\paletlist]\colo_palets_compare}}
156 \endgraf}
157 \processcommacommand[\paletlist]\colo_palets_compare}}
158
159
160
161\unexpanded\gdef\showcolorgroup
162 {\dodoubleargument\colo_groups_show}
163
164\gdef\colo_groups_show[#1][#2]
165 {\doifcolor{#1:1}
166 {\doifelseinset\v!vertical{#2}
167 \colo_groups_show_vertical
168 \colo_groups_show_horizontal
169 [#1][#2]}}
170
171\gdef\colo_groups_show_horizontal[#1][#2]
172 {\vbox
173 {\forgetall
174 \setlocalhsize
175 \hsize\localhsize
176 \offinterlineskip
177 \setuppalet
178 \tabskip\zeropoint
179 \def\colorformatseparator{\strut\cr}
180 \def\colo_groups_show_group##1
181 {\doifcolor{#1:##1}{\vbox
182 {\halign
183 {\hss\alignmark\alignmark\alignmark\alignmark\hss\cr
184 \doifinset\v!number{#2}{\strut##1}\cr
185 \color [#1:##1]{\vrule\s!width4\emwidth\s!height\strutht \s!depth\zeropoint}\cr
186 \graycolor[#1:##1]{\vrule\s!width4\emwidth\s!height\zeropoint\s!depth\strutdp }\cr
187 \doifinset\v!value{#2}{\colorvalue{#1:##1}\strut}\crcr}}}}
188 \hbox
189 {\doifinset\v!name{#2}
190 {\strut
191 \doifelseinset\v!value{#2}
192 {\raise3\lineheight\hbox{#1\hskip.5\emwidth}}
193 {#1}
194 \hskip.5\emwidth}
195 \colo_groups_show_group1\colo_groups_show_group2\colo_groups_show_group3\colo_groups_show_group4
196 \colo_groups_show_group5\colo_groups_show_group6\colo_groups_show_group7\colo_groups_show_group8}}}
197
198\gdef\colo_groups_show_vertical[#1][#2]
199 {\vbox
200 {\forgetall
201 \setlocalhsize
202 \hsize\localhsize
203 \offinterlineskip
204 \setuppalet
205 \tabskip\zeropoint
206 \def\colo_groups_show_group##1
207 {\doifcolor{#1:##1}
208 {\doifinset\v!number{#2}
209 {##1\hskip.5\emwidth}
210 \aligntab
211 \color [#1:##1]{\vrule\s!width2.5\emwidth\s!height\strutht\s!depth\strutdp}
212 \graycolor[#1:##1]{\vrule\s!width2.5\emwidth\s!height\strutht\s!depth\strutdp}
213 \aligntab
214 \doifinset\v!value{#2}{\hskip.5\emwidth\colorvalue{#1:##1}}
215 \crcr}}
216 \halign
217 {\hss\alignmark\alignmark\aligntab\hss\alignmark\alignmark\hss\aligntab\alignmark\alignmark\hss\cr
218 \aligntab\doifinset\v!name{#2}{\strut#1}\aligntab\crcr
219 \colo_groups_show_group1\colo_groups_show_group2\colo_groups_show_group3\colo_groups_show_group4
220 \colo_groups_show_group5\colo_groups_show_group6\colo_groups_show_group7\colo_groups_show_group8}}}
221
222\unexpanded\gdef\comparecolorgroup
223 {\dosingleargument\colo_groups_compare}
224
225\gdef\colo_groups_compare[#1]
226 {\doifcolor{#1:1}
227 {\hbox
228 {\colo_groups_compare_indeed\color [#1]\quad
229 \colo_groups_compare_indeed\graycolor[#1]}}}
230
231\gdef\colo_groups_compare_indeed#1[#2]
232 {\vbox
233 {\forgetall
234 \setlocalhsize
235 \hsize\localhsize
236 \scratchcounter\zerocount
237 \dorecurse{15}{\doifcolor{#2:\recurselevel}{\advance\scratchcounter\plusone}}
238 \scratchwidth2\emwidth\relax
239 \hsize\scratchcounter\scratchwidth
240 \dorecurse\scratchcounter{\colo_groups_compare_step{#1}{#2}\recurselevel}}}
241
242\def\colo_groups_compare_step#1#2#3
243 {\hbox to \hsize
244 {\setbox\scratchbox\hbox
245 {#1[#2:#3]{\vrule\s!width\hsize\s!height3\exheight}}
246 \wd\scratchbox\zeropoint
247 \box\scratchbox
248 \hbox to \hsize
249 {\hss
250 \dorecurse\scratchcounter
251 {#1[#2:\recurselevel]{\vrule\s!width.5\scratchwidth\s!height2.25\exheight\s!depth.75\exheight}
252 \hss}}}
253 \endgraf}
254
255\protect \endinput
256 |