![带有 thmmarks 的 ntheorem 会导致 amsmath 方程出现奇怪的垂直间距*](https://linux22.com/image/473181/%E5%B8%A6%E6%9C%89%20thmmarks%20%E7%9A%84%20ntheorem%20%E4%BC%9A%E5%AF%BC%E8%87%B4%20amsmath%20%E6%96%B9%E7%A8%8B%E5%87%BA%E7%8E%B0%E5%A5%87%E6%80%AA%E7%9A%84%E5%9E%82%E7%9B%B4%E9%97%B4%E8%B7%9D*.png)
使用带有 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@@{}%
已添加到原始定义中。