Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当存在分隔符时动态显示MathJax_Javascript_Mathjax - Fatal编程技术网

Javascript 仅当存在分隔符时动态显示MathJax

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

我一直在调整下面的示例代码。MathJax的文档不是很完整。有更多经验的人能告诉我应该如何修改下面的代码,以便只有在我指定了$\alpha$之类的分隔符时才能解析Tex吗。我想让它像数学一样工作

   <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即将寿终正寝,请查看迁移提示。