我的任务是将\overline
符号转换为\overleftrightarrow
,将\oversegment
转换为\overline
。问题是这是我得到的输入(我知道这根本就是错误的)但我不能修改它。
所以基于这个来源:http://docs.mathjax.org/en/latest/tex.html#defining-tex-macros
我定义了我的宏:
MathJax.Hub.Config({
TeX: {
Macros: {
overline: ["{\\overleftrightarrow{#1}}", 1],
oversegment: ["{\\overline{#1}}", 1]
}
}
});
问题在于,当我输入\oversegment
时,它会被第二个宏转换为\overline
,然后它会被第一个宏再次转换为\overleftrightarrow
,这是错误。我希望它只转换一次并使其成为最终版本。
答案 0 :(得分:2)
考虑到处理宏的方式,没有一种简单的方法。最好的方法似乎是复制original function in the TeX input jax,即将此函数添加到内联配置块中。
<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>