Mathjax 版本的 \DeclareMathSymbol - 如何使某个字符使用不同的字体变体?
Mathjax version of \DeclareMathSymbol - How to make a certain character use a different font variant?
有时在 LaTeX 中我会用 e
来写一堆东西作为欧拉常数,而不是使用 \mathrm{e}
或为它制作一个宏,但我希望它显示在罗马字体中作为常量应该,所以在 LaTeX 中我会做类似的事情:
\DeclareSymbolFont{constants}{OT1}{cmr}{m}{n}
\DeclareMathSymbol{e}{\mathalpha}{constants}{`e}
这使得任何 e
在数学模式下显示为常量(这很好,因为我通常不调用任何变量 e)。
我的问题是:如何在 MathJax 中执行此操作?我不想遍历我写的所有东西并将所有 e
更改为某个宏;我想将 MathJax 配置为自动以罗马字体显示该字符。因此,例如 $abcde$
应该以 abcd 斜体显示,但 e 应该是罗马体。
一种方法是添加
<script type="text/x-mathjax-config">
(function () {
var MML;
MathJax.Hub.Register.StartupHook("mml Jax Ready",function () {
MML = MathJax.ElementJax.mml;
});
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
var TEX = MathJax.InputJax.TeX;
TEX.Definitions.special["e"] = "myConstant";
TEX.Parse.Augment({
myConstant: function (c) {
this.Push(this.mmlToken(MML.mi(c).With({mathvariant:MML.VARIANT.NORMAL})));
}
});
});
})();
</script>
就在加载 MathJax.js
本身的脚本标记之前。这将字母 "e" 标记为特殊字符,导致调用 myConstant
函数(传递给 "e",因此您可以将其他字母附加到 myConstant
以获取它们罗马)。 myConstant
函数创建一个 <mi>
元素,其中 mathvariant="normal"
包含给定的字符,并将其推送到 TeX 处理堆栈上。
有时在 LaTeX 中我会用 e
来写一堆东西作为欧拉常数,而不是使用 \mathrm{e}
或为它制作一个宏,但我希望它显示在罗马字体中作为常量应该,所以在 LaTeX 中我会做类似的事情:
\DeclareSymbolFont{constants}{OT1}{cmr}{m}{n}
\DeclareMathSymbol{e}{\mathalpha}{constants}{`e}
这使得任何 e
在数学模式下显示为常量(这很好,因为我通常不调用任何变量 e)。
我的问题是:如何在 MathJax 中执行此操作?我不想遍历我写的所有东西并将所有 e
更改为某个宏;我想将 MathJax 配置为自动以罗马字体显示该字符。因此,例如 $abcde$
应该以 abcd 斜体显示,但 e 应该是罗马体。
一种方法是添加
<script type="text/x-mathjax-config">
(function () {
var MML;
MathJax.Hub.Register.StartupHook("mml Jax Ready",function () {
MML = MathJax.ElementJax.mml;
});
MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
var TEX = MathJax.InputJax.TeX;
TEX.Definitions.special["e"] = "myConstant";
TEX.Parse.Augment({
myConstant: function (c) {
this.Push(this.mmlToken(MML.mi(c).With({mathvariant:MML.VARIANT.NORMAL})));
}
});
});
})();
</script>
就在加载 MathJax.js
本身的脚本标记之前。这将字母 "e" 标记为特殊字符,导致调用 myConstant
函数(传递给 "e",因此您可以将其他字母附加到 myConstant
以获取它们罗马)。 myConstant
函数创建一个 <mi>
元素,其中 mathvariant="normal"
包含给定的字符,并将其推送到 TeX 处理堆栈上。