物理包很有用

物理包很有用

物理包很有用

我的许多 LaTeX 文档都大量使用了物理包。除了重载几个标准命令(例如\sin\abs等)之外,它还使一些缩写变得非常方便(例如\order)。它还使排版矢量微积分、普通/偏/变分导数、线性代数(括号符号和矩阵)和其他领域变得轻松得多。我认为可以肯定地说它填补了市场空白。

物理软件包不受欢迎

尽管我列出了使用该软件包的优点,但也存在一些缺点。它使用\xparse可能会产生一些间距问题(这些通常是极端情况,但并不少见),并且语法可能违反直觉。因此,每当我(或其他人)发布涉及该软件包的问题时,一个常见的主题就是避开物理学:

(我确信外界对该套餐的负面评价可能会更多)。

还有什么替代方案?

我很好奇,大家认为哪些是好的替代品?我首先想到的是:

  • 继续使用物理并希望宏得到改进(不太可能?)。
  • 尝试重写我最常用的几个宏,但要更好(我怀疑我的实现是否会很棒)。
  • 已经存在另一个等效的软件包可以解决这些问题,但我尚未找到。
  • 将其全部输入出来并放弃对方便的数学宏的所有希望。

虽然最后一个选项有点夸张,但我认为最重要的问题是:“是使用不理想/有缺陷的受支持软件包更好,还是我应该尝试重新发明轮子?”这是我在考虑软件包时经常遇到的问题。我目前的理念是始终使用软件包/模块,永远不要重新发明轮子。更熟练/有经验的用户会推荐什么?

答案1

现在有包物理2它采用“模块化”方法(命令集通过 加载\usephysicsmodule{<module>})。这使它能够支持多种(但有时相互不兼容)语法,例如使用ab.braketbraket模块的括号表示法。它还最大限度地减少了与其他包或个人宏的冲突,这是 的一个常见问题physics

它甚至有文档特别是对于那些从该physics软件包转换过来的用户来说,它解释了后者的一些缺陷以及该软件包如何对其进行了改进。

答案2

这很可能不会对你有帮助,我甚至不知道这是否是一个“好的”解决方案,但我只是从中复制了我需要的代码physics作为第一个入口点(主要\bra\ket量子物理学),然后查看了它。 的问题是由代码中毫无理由地出现的physics空格引起的。举个例子:\vphantom\ket

\DeclareDocumentCommand\ket{ s m }
{ % Ket
    \IfBooleanTF{#1}
    {\vphantom{#2}\left\lvert\smash{#2}\right\rangle} % No resize
    {\left\lvert{#2}\right\rangle} % Auto sizing
}

只需删除它\vphantom,它就可以正常工作。与此包的其他定义相同。

编辑(2022 年 10 月 9 日):我现在实际上使用的是(使用mathtools包的更好的解决方案,当使用文档中的星号版本时,它具有自动调整大小等所有功能,甚至可以为特定大小的括号提供可选参数):

\DeclarePairedDelimiter{\bra}{\langle}{\rvert}%
\DeclarePairedDelimiter{\ket}{\lvert}{\rangle}%
\DeclarePairedDelimiterX\innerp[2]{\langle}{\rangle}{#1\delimsize\vert\mathopen{}#2}%
\DeclarePairedDelimiterX\braket[2]{\langle}{\rangle}{#1\delimsize\vert\mathopen{}#2}%
\DeclarePairedDelimiterX\braketOP[3]{\langle}{\rangle}{#1\,\delimsize\vert\,\mathopen{}#2\,\delimsize\vert\,\mathopen{}#3}%
\DeclarePairedDelimiterX\ketbra[2]{\lvert}{\rvert}{#1\delimsize\rangle\!\delimsize\langle#2}%
\DeclarePairedDelimiterX\outerp[2]{\lvert}{\rvert}{#1\delimsize\rangle\!\delimsize\langle#2}%
\DeclarePairedDelimiterX\projector[1]{\lvert}{\rvert}{#1\delimsize\rangle\!\delimsize\langle#1}%

相关内容