\documentclass[a4paper, 12pt]{article}
\usepackage[left=1in, right=1in, top=1in, bottom=1in]{geometry}
\usepackage{amsmath}
\usepackage{mathtools}
\allowdisplaybreaks
\usepackage{setspace}
\setstretch{2}
\begin{document}
\begin{align*}
SA&= \pi r \sqrt{r^{2}+h^{2}} + \pi r^{2} \tag{1}\\[12pt]
SA&= \pi r \sqrt{r^{2}+\left( \frac{3V}{\pi r^{2}}\right)^{\!2}} + \pi r^{2}\tag{2}\\[12pt]
SA&= \pi r \sqrt{r^{2}+\left( \frac{3V}{\pi r^{2}}\right)^{\!2}} + \pi r^{2}\tag{3}\\[12pt]
SA&= \pi r \sqrt{r^{2}+h^{2}} + \pi r^{2}\tag{4} \\
\end{align*}
\end{document}
(1) 和 (2) 以及 (3) 和 (4) 之间的白色垂直空间比 (2) 和 (3) 之间的白色垂直空间要多。我认为这是因为 (2) 和 (3) 中的分数占据了部分垂直空间。然而,这意味着所有行之间的垂直间距并不相等。当有较大的分数或几行分数而没有分数等式时,这种情况会变得更加明显。如何让 (1)、(2)、(3)、(4) 获得相等的间距。
答案1
一种方法是定义\mystrut
至少延伸到最高方程,然后添加\mystrut
到的每一行align
。
\documentclass[a4paper, 12pt]{article}
\usepackage[left=1in, right=1in, top=1in, bottom=1in]{geometry}
\usepackage{amsmath}
\usepackage{mathtools}
\allowdisplaybreaks
\usepackage{setspace}
\setstretch{2}
\newcommand\mystrut{\rule[-15pt]{0pt}{30pt}}
\begin{document}
\begin{align*}
SA&\mystrut= \pi r \sqrt{r^{2}+h^{2}} + \pi r^{2} \tag{1}\\
SA&\mystrut= \pi r \sqrt{r^{2}+\left( \frac{3V}{\pi r^{2}}\right)^{\!2}} + \pi r^{2}\tag{2}\\
SA&\mystrut= \pi r \sqrt{r^{2}+\left( \frac{3V}{\pi r^{2}}\right)^{\!2}} + \pi r^{2}\tag{3}\\
SA&\mystrut= \pi r \sqrt{r^{2}+h^{2}} + \pi r^{2}\tag{4} \\
\end{align*}
\end{document}
答案2
原始间距
必须考虑不同的高度和深度,因此会失去规则的基线间距,如对数所示
\documentclass[a4paper, 12pt]{article}
\usepackage[left=1in, right=1in, top=1in, bottom=1in]{geometry}
\usepackage{amsmath}
\usepackage{mathtools}
\allowdisplaybreaks
\usepackage{setspace}
\setstretch{2}
\showoutput\showboxdepth=3
\begin{document}
{%\lineskiplimit=-15pt
\begin{align*}
SA&= \pi r \sqrt{r^{2}+h^{2}} + \pi r^{2} \tag{1}\\[12pt]
SA&= \pi r \sqrt{r^{2}+\left( \frac{3V}{\pi r^{2}}\right)^{\!2}} + \pi r^{2}\tag{2}\\[12pt]
SA&= \pi r \sqrt{r^{2}+\left( \frac{3V}{\pi r^{2}}\right)^{\!2}} + \pi r^{2}\tag{3}\\[12pt]
SA&= \pi r \sqrt{r^{2}+h^{2}} + \pi r^{2}\tag{4} \\
\end{align*}}
\end{document}
带有日志
...\glue(\abovedisplayskip) 24.0
...\glue -3.0
...\glue 0.0
...\glue(\baselineskip) 11.70009
...\hbox(20.29991+8.70009)x452.9679, display []
...\penalty 0
...\glue 12.0
...\glue(\lineskip) 4.0
...\hbox(23.6004+12.87993)x452.9679, display []
...\penalty 0
...\glue 12.0
...\glue(\lineskip) 4.0
...\hbox(23.6004+12.87993)x452.9679, display []
...\penalty 0
...\glue 12.0
...\glue(\lineskip) 4.0
...\hbox(20.29991+8.70009)x452.9679, display []
...\penalty 0
...\glue 0.0
...\glue(\baselineskip) 3.0
...\hbox(20.29991+8.70009)x452.9679, display []
...\penalty 0
...\glue 0.0
...\penalty 0
...\glue(\belowdisplayskip) 24.0
请注意,显示的用途\lineskip
是忽略高度/深度的不均等,在行之间添加了相等的空间,因此行间距会有所不同。
如果你设置\lineskiplimit
为 -15pt,允许最多 15pt 的潜在重叠,那么你会得到
带有日志
...\glue(\abovedisplayskip) 24.0
...\glue 12.0
...\glue 0.0
...\glue(\baselineskip) 11.70009
...\hbox(20.29991+8.70009)x452.9679, display []
...\penalty 0
...\glue 12.0
...\glue(\baselineskip) -0.30049
...\hbox(23.6004+12.87993)x452.9679, display []
...\penalty 0
...\glue 12.0
...\glue(\baselineskip) -4.48033
...\hbox(23.6004+12.87993)x452.9679, display []
...\penalty 0
...\glue 12.0
...\glue(\baselineskip) -1.17984
...\hbox(20.29991+8.70009)x452.9679, display []
...\penalty 0
...\glue 0.0
...\glue(\baselineskip) 3.0
...\hbox(20.29991+8.70009)x452.9679, display []
...\penalty 0
...\glue 0.0
...\penalty 0
...\glue(\belowdisplayskip) 24.0
请注意,\baselinskip
并非\lineskip
在所有情况下都是如此。
请注意,如果您这样做,至于强制段落中的基线间距均匀,并且行中有较大不规则的项目,您将得到过度打印而没有任何警告。
存在过度打印的危险,而且最终结果看起来并不比原版好,这在实践中实际上从来没有做过。虽然 (1)、(2)、(3)、(4) 垂直间距均匀,但您并没有真正注意到这一点,您注意到的是,第 2 行和第 3 行看起来非常接近,因为尽管 (2) 的深度和 (3) 的高度不同,但行距还是被强制了。