SVG (Scalable Vector Graphics) is a language for describing two-dimensional graphics and graphical applications in XML. VRR supports SVG 1.1, which is a W3C Recommendation.
SVG makes it possible to do high-resolution printing, animation, drill down, rollover and pop up text along with other special effects. It is an open standard.
More information about the SVG format is available at the Adobe's website at http://www.adobe.com/svg/, for specification, see http://www.w3.org/TR/SVG/.
SVG is based on the XML (eXtensible Markup Language). We use libxml to write valid XML code. Following the SVG DTD, the exported file contains all recommended tags and attributes.
Each graphic object is exported into a corresponding SVG graphic object (line, text, Bézier curve etc.) or into a group of cubic non-rational Bézier curves. This approximation is computed by GEOMLIB. TeX texts are expanded into single characters and approximated to common SVG text.
Except for graphic object specific parameters, we export all supported object attributes like fill color, fill opacity, stroke line cap, stroke join, visibility, stroke color, stroke width, and opacity.
In case of any error while exporting the graphic object, the export fails. At the end, all data are flushed into the file and the export finishes successfully.
In future releases, we would like to improve the TeX text importing, in the recent version it is limited (we export only printable 7-bit characters).
For more details, see export/svg.c.