如下所示,第一个方程式后的底部间距比看起来正确的间距要小。我知道我可以手动添加间距,但有没有办法自动修复这个问题?我确实知道我不应该把方程式放在章节后面,但我觉得在我的情况下这样做效果最好。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=1.0in]{geometry}
\usepackage{microtype}
\usepackage[fleqn]{mathtools}
\setlength\mathindent{0pt}
\begin{document}
\section*{Test}
\[
a^2 + b^2 = c^2
\]
This is some test text.
\[
a^2 + b^2 = c^2
\]
This is some more text.
\end{document}
答案1
我在之后添加了这个\section
:\mbox{}\vspace{-\dimexpr\baselineskip+\topskip}
。请参阅附录以获取可能的常规修复:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=1.0in]{geometry}
\usepackage{microtype}
\usepackage[fleqn]{mathtools}
\setlength\mathindent{0pt}
\begin{document}
\section*{Test}
\mbox{}\vspace{-\dimexpr\baselineskip+\topskip}
\[
a^2 + b^2 = c^2
\]
This is some test text.
\[
a^2 + b^2 = c^2
\]
This is some more text.
\end{document}
为了确认之前的间距是否正确,可以将文本放在\mbox
并进行比较:
我确认它确实有效,无论\parskip
值是多少。
附录
不确定这是否会破坏其他东西,但在这里,我重新定义\[
应用之前的修复,但仅限于垂直模式。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=1.0in]{geometry}
\usepackage{microtype}
\usepackage[fleqn]{mathtools}
\setlength\mathindent{0pt}
\let\sveqopen\[
\def\[{\ifvmode\mbox{}\vspace{-\dimexpr\baselineskip+\topskip}\fi\sveqopen}
\begin{document}
\section*{Test}
\[
a^2 + b^2 = c^2
\]
This is some test text.
\[
a^2 + b^2 = c^2
\]
This is some more text.
\end{document}
答案2
第一个等式使用“短”跳过,因为它之前的段落是空的。您必须人为地将其加长,并通过基线跳过加上上面的显示跳过来支持。
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[margin=1.0in]{geometry}
\usepackage{microtype}
\usepackage[fleqn]{mathtools}
\setlength\mathindent{0pt}
\begin{document}
\section*{Test}
\makebox[.8\linewidth]{}\vspace{\glueexpr-\baselineskip-\abovedisplayskip}
\[
a^2 + b^2 = c^2
\]
This is some test text.
\[
a^2 + b^2 = c^2
\]
This is some more text.
\end{document}
您将获得章节标题和公式之间的正常间距。
以下是间距正确的视觉证明: