我试图放置 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}
非常感谢
编辑:感谢大家的帮助,也许一张关于我想要获得的内容的图片比文字更能表达我想要的意思:
答案1
\vdots
(根据 OP 的更新请求,进行了编辑以提供更多说明)
我不会使用环境,而是aligned
使用基本array
环境来对齐方程的各个部分。这样,就可以直接对齐所有+
和=
符号以及方程组的其余组成部分。还请观察\vdots
第三行中的四个说明。
\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
您可以使用一些技巧来实现这一点。
我在本地定义
\2
提供一个尽可能宽的双索引,nn
以便变量之间的对齐将自动进行;宏仅在该环境\2
中可用。equation
我使用低级指令
\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}
答案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}