physics 和 brackett 包使用不同的 \braket 命令

physics 和 brackett 包使用不同的 \braket 命令

我正在使用该\usepackage{physics}包,并想使用 bra-ket 符号写一些内容,但中间有一个双杠(量子化学中的物理学家符号)。可以\braket{0||0}使用 \usepackage{braket} 包来写,但对于我的大部分工作来说,使用 {physics} 包更有用。我无法使用 {braket} 包,因为命令 \braket 已经是 {physics} 包中的命令,而且我不想篡改我使用该physics包编写的先前页面。所以我想我有两个问题。

physics1)你能用这个包写出图中的方程式吗?等式写为

2) 是否可以同时导入两个包,但\braket在选择时调用不同包中的命令?例如,physics对于第一个方程,我可能想使用包中的命令,而braket对于第二个方程,我则使用包中的命令。

答案1

physics包可以使用matrix element命令\matrixel\mel简称)来执行此操作。代码

\documentclass{article}
\usepackage{physics}
\begin{document}

$\mel{ij}{}{kl}$

\end{document}

将产生所需的输出。如果需要,可以插入额外的第二个参数。(示例中为空。)

在此处输入图片描述

该命令还有另外两种形式\mel\mel*mel**。无星号版本根据第一个和第三个参数调整分隔符高度,但不调整第二个参数。一星号版本根本不调整大小。两星号版本根据所有三个参数调整分隔符大小。例如,代码

$\mel{\rule{2pt}{2ex}}{\rule{2pt}{3ex}}{kl}\quad%
\mel*{\rule{2pt}{2ex}}{\rule{2pt}{3ex}}{kl}\quad%
\mel**{\rule{2pt}{2ex}}{\rule{2pt}{3ex}}{kl}$

产生输出:

在此处输入图片描述

请注意,与两星版本相比,无星版本和一星版本之间似乎存在间距不一致。差异似乎正好是thinspace。请考虑以下代码及其输出:

H$\mel{ij}{}{kl}$H

H$\mel*{ij}{}{kl}$H

H$\mel**{ij}{}{kl}$H 

在此处输入图片描述

通过在或\!之前插入负型细空格 ( )来均衡左右两侧的间距。\mel\mel*

答案2

我提出一个基于mathtools,xparse和 的解决方案etoolbox。语法是\mybraket{1st argt | 2nd argt |3rd arrgt}。参数分隔符是|,但可以更改为逗号或分号。

此命令可以采用可选的大小参数(\big, \Big,&c.)。或者,带星号的版本在分隔符前\mybracket*添加一个隐式对。\left \right

\documentclass{article}
\usepackage{mathtools}
\usepackage{physics}
\usepackage{xparse, etoolbox}

\DeclarePairedDelimiterX\mybraket[1]{\langle}{\rangle}{\braketargs{#1}}%
\NewDocumentCommand{\braketargs}{ >{\SplitArgument{2}{|}}m }
{\braketargsaux#1}
\NewDocumentCommand{\braketargsaux}{ m m m}%
{\IfNoValueTF{#3}{\IfNoValueTF{#2}{#1}{#1\,\delimsize\vert\,\mathopen{}#2}}%
{\ifblank{#2}{#1\,\delimsize\vert\mkern-1mu\delimsize\vert\,\mathopen{}#3}%
{#1\,\delimsize\vert\,\mathopen{}#2\,\delimsize\vert\,\mathopen{}#3}}}%

\begin{document}


\[ \mybraket*{ij}\quad\mybraket[\big]{ij||jk} \quad\mybraket[\big]{ij|\ell|jk}\]%

\end{document} 

在此处输入图片描述

相关内容