4

Is there any package that let inserting SVG markups directly in LaTeX and get result image like:

\begin{svg}[version="1.1"]
  <polygon points="100,10 40,180 190,60 10,60 160,180" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:nonzero;"/>
\end{svg}
Real Dreams
  • 8,298
  • 12
  • 56
  • 78
  • 1
    As detailed in [http://tex.stackexchange.com/questions/2099/how-to-include-svg-diagrams-in-latex](How to include SVG diagrams in LaTeX?), the nearest I think you'll get is using TikZ and an appropriate \path, but this will not work for arbirtary SVG. – Joseph Wright Jul 27 '12 at 07:38
  • Do you want to include a listing of svg code, or do you wan to "run" the svg code and include the resulting picture? – JLDiaz Jul 27 '12 at 08:24
  • @JLDiaz Second one. I want include result picture. Perhaps a package can map SVG code internally to TikZ. – Real Dreams Jul 27 '12 at 08:38

1 Answers1

4

I don't know how to do it in LaTeX, but in ConTeXt you can use the filter module to run a converter, for example inkscape and include the output. Here is an example of this:

\usemodule
  [filter,ipsum]

\define[1]\readSVGfile
  {\externalfigure[#1]}

\defineexternalfilter
  [SVG]
  [filtercommand={inkscape                   \space
      --without-gui                          \space
      --export-ignore-filters                \space
      --export-pdf=\externalfilteroutputfile \space
      --file=\externalfilterinputfile        \space
    },
    readcommand=\readSVGfile,
    output=\externalfilterbasefile.svg]

\starttext

\startSVG
  <?xml version="1.0" encoding="UTF-8"?>
    <svg xmlns="http://www.w3.org/2000/svg" height="88" width="74">
      <polygon points="100,10 40,180 190,60 10,60 160,180" style="fill:lime;   
      stroke:purple;stroke-width:5;fill-rule:nonzero;"/>
  </svg>
\stopSVG

\ipsum
\stoptext

The output:

result

Of course, you need to have inkscape installed for the conversion.

Marco
  • 26,055