删除对齐周围的垂直空间

删除对齐周围的垂直空间

我需要在报告中显示数学运算,但是否可以删除 align* 周围的垂直空间?

下面是一个小例子(我只align*希望\\

\documentclass[10pt,danish,a4paper,oneside,fleqn]{report}

\usepackage[english]{babel}
\usepackage{amsmath}

\begin{document}

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
\begin{align*}
  A{\cap}B\ & =\ {\left\{{b,d,e}\right\}}{\;}{\cap}{\;}{\left\{{a,b,f,g}\right\}}   \\
  \nonumber\ & =\ {\left\{{b}\right\}}
\end{align*}
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss \\
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

\end{document}

答案1

\documentclass[10pt,danish,a4paper,oneside,fleqn]{report}

\usepackage[english]{babel}
\usepackage{amsmath,lipsum}

\begin{document}
\setlength{\abovedisplayskip}{0pt}
\setlength{\belowdisplayskip}{0pt}
\setlength{\abovedisplayshortskip}{0pt}
\setlength{\belowdisplayshortskip}{0pt}

\lipsum*[2]  
\begin{align*}
  A\cap B & = \{b,d,e\} \cap \{a,b,f,g\} \\
          & = \{b\}
\end{align*}
\lipsum[3]

\end{document}

但请注意,这是非常糟糕的排版。(lipsum只是为了生成虚拟文本。)

这四个参数表示在文本和数学显示之间插入多少垂直空间。equation当最后一行文本较短时,将使用“短”版本。

您还应该检查一下输入数学的方式。您使用了太多多余的括号(在某些情况下会产生非常糟糕的结果)。在数学中使用显式间距命令的情况相当少见。

以下是测试文件的排版结果

在此处输入图片描述

原则就是这样。如果你使用字体大小更改命令,你必须在序言中告诉 LaTeX 你想要所有大小的字体都为零间距

\usepackage{etoolbox}
\newcommand{\zerodisplayskips}{%
  \setlength{\abovedisplayskip}{0pt}%
  \setlength{\belowdisplayskip}{0pt}%
  \setlength{\abovedisplayshortskip}{0pt}%
  \setlength{\belowdisplayshortskip}{0pt}}
\appto{\normalsize}{\zerodisplayskips}
\appto{\small}{\zerodisplayskips}
\appto{\footnotesize}{\zerodisplayskips}

这样例子就变成了

\documentclass[10pt,danish,a4paper,oneside,fleqn]{report}

\usepackage[english]{babel}
\usepackage{amsmath,lipsum}
\usepackage{etoolbox}
\newcommand{\zerodisplayskips}{%
  \setlength{\abovedisplayskip}{0pt}%
  \setlength{\belowdisplayskip}{0pt}%
  \setlength{\abovedisplayshortskip}{0pt}%
  \setlength{\belowdisplayshortskip}{0pt}}
\appto{\normalsize}{\zerodisplayskips}
\appto{\small}{\zerodisplayskips}
\appto{\footnotesize}{\zerodisplayskips}

\begin{document}

\lipsum*[2]  
\begin{align*}
  A\cap B & = \{b,d,e\} \cap \{a,b,f,g\} \\
          & = \{b\}
\end{align*}
\lipsum[3]

\end{document}

答案2

使用内联方程(不添加垂直空间),将宏放在\displaystyle其中(因此它看起来像一个普通方程),放置aligned在其中(用于对齐),并将其封闭在其中{\centering ... \par}(居中而不添加不必要的垂直空间)。

{\centering
  $ \displaystyle
    \begin{aligned} 
       A{\cap}B\ & =\ {\left\{{b,d,e}\right\}}{\;}{\cap}{\;}{\left\{{a,b,f,g}\right\}}   \\
       \nonumber\ & =\ {\left\{{b}\right\}} 
    \end{aligned}
  $ 
\par}%Necessary for centering to work

如果经常这样做的话,效果会有点难看,但就我而言,这样做很方便,因为我想从一个或两个方程式中删除垂直空间(这样它们就可以适合一个表格),但不影响任何其他方程式。

答案3

Egreg 的解决方案在行尾有多余的空格。必须通过%在行尾放置空格来消除这些空格。

\usepackage{etoolbox}
\newcommand{\zerodisplayskips}{%
  \setlength{\abovedisplayskip}{0pt}%
  \setlength{\belowdisplayskip}{0pt}%
  \setlength{\abovedisplayshortskip}{0pt}%
  \setlength{\belowdisplayshortskip}{0pt}}
\appto{\normalsize}{\zerodisplayskips}
\appto{\small}{\zerodisplayskips}
\appto{\footnotesize}{\zerodisplayskips}

答案4

您可以\vspace{-0.5cm}在每个上方本地使用\begin{align*}

相关内容