以下输出似乎很难在下部序列中查找上部序列中的项目及其对应的项目,因为逗号没有垂直对齐。
\documentclass[preview,border=12pt,varwidth]{standalone}
\usepackage{amsmath}
\begin{document}
\abovedisplayskip=0pt\relax
\begin{align*}
\{a_n\}
&=
\{1^2, 1^2 +2^2, 1^2 +2^2 +3^2, 1^2 +2^2 +3^2 +4^2, \dotsc\}\\
&=
\{1, 5, 14, 30, \dotsc\}
\end{align*}
\end{document}
我想让每个逗号按上下顺序对齐。如何优雅地做到这一点(消耗更少的击键次数)?
答案1
有一些想法alignedat
(因为这只是我正在使用的公式equation
)和一个用于 array
居中对齐的想法,否则需要更多的工作才能在其中一个*align*
环境中使用。
代码
\documentclass[border=12pt,varwidth]{standalone}
\usepackage{amsmath,array}
\begin{document}
\begin{equation}
\begin{alignedat}{5}
\{a_n\} &= \{1^2 &&, 1^2 +2^2 &&, 1^2 +2^2 +3^2 &&, 1^2 +2^2 +3^2 +4^2 &&, \dotsc\} \\
&= \{1 &&, 5 &&, 14 &&, 30 &&, \dotsc\}
\end{alignedat}
\end{equation}
\begin{equation}
\renewcommand*\c{,{}}%
\begin{alignedat}{5}
\{a_n\} &= \{1^2 \c && 1^2 +2^2 \c && 1^2 +2^2 +3^2 \c && 1^2 +2^2 +3^2 +4^2 \c & \dotsc\} \\
&= \{1 \c && 5 \c && 14 \c && 30 \c & \dotsc\}
\end{alignedat}
\end{equation}
\begin{equation}
\renewcommand*\c{,{}}%
\begin{alignedat}{6}
\{a_n\} &= \{& 1^2 \c && 1^2 +2^2 \c && 1^2 +2^2 +3^2 \c && 1^2 +2^2 +3^2 +4^2 \c && \dotsc\} \\
&= \{& 1 \c && 5 \c && 14 \c && 30 \c && \dotsc\}
\end{alignedat}
\end{equation}
\begin{equation}
\begin{array}{@{}r@{} *4{c@{,{}}} l@{}}
\{a_n\} = \{ & 1^2 & 1^2 +2^2 & 1^2 +2^2 +3^2 & 1^2 +2^2 +3^2 +4^2 & \dotsc\} \\[\jot]
= \{ & 1 & 5 & 14 & 30 & \dotsc\}
\end{array}
\end{equation}
\end{document}
输出
答案2
我知道这在严格意义上并没有回答你的问题,但在我看来输出更清楚:
\documentclass[border=12pt,varwidth]{standalone}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\{a_n\} = \{\overbrace{1^2}^1,
\overbrace{1^2+2^2}^5,
\overbrace{1^2 +2^2 +3^2}^{14},
\overbrace{1^2 +2^2 +3^2 +4^2}^{30},\dotsc \}
\end{equation}
\end{document}
答案3
一个比赛?;-)
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\alignedset}[2][l]{%
\vcenter{
\everymath\expandafter{\the\everymath\displaystyle}
\m@th\let\\\@tabularcr\openup1\jot
\ialign{\hfil$##$&${}##{}$\hfil&&
\if#1l\hfilneg\fi\hfil
$##{}$%
\if#1r\hfilneg\fi\hfil
\cr#2\crcr}
}%
}
\makeatother
\begin{document}
\begin{equation}
\alignedset{
\{a_n\} &= \{ & 1^2, & 1^2+2^2, & 1^2+2^2+3^2, & 1^2+2^2+3^2+4^2, & \dotsc \} \\
&= \{ & 1, & 5, & 14, & 30, & \dotsc\}
}
\end{equation}
\begin{equation}
\alignedset[c]{
\{a_n\} &= \{ & 1^2, & 1^2+2^2, & 1^2+2^2+3^2, & 1^2+2^2+3^2+4^2, & \dotsc \} \\
&= \{ & 1, & 5, & 14, & 30, & \dotsc\}
}
\end{equation}
\begin{equation}
\alignedset[r]{
\{a_n\} &= \{ & 1^2, & 1^2+2^2, & 1^2+2^2+3^2, & 1^2+2^2+3^2+4^2, & \dotsc \} \\
&= \{ & 1, & 5, & 14, & 30, & \dotsc\}
}
\end{equation}
\end{document}
答案4
tabstackengine
使用提供的(实验性)包测量对齐
\documentclass[preview,border=12pt,varwidth]{standalone}
\usepackage{amsmath}
\usepackage{tabstackengine}
\stackMath
\begin{document}
\renewcommand\stackalignment{l}
\tabbedstackunder{%
\{a_n\}
&=
\{1^2&, 1^2 +2^2&, 1^2 +2^2 +3^2&, 1^2 +2^2 +3^2 +4^2&, \dotsc\}%
}{%
&=
\{1&, 5&, 14&, 30&, \dotsc\}}
\end{document}
将所有 3 种对齐选择放入一个宏中,将公式间间隙设置为 10pt,将行间间隙设置为 3pt:
\documentclass[preview,border=12pt,varwidth]{standalone}
\usepackage{amsmath}
\usepackage{tabstackengine}
\stackMath
\begin{document}
\setstackgap{S}{10pt}
\renewcommand\stackalignment{l}
\Shortstack{
\tabbedstackunder[3pt]{%
\{a_n\}
&=
\{1^2&, 1^2 +2^2&, 1^2 +2^2 +3^2&, 1^2 +2^2 +3^2 +4^2&,& \dotsc\}%
}{%
&=\{1&, 5&, 14&, 30&,& \dotsc\}}
\\
\renewcommand\stackalignment{c}
\tabbedstackunder[3pt]{%
\{a_n\}
&=&
\{&1^2&,& 1^2 +2^2&,& 1^2 +2^2 +3^2&,& 1^2 +2^2 +3^2 +4^2&,& \dotsc\}%
}{%
&=&\{&1&,& 5&,& 14&,& 30&,& \dotsc\}}
\\
\renewcommand\stackalignment{r}
\tabbedstackunder[3pt]{%
\{a_n\}
=&
\{&1^2,& 1^2 +2^2,& 1^2 +2^2 +3^2,& 1^2 +2^2 +3^2 +4^2,& \dotsc\}%
}{%
=&\{&1,& 5,& 14,& 30,& \dotsc\}}
}
\end{document}