我有四个公式需要排版,分为两组。前三个是在等号处对齐的。第四个公式需要单独在某些地方对齐,对齐也写在代码中。那么可以做些什么来减少两个环境之间的差距呢?这个问题困扰了我一段时间,因为我的第四个公式很长,处理起来有点麻烦。
\begin{align}
\rho =&\left| \left( s'-s \right) \sin \theta -a\cos \theta \right|\\
z=&\left( s'-s \right) \cos \theta +a\sin \theta\\
\varphi=&\begin{cases}
0,\left( s'-s \right) \sin \theta -a\cos \theta \geqslant 0\\
\pi ,\left( s'-s \right) \sin \theta -a\cos \theta <0\\\end{cases}
\end{align}
\begin{align}
K\left( \rho,\varphi,z \right) =&\int_{-\infty}^{\infty}{\exp \left( -i k_z z \right) d k_z}\nonumber\\
&\times \int_0^{\infty}{\left[ \frac{\cos ^2\theta S_1\left( k_z,\lambda \right) +\sin ^2\theta S_4\left( k_z,\lambda ,\varphi \right)}{B\left( k_z,\lambda \right)}J_0\left( \lambda \rho \right) \right.}\nonumber\\
&\left. +\frac{2\sin \theta \cos \theta S_2\left( k_z,\lambda ,\varphi \right) +\sin ^2\theta S_5\left( k_z,\lambda ,\varphi \right)}{B\left( k_z,\lambda \right)}J_1\left( \lambda \rho \right) \right] \lambda d\lambda
\end{align}
答案1
通常,您不应该连续使用两个显示数学环境,否则,正如您所观察到的,您会得到糟糕的垂直间距。我猜您不想要一个,align
因为最后一个公式没有理由与前面的公式对齐。在这种情况下,您可以将两个align
环境嵌套在外部gather
环境中(这是一般规则的主要例外“不嵌套显示数学环境”)我建议使用基于嵌套的略有不同的版本aligned
:
\documentclass{article}
\usepackage{geometry} % more generous margins
\usepackage{mathtools,amssymb}
\DeclarePairedDelimiter{\abs}{|}{|}
\begin{document}
\begin{gather}
\begin{align}
\rho &= \abs{\left( s'-s \right) \sin \theta -a\cos \theta }\\
z &= (s'-s) \cos \theta + a \sin\theta\\
\varphi &=
\begin{cases}
0, & (s'-s) \sin\theta -a \cos\theta \geqslant 0\\
\pi, & (s'-s) \sin\theta -a \cos\theta <0
\end{cases}
\end{align}\\
\begin{aligned}[b]
K(\rho,\varphi,z) ={}& \int_{-\infty}^{\infty} \exp( -i k_z z ) d k_z \\
&
\begin{aligned}[b]
\times \int_0^{\infty} \biggl[ & \frac{\cos^2\theta S_1(k_z,\lambda) +\sin^2\theta S_4(k_z,\lambda ,\varphi)}{B( k_z,\lambda)}J_0(\lambda\rho)\\
&+\frac{2\sin \theta \cos \theta S_2(k_z,\lambda ,\varphi ) +\sin ^2\theta S_5(k_z,\lambda,\varphi )}{B(k_z,\lambda)}J_1(\lambda \rho ) \biggr] \lambda d\lambda
\end{aligned}
\end{aligned}
\end{gather}
\end{document}
我个人认为在两个块之间放一句话是合适的,但这只是个人喜好问题。
扩展达莱夫的评论一下:
答案2
mathtools.sty
有一个选择\SwapAboveDisplaySkip
\begin{align}
\rho =&\left| \left( s'-s \right) \sin \theta -a\cos \theta \right|\\
z=&\left( s'-s \right) \cos \theta +a\sin \theta\\
\varphi=&\begin{cases}
0,\left( s'-s \right) \sin \theta -a\cos \theta \geqslant 0\\
\pi ,\left( s'-s \right) \sin \theta -a\cos \theta <0\\\end{cases}
\end{align}
\begin{align}
\SwapAboveDisplaySkip
K\left( \rho,\varphi,z \right) =&\int_{-\infty}^{\infty}{\exp \left( -i k_z z \right) d k_z}\nonumber\\
&\times \int_0^{\infty}{\left[ \frac{\cos ^2\theta S_1\left( k_z,\lambda \right) +\sin ^2\theta S_4\left( k_z,\lambda ,\varphi \right)}{B\left( k_z,\lambda \right)}J_0\left( \lambda \rho \right) \right.}\nonumber\\
&\left. +\frac{2\sin \theta \cos \theta S_2\left( k_z,\lambda ,\varphi \right) +\sin ^2\theta S_5\left( k_z,\lambda ,\varphi \right)}{B\left( k_z,\lambda \right)}J_1\left( \lambda \rho \right) \right] \lambda d\lambda
\end{align}
答案3
这并不能完全回答问题,但我的建议(正如其他人提到的)是避免使用连续的align
环境。从编辑的角度来看,方程式应该作为句子的一部分来阅读,因此我会在第一个 的末尾添加一个逗号align
,然后添加一个短语将句子连接到第二个align
,最后以句号结尾。
其他细微变化:第一个中用&=
代替,第二个中用代替。=&
align
={}&
=&
align
\documentclass{article}
\usepackage{mathtools,amssymb}
\begin{document}
\noindent ..., so if we set
\begin{align}
\rho &=\left| \left( s'-s \right) \sin \theta -a\cos \theta \right|\\
z&=\left( s'-s \right) \cos \theta +a\sin \theta\\
\varphi&=\begin{cases}
0,\left( s'-s \right) \sin \theta -a\cos \theta \geqslant 0\\
\pi ,\left( s'-s \right) \sin \theta -a\cos \theta <0,\\\end{cases}
\end{align}
it then follows that
\begin{align}
K\left( \rho,\varphi,z \right) ={}&\int_{-\infty}^{\infty}{\exp \left( -i k_z z \right) d k_z}\nonumber\\
&\times \int_0^{\infty}{\left[ \frac{\cos ^2\theta S_1\left( k_z,\lambda \right) +\sin ^2\theta S_4\left( k_z,\lambda ,\varphi \right)}{B\left( k_z,\lambda \right)}J_0\left( \lambda \rho \right) \right.}\nonumber\\
&\left. +\frac{2\sin \theta \cos \theta S_2\left( k_z,\lambda ,\varphi \right) +\sin ^2\theta S_5\left( k_z,\lambda ,\varphi \right)}{B\left( k_z,\lambda \right)}J_1\left( \lambda \rho \right) \right] \lambda d\lambda.
\end{align}
\end{document}