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}
3
  • 1
    As detailed in [tex.stackexchange.com/questions/2099/… 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 7: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 8:24
  • @JLDiaz Second one. I want include result picture. Perhaps a package can map SVG code internally to TikZ. Jul 27 '12 at 8:38
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.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.