对齐/排列方程式 - 解释选项

对齐/排列方程式 - 解释选项

我搜索并找到了解决我在这里遇到的问题的方法:水平对齐,但现在我有一个后续问题(由于我的名气不大,所以无法在此发表评论):

答案中的代码是

\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*}

相关内容