答案1
使用array
功能。将列间距设置为零并强制 TeX 自动调整二进制关系或操作的间距很简单。
在第二个例子中,我更喜欢这个例子,我还添加了一条规则,你可能会喜欢。
该twocolumn
选项只是为了获得一张较小的图片。
\documentclass[twocolumn]{article}
\usepackage{amsmath,array}
\begin{document}
Right alignment
\[
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.2}
\begin{array}{ r *{5}{ >{{}}c<{{}} r} }
S &=& 1 &+& 2 &+& \cdots &+& 99 &+& 100 \\
S &=& 100 &+& 99 &+& \cdots &+& 2 &+& 1 \\
2S &=& 101 &+& 101 &+& \cdots &+& 101 &+& 101
\end{array}
\]
Center alignment
\[
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.2}
\begin{array}{ r *{5}{ >{{}}c<{{}} c} }
S &=& 1 &+& 2 &+& \cdots &+& 99 &+& 100 \\
S &=& 100 &+& 99 &+& \cdots &+& 2 &+& 1 \\ \cline{3-11}
2S &=& 101 &+& 101 &+& \cdots &+& 101 &+& 101
\end{array}
\]
\end{document}
您可以按如下方式添加行:
\documentclass[twocolumn]{article}
\usepackage{amsmath,array}
\begin{document}
\[
\setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.2}
\begin{array}{ r *{5}{ >{{}}c<{{}} c} }
S &=& 1 &+& 2 &+& \cdots &+& 99 &+& 100 \\
S &=& 100 &+& 99 &+& \cdots &+& 2 &+& 1 \\
2S &=& 101 &+& 101 &+& \cdots &+& 101 &+& 101 \\
2S &=& \multicolumn{9}{l}{101\cdot100} \\[1ex]
S &=& \multicolumn{9}{l}{\!\dfrac{101\cdot100}{2}}
\end{array}
\]
\end{document}
除此之外,唯一的技巧\multicolumn
是\!
在最后一行抵消 TeX 在分数前面添加的细空格。
答案2
这看上去似乎相当“手动”,但实际上最终使用的标记比通过对齐单元格强制对齐要少。
\documentclass{article}
\usepackage{amsmath}
\mathcode`\:="8000
{\catcode`\:\active\gdef:{\phantom{0}}}
\begin{document}
\begin{align*}
S &= ::1 + ::2 + \cdots + :99 + 100 \\
S &= 100 + :99 + \cdots + ::2 + ::1 \\
2S &= 101 + 101 + \cdots + 101 + 101
\end{align*}
\end{document}
答案3
答案4
使用“蛮力” \phantom{}
。
\documentclass[preview]{standalone}
\usepackage{amsmath}
\begin{document}
\abovedisplayskip=0pt\relax
\begin{alignat*}{3}
S &= \phantom{00}1 &+ \phantom{00}2 &+ \cdots &+ \phantom{0}99 &+ 100 \\
S &= 100 &+ \phantom{0}99 &+ \cdots &+ \phantom{00}2 &+ \phantom{00}1\\
2S &= 101 &+ 101 &+ \cdots &+ 101 &+ 101
\end{alignat*}
\end{document}