多行文本在mathjax为android

Multi-lines text in mathjax for android

本文关键字:android mathjax 文本      更新时间:2023-09-26

我有一个项目android与mathjax和我找到代码mathjax android这里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]);");
输出:

i.stack.imgur.com/z7iyl.png

(在text "I LOVE ANDROID"和text in mathjax中不能有空格)

我想输出:

i.stack.imgur.com/egJh0.png

我尝试使用'u00A0和"~",但文本不是多行。

请帮忙,谢谢!

p/s:老师,我的英语不好

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

,并且您不会在代码中自动添加分隔符