以下是我需要的:我希望 (1) 和 (2) 对齐,前三个等号对齐,接下来的三个等号对齐,并且所有左括号对齐。
(1) x=1+2+3 (by the problem condition)
=3+3 (by sum law)
=6 (same as above)
(2) x+y=(3+4)+(5+6) (by the condition)
=7+11 (by sum law)
=18 (the final result)
我尝试使用 align,但它给出了不同的输出(我知道它不起作用)。你能帮忙吗?谢谢。
\documentclass[12pt]{amsart}
\begin{document}
\begin{align*}
(1) x&=1+2+3 && (\text{by the problem condition})\\
&=3+3 && (\text{by sum law})\\
&=6 && (\text{same as above})\\
(2) x+y&=(3+4)+(5+6) && (\text{by the condition})\\
&=7+11 && (\text{by sum law})\\
&=18 && (\text{the final result})
\end{align*}
\end{document}
答案1
我理解你的格式化目标如下:(i)你这样做不是希望第一组三行中的等号与第二组三行中的等号对齐;并且 (ii) 你确实希望等号对齐之内每组三行。
如果这个解释是正确的,那么下面的代码就可以实现您所寻找的功能。
\documentclass[12pt]{amsart}
\begin{document}
\begin{alignat*}{2}
(1)&\quad
\begin{aligned}[t]
x&=1+2+3 \\
&=3+3 \\
&= 6
\end{aligned}
&\qquad &
\begin{aligned}[t]
&(\text{by the problem condition})\\
&(\text{by sum law})\\
&(\text{same as above})
\end{aligned} \\[\jot]
(2)&\quad
\begin{aligned}[t]
x+y&=(3+4)+(5+6) \\
&=7+11 \\
&=18
\end{aligned}
& &
\begin{aligned}[t]
&(\text{by the condition})\\
&(\text{by sum law})\\
&(\text{the final result})
\end{aligned}
\end{alignat*}
\end{document}
答案2
我们可以在 TeX 原始级别做什么:
\def\hb#1{\hbox{(#1)}}
\halign{\hss#\unskip\quad\hss&\vtop{#}&\quad\vtop{#}\cr
(1) & \halign{$\hfil#$&${}#\hfil$\cr
x &= 1 + 2 + 3 \cr
&= 3 + 3 \cr
&= 6 \cr
} & \hb{by the problem condition}
\hb{by sum law}
\hb{same as above}
\cr \noalign{\medskip}
(2) & \halign{$\hfil#$&${}#\hfil$\cr
x+y &= (3+4)+(5+6) \cr
&= 7+11 \cr
&= 18 \cr
} & \hb{by the condition}
\hb{by sum law}
\hb{the final result} \cr
}
\bye
答案3
\documentclass[12pt]{amsart}
\begin{document}
\begin{alignat*}{3}
& (1) & x &=1+2+3 && (\text{by the problem condition})\\
&& &=3+3 && (\text{by sum law})\\
&& &=6 && (\text{same as above})\\
& (2) &\ x+y&=(3+4)+(5+6) &\quad& (\text{by the condition})\\
&& &=7+11 && (\text{by sum law})\\
&& &=18 && (\text{the final result})
\end{alignat*}
\end{document}