与对齐相关的问题

与对齐相关的问题

我试图放置 3 个方程式,它们之间有一些点,但我不知道为什么只有第一个 \cdots 是右对齐的,而其他的都是乱七八糟的。这是代码:

\begin{equation}
\begin{aligned}
    (\mathcal{H}_{11}- &S_{11}E_i)c_{1i}+(\mathcal{H}_{12}- &S_{12}E_i)c_{2i}+ &\cdots+(\mathcal{H}_{1n}- &S_{1n}E_i)c_{ni}=0\\
    (\mathcal{H}_{21}- &S_{21}E_i)c_{1i}+(\mathcal{H}_{22}- &S_{22}E_i)c_{2i}+ &\cdots+(\mathcal{H}_{2n}- &S_{2n}E_i)c_{ni}=0\\
                                        &\cdots&\cdots&\cdots&\cdots\\
    (\mathcal{H}_{n1}- &S_{n1}E_i)c_{ni}+(\mathcal{H}_{n2}- &S_{n2}E_i)c_{2i}+ &\cdots+(\mathcal{H}_{nn}- &S_{nn}E_i)c_{ni}=0\\
\label{eq:secular}
\end{aligned}
\end{equation}

非常感谢

编辑:感谢大家的帮助,也许一张关于我想要获得的内容的图片比文字更能表达我想要的意思:

if they are \cdots or \vdots doesn't matter

答案1

\vdots(根据 OP 的更新请求,进行了编辑以提供更多说明)

我不会使用环境,而是aligned使用基本array环境来对齐方程的各个部分。这样,就可以直接对齐所有+=符号以及方程组的其余组成部分。还请观察\vdots第三行中的四个说明。

enter image description here

\documentclass{article}
\usepackage{array}
\begin{document} 
\begin{equation} \label{eq:secular}
\setlength\arraycolsep{0pt}
\renewcommand\arraystretch{1.25}
\begin{array}{*{4}{c >{{}}c<{{}}} c}
(\mathcal{H}_{11}- S_{11}E_i)c_{1i} & + &
   (\mathcal{H}_{12}- S_{12}E_i)c_{2i} & + & 
   \cdots & + &
   (\mathcal{H}_{1n}- S_{1n}E_i)c_{ni} & = & 0\\
(\mathcal{H}_{21}- S_{21}E_i)c_{1i} & + &
   (\mathcal{H}_{22}- S_{22}E_i)c_{2i} & + & 
   \cdots & + &
   (\mathcal{H}_{2n}- S_{2n}E_i)c_{ni}& = & 0\\
\vdots & & \vdots & & \vdots & & \vdots & &  \\
(\mathcal{H}_{n1}- S_{n1}E_i)c_{ni}& + &
   (\mathcal{H}_{n2}- S_{n2}E_i)c_{2i}& + & 
   \cdots& + &
   (\mathcal{H}_{nn}- S_{nn}E_i)c_{ni}& = & 0 \\
\end{array}
\end{equation}
\end{document}

答案2

alignedat您可以使用一些技巧来实现这一点。

  1. 我在本地定义\2提供一个尽可能宽的双索引,nn以便变量之间的对齐将自动进行;宏仅在该环境\2中可用。equation

  2. 我使用低级指令\multispan插入一行点。

完整代码

\documentclass{article}
\usepackage{amsmath,calc}

\begin{document}

\begin{equation}
\label{eq:secular}
\newcommand{\2}[1]{%
  _{\makebox[\widthof{$\scriptstyle nn$}][l]{$\scriptstyle #1$}}%
}
\begin{alignedat}{4}
(\mathcal{H}\2{11}- S\2{11}E_i)c\2{1i}
  &+(\mathcal{H}\2{12}-S\2{12}E_i)c\2{2i}
  &&+\dotsb
  &&+(\mathcal{H}\2{1n}-S\2{1n}E_i)c\2{ni}
  &&=0\\
(\mathcal{H}\2{21}-S\2{21}E_i)c\2{1i}
  &+(\mathcal{H}\2{22}-S\2{22}E_i)c\2{2i}
  &&+\dotsb
  &&+(\mathcal{H}\2{2n}-S\2{2n}E_i)c\2{ni}
  &&=0\\
\multispan{8}{\dotfill}\\[1ex]
%&\dotsb&\dotsb&\dotsb&\dotsb\\
(\mathcal{H}\2{n1}-S\2{n1}E_i)c\2{ni}
  &+(\mathcal{H}\2{n2}-S\2{n2}E_i)c\2{2i}
  &&+\dotsb
  &&+(\mathcal{H}\2{nn}-S\2{nn}E_i)c\2{ni}
  &&=0
\end{alignedat}
\end{equation}

\end{document}

enter image description here

答案3

您也可以使用alignedat环境来做到这一点。我提出了两个代码:第一个代码对齐+=符号,第一个代码对齐所有符号,但代价是空间略微扭曲:

         \documentclass[a4paper, 11pt]{book}
        \usepackage[utf8]{inputenc}
        \usepackage{fourier, erewhon}

        \usepackage{mathtools}

        \begin{document}

\begin{equation}
\begin{alignedat}{4}
    (\mathcal{H}_{11}&-S_{11}E_i)c_{1i} & & +(\mathcal{H}_{12} -S_{12}E_i)c_{2i} & + \cdots & +(\mathcal{H}_{1n} - S_{1n}E_i)c_{ni} & =0\\
    (\mathcal{H}_{21}&-S_{21}E_i)c_{1i} & & +(\mathcal{H}_{22}-S_{22}E_i)c_{2i} & + \cdots & +(\mathcal{H}_{2n}- S_{2n}E_i)c_{ni} & =0\\
     % &\cdots&\cdots&\cdots&\cdots\\
    (\mathcal{H}_{n1}&-S_{n1}E_i)c_{ni} & & +(\mathcal{H}_{n2}-S_{n2}E_i)c_{2i} & +\cdots & +(\mathcal{H}_{nn} - S_{nn}E_i)c_{ni} &= 0
\label{eq:secular}
\end{alignedat}
\end{equation}

\begin{equation}
\begin{alignedat}{6}
    (\mathcal{H}_{11} & -S_{11}E_i)c_{1i} & & {} +(\mathcal{H}_{12} & & {}-S_{12}E_i)c_{2i} &{} + \cdots & +(\mathcal{H}_{1n} && {} - S_{1n}E_i)c_{ni} & =0\\
    (\mathcal{H}_{21} & -S_{21}E_i)c_{1i} & & {} +(\mathcal{H}_{22}& & {}-S_{22}E_i)c_{2i} &{} + \cdots & +(\mathcal{H}_{2n} && {} - S_{2n}E_i)c_{ni} & =0\\
     % &\cdots&\cdots&\cdots&\cdots\\
    (\mathcal{H}_{n1} & -S_{n1}E_i)c_{ni} & & {} +(\mathcal{H}_{n2}& & {}-S_{n2}E_i)c_{2i} &{} + \cdots & +(\mathcal{H}_{nn} && {} - S_{nn}E_i)c_{ni} &= 0 
\label{eq:secular}
\end{alignedat}
\end{equation}

        \end{document} 

enter image description here

相关内容