Xml 如何在SVG文件中嵌入任意文本/数据?
我用tikz和pdflatex创建了一个图表,并用inkscape将其转换为SVG。我想将latex代码嵌入到.svg文件中,以便其他人能够重新生成/修改它。问题是tikz代码包含大量的Xml 如何在SVG文件中嵌入任意文本/数据?,xml,svg,tikz,Xml,Svg,Tikz,我用tikz和pdflatex创建了一个图表,并用inkscape将其转换为SVG。我想将latex代码嵌入到.svg文件中,以便其他人能够重新生成/修改它。问题是tikz代码包含大量的--(用于划线),这使得无法将代码作为XML注释添加到SVG(请参阅) 我曾考虑将其添加为CDATA,但迄今为止失败(即未验证它) 以下是Carlo Cannas建议的MWE: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg
--
(用于划线),这使得无法将代码作为XML注释添加到SVG(请参阅)
我曾考虑将其添加为CDATA,但迄今为止失败(即未验证它)
以下是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>
废话--
您可以将其作为普通文本或使用其他元素包含在元素中
我建议将代码包含在MathML元素中,并使用适当的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>
谢谢。验证器给我的MathML元素注释在此上下文中不允许作为SVG元素元数据的子元素。
但是(请参见编辑)@stefanct这是因为验证器正在尝试验证外部名称空间元素。如果您尝试验证规范中的示例,您将得到类似的错误。但是,不要担心:即使验证器给了您这些错误,您的文档也没有问题。是的,我认为您是对的。错误信息似乎是无可争议的…:)谢谢