Javascript MathJax将宏定义为final或last

Javascript MathJax将宏定义为final或last,javascript,latex,mathjax,tex,Javascript,Latex,Mathjax,Tex,我的任务是将\overline符号转换为\overleftrightarrow,并将\oversegment转换为\overline。问题是,这是我从输入中得到的(我知道这是根本错误的),但我无法修改它 因此,根据这一来源: 我定义了我的宏: MathJax.Hub.Config({ TeX: { Macros: { overline: ["{\\overleftrightarrow{#1}}", 1], oversegme

我的任务是将
\overline
符号转换为
\overleftrightarrow
,并将
\oversegment
转换为
\overline
。问题是,这是我从输入中得到的(我知道这是根本错误的),但我无法修改它

因此,根据这一来源:

我定义了我的宏:

MathJax.Hub.Config({
    TeX: {
        Macros: {
            overline: ["{\\overleftrightarrow{#1}}", 1],
            oversegment: ["{\\overline{#1}}", 1]
        }
    }
});

问题是,当我使用
\oversegment
输入时,第二个宏将其转换为
\overline
,然后第一个宏将其再次转换为
\overleftrightarrow
,这是错误的。我希望它只转换一次,并使其成为最终版本。

考虑到宏的处理方式,没有一种简单的方法。最好的方法似乎是复制,即将此函数添加到内联配置块中

<script type="text/x-mathjax-config">
  MathJax.Hub.Register.StartupHook("TeX Jax Ready", function () {
  var MML = MathJax.ElementJax.mml;
    MathJax.InputJax.TeX.Definitions.Add({
       macros: {
          oversegment: ['UnderOver','00AF']
      }
    });
  });
</script>

MathJax.Hub.Register.StartupHook(“TeX-Jax-Ready”,函数(){
var MML=MathJax.ElementJax.MML;
MathJax.InputJax.TeX.Definitions.Add({
宏:{
超频段:['UnderOver','00AF']
}
});
});

在我发现用我尝试过的方法使用宏是不可能的之后,我认为您的答案在给定的情况下是最好的-谢谢!