Entorno similar a alineación en una columna de matriz

Entorno similar a alineación en una columna de matriz

Tengo un caso arrayen el que una de las columnas es un polinomio y me gustaría alinear los términos del polinomio para cada fila de la matriz. Mi truco es usar \phantoms en todas partes, pero ¿hay alguna manera de hacerlo automáticamente? Por ejemplo, ¿si pudiera hacer que esta parte de la matriz actuara como una especie de alignentorno?

Aquí hay un 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}

Lo que tengo versus lo que quiero

Respuesta1

Puedes usar más columnas 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} \]

donde \mcse define para cuidar la alineación sin el +signo sucesivo.

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}

ingrese la descripción de la imagen aquí

información relacionada