是否有任何包可以直接在 LaTeX 中插入 SVG 标记并获得如下结果图像:
\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}
答案1
我不知道如何在 LaTeX 中做到这一点,但在 ConTeXt 中,您可以使用filter
模块运行转换器(例如 inkscape)并包含输出。以下是一个例子:
\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
输出:
当然,您需要安装 inkscape 才能进行转换。