将 \vdots 对齐到 `aligned` 环境的中心

将 \vdots 对齐到 `aligned` 环境的中心

在以下方程组中,我希望垂直点\vdots水平对齐在页面中心。我尝试了gathered嵌套在aligned环境中的环境,如下所示此解决方案,但对齐结果并不理想(见下图和 MWE)。

请注意,我并不想以例如为\vdots中心。=\vdotswithin{=}

感谢您提供任何解决方案。

在此处输入图片描述

\documentclass{extbook}
\usepackage{amsmath}

\begin{document}
    \begin{equation}
        \begin{aligned}
            t_1 l_1(x_1) + t_2 l_1(x_2) + \dots + t_{q+1} l_1(x_{q+1}) &= 0 \\  
            \begin{gathered}        
                \vdots
            \end{gathered} \\
            t_1 l_q(x_1) + t_2 l_q(x_2) + \dots + t_{q+1} l_q(x_{q+1}) &= 0.
        \end{aligned}
    \end{equation}
\end{document}

编辑

@egreg 的回答对于我首先发布的特定示例很有用,但我正在寻找一个通用解决方案,因为我也想对以下方程组做同样的事情:

\begin{align*}
    a_{11}x_1 + \ldots + a_{1n}x_n &= y_1 \\
    &\vdots \\
    a_{n+1,1}x_1 + \ldots + a_{n+1,n}x_n &= y_{n+1}.
\end{align*}

答案1

您可以定义省略前导码并执行两列居中的\cvdots宏。\halign\vdots

\def\cvdots {\omit\span\omit \hfil$\vdots$\hfil}
\begin{align*}
    a_{11}x_1 + \ldots + a_{1n}x_n &= y_1 \\
    \cvdots \\
    a_{n+1,1}x_1 + \ldots + a_{n+1,n}x_n &= y_{n+1}.
\end{align*}

答案2

对于特殊情况,我会欺骗 TeX,让它认为 1 与下标中的 q 具有相同的宽度,因此对齐是自动的。

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\[
\newcommand{\1}{\ooalign{%
  \hphantom{$\scriptstyle q$}\cr
  \hidewidth$\scriptstyle 1$\hidewidth\cr
}}
\begin{gathered}
t_1 l_{\1}(x_1) + t_2 l_{\1}(x_2) + \dots + t_{q+1} l_{\1}(x_{q+1}) = 0 \\  
\vdots \\
t_1 l_q(x_1) + t_2 l_q(x_2) + \dots + t_{q+1} l_q(x_{q+1}) = 0\makebox[0pt][l]{.}
\end{gathered}
\]

\end{document}

尾随标点符号设置在零宽度框中,以保持相同的宽度。

在此处输入图片描述

如果您想要更紧密的排版:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\[
\newcommand{\1}{\ooalign{%
  \hphantom{$\scriptstyle q$}\cr
  \hidewidth$\scriptstyle 1$\hidewidth\cr
}}
\begin{gathered}
t_1 l_{\1}(x_1) + t_2 l_{\1}(x_2) + \dots + t_{q+1} l_{\1}(x_{q+1}) = 0 \\[-6pt]
\vdots \\[-4pt]
t_1 l_q(x_1) + t_2 l_q(x_2) + \dots + t_{q+1} l_q(x_{q+1}) = 0\makebox[0pt][l]{.}
\end{gathered}
\]

\end{document}

在此处输入图片描述

对于“自动”版本,您需要确保测量显示器时不会\multispan受到干扰。

\documentclass{article}
\usepackage{amsmath}

\makeatletter
\def\fixed@vdots{%
  \hbox{\smash{$\vcenter{
    \baselineskip4\p@\lineskiplimit\z@
    \hbox{.}\hbox{.}\hbox{.}
  }$}}\mathstrut
}
\newcommand{\centeredvdots}[1]{%
  \ifmeasuring@\else\multispan{#1}\hfill\fixed@vdots\hfill\fi
}
\makeatother

\begin{document}

\begin{equation}
\begin{aligned}
t_1 l_{1}(x_1) + t_2 l_{1}(x_2) + \dots + t_{q+1} l_{1}(x_{q+1}) &= 0 \\
\centeredvdots{2} \\
t_1 l_q(x_1) + t_2 l_q(x_2) + \dots + t_{q+1} l_q(x_{q+1}) &= 0.
\end{aligned}
\end{equation}

\begin{equation}
\begin{aligned}
a&=b & c&=d \\
\centeredvdots{2} & \centeredvdots{2} \\
x&=y & z&=w \\
\centeredvdots{4} \\
uu&=vv & ccc&=ddd
\end{aligned}
\end{equation}

\end{document}

在此处输入图片描述

相关内容