\documentclass{article}
\usepackage{physics}
\begin{document}
\fboxsep=0pt
This is some \fbox{$\ev*{\hat{O}_P}$} and then some.
\end{document}
使用时,左尖括号前似乎添加了额外的空格,而右尖括号后则没有空格\ev*
。如果我想继续从包中使用此命令,我可以做些什么来修复它physics
?
通过修复,我的意思是我想要两边右尖括号的间距。
编辑:我意识到,使用非星号版本的命令不会发生这种情况,它\ev{\hat{O}_P}
会在两边提供正确的间距。而且,这个问题似乎会延续到其他带星号的命令,例如\ket*{x}
和,\bra*{x}
这些命令会在输出的左侧添加额外的空间。
答案1
\ev
我查看了包中的定义physics
。在你的情况下,它基本上可以简化为
\vphantom{\hat{O}_P}\left\langle\smash{\hat{O}_P}\right\rangle
将\vphantom{\hat{O}_P}
插入一个宽度为零且类型为 mathord 的框,但是当后面跟着一个 mathopen 原子(自动\left
生成)时,会插入间距。
的定义\ev
完全没有意义。实现者试图通过使用隐藏内容的高度来反转\left
和的自动缩放效果,但这样构造将没有高度和深度,因此他们使用重新插入。\right
\smash
\vphantom
软件包代码中也充满了虚假空格。考虑到实现的质量,解决这个问题的最佳方法是不使用包裹physics
。