I was thinking it would be nice if I could export Mathematica expressions as svg, but I am having some issues. At first blush everything seems to work fine. This piece of code does produce a svg file:
res = Solve[x^2 + a x + 1 == 0, x]
Export["res.svg", res]
The problem with the svg file are the fonts. If I try to open the file in Adobe Illustrator I get this message:
SVGMathematica2Mono:
Font not found on the system; missing font has been substituted.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SVGCourier:
Font not found on the system; missing font has been substituted.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The end result looks like this: SVG issues
It looks bad in several other svg viewers as well. Is there some way to either embed the needed fonts in the svg file or convert the expression to a graphic and export it as such?
-
$\begingroup$ You could copy the fonts into a place where Illustrator can find them... $\endgroup$cormullion– cormullion2013年02月02日 22:22:42 +00:00Commented Feb 2, 2013 at 22:22
-
$\begingroup$ My hope is to be able to distribute the svg files to other people. $\endgroup$Mr Alpha– Mr Alpha2013年02月02日 22:41:42 +00:00Commented Feb 2, 2013 at 22:41
1 Answer 1
Yes, you can indeed convert the output to a graphics object before exporting it. I wrote a function for that in this answer, and it works with SVG too:
outlinedExport[name_, gr_, opts : OptionsPattern[]] :=
Export[name,
First@ImportString[ExportString[gr, "PDF"], "PDF",
"TextMode" -> "Outlines"], opts]
res = Solve[x^2 + a x + 1 == 0, x]
$\left\{\left\{x\to \frac{1}{2}\left(-\sqrt{a^2-4}-a\right)\right\},\left\{x\to \frac{1}{2} \left(\sqrt{a^2-4}-a\right)\right\}\right\}$
outlinedExport["res.svg", res]
(* ==> "res.svg" *)
Here is the output of the svg:
pic of svg
The fonts have been replaced by outlines.