# Exporting Mathematica expression as SVG

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:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SVGCourier:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


The end result looks like this:

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?

• You could copy the fonts into a place where Illustrator can find them... Feb 2 '13 at 22:22
• My hope is to be able to distribute the svg files to other people. Feb 2 '13 at 22:41

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:

The fonts have been replaced by outlines.