1

I experience a strange spacing before \begin{equation*} when using amsmath and ntheorem with the thmmarks option. It is associated with using leqno and fleqn together as general setting. How do I fix this?

\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}

I get the following output:

picture showing the strange spacing

10
  • looks like a ntheorem bug to me. It doesn't handle leqno correctly in this case. Report it. Commented Jan 27 at 11:10
  • My advice is to not use ntheorem.
    – egreg
    Commented Jan 27 at 13:12
  • How is a bug report filed? There is no current email address of Wolfgang May available to contact the author directly.
    – PeterH
    Commented Jan 27 at 15:12
  • @egreg I understand also from your other posts that you don't recommend ntheorem. Which other theorem package is able to decently place the endmarks? amsthm does not do it and many manual \qedhere fixes are required.
    – PeterH
    Commented Jan 27 at 15:19
  • @PeterH I never drink wine. Er, wrong quote: I never end a proof with a formula.
    – egreg
    Commented Jan 27 at 15:24

1 Answer 1

0

It appears that the following code works around the issue, if the leqno and flteq options are given. At least my tested examples are as expected. It may break other things.

This is just a workaround. The proper fix is very likely different.

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

The lines

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

have been added to the original definition.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .