在 LaTeX 中,\substack
(需要 amsmath
宏包) 和 \atop
都用于创建多行内容(如多行的分子、分母、求和符号上下限等)。强烈推荐使用 \substack
而避免使用 \atop
,主要有以下几个原因:
-
间距问题 (Spacing):
-
\atop
只是简单地将两行堆叠在一起,不提供任何额外的行间距。这通常导致两行内容过于拥挤,尤其是当行中包含\sum
,\int
或字母如g
,y
等有下伸部分或上伸部分时,可读性很差。 -
\substack
会自动添加合理的行间距 (\arraystretch
),使得多行内容看起来更清晰、更专业。
-
-
与大型运算符的兼容性 (Compatibility with Large Operators):
-
\substack
是专门设计用于放置在大运算符(如\sum
,\prod
,\int
,\bigcup
等)的上方或下方 (\limits
模式下) 的。它能正确处理与运算符本身的间距和对齐。 -
\atop
在这种场景下通常会产生不合适的间距,看起来不协调。
-
-
可读性和语义清晰 (Readability and Semantics):
-
\substack{ ... \\ ... }
的语法非常清晰直观,明确表示创建的是一个子堆栈。 -
{ ... \atop ... }
的语法相对晦涩,尤其是对于新手,不如\substack
意图明确。
-
-
避免与组合数混淆 (Avoiding Confusion with Binomial Coefficients):
-
\atop
曾经是(现在不推荐)用来手动编写二项式系数\binom{n}{k}
的一种方式(如{n \atop k}
)。使用\substack
可以避免这种潜在的视觉混淆,因为\binom
是专门用于二项式系数的命令。
-
示例对比:
\documentclass{article}
\usepackage{amsmath} % 必需 for \substack
\begin{document}% 使用 \atop (不推荐)
\[
\sum_{1 \le i \le m \atop 1 \le j \le n} X_{i,j} \quad \text{或} \quad \frac{\text{Very long numerator} \atop \text{with two lines}}{\text{denominator}}
\]% 使用 \substack (推荐)
\[
\sum_{\substack{1 \le i \le m \\ 1 \le j \le n}} X_{i,j} \quad \text{或} \quad \frac{\substack{\text{Very long numerator} \\ \text{with two lines}}}{\text{denominator}}
\]\end{document}
观察效果:
-
求和符号下的条件:
-
\atop
版本:两行1 \le i \le m
和1 \le j \le n
会紧紧贴在一起,几乎无法辨认行间分隔。 -
\substack
版本:两行之间有清晰、合适的间距,易于阅读。
-
-
多行分数:
-
\atop
版本:分子中的两行长文本会挤在一起,行间距极小,严重影响可读性。 -
\substack
版本:分子中的两行文本间距合理,清晰可辨。
-
结论:
\substack
在排版质量、可读性、功能性和语义清晰度上都显著优于 \atop
。\atop
是一个比较原始的命令,在现代 LaTeX 排版(尤其是使用 amsmath
宏包时)已被视为过时且不推荐使用。
最佳实践:
-
总是加载
amsmath
宏包 (\usepackage{amsmath}
)。 -
需要在大运算符下放置多行条件或多行分数分子/分母时,总是使用
\substack{}
。 -
编写二项式系数时,使用专门的
\binom{n}{k}
命令。 -
完全避免使用
\atop
。
因此,推荐 \substack
而不使用 \atop
的根本原因在于:\substack
能产生更专业、更清晰、更具可读性的排版效果,并且是现代 LaTeX 数学排版的标准做法。