Среда, подобная выравниванию, в столбце массива

Среда, подобная выравниванию, в столбце массива

У меня есть , arrayв котором один из столбцов является многочленом, и я хотел бы выровнять члены многочлена для каждой строки массива. Мой хак — использовать \phantoms везде, но есть ли способ сделать это автоматически? Например, если бы я мог заставить эту часть массива действовать как некую alignсреду?

Вот 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}

Что у меня есть против того, что я хочу

решение1

Вы можете использовать больше столбцов, например

\[ \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} \]

где \mcопределено, чтобы обеспечить выравнивание без последующего +знака.

Код:

\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}

введите описание изображения здесь

Связанный контент