我目前有这段代码
\begin{alignat}{4}
\hat{\Theta}^2 |+\rangle &= \hat{\Theta}(i|-\rangle) &&= -i \hat{\Theta}|-\rangle &&&= - |+\rangle \\
\hat{\Theta}^2 |-\rangle &= \hat{\Theta}(-i|+\rangle) &&= i \hat{\Theta}|+\rangle &&&= - |-\rangle \\
& \Rightarrow\hat{\Theta}^2 &&= -1 &&&
\end{alignat}
结果是:
我希望最后一行只将等号与上面两行中间的等号对齐,但由于它还对齐了箭头,所以最后一行出现了奇怪的空格。我该如何解决这个问题?
答案1
\mathllap{...}
你可以使用该特定对齐方式的左侧进行操作
\documentclass[a4paper]{article}
\usepackage{mathtools} % autoloads amsmath
\begin{document}
\begin{alignat}{4}
\hat{\Theta}^2 |+\rangle & = \hat{\Theta}(i|-\rangle) & & = -i \hat{\Theta}|-\rangle & & & = - |+\rangle \\
\hat{\Theta}^2 |-\rangle & = \hat{\Theta}(-i|+\rangle) & & = i \hat{\Theta}|+\rangle & & & = - |-\rangle \\
& & \mathllap{\Rightarrow\hat{\Theta}^2} & = -1 & & &
\end{alignat}
\end{document}
答案2
对于复杂的对齐来说,IEEEtrantools
非常方便。
\documentclass{article}
\usepackage{amsmath}
\usepackage{IEEEtrantools}
\newcommand{\myket}[1]{\mathinner{\mathopen|{#1}\rangle}}
\newcommand{\hTheta}{\hat{\Theta}}
\begin{document}
\begin{IEEEeqnarray}{rClCrCl}
\hTheta^2 \myket{+} &=& \hTheta(i\myket{-}) &=& -i \hTheta\myket{-} &=& - \myket{+} \\
\hTheta^2 \myket{-} &=& \hTheta(-i\myket{+}) &=& i \hTheta\myket{+} &=& - \myket{-} \\
\IEEEeqnarraymulticol{3}{r}{\Rightarrow\hTheta^2} &=& \IEEEeqnarraymulticol{3}{l}{-1}
\end{IEEEeqnarray}
\end{document}
我\hTheta
这样定义是为了避免重复\hat{\Theta}
太多次而影响代码的可读性。更重要的是\myket
,这有助于获得更好的间距。
列类型r
几乎l
是不言自明的;C
意思是“以关系为中心并带有间距”。
一个可能的改进是添加\!
(\IEEEeqnarraymulticol
我注意到它有在这里和那里添加细空格的习惯)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{IEEEtrantools}
\newcommand{\myket}[1]{\mathinner{\mathopen|{#1}\rangle}}
\newcommand{\hTheta}{\hat{\Theta}}
\begin{document}
\begin{IEEEeqnarray}{rClCrCl}
\hTheta^2 \myket{+} &=& \hTheta(i\myket{-}) &=& -i \hTheta\myket{-} &=& - \myket{+} \\
\hTheta^2 \myket{-} &=& \hTheta(-i\myket{+}) &=& i \hTheta\myket{+} &=& - \myket{-} \\
\IEEEeqnarraymulticol{3}{r}{\Rightarrow\hTheta^2\!} &=& \IEEEeqnarraymulticol{3}{l}{-1}
\end{IEEEeqnarray}
\end{document}
答案3
我还有一些其他建议达莱夫的回答(+1)。
首先,您可能需要将最右边的改为=
。{}=
等号将获得与其他两个一致的适当间距=
。
=
其次,这更像是一个修饰性建议。您可以通过添加不可见的 来“改善”中间之后的术语对齐-
。这是通过 实现的\phantom{}
。我引用“改善”是因为这可能更像是个人偏好。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{alignat}{4}
\hat{\Theta}^2 |+\rangle &= \hat{\Theta}(i|-\rangle) & &= -i \hat{\Theta}|-\rangle & & &{}= -|+\rangle \\
\hat{\Theta}^2 |-\rangle &= \hat{\Theta}(-i|+\rangle) & &= \phantom{-}i \hat{\Theta}|+\rangle & & &{}= -|-\rangle \\
& & \mathllap{\Rightarrow\hat{\Theta}^2} &= -1 & & &
\end{alignat}
\end{document}
编辑(感谢您的评论)
下面是另一个示例,其中最右边的=
格式正确,没有任何额外的空项{}
。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{alignat}{4}
\hat{\Theta}^2 |+\rangle &= \hat{\Theta}(i|-\rangle) & &= -i \hat{\Theta}|-\rangle & &= -|+\rangle \\
\hat{\Theta}^2 |-\rangle &= \hat{\Theta}(-i|+\rangle) & &= \phantom{i} \hat{\Theta}|+\rangle & &= -|-\rangle \\
& & \mathllap{\Rightarrow\hat{\Theta}^2} &= -1 & &
\end{alignat}
\end{document}