使用 \linespread{} 时矩阵顶行的垂直空间

使用 \linespread{} 时矩阵顶行的垂直空间
\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}

\linespread{3}
%\renewcommand*{\arraystretch}{0.85}

\begin{document}

\lipsum[2]
\begin{equation}
A =
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
\end{equation}
\lipsum[2]

\end{document}

上面的最小例子给了我(围绕矩阵):

在此处输入图片描述

当然,这个价值观\linespread{3}是夸大了且不切实际的,但它强调了问题。

问题

有没有一种简单的方法可以修复顶行 (1 2) 上方的间距,以获得矩阵的对称外观?其他一切都应保持不变。我知道\arraystretch(参见注释掉的行) 的效果,这不是我想要的。

背景

我在使用软件包时遇到了一些垂直间距问题setspace。我考虑了一些所谓的解决方案,但对结果仍然不满意。但我想我可以将问题归结为这个问题。

编辑 2023-06-27:根据要求提供补充信息

据我所知,setspace这只不过是\linespread{}根据字体大小等参数计算出的值,并更改其他一些垂直间距值(例如,方程式之前和之后)。因此,使用时的问题完全相同setspace,请参见以下最小示例。

\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}

% \linespread{3}
\usepackage{setspace}
% actually I'd like to use \onehalfspacing, but again,
% a bigger stretch makes the problem more clear
\setstretch{3} 

%\renewcommand*{\arraystretch}{0.85}

\begin{document}

\lipsum[2]
\begin{equation}
A =
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
\end{equation}
\lipsum[2]

\end{document}

以下再次是显示同样问题的屏幕截图:

在此处输入图片描述

最后说说“所谓的解决方案”:

  • 我尝试过arraystretch前面提到的方法,它在某种程度上确实能起到作用。但这并不能真正解决这个问题的核心——对称性。
  • 我尝试切换到singlespacing仅用于方程式,但这总是让我在方程式前后出现间距问题,另外,如果文档的其余部分是,我不确定这是否会对多行方程式看起来很好onehalfspacing。我真的很想onehalfspacing一劳永逸地选择,只是(大)矩阵的外观让我很烦恼......
  • 我偶然发现了包nicematrix,希望它能给我提供更多可供调整的参数,但收效甚微。

答案1

唯一合理的解决方案是调整\arraystretch的逆\baselinestretch

\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}

\usepackage{setspace}
% actually I'd like to use \onehalfspacing, but again,
% a bigger stretch makes the problem more clear
\setstretch{3} 
\renewcommand*{\arraystretch}{0.33333}

\begin{document}

\lipsum[2]
\begin{equation}
A =
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
\end{equation}
\lipsum[2]

\end{document}

在此处输入图片描述

在我看来,间隔矩阵简直是荒谬的。

像下面这样的东西和“不对称”版本一样丑陋。

\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}

\usepackage{setspace}
% actually I'd like to use \onehalfspacing, but again,
% a bigger stretch makes the problem more clear
\setstretch{3} 

\begin{document}

\lipsum[2]
\begin{equation}
A =
\begin{pmatrix}
\noalign{\kern-0.3\ht\strutbox}
1 & 2 \\
3 & 4
\end{pmatrix}
\end{equation}
\lipsum[2]

\end{document}

在此处输入图片描述

使用\onehalfspacing,第一个版本:

\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}

\usepackage{setspace}
\onehalfspacing
\renewcommand{\arraystretch}{0.8} % \baselinestretch is 1.25

\begin{document}

\lipsum[2]
\begin{equation}
A =
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
\end{equation}
\lipsum[2]

\end{document}

在此处输入图片描述

第二版本:

\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}

\usepackage{setspace}
\onehalfspacing

\begin{document}

\lipsum[2]
\begin{equation}
A =
\begin{pmatrix}
\noalign{\kern-0.15\ht\strutbox}
1 & 2 \\
3 & 4
\end{pmatrix}
\end{equation}
\lipsum[2]

\end{document}

在此处输入图片描述

你决定。

相关内容