Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SVG文件中呈现MathJax_Svg_Mathjax - Fatal编程技术网

在SVG文件中呈现MathJax

在SVG文件中呈现MathJax,svg,mathjax,Svg,Mathjax,我花了几天时间在下面的事情上,一点也不高兴 我希望在SVG文件中呈现Mathjax。我可以使用上的示例中的foreignObject将它包含在svg元素的html文件中,但是我无法使它在svg文件中工作 我正在尝试的代码如下:- <svg width="1960" height="1080" xmlns="http://www.w3.org/2000/svg"> <script type="text/javascript" src="MathJax-master/MathJax

我花了几天时间在下面的事情上,一点也不高兴

我希望在SVG文件中呈现Mathjax。我可以使用上的示例中的foreignObject将它包含在svg元素的html文件中,但是我无法使它在svg文件中工作

我正在尝试的代码如下:-

<svg width="1960" height="1080" xmlns="http://www.w3.org/2000/svg">
<script type="text/javascript" src="MathJax-master/MathJax.js?config=TeX-AMS_HTML-SVG"></script>
<g>
<title>Layer 1</title>
<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="50" id="svg_1" y="223" x="636" stroke-opacity="0.8" stroke-width="0" stroke="#007FFF" fill="#000000">Hello World</text>
<foreignObject x="100" y="100" width="100" height="100">
   <body xmlns="http://www.w3.org/2000/svg">
     <div>
       \(\displaystyle{x+1\over y-1}\)
     </div>
   </body>
 </foreignObject>
</g>
</svg>

第一层
你好,世界
\(\displaystyle{x+1\over y-1}\)
任何帮助都将不胜感激。我怀疑问题在于声明body元素的行。

一个
标记是html,因此
标记应该位于html名称空间
xmlns=”http://www.w3.org/1999/xhtml“
而不是svg名称空间

您的另一个错误是,您正在对脚本标记使用html语法。SVG脚本标记使用xlink:href而不是src属性。解决这个问题让我们走到了这里:

<svg width="1960" height="1080" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script xlink:href="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<g>
<title>Layer 1</title>
<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="50" id="svg_1" y="223" x="636" stroke-opacity="0.8" stroke-width="0" 

stroke="#007FFF" fill="#000000">Hello World</text>
<foreignObject x="100" y="100" width="100" height="100">
   <body xmlns="http://www.w3.org/1999/xhtml">
     <div>
       \(\displaystyle{x+1\over y-1}\)
     </div>
   </body>
 </foreignObject>
</g>
</svg>

第一层
你好,世界
\(\displaystyle{x+1\over y-1}\)

但是当我们这样做的时候,我们在mathjax库中遇到了一个bug。它似乎希望在文档中找到html节点(检查Firefox错误控制台)。您必须联系mathjax开发人员,让他们修复他们的bug,以便进一步改进。

唉,这似乎没有任何区别,甚至忽略了div和/或将svg更改为xhtml。hello world仍然渲染,但是foreignObject渲染的只是未格式化的文本。好的,谢谢你的提示。我已经发布了一个关于Mathjax github的问题,一旦我有了一些反馈,我会进一步评论。好的,最终的结果是它不能像我希望的那样完成。这本身并不是一个“bug”,只是它不是MathJax设计的操作方式。他们已经把它标记为“调查”,所以也许有一天它会被处理。在一天结束时,所有解决方法都涉及到将svg文件包装到html文件中。。。。MathJax开发人员关闭了它的日志,因此似乎不会对此进行进一步的开发。