Как определить пользовательские макросы в MathJax

Я пытаюсь определить пользовательские макросы, используемые в файлах LaTeX в MathJax.

Может определять простые макросы (один параметр) без каких-либо проблем, таких как;

\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, а просто разработчик, пытающийся отобразить файлы LaTeX в веб-приложении (для сообщества квантовой физики), поэтому я был бы очень признателен за вашу помощь. Благодарю.

PS этот вопрос был задан и закрыт на SE, они перенаправили меня на SO.

1 ответ

Решение

Я обновил кодовую ручку из моего комментария.

Примарлий, ты забыл \\right; Я также изменил ваше определение макроса, чтобы оно имело необязательный параметр. Другими словами, что-то вроде:

Macros: {
    braket: ['{\\langle #1 \\rangle}', 1],
   Abs: ['\\left\\lvert #2 \\right\\rvert_{\\text{#1}}', 2, ""]
}},
Другие вопросы по тегам