如果有办法转变我想知道MathJax
输出MathML
。
我通过说一些文章阅读MathJax
支持MathML
。 我还可以看到选项“ Show MathML
”当我右键单击MathJax
公式。 我的问题是,我可以得到MathML
输出从网页MathJax
? 我不熟悉MathJax
,我不知道它是如何工作的。 任何资源或教程网页本来不错!
如果有办法转变我想知道MathJax
输出MathML
。
我通过说一些文章阅读MathJax
支持MathML
。 我还可以看到选项“ Show MathML
”当我右键单击MathJax
公式。 我的问题是,我可以得到MathML
输出从网页MathJax
? 我不熟悉MathJax
,我不知道它是如何工作的。 任何资源或教程网页本来不错!
@Peter,我觉得OP可能会问如何从MathJax得到MATHML字符串,而不是如何将MATHML标签直接插入到页面中。 因此,也许在MathJax论坛的讨论中,描述了如何使用toMathML会做的伎俩。
其基本思想是让元素JAX(使用MathJax.Hub.getAllJax
)为你要转换,然后调用它的数学toMathML
方法。 但是,你需要使用一些照顾这一点,因为toMathML
可以异步操作。 上面的链接通过细节去。
编辑 : MathJax节点项目,您可以在命令行中做到这一点,所以你可能要检查出来为好。
我已经写了一些代码,检查出来:一是包括“ https://code.jquery.com/jquery-1.11.2.min.js ”和“ http://cdn.mathjax.org/mathjax/latest/MathJax。 JS?配置= TEX-AMS-MML_HTMLorMML “
var JaxToML = {
toMathML: function(jax, callback) {
var mml;
try {
mml = jax.root.toMathML("");
} catch (err) {
if (!err.restart) {
throw err
} // an actual error
return MathJax.Callback.After([JaxToML.toMathML, jax, callback], err.restart);
}
MathJax.Callback(callback)(mml);
},
convert: function(AjaxText, callback) {
var tempDiv = $('<div style="width:455px;height:450px:border-width:thick;border-style:double;"></div>').appendTo("body").html(AjaxText)[0];
MathJax.Hub.Queue(["Typeset", MathJax.Hub, tempDiv]); //first place in Q
MathJax.Hub.Queue(function() { //wait for a callback to be fired
var jax = MathJax.Hub.getAllJax(tempDiv);
for (var i = 0; i < jax.length; i++) {
JaxToML.toMathML(jax[i], function(mml) {//alert(jax[i].originalText + "\n\n=>\n\n"+ mml);
AjaxText = AjaxText.replace(jax[i].originalText, mml);
});
}
$(tempDiv).remove();
AjaxText = AjaxText.replace(/\(/g,""); //notice this escape character for ( - i.e it has to be \( , know why it is beacuse JS will treat ) or ( as end/begin of function as there are no quotes here.
AjaxText = AjaxText.replace(/\)/g,""); //notice this escape character for ) - i.e it has to be \)
AjaxText = AjaxText.replace(/\\/g,"");
callback(AjaxText);
});
},
};
使用方法:
JaxToML.convert(AjaxText, function(mml) {
alert(mml);
});
在MathJax文档配置MathJax可能是开始阅读的地方。 您可以配置每个浏览器输出JAX 。
一个忠告。 还有一个原因,为什么MathJax目前不使用成MathML输出在任何浏览器:浏览器支持还没有应用。 (如浏览器赶上和MathJax可以开始利用他们的原生支持这将会改变。)因此,请确保您的内容实际上呈现确定。