我的工作示例是:
\documentclass[a4paper, 12pt]{scrreprt}
\usepackage{amsmath}
\usepackage{braket}
\usepackage{mleftright}
\begin{document}
\begin{subequations}
\label{ComputationInnProd}
\begin{align}
\label{ComputationInnProdDiscr}
\langle \underbrace{ \mleft( \sum_{\alpha'} \psi_{\alpha'}^* \bra{\alpha'} \mright) }_{\bra{\psi}} \vert \underbrace{ \mleft( \sum_{\alpha''} \varphi_{\alpha''} \ket{\alpha''} \mright) }_{ \ket{\phi} } \rangle = \sum_{\alpha', \alpha''} \psi_{\alpha'}^* \varphi_{\alpha''} \braket{\alpha' \vert \alpha''} = \\
\sum_{\alpha',\alpha''} \psi_{\alpha'}^* \varphi_{\alpha''} \delta_{\alpha' \alpha''} = \sum_{\alpha'} \psi_{\alpha'}^* \varphi_{\alpha'}, \\
\label{ComputationInnProdCont}
\langle \underbrace{ \mleft( \int {d\alpha'} \psi^* \mleft( \alpha' \mright) \bra{\alpha'} \mright) }_{\bra{\psi}} \vert \underbrace{ \mleft( \int {d\alpha''} \varphi \mleft( \alpha'' \mright) \ket{\alpha''} \mright) }_{ \ket{\phi} } \rangle = \int {d\alpha'} \int {d\alpha''} \psi^* \mleft( \alpha' \mright) \varphi \mleft( \alpha'' \mright) \braket{\alpha' \vert \alpha''} = \\
\int {d\alpha'} \int {d\alpha''} \psi^* \mleft( \alpha' \mright) \varphi \mleft( \alpha'' \mright) \delta \mleft( \alpha' - \alpha'' \mright) = \int {d\alpha'} \psi^* \mleft( \alpha' \mright) \varphi \mleft( \alpha' \mright),
\end{align}
\end{subequations}
\end{document}
我希望前两个方程属于子方程 0.1a 并具有标签ComputationInnProdDiscr
,而后两个方程分组为子方程 0.1b 并具有标签ComputationInnProdCont
以供将来参考。
我分别用红色和绿色标记了每个想要对齐的等号。我还欢迎大家提出建议,让这个代码更具可读性,因为它看起来不太好看。
答案1
除了应用一些经过精心选择的\notag
指令之外,您还应该重新考虑仅在 2 行中显示子方程式的目标。我认为,如果每个子方程式都排版为 3 行,事情会更清晰,也不会那么拥挤。
注意指令的使用\smash[b]{...}
。它们的作用是减少(实际上是消除)在第 1 行和第 4 行之后插入的额外垂直空白。
最后,不要过度使用\mleft
和\mright
。(在下面的解决方案中,它们根本没有被使用。)另一方面,也不要忽视增加尖括号的大小。
\documentclass[a4paper, 12pt]{scrreprt}
\usepackage{amsmath,braket}
\begin{document}
\setcounter{chapter}{3} % just for this example
\begin{subequations}
\label{ComputationInnProd}
\begin{align}
\label{ComputationInnProdDiscr}
\smash[b]{\biggl\langle
\underbrace{ \biggl( \sum_{\alpha'} \psi_{\alpha'}^* \bra{\alpha'} \biggr) }_{\bra{\psi}} \biggm\vert
\underbrace{ \biggl( \sum_{\alpha''} \varphi_{\alpha''} \ket{\alpha''} \biggr) }_{ \ket{\phi} } \biggr\rangle}
&= \sum_{\alpha', \alpha''} \psi_{\alpha'}^* \varphi^{}_{\alpha''} \braket{\alpha' \vert \alpha''} \notag\\
&=\sum_{\alpha',\alpha''} \psi_{\alpha'}^* \varphi^{}_{\alpha''} \delta_{\alpha' \alpha''} \notag\\
&= \sum_{\alpha'} \psi_{\alpha'}^* \varphi^{}_{\alpha'}\,\text{;} \\
\label{ComputationInnProdCont}
\smash[b]{\biggl\langle
\underbrace{ \biggl( \int\!d\alpha' \psi^* ( \alpha') \bra{\alpha'} \biggr) }_{\bra{\psi}} \biggm\vert
\underbrace{ \biggl( \int\!d\alpha'' \varphi ( \alpha'') \ket{\alpha''} \biggr) }_{ \ket{\phi} } \biggr\rangle}
&= \int\!d\alpha' \int\!d\alpha''\, \psi^* ( \alpha') \varphi ( \alpha'') \braket{\alpha' \vert \alpha''} \notag \\
&=\int\!d\alpha' \int\!d\alpha''\, \psi^* ( \alpha') \varphi ( \alpha'') \delta ( \alpha' - \alpha'') \notag \\
&= \int\!d\alpha'\, \psi^* ( \alpha') \varphi ( \alpha')\,.
\end{align}
\end{subequations}
\end{document}
答案2
这是我的建议。
- 消除全部
\mleft
和\mright
。 - 使用手动调整
\langle
和的大小\rangle
。 - 将对齐划分为两个嵌套
aligned
环境。 - 当下撑涉及时,砸碎底部。
代码:
\documentclass[a4paper, 12pt]{scrreprt}
\usepackage{amsmath}
\usepackage{braket}
\begin{document}
\begin{subequations}
\label{ComputationInnProd}
\begin{align}
\label{ComputationInnProdDiscr}
&\begin{aligned}[b]
\smash[b]{
\biggl\langle
\underbrace{
\sum_{\alpha'} \psi_{\alpha'}^* \bra{\alpha'}
}_{\bra{\psi}}
\biggm|
\underbrace{
\sum_{\alpha''} \varphi_{\alpha''} \ket{\alpha''}
}_{\ket{\phi}}
\biggr\rangle
}% end smash
&= \sum_{\alpha', \alpha''} \psi_{\alpha'}^* \varphi_{\alpha''} \braket{\alpha' \vert \alpha''}
\\
&= \sum_{\alpha',\alpha''} \psi_{\alpha'}^* \varphi_{\alpha''} \delta_{\alpha' \alpha''}
= \sum_{\alpha'} \psi_{\alpha'}^* \varphi_{\alpha'},
\end{aligned}
\\[2ex]
\label{ComputationInnProdCont}
&\begin{aligned}[b]
\smash[b]{
\biggl\langle
\underbrace{
\int d\alpha'\, \psi^* (\alpha') \bra{\alpha'}
}_{\bra{\psi}}
\biggm|
\underbrace{
\int d\alpha''\, \varphi (\alpha'') \ket{\alpha''}
}_{ \ket{\phi} }
\biggr\rangle
}% end smash
&= \int d\alpha' \int d\alpha''\, \psi^* (\alpha') \varphi (\alpha'')
\braket{\alpha' \vert \alpha''}
\\
&= \int d\alpha' \int d\alpha''\, \psi^* (\alpha') \varphi (\alpha'')
\delta (\alpha' - \alpha'')
\\
&= \int d\alpha'\, \psi^* (\alpha') \varphi (\alpha'),
\end{aligned}
\end{align}
\end{subequations}
\end{document}
注意\,
将各种差速器与函数或后续差速器分开。
答案3
Elad Den 正确地将我转发到了 tex stack exchange 上的链接线程。此特定情况的解决方案是:
\begin{subequations}
\label{ComputationInnProd}
\begin{align}
\begin{split}
\label{ComputationInnProdDiscr}
\langle \underbrace{ \mleft( \sum_{\alpha'} \psi_{\alpha'}^* \bra{\alpha'} \mright) }_{\bra{\psi}} \vert \underbrace{ \mleft( \sum_{\alpha''} \varphi_{\alpha''} \ket{\alpha''} \mright) }_{ \ket{\phi} } \rangle & = \sum_{\alpha', \alpha''} \psi_{\alpha'}^* \varphi_{\alpha''} \braket{\alpha' \vert \alpha''} = \\
\sum_{\alpha',\alpha''} \psi_{\alpha'}^* \varphi_{\alpha''} \delta_{\alpha' \alpha''} & = \sum_{\alpha'} \psi_{\alpha'}^* \varphi_{\alpha'},
\end{split}
\end{align}
\begin{align}
\begin{split}
\label{ComputationInnProdCont}
\langle \underbrace{ \mleft( \int {d\alpha'} \psi^* \mleft( \alpha' \mright) \bra{\alpha'} \mright) }_{\bra{\psi}} \vert \underbrace{ \mleft( \int {d\alpha''} \varphi \mleft( \alpha'' \mright) \ket{\alpha''} \mright) }_{ \ket{\phi} } \rangle & = \int {d\alpha'} \int {d\alpha''} \psi^* \mleft( \alpha' \mright) \varphi \mleft( \alpha'' \mright) \braket{\alpha' \vert \alpha''} = \\
\int {d\alpha'} \int {d\alpha''} \psi^* \mleft( \alpha' \mright) \varphi \mleft( \alpha'' \mright) \delta \mleft( \alpha' - \alpha'' \mright) & = \int {d\alpha'} \psi^* \mleft( \alpha' \mright) \varphi \mleft( \alpha' \mright),
\end{split}
\end{align}
\end{subequations}
将所有内容封装在一个对齐环境中会产生标签方面的歧义,而忽略对齐(仅拆分)则会产生错误。