4

私は次のことに数日を費やしましたが、喜びはありませんでした。

Mathjax を SVG ファイルにレンダリングしたいと考えています。https://groups.google.com/forum/#!topic/mathjax-users/_UMt3C7TIpQ/discussionの例からの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>

どんな助けでも大歓迎です。body 要素を宣言する行に問題があると思われます。

4

1 に答える 1

2

<div>タグは html であるため、タグは svg 名前空間ではなく<body>html 名前空間にある必要があり ます。xmlns="http://www.w3.org/1999/xhtml"

もう 1 つの間違いは、script タグに html 構文を使用していることです。SVG スクリプト タグは、src 属性の代わりに xlink:href を使用します。修正すると、次のようになります。

<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>

しかし、そうすると、mathjax ライブラリのバグに遭遇します。ドキュメント内で html ノードが見つかることを期待しているようです (Firefox エラー コンソールを確認してください)。mathjax の開発者に連絡して、バグを修正してさらに進行させる必要があります。

于 2013-02-13T22:09:31.713 に答える