IPython中的物理学bra-ket符号

4

我想要使用通常在Latex中写作\ket{\psi}ket符号。但是,在$$ ... $$内编写时,这种方法不起作用。使用IPython.display也不行。

3个回答

5
$ latex
** \documentclass{article}\usepackage{amsmath}\begin{document}
... chatter chatter ...
* \show\ket
> \ket=undefined.

所以你的`\ket`宏来自某个我不知道的包。这并不能解释为什么它无法在 `$$ ... $$` 中工作 - 你需要努力才能使事情在显示数学中不起作用 - 但这可以解释为什么它不能在IPython中工作:无论是因为该包未加载到IPython的TeX环境中,还是因为IPython模拟的TeX数学输入语言不包括此宏。
以下是一种基于原始数学符号的合理定义,应该在展示模式下正常工作。我不知道是否可以将其直接放入IPython中,但是当需要时,您至少应该能够手写出其扩展(例如 `$$ \left| \psi \right\rangle $$`)。
\newcommand{\ket}[1]{\left|{#1}\right\rangle}
\newcommand{\bra}[1]{\left\langle{#1}\right|}

编辑:使用LaTeX首选界面定义宏,而不是原始的\def


这确实是一个很方便的快速修复。非常感谢。 - Srivatsan Balakrishnan

3
我可以将@zwol的答案扩展,创建一个\braket命令,供在Jupyter笔记本中使用:
$$\newcommand{\braket}[2]{\left\langle{#1}\middle|{#2}\right\rangle}$$
$$\braket{\Psi^*}{\Psi}$$

$$\braket{\frac{\Psi^*}{2}}{\Psi}$$

提供:

进入图像描述


1
IPython使用MathJax在笔记本中呈现LaTeX。 MathJax很棒,但仅支持LaTeX的子集,因此存在一些限制。有关详细信息,请参见MathJax主页
像@Zack提出的新命令将很好地工作。请注意,这样的自定义命令可能会在转换为LaTeX(nbconvert)时导致一些问题。

明白。谢谢。 - Srivatsan Balakrishnan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接