如何在MathJax中定义自定义宏

时间:2014-07-08 09:46:39

标签: macros latex mathjax

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

可以定义简单的宏(单个参数)而不会出现任何问题,例如;

\newcommand{\braket}[1]{\langle #1 \rangle}

作为

Macros: {
    braket: ['{\\langle #1 \\rangle}', 1]
}

但要与复杂的人斗争;

\newcommand{\Abs}[2][]{\left\lvert#2\right\rvert_{\text{#1}}}

尝试将其定义为;

Macros: {
    Abs: ['{\\left\\lvert#2\\rvert_{\\text{#1}}}', 2]
}

但没有运气。

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

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

不知道我哪里做错了。

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

P.S这个问题在SE上被问到并关闭,他们将我重定向到了SO。

1 个答案:

答案 0 :(得分:6)

我已更新the codepen from my comment

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

Macros: {
    braket: ['{\\langle #1 \\rangle}', 1],
   Abs: ['\\left\\lvert #2 \\right\\rvert_{\\text{#1}}', 2, ""]
}},