fleqn (amsmath) 和 frenchb (Babel) 的方程间距问题

fleqn (amsmath) 和 frenchb (Babel) 的方程间距问题

这是这个问题

下面是我编写的为重要方程式添加浅灰色背景的代码示例:

\documentclass{article}

\usepackage[fleqn]{amsmath}
% \usepackage[frenchb]{babel}

% Coloured background
\usepackage{xcolor}
\usepackage{mdframed}
\newmdenv[backgroundcolor=black!3!white,
          linewidth=0pt,
          innerleftmargin=0pt,
          innerrightmargin=0pt,
          innertopmargin=0.2\baselineskip,
          innerbottommargin=0.2\baselineskip]{graybck}


\newcommand{\highlighteq}[1]{#1}
\newenvironment{highlighteqenv}{%
\noindent
\vspace{0.2\baselineskip}
\begin{graybck}
}
{\end{graybck}}

\begin{document}
He said : ` you must defeat Sheng Long to stand a chance' which more or less amounted to
\begin{highlighteqenv}
  \begin{equation}
      \frac{\partial \langle \alpha K \rangle}{\partial t} + \frac{\partial \lambda}{\partial z} =0
  \end{equation}
\end{highlighteqenv}

\end{document}

很奇怪的是,它在等式前产生了错误的间距,如下图所示:

间距问题

删除或加载选项都可以fleqn解决amsmath问题 :babelfrenchb

良好的间距

我预计frencb会出现与段落缩进有关的此类问题,但它为什么会与之交互fleqn

您有什么想法可以在保留这两个选项的同时防止出现这个额外的空间吗?

答案1

这显示了一个与 无关的问题mdframed,但当您在垂直模式下启动数学环境时,该问题会出现在french模块中babel和...一起选项fleqn;输入后也会添加空格

He said : `you must defeat Sheng Long to stand a chance' which more or less amounted to

  \begin{equation}
      \frac{\partial \langle \alpha K \rangle}{\partial t} + \frac{\partial \lambda}{\partial z} =0
  \end{equation}

(注意空白行)

无论如何,一个段落已经开始,因此一个“解决方案”(更像是一种黑客攻击)是手动备份:

\newenvironment{highlighteqenv}
  {\par\vspace{0.2\baselineskip}
   \begin{graybck}
   \leavevmode\vspace{-\baselineskip}\ignorespaces}
  {\end{graybck}}

无论如何你都不需要\noindent;不过更好的是,添加一个\par

不过,我建议使用数学显示的标准间距:

\newenvironment{highlighteqenv}
  {\par\vspace{\abovedisplayskip}
   \begin{graybck}
   \leavevmode\vspace{-\baselineskip}\ignorespaces}
  {\end{graybck}\vspace\belowdisplayskip}

相关内容