删除 amsmath 的对齐环境中的额外垂直空间

删除 amsmath 的对齐环境中的额外垂直空间

如果我使用它\begin{align*}...\end{align*}并在其中写一段文本,那么文本和所述环境之间就会有一个很大的垂直空间。为什么会有那个空间?我该如何消除它?在这种情况下,我认为垂直空间太多了。例如,在表格环境或其他环境中,垂直空间要小得多。为什么align环境不同?

\documentclass[12pt]{article}
\usepackage[top=0.3in, bottom=1.2in, left=0.8in, right=0.8in]{geometry}

\usepackage{multicol}

\usepackage[utf8]{inputenc}

\setlength{\parindent}{0cm}

\usepackage{setspace}

\usepackage{xltxtra}
\usepackage{xgreek}
\setmainfont[Mapping=tex-text]{GFSDidot.otf}
\setsansfont[Mapping=tex-text]{GFSDidot.otf}

\usepackage[fleqn]{amsmath}
\usepackage{unicode-math}

\setlength{\mathindent}{0cm}

\newcommand{\3}{\vspace{0.3cm}}

\title{}
\author{}
\date{}

\begin{document}

\begin{multicols*}{2}


70
\begin{align*}
&e^{jz}=\cos z+j\sin z\\
&\cos z=(1/2)(2\cos z)=\\
&=(1/2)(2\cos z+j\sin z-j\sin z)=\\
&=(1/2)(\cos z+j\sin z+\cos z-j\sin z)=\\
&=(1/2)(e^{jz}+e^{-jz})
\end{align*}


\end{multicols*}
\end{document}

在此处输入图片描述

70

\begin{align*}
&e^{jz}=\cos z+j\sin z\\
&\cos z=(1/2)(2\cos z)=\\
&=(1/2)(2\cos z+j\sin z-j\sin z)=\\
&=(1/2)(\cos z+j\sin z+\cos z-j\sin z)=\\
&=(1/2)(e^{jz}+e^{-jz})
\end{align*}

在此处输入图片描述

答案1

不要在文本和任何显示数学之间留空行——这会增加额外的空间,因为您说“从这里开始一个新段落”。

如果对齐显示的行之间只有一小段文本,则可以使用\intertext

text above
\begin{align}
 a &= b + c\\
   &= d + e\\
 \intertext{because}
   &= f + g
\end{align}

编辑: 显示屏上方的空间量由 的设置决定 \abovedisplayskip。 的默认值\abovedisplayskip由 设置latex.ltx12pt plus 3pt minus 9pt。 这可以被正在使用的文档类覆盖,但除非调用 ,article否则不会这样做,在这种情况下,文本的基本长度设置为。\normalsize10pt10pt

其他文档类有不同的设置。 (这是最初设计用于配合的amsart类)集合(没有减号组件),或用于文本。amsmath\abovedisplayskip=.7\baselineskip plus .7\baselineskip8.4pt10pt

为什么article和其他“基本”乳胶文档类使用较大的值是一个设计决定,大概是莱斯利·兰波特 (Leslie Lamport) 做出的;我无法解释该决定的任何原因。

答案2

有四种预定义的长度,用于控制显示公式的垂直空格:

\abovedisplayskip=12pt plus 3pt minus 9pt
\abovedisplayshortskip=0pt plus 3pt
\belowdisplayskip=12pt plus 3pt minus 9pt
\belowdisplayshortskip=7pt plus 3pt minus 4pt

equation当最后一行文本较短时,使用“短”版本。

相关内容