Ambiente semelhante ao alinhamento em uma coluna de array

Ambiente semelhante ao alinhamento em uma coluna de array

Tenho um arrayem que uma das colunas é um polinômio e gostaria de alinhar os termos do polinômio para cada linha do array. Meu truque é usar \phantoms em todos os lugares, mas existe uma maneira de fazer isso automaticamente? Por exemplo, se eu pudesse fazer com que essa parte do array funcionasse como algum tipo de alignambiente?

Aqui está um MWE:

\documentclass{article}
\usepackage{amsmath}
\begin{document}

What I have:
\[ \begin{array}{|r|c|}
\hline
S & P(x) \\ 
\hline
9 & x + x^2 + x^3 \\
10 & 3x + x^2 + x^3 \\
11 & x + 10x^3\\
\hline
\end{array} \]

What I want:
\[ \begin{array}{|r|c|}
\hline
S & P(x) \\ 
\hline
9 & \phantom{3}x + x^2 + \phantom{10}x^3 \\
10 & 3x + x^2 + \phantom{10}x^3 \\
11 & \phantom{3}x \phantom{{} + x^2 } + 10x^3\\
\hline
\end{array} \]

\end{document}

O que eu tenho versus o que eu quero

Responder1

Você pode usar mais colunas como

\[ \begin{array}{|r|r@{{}+{}}c@{{}+{}}r|}
\hline
S & \multicolumn{3}{|c|}{P(x)} \\
\hline
9  & x                      & x^2   &x^3 \\
10 & 3x                     & x^2   & x^3 \\
11 &  \mc{x} &       & 10x^3\\
\hline
\end{array} \]

onde \mcé definido para cuidar do alinhamento sem o +sinal sucessor.

Código:

\documentclass{article}
\usepackage{amsmath}
\newlength{\mylen}
\settowidth{\mylen}{${}+{}$}
\newcommand{\mc}[1]{\multicolumn{1}{r@{\hspace{\mylen}}}{#1}}
\begin{document}

What I have:
\[ \begin{array}{|r|c|}
\hline
S & P(x) \\
\hline
9 & x + x^2 + x^3 \\
10 & 3x + x^2 + x^3 \\
11 & x + 10x^3\\
\hline
\end{array} \]

What I want:
\[ \begin{array}{|r|r@{{}+{}}c@{{}+{}}r|}
\hline
S & \multicolumn{3}{|c|}{P(x)} \\
\hline
9  & x                      & x^2   &x^3 \\
10 & 3x                     & x^2   & x^3 \\
11 &  \mc{x} &       & 10x^3\\
\hline
\end{array} \]

\end{document}

insira a descrição da imagem aqui

informação relacionada