我使用 tikz 和 pdflatex 创建了一个图表,并使用 inkscape 将其转换为 SVG。我想将 latex 代码嵌入到 .svg 文件中,以便其他人能够重新生成/修改它。问题是 tikz 代码包含大量 --
(用于绘制线条),这使得无法将代码按原样作为 XML 注释添加到 SVG(请参阅 this other question )。
我正在考虑将其添加为 CDATA,但到目前为止失败了(即 http://validator.w3.org/ 未验证它)。
以下是 Carlo Cannas 建议的 MWE:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg2"
version="1.1">
<metadata>
<annotation xmlns="http://www.w3.org/1998/Math/MathML" encoding="TeX">
blah --
</annotation>
</metadata>
</svg>
请您参考如下方法:
您可以将其包含在 metadata
中元素,作为普通文本或使用其他元素。
我建议将代码包含在 MathML annotation
中元素,具有适当的 encoding
属性。 MathML 命名空间 URI 为 http://www.w3.org/1998/Math/MathML
,因此最后的代码将如下所示:
<svg xmlns="[...SVG namespace URI here...]">
<metadata>
<annotation xmlns="http://www.w3.org/1998/Math/MathML" encoding="TeX">
<!-- TeX code here (obviously not in this comment, remove this whole line and write it in a CDATA section or as character data, as you wish) -->
</annotation>
</metadata>
</svg>