Javascript MathJax与括号的绘制

Javascript MathJax与括号的绘制,javascript,math,mathjax,Javascript,Math,Mathjax,我正在一个网站上使用LaTeX和计算器数学输入和MathJax输出的混合体。我一直在试图弄清楚如何让MathJax在表达式(如5^(x)和A/(2*pi*h+2*pi)周围显示括号 当用户的输入中有^或/时,ASCIIMath输入假定()正在分组,因此不显示括号。这些括号需要使用((和))进行转义。如果用户输入不匹配的括号,则会影响此操作。因为这个网站的目的是教孩子们数学,所以他们清楚地看到自己输入的内容是很重要的 有人能为我找到解决办法吗?我目前有一个MathJax(用纯JS编写)的扩展,它将

我正在一个网站上使用LaTeX和计算器数学输入和MathJax输出的混合体。我一直在试图弄清楚如何让MathJax在表达式(如5^(x)和A/(2*pi*h+2*pi)周围显示括号

当用户的输入中有^或/时,ASCIIMath输入假定()正在分组,因此不显示括号。这些括号需要使用((和))进行转义。如果用户输入不匹配的括号,则会影响此操作。因为这个网站的目的是教孩子们数学,所以他们清楚地看到自己输入的内容是很重要的

有人能为我找到解决办法吗?我目前有一个MathJax(用纯JS编写)的扩展,它将一些输入转换为更正确的Ascimath,然后可以正确处理

我能给出的最好的MWE在下面我对这篇文章的编辑中给出

编辑 我有以下JS代码,几乎可以正常工作,但在少数情况下会产生意外的结果:

FilterExponentBrakets:函数(str){
如果(/\ ^ sqrt/g).test(str)){
如果(/\(|\)/g.test(str)){
var Opening括号=str.split(“”)。长度为1;
ClosingBrands=str.split(“)”)。长度为1;
startString=str.substr(0,str.indexOf('('));
midString=str.substr(str.indexOf('(')),str.indexOf('));
endString=str.substr(str.indexOf(')')+closingbarkets);
如果(打开括号===关闭括号){
str=startString+'('+midString+')'+endString;
}否则{
如果(打开括号<关闭括号){
//这里的一些问题围绕着没有开始和结束
str=startString+'('+midString+')'+endString;
}否则{
//再仔细想想这个案例,不需要显示压裂或sqrt或^
str=str;
}
}
}
}
返回str;

}
MathJax似乎不太可能引入这些重复的括号;它会很快出现在math.SE等网站上。我的猜测是,在MathJax到达它们之前,一些处理步骤会添加它们。您可以通过使用菜单获取源代码来测试这一点。没有样品,没有多少人能帮你。谢谢彼得,你说得对。MathJax在这里没有错。问题在于MathJax的ascimath输入。ASCIIMath假设用户的意思是()作为分组元素,因此与/或^组合使用时不显示它们。在这些情况下,我需要用((和))来转义括号,以使它们显示出来。我意识到我的帖子不是很清楚,括号不见了,没有添加,我已经编辑了,MathJax似乎不太可能引入这些重复的括号;它会很快出现在math.SE等网站上。我的猜测是,在MathJax到达它们之前,一些处理步骤会添加它们。您可以通过使用菜单获取源代码来测试这一点。没有样品,没有多少人能帮你。谢谢彼得,你说得对。MathJax在这里没有错。问题在于MathJax的ascimath输入。ASCIIMath假设用户的意思是()作为分组元素,因此与/或^组合使用时不显示它们。在这些情况下,我需要用((和))来转义括号,以使它们显示出来。我意识到我的帖子不是很清楚,括号不见了,没有加上,我已经做了相应的编辑