行内数学运算,双倍行距

行内数学运算,双倍行距

我正在使用这个解决方案由 Bernard 编写,使显示模式下的方程式在双倍行距的文档中以单倍行距显示。如何才能使内联数学达到类似的效果?

\documentclass{article}

\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{physics}
\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]

Inline math: $\mqty(x\\y)$ 

\end{document} 

答案1

最好设置\jot为负维度。接下来,您可以设置\arraystretch为的倒数\baselinestretch,这将影响array基础对象。

\documentclass{article}

\usepackage{amsmath}
\usepackage{physics}
\usepackage[
  doublespacing,
  nodisplayskipstretch
]{setspace}

\usepackage{lipsum}

\setlength{\jot}{-4pt}
\renewcommand{\arraystretch}{0.6}

\begin{document}

\lipsum*[2]
\begin{align*}
  Abc = DEF \\
  DEF = Abc
\end{align*}
\lipsum[2]

Inline math: $\mqty(x\\y)$

\end{document}

说明:在对齐环境中amsmath增加\jot行间距。

在此处输入图片描述

我并不赞同使用physics;实际上我建议不是使用它。

如果您还想修复cases、加载etoolbox,请在文档序言中说

\makeatletter
\patchcmd{\env@cases}{1.2}{0.72}{}{}
\makeatother

在此处输入图片描述

为什么0.72?因为\env@cases确实如此\renewcommand{\arraystretch}{1.2},但我们实际上希望它是1.2乘以0.6,也就是的倒数,即1.667的值。\baselinestretchdoublespacing

如果\onehalfspacing使用,它对应1.25的值\baselinestretch是,而使用的倒数是0.8。因为cases您需要0.96而不是0.72

相关内容