![使用 \linespread{} 时矩阵顶行的垂直空间](https://linux22.com/image/466420/%E4%BD%BF%E7%94%A8%20%5Clinespread%7B%7D%20%E6%97%B6%E7%9F%A9%E9%98%B5%E9%A1%B6%E8%A1%8C%E7%9A%84%E5%9E%82%E7%9B%B4%E7%A9%BA%E9%97%B4.png)
\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}
你决定。