xml - 如何在 SVG 文件中嵌入任意文本/数据?

标签 xml svg tikz

我使用 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>

关于xml - 如何在 SVG 文件中嵌入任意文本/数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20763037/

相关文章:

linux - 替换 SVG 文档中的变量(在 YAML 中外部定义)

javascript - 4 盒子里的三 Angular 形,里面有图像

matrix - 如何使用 Nicematrix 和 TikZ 在矩阵下绘制大括号来描述我的列?

tikz - 使用 Tikz 精确平滑的曲线

java - 使用 JAXB 注释,当每个列表元素的名称未知时,如何获取包装在元素中的列表的每个 XML 元素?

java - 我可以根据变量而不是在 xml 中添加运行时按钮数量吗

java - Android Web View 在平板电脑上看起来很奇怪,但在 Android Studio 的模拟器上看起来很好

javascript - 新数据的D3JS刷新图

plot - Latex - 尝试收集波德图

android - setContentview() 在 onConfigurationChanged() 中更改布局但不在 android 中设置数据