双倍行距文档中的单倍行距方程式

双倍行距文档中的单倍行距方程式

我的大学指南(不幸的是)要求双倍行距。但是,没有提到双倍行距方程式,所以我想以单倍行距打印方程式. 很简单:

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

相关内容