我有一个带有mathjax的项目android,我在这里找到了android的代码mathjax cs.jsu.edu/wordpress/?p=585
我将代码更改为与我的项目一致,现在它正在工作,但是当全宽时,mathjax不会自动多行文本
我的代码:
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]);");
输出:
(文字中的非空格"我喜欢ANDROID"以及当全宽时,mathjax中的文字不是自动多行)
我想输出:
我试过\ u00A0和"〜"但是文字不是多行的。
请帮助,谢谢!
p / s:老兄,我的英语不好
答案 0 :(得分: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";
并且您不会在代码中自动添加分隔符。