![对齐会产生不需要的空白](https://linux22.com/image/469820/%E5%AF%B9%E9%BD%90%E4%BC%9A%E4%BA%A7%E7%94%9F%E4%B8%8D%E9%9C%80%E8%A6%81%E7%9A%84%E7%A9%BA%E7%99%BD.png)
我想展示范德蒙多项式。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$$\begin{aligned}
\Delta=(X_4-X_3)&(X_4-X_2)&(X_4-X_1)\\
&(X_3-X_2)&(X_3-X_1)\\
& &(X_2-X1)
\end{aligned}$$
\end{document}
但是,它会插入不需要的空白。
我该如何解决这个问题?
答案1
aligned
以及任何其他类似 align 的环境,其创建的列与tabular
环境类似。每列由 分隔&
,每行以 结尾\\
。列中的对齐方式从右侧开始在右侧和左侧之间交替。此外,align
和aligned
在每隔一列或成对的组之间创建小空间。
在您的情况下,最后一列落入下一组,因此有额外的空间,并且它与另一部分右对齐,所以您也可以期待一些微小的额外空间。
您可以使用align
没有任何组的环境或&
右对齐整个内容
\begin{align*}
\Delta = (X_4-X_3)(X_4-X_2)(X_4-X_1) \\
(X_3-X_2)(X_3-X_1) \\
(X_2-X_1)
\end{align*}
您还可以使用alignat*
或它的对应项alignedat
来消除组之间的额外间距。然后,double&&
将使每个单元格保持右对齐。注意,alignat
采用强制参数n
来指定成对列的组数。通常,公式四舍五入n/2
到下一个整数,其中n
表示列数。还要注意{}
后面的额外内容=
。这是为了让 LaTeX 在运算符周围添加标准空格
\begin{alignat*}{4}
\Delta &={} &(X_4-X_3)&&(X_4-X_2)&&(X_4-X_1) \\
& & &&(X_3-X_2)&&(X_3-X_1) \\
& & && &&(X_2-X_1)
\end{alignat*}
编辑。我应该指出使用align
类似环境时与垂直间距相关的问题。请参阅这个答案了解详情。
以下是两个示例的填充代码
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
\Delta = (X_4-X_3)(X_4-X_2)(X_4-X_1) \\
(X_3-X_2)(X_3-X_1) \\
(X_2-X_1)
\end{align*}
\begin{alignat*}{4}
\Delta &={} &(X_4-X_3)&&(X_4-X_2)&&(X_4-X_1) \\
& & &&(X_3-X_2)&&(X_3-X_1) \\
& & && &&(X_2-X_1)
\end{alignat*}
\end{document}
答案2
您aligned
可以拥有几对右对齐和左对齐的列,并且每对之间都有空格。
您可以利用以下事实:括号内的表达式都具有相同的宽度,并且第一列aligned
是右对齐的,因此对齐将自动进行
\[
\begin{aligned}
\Delta=(X_4-X_3)(X_4-X_2)(X_4-X_1)\\
(X_3-X_2)(X_3-X_1)\\
(X_2-X_1)
\end{aligned}
\]
但请记住,$$
永远不要在 LaTeX 环境中使用document
。如果您知道自己在做什么,那么在某些情况下可以使用 来定义环境$$
,但这需要至少阅读 TeXbook 十遍。
完整的示例,其中我添加了比较以align*
表明您应该aligned
尽可能地使用。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
You can exploit the fact that the parenthesized expressions
all have the same width and that the first column in
\texttt{aligned} is right aligned, so alignment will be
automatic
\[
\begin{aligned}
\Delta=(X_4-X_3)(X_4-X_2)(X_4-X_1)\\
(X_3-X_2)(X_3-X_1)\\
(X_2-X_1)
\end{aligned}
\]
but please remember that \verb|$$| is never to be used
in a \LaTeX\ \texttt{document} environment. If you know
what you're doing, there are selected situations where
an environment may be defined using \verb|$$|, but this
requires having read the \TeX book at least ten times.
You can exploit the fact that the parenthesized expressions
all have the same width and that the first column in
\texttt{align*} is right aligned, so alignment will be
automatic
\begin{align*}
\Delta=(X_4-X_3)(X_4-X_2)(X_4-X_1)\\
(X_3-X_2)(X_3-X_1)\\
(X_2-X_1)
\end{align*}
but you can notice a difference with the previous display
in that the vertical spacing is bigger here.
\end{document}
alignedat
如果您无法确定对象的自然宽度,请使用多个对齐点。这也会创建右对齐和左对齐的列对,但不会在它们之间添加任何空间。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
You can also use \texttt{alignedat}, but it's really
overkill
\[
\begin{alignedat}{3}
\Delta=(X_4-X_3)&&(X_4-X_2)&&(X_4-X_1)\\
&&(X_3-X_2)&&(X_3-X_1)\\
&& &&(X_2-X_1)
\end{alignedat}
\]
\end{document}