1
2
3
4
5
6
7
8
9
10
11
12
13
14\registerctxluafile{metatex}{}
15
16\unprotect
17
18
19
20
21\installcorenamespace{graphictextext}
22\installcorenamespace{graphictexdepth}
23\installcorenamespace{graphictexarguments}
24
25\permanent\protected\def\startTeXtexts#1\stopTeXtexts
26 {#1}
27
28\permanent\protected\lettonothing\stopTeXtexts
29
30\permanent\tolerant\protected\def\TeXtext[#1]#:#2#3
31 {\xdefcsname\??graphictextext#2\endcsname{\meta_textext_indeed{#1}{#3}}}
32
33\protected\def\meta_textext_indeed#1#2
34 {\begingroup
35 \setbox\nextbox\hbox{#2}
36 \ifcsname\??graphictexdepth#1\endcsname
37 \lastnamedcs
38 \else
39 \syst_boxes_lower_nextbox_dp
40 \fi
41 \box\nextbox
42 \endgroup}
43
44\permanent\def\getTeXtext#1
45 {\begincsname\??graphictextext#1\endcsname}
46
47\letcsname\??graphictexdepth d\endcsname\syst_boxes_lower_nextbox_dp
48\letcsname\??graphictexdepth \s!depth\endcsname\syst_boxes_lower_nextbox_dp
49\letcsname\??graphictexdepth n\endcsname\donothing
50\letcsname\??graphictexdepth\s!nodepth\endcsname\donothing
51
52
53
54\permanent\protected\def\definetextext[#1]
55 {\tolerant\defcsname\??graphictexarguments#1\endcsname}
56
57\permanent\tolerant\def\sometxt[#1]#*[#2]
58 {\ifarguments
59 \expandafter\meta_some_txt_a
60 \or
61 \expandafter\meta_some_txt_b
62 \or
63 \expandafter\meta_some_txt_c
64 \or
65 \fi{#1}{#2}}
66
67\def\meta_some_txt_a#1#2#3{textext.drt("\clf_metapostescaped{#3}")}
68\def\meta_some_txt_b#1#2#3{textext.drt("\mpsometxt{#1}{\clf_metapostescaped{#3}}")}
69\def\meta_some_txt_c#1#2#3{textext.drt("\mpsometxt{#1}[#2]{\clf_metapostescaped{#3}}")}
70
71\permanent\protected\def\mpsometxt#1
72 {\begincsname\??graphictexarguments#1\endcsname}
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\permanent\protected\def\MPexponent #1#2{\mathematics{#1\times10{#2}}}
131\permanent\protected\def\MPformatted #1#2{\clf_metapostformatted{#1}{#2}}
132\permanent\protected\def\MPgraphformat#1#2{\clf_metapostgraphformat{#1}{#2}}
133
134
135
136\permanent\protected\def\MPLIBoutlinetext#1#2#3
137 {\begingroup
138 \setbox\scratchbox\hbox{#3}
139 \clf_MPLIBconvertoutlinetext\numexpr#1\relax{#2}\scratchbox
140 \endgroup}
141
142
143
144
145\definefontsynonym[serifnormalnormal] [\s!Serif]
146\definefontsynonym[serifnormalitalic] [\s!SerifItalic]
147\definefontsynonym[serifnormaloblique][\s!SerifSlanted]
148\definefontsynonym[serifboldnormal] [\s!SerifBold]
149\definefontsynonym[serifbolditalic] [\s!SerifBoldItalic]
150\definefontsynonym[serifboldoblique] [\s!SerifBoldSlanted]
151
152\definefontsynonym[sansnormalnormal] [\s!Sans]
153\definefontsynonym[sansnormalitalic] [\s!SansItalic]
154\definefontsynonym[sansnormaloblique] [\s!SansSlanted]
155\definefontsynonym[sansboldnormal] [\s!SansBold]
156\definefontsynonym[sansbolditalic] [\s!SansBoldItalic]
157\definefontsynonym[sansboldoblique] [\s!SansBoldSlanted]
158
159\definefontsynonym[sansserifnormalnormal] [\s!Sans]
160\definefontsynonym[sansserifnormalitalic] [\s!SansItalic]
161\definefontsynonym[sansserifnormaloblique] [\s!SansSlanted]
162\definefontsynonym[sansserifboldnormal] [\s!SansBold]
163\definefontsynonym[sansserifbolditalic] [\s!SansBoldItalic]
164\definefontsynonym[sansserifboldoblique] [\s!SansBoldSlanted]
165
166\definefontsynonym[mononormalnormal] [\s!Mono]
167\definefontsynonym[mononormalitalic] [\s!MonoItalic]
168\definefontsynonym[mononormaloblique] [\s!MonoSlanted]
169\definefontsynonym[monoboldnormal] [\s!MonoBold]
170\definefontsynonym[monobolditalic] [\s!MonoBoldItalic]
171\definefontsynonym[monoboldoblique] [\s!MonoBoldSlanted]
172
173\installcorenamespace {svgfamily}
174
175\defcsname\??svgfamily \endcsname{serif}
176\defcsname\??svgfamily serif\endcsname{serif}
177\defcsname\??svgfamily sans\endcsname{sans}
178\defcsname\??svgfamily mono\endcsname{mono}
179
180\definelayer[svgmps][\c!method=\v!fit]
181
182\permanent\protected\def\svgembeddedfigure#1
183 {\clf_embedimagefromstore {svg} #1 true\relax}
184
185
186
187\permanent\protected\def\svghashed#1
188 {\clf_svghashed#1\relax}
189
190\permanent\protected\def\svg_normal_pcode#1#2#3
191 {\glyph xoffset #1\onebasepoint yoffset #2\onebasepoint #3\relax}
192
193\permanent\protected\def\svg_normal_pchar#1#2#3
194 {\glyph xoffset #1\onebasepoint yoffset #2\onebasepoint #3\relax}
195
196\permanent\protected\def\svg_normal_pspace#1#2
197 {\space}
198
199\permanent\protected\def\svg_normal_space
200 {\space}
201
202\permanent\protected\def\svg_normal_code#1
203 {\char#1\relax}
204
205\permanent\protected\def\svg_normal_char#1
206 {#1\relax}
207
208\permanent\protected\def\svg_normal_start
209 {\resetlayer[svgmps]
210 \setlayer[svgmps]\bgroup}
211
212\permanent\protected\def\svg_normal_stop
213 {\egroup
214 \flushlayer[svgmps]}
215
216\permanent\protected\def\svg_normal_color_c#1#2#3
217 {\colored[r=#1,g=#2,b=#3]}
218
219\permanent\protected\def\svg_normal_color_o#1
220 {\colored[a=1,t=#1]}
221
222\permanent\protected\def\svg_normal_color_b#1#2#3#4
223 {\colored[r=#1,g=#2,b=#3,a=1,t=#4]}
224
225\permanent\protected\def\svg_normal_set#1#2#3
226 {\setlayer[svgmps]{\hbox xoffset #1\onebasepoint yoffset #2\onebasepoint to 10sp{#3}}}
227
228\permanent\protected\def\svg_normal_font#1#2#3
229 {\hbox\bgroup
230 \iftok{#2}\emptytoks\else
231 \edef\p_font{\ifcsname\??svgfamily#1\endcsname\lastnamedcs\else#1\fi#2#3}
232 \ifcsname svg:\p_font\endcsname
233 \lastnamedcs
234 \else
235 \predefinefont[svg:\p_font][\s!spec:\p_font*\s!default\space @ 10bp]
236 \csname svg:\p_font\endcsname
237 \fi
238 \fi
239 \let\next}
240
241
242
243\permanent\protected\def\svg_normal_size#1
244 {\hbox\bgroup
245 \glyphscale\numericscale#1\relax
246 \let\next}
247
248
249
250\permanent\protected\def\svg_traced_pcode#1#2#3
251 {\writestatus{SVG TEXT}{....[poscode #1 #2 \Uchar #3]}
252 \svg_normal_pcode{#1}{#2}{#3}}
253
254\permanent\protected\def\svg_traced_pchar#1#2#3
255 {\writestatus{SVG TEXT}{....[poschar #1 #2 #3]}
256 \svg_normal_pchar{#1}{#2}{#3}}
257
258\permanent\protected\def\svg_traced_pspace#1#2
259 {\writestatus{SVG TEXT}{....[posspace #1 #2]}
260 \svg_normal_pspace{#1}{#2}}
261
262\permanent\protected\def\svg_traced_code#1
263 {\writestatus{SVG TEXT}{....[char \Uchar #1]}
264 \svg_normal_code{#1}}
265
266\permanent\protected\def\svg_traced_char#1
267 {\writestatus{SVG TEXT}{....[char #1]}
268 \svg_normal_char{#1}}
269
270\permanent\protected\def\svg_traced_space
271 {\writestatus{SVG TEXT}{....[space]}
272 \svg_normal_space}
273
274\permanent\protected\def\svg_traced_start
275 {\writestatus{SVG TEXT}{[start layer]}
276 \svg_normal_start}
277
278\permanent\protected\def\svg_traced_stop
279 {\svg_normal_stop
280 \writestatus{SVG TEXT}{[stop layer]}}
281
282\permanent\protected\def\svg_traced_color_c#1#2#3#4
283 {\writestatus{SVG TEXT}{..[start color #1 #2 #3]}
284 \svg_normal_color_c{#1}{#2}{#3}{#4}
285 \writestatus{SVG TEXT}{..[stop color]}}
286
287\permanent\protected\def\svg_traced_color_o#1#2
288 {\writestatus{SVG TEXT}{..[start opace #1]}
289 \svg_normal_color_o{#1}{#2}
290 \writestatus{SVG TEXT}{..[stop opace]}}
291
292\permanent\protected\def\svg_traced_color_b#1#2#3#4#5
293 {\writestatus{SVG TEXT}{..[start color #1 #2 #3 opace #4]}
294 \svg_normal_color_b{#1}{#2}{#3}{#4}{#5}
295 \writestatus{SVG TEXT}{..[stop color opace]}}
296
297\permanent\protected\def\svg_traced_set#1#2#3
298 {\writestatus{SVG TEXT}{...[start set layer #1 #2]}
299 \svg_normal_set{#1}{#2}{#3}
300 \writestatus{SVG TEXT}{...[stop set setlayer]}}
301
302\permanent\protected\def\svg_traced_font#1#2#3#4
303 {\writestatus{SVG TEXT}{.[start font #1 #2 #3]}
304 \svg_normal_font{#1}{#2}{#3}{#4}
305 \writestatus{SVG TEXT}{.[stop font]}}
306
307\permanent\protected\def\svg_traced_size#1#2
308 {\writestatus{SVG TEXT}{.[start size #1]}
309 \svg_normal_size{#1}{#2}
310 \writestatus{SVG TEXT}{.[stop size]}}
311
312\permanent\protected\def\svg_normal_text
313 {\enforced\let\svgpcode \svg_normal_pcode
314 \enforced\let\svgpchar \svg_normal_pchar
315 \enforced\let\svgpspace\svg_normal_pspace
316 \enforced\let\svgcode \svg_normal_code
317 \enforced\let\svgchar \svg_normal_char
318 \enforced\let\svgspace \svg_normal_space
319 \enforced\let\svgstart \svg_normal_start
320 \enforced\let\svgstop \svg_normal_stop
321 \enforced\let\svgcolorc\svg_normal_color_c
322 \enforced\let\svgcoloro\svg_normal_color_o
323 \enforced\let\svgcolorb\svg_normal_color_b
324 \enforced\let\svgset \svg_normal_set
325 \enforced\let\svgfont \svg_normal_font
326 \enforced\let\svgsize \svg_normal_size}
327
328\permanent\protected\def\svg_traced_text
329 {\enforced\let\svgpcode \svg_traced_pcode
330 \enforced\let\svgpchar \svg_traced_pchar
331 \enforced\let\svgpspace\svg_traced_pspace
332 \enforced\let\svgcode \svg_traced_code
333 \enforced\let\svgchar \svg_traced_char
334 \enforced\let\svgspace \svg_traced_space
335 \enforced\let\svgstart \svg_traced_start
336 \enforced\let\svgstop \svg_traced_stop
337 \enforced\let\svgcolorc\svg_traced_color_c
338 \enforced\let\svgcoloro\svg_traced_color_o
339 \enforced\let\svgcolorb\svg_traced_color_b
340 \enforced\let\svgset \svg_traced_set
341 \enforced\let\svgfont \svg_traced_font
342 \enforced\let\svgsize \svg_traced_size}
343
344\installtextracker
345 {svg.text}
346 {\svg_traced_text}
347 {\svg_normal_text}
348
349\svg_normal_text
350
351\protect \endinput
352 |