我搜索并找到了解决我在这里遇到的问题的方法:水平对齐,但现在我有一个后续问题(由于我的名气不大,所以无法在此发表评论):
答案中的代码是
\usepackage{amsmath}
BEFORE
\begin{equation*}
\renewcommand\arraystretch{1.5} % mimic wider spacing of align environment
\begin{array}{@{} r@{}c@{}l @{}}
V & \overset{\textnormal{def}}{=} & R(\delta) \\
& \overset{ \{ 1.2.3 \} }{=} & \delta(a) R(a)
\end{array}
\end{equation*}
这看起来不错。但是,当我删除所有@{}
内容时,它看起来就不一样了:
AFTER
\begin{equation*}
\renewcommand\arraystretch{1.5}
\begin{array}{rcl}
V & \overset{\textnormal{def}}{=} & R(\delta) \\
& \overset{ \{ 1.2.3 \} }{=} & \delta(a) R(a)
\end{array}
\end{equation*}
这是什么@{}
意思?你能解释一下区别在哪里吗?我认为,只要\begin{array}{rcl}
得到完全相同的输出就足够了。
图片:
答案1
最好使用专为对齐显示方程式而设计的环境,例如align
来自amsmath
(它将设置显示数学模式并在周围放置正确的空间=
。
array
是为矩阵设计的,并将其内容设置为内联数学模式,并且并未针对对齐单个方程进行优化。
\begin{array}{rcl}
意味着有三列表格,但每列\tabcolsep
两侧都有空格(填充),因此2\tabcolsep
每列之间都有。
@{hello}
取代tabcolsep 由提供的文本组成,因此这将hello
在每一行中写入。因此@{}
具有删除空格的效果2\tabcolsep
。
因此,间距更小,但与中缀位置相比,r@{}c@{}l
两者提供的空间都更小=
\begin{align*}
V & \overset{\mathrm{def}}{=} R(\delta) \\
& \overset{ \{ 1.2.3 \} }{=} \delta(a) R(a)
\end{align*}