我想定义一组调节括号,物理学上叫狄拉克括号。
这个括号接受三个参数,用垂直线分隔,并且所有参数都被角度包围,例如在文本格式中用<a|b|c>
。
平均能量损失
第一次尝试是
\documentclass{article}
\usepackage{amsmath}
\usepackage{calc}
\newcommand\bkt[3]{\left< {#1} \left|{#2} \right| {#3} \right>}
\begin{document}
\begin{align}
\bkt{a}{b}{c}
\end{align}
\begin{align}
\bkt{a}{b}{\frac{c}{d}}
\end{align}
\end{document}
从图中可以看出,第二种情况下,中间的括号没有达到所需的大小
尝试解决方案
创建一个高度等于三个参数的最大高度的框,然后将第二个参数放在框内,应该可以解决问题……但我不知道这样做是否可行。
有人有办法解决我的问题吗?
谢谢你,圣诞快乐。
答案1
您可以使用\middle
中间分隔符...如果需要,可以使用多个:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\newcommand\bkt[3]{\left< #1 \;\middle|\; #2 \;\middle|\; #3 \right>}
\begin{document}
\begin{align}
x &= \bkt{a}{b}{c} \\
y &= \bkt{a}{b}{\frac{c}{d}}
\end{align}
\end{document}
请注意,将数学元素放在括号内可能会减少某些间距,因此我在 的定义中删除了它们\bkt
。我还在 周围添加了一些间距\middle|
(如如何制作像braket
包中那样扩展的中间分隔符)。有关水平空间的参考,请参阅有哪些命令可以控制水平间距?。
答案2
让我们致电物理作为物理无需重新发明任何东西 ;-)。您可以使用physics
包。有关详细信息texdoc physics
或texdoc.net(第 6 和 7 页,第 2.6 节)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{physics}
\begin{document}
\begin{align}
\mel*{a}{b}{c}\\
\mel{a}{b}{c} \\
\bra{a}b\ket{c}
\end{align}
\begin{align}
\mel**{a}{b}{\frac{c}{d}}\\
\mel{a}{b}{\frac{c}{d}} \\
\bra{a}b\ket{\frac{c}{d}}
\end{align}
\end{document}