Я пытаюсь разложить многочлен таким образом, чтобы коэффициенты одинаковой степени были выровнены, вот так
\begin{alignat*}{6}
f(t)
&={} (t + 1)^4 - (t + 1)^3 +2(t + 1) + 1\\
&={} &t^4 &{}+{} &4t^3 &{}+{} &6t^2 &{}+{} &4t &{}+{} &1\\
& & &{}-{} &t^3 &{}-{} &3t^2 &{}-{} &3t &{}-{} &1\\
& & & & & & &{}+{} &2t &{}+{} &2\\
& & & & & & & & &{}+{} &1
\end{alignat*}
Однако это приводит к следующему
в то время как цель будет в том, чтобы эти строки, начиная со второй, были выровнены с первой.
Я понимаю, что это потому, что у меня недостаточно &
в первой строке, но кажется невозможным разместить некоторые в точном месте, чтобы это было правильно.
Может быть, лучше подойдет другая среда выравнивания?
Мне эта понравилась, потому что я мог выровнять это расширение по коэффициентам, но подойдет и другая, которая даст правильный результат. Или, может быть, к вышесказанному можно добавить какой-нибудь трюк.
Спасибо
решение1
Вот решение, использующее 11-колоночную array
среду.
\documentclass{article}
\usepackage{mathtools} % for '\mathrlap' macro
\usepackage{array} % for '\newcolumntype' macro
\newcolumntype{C}{>{{}}c<{{}}} % for binary and relational operators
\newcolumntype{R}{>{\displaystyle}r} % automatic displaystyle math mode
\newcolumntype{L}{>{\displaystyle}l} % automatic displaystyle math mode
\usepackage{booktabs} % for '\midrule' and '\addlinespace' macros
\begin{document}
\[
\setlength\arraycolsep{0pt}
\renewcommand\arraystretch{1.25}
\begin{array}{ R *{5}{CR} } % 11 columns in all
f(t) &=& \multicolumn{9}{L}{\mathrlap{(t + 1)^4 - (t + 1)^3 + 2(t + 1) + 1}} \\
\addlinespace
&=& t^4 &+& 4t^3 &+& 6t^2 &+& 4t &+& 1 \\
& & &-& t^3 &-& 3t^2 &-& 3t &-& 1 \\
& & & & & & &+& 2t &+& 2 \\
& & & & & & & & &+& 1 \\
\midrule % optional
f(t) &=& t^4 &+& 3t^3 &+& 3t^2 &+& 3t &+& 3 % optional
\end{array}
\]
\end{document}
решение2
Вложить array
внутрь align
, что проще, чем использовать alignedat
.
\documentclass{article}
\usepackage{array}
\usepackage{amsmath}
\begin{document}
\begin{align*}
f(t)
&= (t + 1)^4 - (t + 1)^3 +2(t + 1) + 1 \\
&= \setlength{\arraycolsep}{0pt}
\renewcommand{\arraystretch}{1.5}
\begin{array}[t]{*{4}{r >{{}}c<{{}}}r}
t^4 &+& 4t^3 &+& 6t^2 &+& 4t &+& 1 \\
&-& t^3 &-& 3t^2 &-& 3t &-& 1 \\
& & & & &+& 2t &+& 2 \\
& & & & & & &+& 1
\end{array} \\
&= t^4+3t^3+3t^2+3t+3
\end{align*}
\end{document}
Альтернативный подход с IEEEeqnarray
. Нам просто нужен «фантомный столбец».
\documentclass{article}
\usepackage{IEEEtrantools}
\usepackage{amsmath}
\begin{document}
\begin{IEEEeqnarray*}{r C r C r C r C r C r l}
f(t)
&=& \IEEEeqnarraymulticol{10}{l}{(t + 1)^4 - (t + 1)^3 +2(t + 1) + 1} \\
&=& t^4 &+& 4t^3 &+& 6t^2 &+& 4t &+& 1 \\
& & &-& t^3 &-& 3t^2 &-& 3t &-& 1 \\
& & & & & & &+& 2t &+& 2 \\
& & & & & & & & &+& 1 \\
&=& \IEEEeqnarraymulticol{10}{l}{t^4+3t^3+3t^2+3t+3}
\end{IEEEeqnarray*}
\end{document}
решение3
решение4
Это выравниваеттно не могу сказать, что мне очень нравится результат, можно было бы добавить еще больше &
и выровнять знаки +/-, но не выравнивать термины было бы более читабельно
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{alignat*}{-1}
f(t)
&= &(&t + 1)^4 - &(&t + 1)^3 && + &2(&t + 1) + &1\\
&= &&t^4 &+4&t^3 + &6&t^2 + &4&t + &1\\
& && &-&t^3 - &3&t^2 - &3&t - &1\\
& & & & & & & + &2&t + &2\\
& & & & & & & & & + &1
\end{alignat*}
\end{document}