Javascript 如何告诉MathJax对下标使用另一种语法?

Javascript 如何告诉MathJax对下标使用另一种语法?,javascript,math,mathjax,Javascript,Math,Mathjax,我的博客有问题。在写文章时,我还可以使用MathJax添加数学。我也有一个我的小标记语言,我可以处理斜体和粗体文本。italic的语法恰好与MathJax one的下标语法冲突 因此,如果我在端口中写入以下内容: My cat was doing this strange sound: _Prrrrrr_. 下划线之间的文本使用斜体样式的跨距标记重新绘制 但在MathJax中,使用下划线意味着有下标。当然,有时我也会遇到问题。关键是,首先要处理标记语言,然后才能运行Mathjax 有没有一种方

我的博客有问题。在写文章时,我还可以使用MathJax添加数学。我也有一个我的小标记语言,我可以处理斜体和粗体文本。italic的语法恰好与MathJax one的下标语法冲突

因此,如果我在端口中写入以下内容:

My cat was doing this strange sound: _Prrrrrr_.
下划线之间的文本使用斜体样式的跨距标记重新绘制

但在MathJax中,使用下划线意味着有下标。当然,有时我也会遇到问题。关键是,首先要处理标记语言,然后才能运行Mathjax

有没有一种方法可以告诉MathJax不使用下划线而是使用另一种语法来生成下标和上标


谢谢

有办法。使用此处所述的宏:。 通过如下设置:

MathJax.Hub.Config({TeX: {Macros:{subscript:['_{#1}',1],superscript:['^{#1}',1]}}});

系统(MathJax)将用下划线替换这些内容,然后解析它,我的问题实际上是这样解决的

我发现用反斜杠跳过下划线有帮助,如下所示:

...strange sound: \_Prrrrrr\_.
但这确实导致一些解析器错误地呈现内容

但是,如果您还将“
\\
”定义为只输出“
\
”的宏,那么这一切似乎都能正常工作

要在MathJax中执行此操作,请执行以下操作:

MathJax.Hub.Config({TeX: {Macros: { '\_': ['_'] }}, /* rest of config here... */ });
为了在Katex中实现这一点,我将
Katex_config.js
更改为:

module.exports = {
  macros: { '\\_': '_' }
}

哪种语法可以通过您的自定义标记解析器?在像$S(a_1,a_2,a_3)$这样的数学表达式中。前两个下划线由我的标记语言(如italic)考虑,并用1,a替换,然后运行MathJax。。。当然,MathJax将无法正确地呈现此内容。因此,您更需要更改标记语言以识别数学表达式,而不是让MathJax将跨度检测为下划线……这不好。。。我现在添加了数学功能,,,我已经有很多帖子使用了这个语法。。。最好在MathJax中添加另一种语法。。。添加一个新的环境或其他东西真的有那么难吗???你的旧帖子已经使用MathJax语法了吗?如果否,则更改标记解析器不会有问题。此方法似乎无法正确复制文本$x\uMu$和$y\uMu$。