2015-08-21 38 views
0

我有mathjax一個項目,Android和我發現代碼mathjax爲Android這裏cs.jsu.edu/wordpress/?p=585多行文字在mathjax爲Android

我改變了代碼,以符合我的項目,現在它是工作,但mathjax不能自動​​多-lines文本時,全寬

我的代碼:

WebView w = (WebView) findViewById(R.id.webview); 
      String data = "x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a} I LOVE ANDROID"; 
      mmltoggle=false; 

      w.loadUrl("javascript:document.getElementById('mmlout').innerHTML='';"); 
      w.loadUrl("javascript:document.getElementById('math').innerHTML='\\\\[" 
         +doubleEscapeTeX(data)+"\\\\]';"); 
      w.loadUrl("javascript:MathJax.Hub.Queue(['Typeset',MathJax.Hub]);"); 

輸出:

i.stack.imgur.com/z7iyl.png

(文字非空格 「I LOVE ANDROID」 和文本mathjax不會自動多線時,全寬)

我想輸出:

i.stack.imgur.com/egJh0.png

我用\試過u00A0和「〜」,但文字不是多行的。

請大家幫忙,謝謝!

P/S:SR,我的英文不好

+0

'\ u00A0'和'〜'(在TeX中)會產生*非破壞性空格,所以這當然不起作用。 –

回答

1

MathJax使用MATHML作爲其內部格式,和在MathML和方程場所只發生在<mo>(數學運算符),並<mspace>(數學空間)元素。您提供的「文本」僅包含<mi>元素,因此不包含有效的斷點。

您可以定義

\def\allowbreak{\mmlToken{mo}{}} 

然後用

data = "x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a} I LOVE \allowbreak ANDROID"; 

,但你仍然不會得到詞與詞之間的空間,和底層的MathML是不是語義正確。

爲什麼你在數學中包含這個文本?這不應該只是簡單的HTML文本,而不是數學?也許你的數據應該是

data = "\\[x=\\frac{-b\\pm\\sqrt{b^2-4ac}}{2a}\\] I LOVE ANDROID"; 

並且你不要在代碼中自動添加分隔符。