Hi again,
In tex/texmf-context/tex/context/base/mkxl/mlib-svg.lmt the following regex
appears a few times (line 1502, 1556, and 1570):
gmatch(VAR,"%s*([^:]+):%s*([^;]+);?")
It may be helpful to first normalize the string by appending a semicolon to
the end, allowing for:
for w in (VAR .. ";"):gmatch("([^;]*);") do ...
Splitting 'w' afterwards on the colon within key:value pairs would still be
necessary, so maybe that approach is a wash.
Aside, when I made changes to the file, I couldn't get either a report() or
a print() statement to show up in the output, even when running with
--debug. Any hints on how to sprinkle debug info into the code? Or was I
barking up the wrong source file?
Cheers!
On Sun, May 8, 2022 at 1:33 AM Thangalin
Hey hey,
The following produces a filled square, rather than an empty one:
\startbuffer[svg] <svg> <rect width="100" height="100" style="stroke:rgb(0,0,0);;fill:none" /> </svg> \stopbuffer
\starttext \placefigure{}{\includesvgbuffer[svg][conversion=mp]} \stoptext
Remove the extra semicolon to get the expected result:
<svg> <rect width="100" height="100" style="stroke:rgb(0,0,0);fill:none" /> </svg>
It appears that a style immediately following two semicolons is ignored.
The SVG was generated using the following R code:
svg("filename.svg"); plot(rnorm(200)); dev.off()
Arguably, R's SVG routines could be a bit tighter. Can the MP SVG parser code be relaxed to skip "empty" semicolons?
$ context --version mtx-context | current version: 2022.05.02 16:19
Much appreciated.