Javascript 仅当存在分隔符时动态显示MathJax
我一直在调整下面的示例代码。MathJax的文档不是很完整。有更多经验的人能告诉我应该如何修改下面的代码,以便只有在我指定了$\alpha$之类的分隔符时才能解析Tex吗。我想让它像数学一样工作Javascript 仅当存在分隔符时动态显示MathJax,javascript,mathjax,Javascript,Mathjax,我一直在调整下面的示例代码。MathJax的文档不是很完整。有更多经验的人能告诉我应该如何修改下面的代码,以便只有在我指定了$\alpha$之类的分隔符时才能解析Tex吗。我想让它像数学一样工作 <html> <head> <title>MathJax Dynamic Math Test Page</title> <script type="text/x-mathjax-config"> Ma
<html>
<head>
<title>MathJax Dynamic Math Test Page</title>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [["$","$"],["\\(","\\)"]]
}
});
</script>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full">
</script>
</head>
<body>
<script>
//
// Use a closure to hide the local variables from the
// global namespace
//
(function () {
var QUEUE = MathJax.Hub.queue; // shorthand for the queue
var math = null; // the element jax for the math output.
//
// Get the element jax when MathJax has produced it.
//
QUEUE.Push(function () {
math = MathJax.Hub.getAllJax("MathOutput")[0];
});
//
// The onchange event handler that typesets the
// math entered by the user
//
window.UpdateMath = function (TeX) {
QUEUE.Push(["Text",math,"\\displaystyle{"+TeX+"}"]);
}
})();
</script>
<textarea id="MathInput" size="50" onkeyup="UpdateMath(this.value)"></textarea>
<div id="MathOutput">
You typed: ${}$
</div>
</body>
</html>
MathJax动态数学测试页面
MathJax.Hub.Config({
tex2jax:{
inlineMath:[[“$”,“$”],[“\\(“,“\\)”]]
}
});
//
//使用闭包可以从
//全局命名空间
//
(功能(){
var QUEUE=MathJax.Hub.QUEUE;//队列的简写
var math=null;//数学输出的元素jax。
//
//在MathJax生成元素jax时获取它。
//
QUEUE.Push(函数(){
math=MathJax.Hub.getAllJax(“MathOutput”)[0];
});
//
//用于键入的onchange事件处理程序
//用户输入的数学
//
window.UpdateMath=函数(TeX){
Push([“Text”,math,“\\displaystyle{”+TeX+“}]”);
}
})();
您键入:${}$
您发布的示例代码获取MathInput的内容,并用MathInput中的新“math”替换第一个MathJax元素。您需要的是对MathInput进行排版,并为分隔文本创建新的MathJax元素。我在这里设置了一个JSFIDLE示例:
主要更改在UpdateMath函数中:
window.UpdateMath = function (TeX) {
//set the MathOutput HTML
document.getElementById("MathOutput").innerHTML = TeX;
//reprocess the MathOutput Element
MathJax.Hub.Queue(["Typeset",MathJax.Hub,"MathOutput"]);
}
你从哪里学来的?你知道关于javascript或mathjax的书吗?任何参考资料都将不胜感激:)MathJax站点上的文档实际上有一个关于如何操作页面上的数学元素的部分:关于如何学习JavaScript,这里有一个stackoverflow问题,有一些很好的参考资料:我知道这个问题很老,但我用过这个(顺便说一句,谢谢),有一个问题,在键向上的时候,它会一直跳到页面的顶部,如果我把它放在定义括号的位置,整个页面就会被格式化,这是设计的吗?我现在必须非常小心使用括号吗?比mathjax官方网站上的答案要好。做得好!官方网站上的一个将空间弄得乱七八糟,并保持分隔符不被解析。来自未来的提示:cdn.mathjax.org即将寿终正寝,请查看迁移提示。