我的大学指南(不幸的是)要求双倍行距。但是,没有提到双倍行距方程式,所以我想以单倍行距打印方程式. 很简单:
\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage[doublespacing,nodisplayskipstretch]{setspace}
\usepackage{etoolbox}
\BeforeBeginEnvironment{align*}{\begin{singlespace}}
\AfterEndEnvironment{align*}{\end{singlespace}\noindent\ignorespaces}
\begin{document}
\lipsum*[2]
\begin{align*}
Abc = DEF\\
DEF = Abc
\end{align*}
\lipsum[2]
\end{document}
这是受到@GonzaloMedina 的回答启发方程式和双倍行距。不幸的是,它不起作用:
问题在于等式前面的空间大于后面的空间。这是怎么回事?
答案1
singlespace
开始新的\par
。添加负 \baselineskip:
\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{fontspec}
\usepackage[doublespacing,nodisplayskipstretch]{setspace}
\usepackage{etoolbox}
\BeforeBeginEnvironment{align*}{\begin{singlespace}\vspace*{-\baselineskip}}
\AfterEndEnvironment{align*}{\end{singlespace}\noindent\ignorespaces}
\begin{document}
\lipsum*[2]
\begin{align*}
Abc = DEF \\
DEF = Abc
\end{align*}
\lipsum[2]
\end{document}
答案2
align*
这是一个在、gather*
和中以相同方式工作的补丁equation*
。有关详细说明,请参阅TeXbook,第 188-189 页;这里足以说明,不同的行为不是由垂直退格键引起的,而是由与的选择引起的\abovedisplayskip
。\abovedisplayshortskip
我提前为我倾向于使用原始 TeX 基元而不是更高级的构造而道歉……
\documentclass[a4paper]{article}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage[doublespacing,nodisplayskipstretch]{setspace}
\usepackage{etoolbox}
\makeatletter
\newcommand*\MySingleSpacePatch{%
\begin{singlespace}%
\vskip -\baselineskip
\noindent
\dimen@ \hsize
\advance \dimen@ \p@
\hskip \dimen@ \@minus \tw@\p@ % 2pt and not 1pt because I am paranoid
\null
}
\newcommand*\EndMySingleSpacePatch{%
\end{singlespace}%
\noindent\ignorespaces
}
\makeatother
\BeforeBeginEnvironment{equation*}{\MySingleSpacePatch}
\AfterEndEnvironment{equation*}{\EndMySingleSpacePatch}
\BeforeBeginEnvironment{gather*}{\MySingleSpacePatch}
\AfterEndEnvironment{gather*}{\EndMySingleSpacePatch}
\BeforeBeginEnvironment{align*}{\MySingleSpacePatch}
\AfterEndEnvironment{align*}{\EndMySingleSpacePatch}
\begin{document}
\lipsum*[2]
\begin{align*}
x&=y+1 \\
a&=b
\end{align*}
\lipsum*[4]
\lipsum*[2]
\begin{gather*}
x=y \\
a=b
\end{gather*}
\lipsum*[4]
\lipsum*[2]
\begin{equation*}
DEF = Abc
\end{equation*}
\lipsum*[4]
% \showboxbreadth = 10000
% \showboxdepth = 10
% \showlists
\end{document}