~reviczky/context/mirror

« back to all changes in this revision

Viewing changes to tex/context/base/mkxl/meta-tex.mkxl

  • Committer: Context Git Mirror Bot
  • Author(s): Hans Hagen
  • Date: 2021-03-17 17:50:41 UTC
  • Revision ID: git-v1:94a53123a12ab97fcf453b5893941128e8ed4d44
2021-03-17 17:45:00

Show diffs side-by-side

added added

removed removed

Lines of Context:
166
166
 
167
167
\installcorenamespace {svgfamily}
168
168
 
169
 
\setvalue{\??svgfamily      }{serif}
170
 
\setvalue{\??svgfamily serif}{serif}
171
 
\setvalue{\??svgfamily  sans}{sans}
172
 
\setvalue{\??svgfamily  mono}{mono}
173
 
 
174
 
%D This can't change because otherwise \type {\scale[width=4cm]{graphic}} fails.
175
 
 
176
 
\permanent\protected\def\svgscaled#1%
177
 
  {\fastsxsy{#1}{#1}\svgnormal}
178
 
 
179
 
\permanent\protected\def\svgnormal#1#2#3#4% family weight style text
180
 
  {\bgroup
181
 
   \edef\p_family{#1}%
182
 
   \ifempty\p_family\else
183
 
      \edef\p_font{\ifcsname\??svgfamily#1\endcsname\lastnamedcs\else#1\fi-#2-#3}%
184
 
      \predefinedfont[\s!spec:\p_font*\s!default\space @ 10bp]%
185
 
   \fi
186
 
   #4%
187
 
   \egroup}
188
 
 
189
 
\permanent\protected\def\svgcolored#1#2#3#4% r g b text
190
 
  {\colored[r=#1,g=#2,b=#3]{#4}}
191
 
 
192
 
% \permanent\protected\def\svgplaced#1#2#3#4% dx dy width text
193
 
%   {\doifelsenothing{#3}%
194
 
%      {\hpack}%
195
 
%      {\hpack to #3}%
196
 
%      {\raise#2\onebasepoint\hbox{\kern#1\onebasepoint\relax#4}}}
197
 
 
198
 
\permanent\protected\def\svgplaced#1#2#3#4% dx dy width text
199
 
  {\doifelsenothing{#3}%
200
 
     {\hpack}%
201
 
     {\hpack to #3}%
202
 
     {\offsetbox[\c!y=#2]\hbox{\kern#1\relax#4}}}
203
 
 
204
 
\newdimen\grph_svg_scratchwidth % maybe \startsvgpos etc
205
 
 
206
 
\permanent\protected\def\svgposchar#1#2#3% dx dy char
207
 
  {\setbox\scratchbox\hpack\bgroup
208
 
     \raise#2\onebasepoint\hbox\bgroup
209
 
        \kern\dimexpr#1\onebasepoint-\grph_svg_scratchwidth\relax
210
 
        \char#3\relax
211
 
     \egroup
212
 
   \egroup
213
 
   \advance\grph_svg_scratchwidth\wd\scratchbox
214
 
   \box\scratchbox}
215
 
 
216
 
\permanent\protected\def\svgchar#1% char
 
169
\defcsname\??svgfamily      \endcsname{serif}
 
170
\defcsname\??svgfamily serif\endcsname{serif}
 
171
\defcsname\??svgfamily  sans\endcsname{sans}
 
172
\defcsname\??svgfamily  mono\endcsname{mono}
 
173
 
 
174
\definelayer[svgmps][\c!method=\v!fit]
 
175
 
 
176
\permanent\protected\def\svghashed#1%
 
177
  {\clf_svghashed#1\relax}
 
178
 
 
179
\permanent\protected\def\svg_normal_poscode#1#2#3%
 
180
  {\glyph xoffset #1\onebasepoint yoffset #2\onebasepoint #3\relax}
 
181
 
 
182
\permanent\protected\def\svg_normal_poschar#1#2#3%
 
183
  {\glyph xoffset #1\onebasepoint yoffset #2\onebasepoint `#3\relax}
 
184
 
 
185
\permanent\protected\def\svg_normal_posspace#1#2%
 
186
  {\space}
 
187
 
 
188
\permanent\protected\def\svg_normal_space#1%
 
189
  {\space}
 
190
 
 
191
\permanent\protected\def\svg_normal_code#1%
217
192
  {\char#1\relax}
218
193
 
219
 
\definelayer[svgmps][\c!method=\v!fit]
 
194
\permanent\protected\def\svg_normal_char#1%
 
195
  {#1\relax}
220
196
 
221
 
\permanent\protected\def\svgstartlayer
 
197
\permanent\protected\def\svg_normal_startlayer
222
198
  {\resetlayer[svgmps]%
223
199
   \setlayer[svgmps]\bgroup}
224
200
 
225
 
\permanent\protected\def\svgstoplayer
 
201
\permanent\protected\def\svg_normal_stoplayer
226
202
  {\egroup
227
203
   \flushlayer[svgmps]}
228
204
 
229
 
\permanent\protected\def\svgsetlayer#1#2%
230
 
  {\setlayer[svgmps][\c!x=#1\onebasepoint,\c!y=#2\onebasepoint]} % {#3}
231
 
 
232
 
\permanent\protected\def\svghashed#1%
233
 
  {\clf_svghashed#1\relax}
 
205
\permanent\protected\def\svg_normal_colored#1#2#3#4%
 
206
  {\colored[r=#1,g=#2,b=#3]{#4}}
 
207
 
 
208
\permanent\protected\def\svg_normal_setlayer#1#2#3%
 
209
  {\setlayer[svgmps]{\hbox xoffset #1\onebasepoint yoffset #2\onebasepoint to 10sp{#3}}}
 
210
 
 
211
\permanent\protected\def\svg_normal_scaled#1#2#3#4#5%
 
212
  {\hbox\bgroup
 
213
   \edef\p_family{#2}%
 
214
   \ifempty\p_family\else
 
215
      \edef\p_font{\ifcsname\??svgfamily#2\endcsname\lastnamedcs\else#2\fi-#3-#4}%
 
216
      \predefinedfont[\s!spec:\p_font*\s!default\space @ 10bp]%
 
217
   \fi
 
218
   \glyphscale\numericscale#1\relax % we need a period !
 
219
   #5%
 
220
   \egroup}
 
221
 
 
222
\permanent\protected\def\svg_traced_poscode#1#2#3%
 
223
  {\writestatus{SVG TEXT}{....[poscode #1 #2 \Uchar #3]}%
 
224
   \svg_normal_poscode{#1}{#2}{#3}}
 
225
 
 
226
\permanent\protected\def\svg_traced_poschar#1#2#3%
 
227
  {\writestatus{SVG TEXT}{....[poschar #1 #2 #3]}%
 
228
   \svg_normal_poschar{#1}{#2}{#3}}
 
229
 
 
230
\permanent\protected\def\svg_traced_posspace#1#2%
 
231
  {\writestatus{SVG TEXT}{....[posspace #1 #2]}%
 
232
   \svg_normal_posspace{#1}{#2}}
 
233
 
 
234
\permanent\protected\def\svg_traced_code#1%
 
235
  {\writestatus{SVG TEXT}{....[char \Uchar #1]}%
 
236
   \svg_normal_code{#1}}
 
237
 
 
238
\permanent\protected\def\svg_traced_char#1%
 
239
  {\writestatus{SVG TEXT}{....[char #1]}%
 
240
   \svg_normal_char{#1}}
 
241
 
 
242
\permanent\protected\def\svg_traced_space
 
243
  {\writestatus{SVG TEXT}{....[space]}%
 
244
   \svg_normal_space}
 
245
 
 
246
\permanent\protected\def\svg_traced_startlayer
 
247
  {\writestatus{SVG TEXT}{[start layer]}%
 
248
   \svg_normal_startlayer}
 
249
 
 
250
\permanent\protected\def\svg_traced_stoplayer
 
251
  {\svg_normal_stoplayer
 
252
   \writestatus{SVG TEXT}{[stop layer]}}
 
253
 
 
254
\permanent\protected\def\svg_traced_colored#1#2#3#4%
 
255
  {\writestatus{SVG TEXT}{.[start color #1 #2 #3]}%
 
256
   \svg_normal_colored{#1}{#2}{#3}{#4}%
 
257
   \writestatus{SVG TEXT}{.[stop color]}}
 
258
 
 
259
\permanent\protected\def\svg_traced_setlayer#1#2#3%
 
260
  {\writestatus{SVG TEXT}{...[start set layer #1 #2]}%
 
261
   \svg_normal_setlayer{#1}{#2}{#3}%
 
262
   \writestatus{SVG TEXT}{...[stop set setlayer]}}
 
263
 
 
264
\permanent\protected\def\svg_traced_scaled#1#2#3#4#5%
 
265
  {\writestatus{SVG TEXT}{..[start scaled font #1 #2 #3 #4]}%
 
266
   \svg_normal_scaled{#1}{#2}{#3}{#4}{#5}%
 
267
   \writestatus{SVG TEXT}{..[stop scaled font]}}
 
268
 
 
269
\permanent\protected\def\svg_normal_text
 
270
  {\let\svgposcode   \svg_normal_poscode
 
271
   \let\svgposchar   \svg_normal_poschar
 
272
   \let\svgposspace  \svg_normal_posspace
 
273
   \let\svgcode      \svg_normal_code
 
274
   \let\svgchar      \svg_normal_char
 
275
   \let\svgspace     \svg_normal_space
 
276
   \let\svgstartlayer\svg_normal_startlayer
 
277
   \let\svgstoplayer \svg_normal_stoplayer
 
278
   \let\svgcolored   \svg_normal_colored
 
279
   \let\svgsetlayer  \svg_normal_setlayer
 
280
   \let\svgscaled    \svg_normal_scaled}
 
281
 
 
282
\permanent\protected\def\svg_traced_text
 
283
  {\let\svgposcode   \svg_traced_poscode
 
284
   \let\svgposchar   \svg_traced_poschar
 
285
   \let\svgposspace  \svg_traced_posspace
 
286
   \let\svgcode      \svg_traced_code
 
287
   \let\svgchar      \svg_traced_char
 
288
   \let\svgspace     \svg_traced_space
 
289
   \let\svgstartlayer\svg_traced_startlayer
 
290
   \let\svgstoplayer \svg_traced_stoplayer
 
291
   \let\svgcolored   \svg_traced_colored
 
292
   \let\svgsetlayer  \svg_traced_setlayer
 
293
   \let\svgscaled    \svg_traced_scaled}
 
294
 
 
295
\installtextracker
 
296
   {svg.text}
 
297
   {\svg_traced_text}
 
298
   {\svg_normal_text}
 
299
 
 
300
\svg_normal_text
234
301
 
235
302
\protect \endinput