编译下面的 MWE,您将在输出中观察到以下现象(您可能需要放大):
- 注释掉
amsmath
。然后,行之间的间距使得第一行的子索引不会太靠近第二行的超级索引,无论设置setstretch
。 - 现在,加载
amsmath
。然后,\setstretch{1.0}
行距\setstretch{1.05}
再次自动调整,以确保第一行的子索引不会太靠近第二行的超级索引。但\setstretch{1.15}
第一行的子索引几乎与第二行的超索引重叠。
希望我的意思清楚。
\documentclass{article}
\usepackage{setspace}\setstretch{1.0}
%\usepackage{setspace}\setstretch{1.05}
\usepackage{setspace}\setstretch{1.15}
%\usepackage{amsmath}
\begin{document}
XXXXXXXXXXXX $\Omega^{(\alpha,N)}_{\textup{brannnnnnnn}}$ XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX $\Omega^{(\alpha,N)}_{\textup{bran}}$ XXXXXXXXXXXXXXXXXXXXXXXXX
\end{document}
我是不是出现了幻觉或者行为异常了?
PS:下面的代码不存在这样的问题:
\documentclass{article}
%\usepackage{setspace}\setstretch{1.0}
%\usepackage{setspace}\setstretch{1.05}
\usepackage{setspace}\setstretch{1.15}
\usepackage{amsmath}
\begin{document}
XXXXXXXXXXXX $\Omega^{(\alpha,N)}_{\textup{bran}}$ XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX $\Omega^{N^{N^{N^N}}}_{\textup{bran}}$ XXXXXXXXXXXXXXXXXXXXXXXXX
\end{document}
答案1
添加\showoutput
后您将看到\textup
文本从 10pt 变为 7pt,您已经间接加载,amstext
这使得\text....
命令尊重下标并减小字体大小,而不是像\mbox
文本大小那样始终使用文本大小。
\documentclass{article}
\usepackage{setspace}\setstretch{1.0}
%\usepackage{setspace}\setstretch{1.05}
\usepackage{setspace}\setstretch{1.15}
\usepackage{amsmath}
\begin{document}
\showoutput
\showboxdepth3
XXXXXXXXXXXX $\Omega^{(\alpha,N)}_{\textup{brannnnnnnn}}$ XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX $\Omega^{(\alpha,N)}_{\textup{bran}}$ XXXXXXXXXXXXXXXXXXXXXXXXX
\end{document}
您将在日志中看到
...\hbox(10.44443+3.01659)x345.0, glue set - 1.0 []
...\glue(\parskip) 0.0 plus 1.0
...\glue(\baselineskip) 0.33891
...\hbox(10.44443+3.01659)x345.0, glue set 9.70201fil []
这意味着表达式刚好足够小,可以挤进正常基线间距。TeX 在行之间插入的实际跳过是\baselineskip
减去一行的深度和下一行的高度,就0.3pt
在这里。
如果你注释掉amsmath
你会看到
...\hbox(10.44443+5.09993)x345.0, glue set - 1.0 []
...\glue(\parskip) 0.0 plus 1.0
...\glue(\lineskip) 1.0
...\hbox(10.44443+5.09993)x345.0, glue set 9.70201fil []
因此,此处的表达式太高,无法适应正常基线间距,因此此时 TeX 会插入\lineskip
胶水,与\baselinesip
插入固定值(此处为 1pt)不同,胶水会插入以阻止线条碰撞。
通常,保持均匀的行距被认为是一种良好做法,即使有时会导致行距过近。如果行距过近,那么您可以尝试使用\lineskiplimit
TeX 切换到添加胶水来分隔行之前允许的最小间距\lineskip
。默认为0pt
。