如何整体改变方程周围的间距?

如何整体改变方程周围的间距?

我该如何设置equation环境周围的“上方”和“下方”的垂直空间?

subequations如果可以对或环境做同样的事情gather,这将是一个奖励。

答案1

\abovedisplayskip您可以调整、\belowdisplayskip\abovedisplayshortskip、的值\belowdisplayshortskip。这些shortskip版本用于在显示的方程式之前出现较短文本行的情况:如果文本在显示的方程式开始之前结束,则最好添加较少的垂直空间。

由于文档类通常会定义这些跳过,因此\normalsize您可以重新定义这个宏,修补它,或者简单地添加它,因为仅在序言中设置值是行不通的。

\documentclass{article}
\usepackage{amsmath}
\makeatletter
\g@addto@macro\normalsize{%
  \setlength\abovedisplayskip{40pt}
  \setlength\belowdisplayskip{40pt}
  \setlength\abovedisplayshortskip{40pt}
  \setlength\belowdisplayshortskip{40pt}
}
\makeatother
\begin{document}
text
\begin{gather}
  1 + 1 = 2
\end{gather}
text
\begin{equation}
  1 + 1 = 2
\end{equation}
\end{document}

没有 也可以完成相同的操作\g@addto@macro,因此不需要任何@并且不需要\makeatletter\makeatother,通过使用\expandafter

\expandafter\def\expandafter\normalsize\expandafter{%
    \normalsize
    \setlength\abovedisplayskip{40pt}
    \setlength\belowdisplayskip{40pt}
    \setlength\abovedisplayshortskip{40pt}
    \setlength\belowdisplayshortskip{40pt}
}

我更喜欢将 添加到 的方式,因为重新定义和修补都需要知道文档类使用的\normalsize的确切定义。我之前在\normalsizeLaTeX 社区论坛,回答无法在序言中设置垂直空白

更多信息请参阅数学模式文档。

答案2

作为Stefan答案的更新。

您的问题应被关闭,因为重复了。您会在这里找到很多问题/答案。例如:

公式周围的不同间距和对齐

在展示其他方法之前,这里有一个非常重要的事实:

不要错过胶水!长度\abovedisplayskip等可以用胶水定义,这样你就可以让 LaTeX 更灵活地设置空间。请阅读这个问题/答案: 什么是胶水拉伸?

但是我想展示设置长度的另一种可能性。首先,您可以使用命令\AtBeginDocument。字体将在文档开头设置,因此钩子将在稍后执行该操作:

\AtBeginDocument{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}

该命令\g@addto@macro是一个内部宏。像etoolbox或 这样的软件包xpatch提供了该命令的更强大版本\g@addto@macro。显示而不是使用内部命令,并且没有特殊处理,@您可以使用:

\usepackage{etoolbox}
\apptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}

或者

\usepackage{xpatch}
\xapptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}

这就是一个简单的例子。你应该尝试一下长度。:

\documentclass{article}
\usepackage{kantlipsum}
\usepackage{xpatch}
\xapptocmd\normalsize{%
 \abovedisplayskip=12pt plus 3pt minus 9pt
 \abovedisplayshortskip=0pt plus 3pt
 \belowdisplayskip=12pt plus 3pt minus 9pt
 \belowdisplayshortskip=7pt plus 3pt minus 4pt
}{}{}
\usepackage{amsmath}
\begin{document}
\kant[1]
\begin{gather}
  1 + 1 = 2
\end{gather}
\kant[1]
\begin{gather}
  1 + 1 = 2
\end{gather}
\kant[1]
\begin{subequations}
\begin{equation}
  1 + 1 = 2
\end{equation}
\end{subequations}
\kant[1]
\kant[1]
\end{document}

相关内容