我需要使用 amsmath equation
环境作为外部环境,其中内部aligned
环境用于在=
符号处对齐的 2 个方程。我这样做是为了获得这两个方程的共同/单一方程编号。
但是,这样会在上方和下方留下太多空间,并且相对于周围的段落看起来排版太松散。这对我来说尤其糟糕,因为我需要使用双倍行距。
我不想使用 \vspace 命令手动删除空格。这是因为如果我需要更改字体或将文档从 12pt 转换为 11pt 等,我无法确定需要删除多少空格(而且我怀疑这不是一个好的做法)。
我认为包\SwapAboveDisplaySkip
中的命令mathtools
很有用。但手册明确指出它不适用于 amsmath 方程环境。尽管如此,我还是尝试了一下,正如预期的那样,遇到了如下错误
放错位置 \noalign.....
对于这种情况,有什么可行的解决方法?
答案1
你有,从nccmath
,\useshortskip
。相反\SwapAboveDisplaySkip
,它必须放置前进入环境:
\documentclass{article}
\usepackage{mathtools, nccmath}
\begin{document}
The discriminant of the cubic equation $\,x^3 + px + q = 0$ is
\begin{equation}\Delta = 4p^3 + 27 q^2. \end{equation}
The discriminant of the cubic equation $\,x^3 + px + q = 0$ is \useshortskip
\begin{equation}\Delta = 4p^3 + 27 q^2. \end{equation}
\end{document}
答案2
equation
据我所知,aligned
内部将在适当的时候使用上面的简短显示跳过。如果您确实想要访问\SwapAboveDisplaySkip
以手动执行此操作,则可以将外部替换equation
为gather
:
\documentclass{article}
\usepackage{mathtools}
\begin{document}
Some text before our equations to demonstrate vertical spacing is this
one context:
\begin{equation}
\label{eq:x}
\begin{aligned}
a &= b\\
c &= d
\end{aligned}
\end{equation}
Some text before our equations to demonstrate vertical spacing is this
further context:
\begin{gather}
\label{eq:y}
\begin{split}
a &= b\\
c &= d
\end{split}
\end{gather}
Some text before our equations to demonstrate vertical spacing is this
further context:
\begin{gather}
\SwapAboveDisplaySkip
\label{eq:y}
\begin{split}
a &= b\\
c &= d
\end{split}
\end{gather}
\end{document}