如何在MathJax中定义自定义宏

tar*_*yol 7 macros latex mathjax

我正在尝试在MathJax中定义LaTeX文件中使用的自定义宏.

可以定义简单的宏(单个参数),没有任何问题,如;

\newcommand{\braket}[1]{\langle #1 \rangle}
Run Code Online (Sandbox Code Playgroud)

Macros: {
    braket: ['{\\langle #1 \\rangle}', 1]
}
Run Code Online (Sandbox Code Playgroud)

但与复杂的斗争;

\newcommand{\Abs}[2][]{\left\lvert#2\right\rvert_{\text{#1}}}
Run Code Online (Sandbox Code Playgroud)

试图定义它;

Macros: {
    Abs: ['{\\left\\lvert#2\\rvert_{\\text{#1}}}', 2]
}
Run Code Online (Sandbox Code Playgroud)

但没有运气.

这是它在LaTeX文件中的使用方式

\begin{align}\nonumber
    p_e = \Abs{\braket{e|\psi(t)}}^2 = \sin^2\Omega t\, .
\end{align}
Run Code Online (Sandbox Code Playgroud)

不知道我错在哪里.

我不是LaTeX专家,只是一个尝试在Web应用程序上显示LaTeX文件的开发人员(对于Quantum Physics社区),所以我非常感谢您的帮助.谢谢.

PS这个问题在SE上被问及关闭,他们将我重定向到SO.

Pet*_*ger 7

已从评论中更新了codepen.

Primarliy,你忘记了\\right; 我还修改了你的宏定义,使它有一个可选参数.换句话说,有些东西:

Macros: {
    braket: ['{\\langle #1 \\rangle}', 1],
   Abs: ['\\left\\lvert #2 \\right\\rvert_{\\text{#1}}', 2, ""]
}},
Run Code Online (Sandbox Code Playgroud)