2

我用 tikz 和 pdflatex 创建了一个图表,并用 inkscape 将其转换为 SVG。我想将乳胶代码嵌入到 .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>
4

1 回答 1

2

您可以将其metadata作为普通文本或使用其他元素包含在元素中。

我建议将代码包含在具有适当属性的 MathMLannotation元素中。encodingMathML 命名空间 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>
于 2013-12-24T15:27:16.690 回答