\vdotswithin 的问题

\vdotswithin 的问题

我想排版一个方程组,并在以等号为中心的两行之间设置垂直点。点内来自“mathtools”应该做到这一点,但由于某种原因,以下代码

\begin{alignat*}{3}
x_1 &+ x_2 t_1 &= 0\\
x_1 &+ x_2 t_2 &= 0\\
&&\vdotswithin{=}\\
x_1 &+ x_2 t_m &= 0
\end{alignat*}

产生以下输出
在此处输入图片描述

我究竟做错了什么?

答案1

问题是,最后一列设置为右对齐,而不是左对齐。

\documentclass{article}
\usepackage{mathtools}
\begin{document}

\begin{alignat*}{3}
x_1 +{} &&x_2 t_1 &= 0\\
x_1 +{} &&x_2 t_2 &= 0\\
&&&\vdotswithin{=}\\
x_1 + {}&&x_2 t_m &= 0
\end{alignat*}

\end{document}

在此处输入图片描述

答案2

我会这样做:

\documentclass{article}
\usepackage{mathtools}

\begin{document}

\begin{alignat*}{2}
x_1 &+ x_2 t_1 &&= 0\\
x_1 &+ x_2 t_2 &&= 0\\
    &          && \vdotswithin{=} \\
x_1 &+ x_2 t_m &&= 0
\end{alignat*}

\end{document}

截屏

&每次在某个环境中有 时align,对齐类型都会在左对齐和右对齐之间切换。第一列始终是右对齐。因此,此处的列对齐分别为:右对齐、左对齐、右对齐和左对齐。

然后,关于的强制参数alignatamsmath文档(amsldoc.pdf)说:

对齐文档

这里,每行有三个&,因此传递给的正确参数alignat是 (3+1)/2 = 2,而不是 3。这是 (右、左) 列对的数量。

如果你想让点更接近等号,我相信一种方法应该是:

\documentclass{article}
\usepackage{mathtools}

\begin{document}

\begin{alignat*}{2}
x_1 &+ x_2 t_1 &&= 0\\
x_1 &+ x_2 t_2 &&= 0\\
\MTFlushSpaceAbove
    &          && \vdotswithin{=}
\MTFlushSpaceBelow
x_1 &+ x_2 t_m &&= 0
\end{alignat*}

\end{document}

截屏

相关内容