带有 thmmarks 的 ntheorem 会导致 amsmath 方程出现奇怪的垂直间距*

带有 thmmarks 的 ntheorem 会导致 amsmath 方程出现奇怪的垂直间距*

使用带有 thmmarks 选项的 amsmath 和 ntheorem 时,我在 \begin{equation*} 之前遇到了奇怪的间距。这与将 leqno 和 fleqn 一起使用作为常规设置有关。我该如何解决这个问题?

\documentclass[leqno,fleqn]{article}
\usepackage{amsmath}
\usepackage[thmmarks,amsmath,standard]{ntheorem}

\begin{document}

\begin{Definition}
The space below this line is called huge.
\begin{equation*}
E = m c^2
\end{equation*}
This is the last line of the definition.
\end{Definition}

The space below this line is huge.
\begin{equation*}
E = m c^2
\end{equation*}
The space below this line is normal.
\begin{equation}
E = m c^2
\end{equation}
Last line of the document.

\end{document}

我得到以下输出:

图片显示了奇怪的间距

答案1

leqno如果给出了和选项,以下代码似乎可以解决这个问题flteq。至少我测试的示例符合预期。它可能会破坏其他东西。

这只是一种解决方法。正确的解决方法很可能有所不同。

\makeatletter
\renewenvironment{equation*}{%
  \mathdisplay@push
  \st@rredtrue \global\@eqnswfalse
  \mathdisplay{equation*}%
  \global\tag@true
  \make@df@tag@@{}%
}{%
  \endmathdisplay{equation*}%
  \mathdisplay@pop
  \ignorespacesafterend
}
\makeatother

线条

\global\tag@true
\make@df@tag@@{}%

已添加到原始定义中。

相关内容