在这个答案,建议进行如下重新定义:
\DeclareRobustCommand{\[}{\begin{equation*}}
\DeclareRobustCommand{\]}{\end{equation*}}
但是,正如下面的 MCE 所指出的,这会导致额外的垂直空间。
您知道如何去掉这些多余的空格吗?
\documentclass[fleqn]{article}
\usepackage[step=1cm]{pagegrid}
\usepackage[margin=0pt,papersize=2.5cm]{geometry}
%
\usepackage{amsmath}
\usepackage[amsmath,fleqn,thmmarks]{ntheorem}
%
\newcommand{\test}{%
\noindent%
Foo
\[
a=a
\]
Bar
}
%
\begin{document}
\test
%
\DeclareRobustCommand{\[}{\begin{equation*}}%
\DeclareRobustCommand{\]}{\end{equation*}}%
\newpage
\test
\end{document}
答案1
在第一种情况下,前后间距由\topsep
(从 a 开始trivlist
)提供,而在 amsmath 情况下,间距由\abovedisplayskip
和提供\belowdisplayskip
。将最后两个设置为\topsep
可获得相同的间距:
\documentclass[fleqn]{article}
\usepackage[step=1cm]{pagegrid}
\usepackage[margin=0pt,papersize=2.5cm]{geometry}
%
\usepackage{amsmath}
\usepackage[amsmath,fleqn,thmmarks]{ntheorem}
%
\newcommand{\test}{%
\noindent%
Foo
\[
a=a
\]
Bar
}
%
\begin{document}
\test
%
\DeclareRobustCommand{\[}{\begin{equation*}}%
\DeclareRobustCommand{\]}{\end{equation*}}%
\setlength{\abovedisplayskip}{\topsep}%
\setlength{\belowdisplayskip}{\topsep}%
\newpage
\test
\end{document}