如何在 flalign* 环境后删除不必要的空间

如何在 flalign* 环境后删除不必要的空间

我想知道是否可以删除flalign*环境之后的一些不必要的空间。我尝试使用\belowdisplayskip,但无济于事。

以下是示例输入。

{\setlength{\abovedisplayskip}{0pt}
\begin{flalign*}
x\mathbf{e}_1 + y\mathbf{e}_2 &= x\mathbf{f}_2 + y(-\mathbf{f}_1 - \mathbf{f}_2) &\\
  &= -y\mathbf{f}_1 + (x-y)\mathbf{f}_2 &\\
  &= w\mathbf{f}_1 + z\mathbf{f}_2  &
\end{flalign*}}
where $w = -y$ and $z = x - y$.

这是相应的输出:

在此处输入图片描述

答案1

您还忘记设置\belowdisplayskip。但是,从图中可以清楚地看出,会插入一个虚假的空间。最好使用新环境:

\documentclass{article}
\usepackage{amsmath}

\newenvironment{nospaceflalign*}
 {\setlength{\abovedisplayskip}{0pt}\setlength{\belowdisplayskip}{0pt}%
  \csname flalign*\endcsname}
 {\csname endflalign*\endcsname\ignorespacesafterend}

\begin{document}
Some irrelevant text above
\begin{nospaceflalign*}
x\mathbf{e}_1 + y\mathbf{e}_2 &= x\mathbf{f}_2 + y(-\mathbf{f}_1 - \mathbf{f}_2) &\\
  &= -y\mathbf{f}_1 + (x-y)\mathbf{f}_2 &\\
  &= w\mathbf{f}_1 + z\mathbf{f}_2  &
\end{nospaceflalign*}
where $w = -y$ and $z = x - y$.
\end{document}

在这种情况下使用\csname flalign*\endcsname是必要的,因为环境*名称中有一个,并且由于与如何处理对齐环境\begin{flalign*}相关的技术原因,该表单不能使用。amsmath

我们\ignorespacesafterend解决了虚假空间问题。如果以后您想修改渲染,那么根据定义进行操作会比根据文档进行操作更容易。

在此处输入图片描述

相关内容