2017-09-19 6 views
0

私はsvgのmathmlを変換するためにMathJaxを使用しています。それをレンダリングするいくつかのデバイスによって使用されるSVG。コンテナの幅に収まるように大きなmathmlコンテンツを分割する

HTMLコンテンツ

<!doctype html> 
<html> 
<head> 
    <meta charset='UTF-8'> 
    <style> 
    body { 
     font-size: 2em; 
    } 
    </style> 
<script type="text/javascript" 
      src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 
    </script> 

</head> 
<body> 
<math xmlns='http://www.w3.org/1998/Math/MathML'> 
    <mrow> 
    <mfrac><mn>1</mn><mn>2</mn></mfrac> 
    <msub><mi>m</mi><mn>1</mn></msub> 
    <msubsup> 
     <mi>u</mi> 
     <mn>1</mn> 
     <mn>2</mn> 
    </msubsup> 
    </mrow> 
    <mo>+</mo> 
    <mrow> 
    <mfrac><mn>1</mn><mn>2</mn></mfrac> 
    <msub><mi>m</mi><mn>2</mn></msub> 
    <msubsup> 
     <mi>u</mi> 
     <mn>2</mn> 
     <mn>2</mn> 
    </msubsup> 
    </mrow> 
    <mrow> 
    <mtext> 
    Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf 
    Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf Aasdf 
    </metxt> 
    </mrow> 
</math> 
<div> 
</body> 
</html> 

MathJaxは単一の行に単一のMathMLをレンダリングするので、ブラウザで我々は完全にMathMLを表示するには、スクロールバーを持つことができます。 私の場合、デバイスはスクロールバーを表示できないので、フォントサイズを1行に減らすことができます。

mathjaxには、私たちがそれを制御できるいくつかの設定があることがわかります。

これは私にとっては機能しません。 Mathmlをどのように反応させることができますか?

誰も私が長いmathmlをどのようにしてコンテナの幅に収めることができるか教えてください。改行のための

答えて

1

MathJaxのアルゴリズムは数学ではなく、テキストを破るためにある

感謝。したがって、<mtext>要素内の行は折れません。 (MathJaxは任意のトークン要素内に壊れません。それが唯一の<mo>要素で数学を壊し、ときそれができる。)

は、それだけで偽物であることから<mtext>内の長いテキストは、(使用されているどのようにあなたの例からも明らかではありませんテキスト)が、おそらく数学自体ではなく、テキストが周囲の文の一部であるように見えます。そうであれば、数学の一部としてそれを含めるべきではなく、周囲のHTMLのないテキストとして含めるべきです。

+0

MathJaxは常に、生成されたsvg要素に高さと幅の情報を追加します。高さの値は1行に収まるほど小さすぎます。それが実際に高さを計算する方法。 BTWの高さと幅の単位は常にexであり、mathjaxには生成された単位を設定するオプションがあります。 –

+0

私はあなたのコメントで混乱しています。高さを上げると線が太くなります*ので、どのように小さすぎるかわかりません。高さと幅は、数学の "x"の高さと周囲のテキストの "x"の高さを一致させるために計算されます。それが「ex」の単位で与えられる理由の1つです。それを他のユニットに変更する仕組みはありません。 –

関連する問題