Centralizando elementos dentro de seu espaço alocado no ambiente alinhado(ed)

Centralizando elementos dentro de seu espaço alocado no ambiente alinhado(ed)

No MWE a seguir, tentei usar alignpara garantir que termos com cores semelhantes estivessem localizados um sobre o outro. Estou procurando uma solução que:

  1. Centraliza os termos coloridos em torno de um eixo vertical conjunto, ele próprio centralizado em relação ao espaço horizontal alocado.
  2. Faça com que todo o ambiente alinhado ocupe apenas o espaço horizontal necessário (como no exemplo 2)
  3. Dê a cada equação sua própria tag/rótulo (como no exemplo 1)
  4. Estes servem como um exemplo de muitos, gostaria de evitar ter que especificar manualmente um alinhamento de "esta parte disto para aquela parte daquilo" além do que alignjá se sabe.

Aqui está meu MWE:

\documentclass{article} 
\usepackage{amsmath} 
\usepackage{xcolor} 
\newcommand{\COne}{\color{red}}
\newcommand{\CTwo}{\color{blue}}

\begin{document}
\begin{align}
( \varphi \rightarrow (&{\COne\psi} &\rightarrow {\CTwo\chi} ) )   \\
( \varphi \rightarrow ( &{\COne( \varphi \rightarrow \varphi )} &\rightarrow{\CTwo\varphi} ) )
\end{align}

\begin{equation}
\begin{aligned}
( \varphi \rightarrow (&{\COne\psi} &&\rightarrow {\CTwo\chi} ) )   \\
( \varphi \rightarrow ( &{\COne( \varphi \rightarrow \varphi )} &&\rightarrow{\CTwo\varphi} ) )
\end{aligned}
\end{equation}

\end{document}

Meus esforços até agora

Aqui está aproximadamente o resultado que procuro:

insira a descrição da imagem aqui

Atualizar: A solução de @Werner funciona muito bem, exceto para expressões maiores, ainda estou recebendo "alongamento" não intencional na saída:

\begin{align}
( \varphi \rightarrow (&\eqmakebox[a]{$\COne\psi$} \rightarrow {\CTwo\chi} )  \rightarrow 
 ( ( \varphi \rightarrow &\eqmakebox[b]{$\COne\psi$} ) \rightarrow ( \varphi \rightarrow{\CTwo \chi} ) )  \\
( \varphi \rightarrow ( &\eqmakebox[a]{$\COne( \varphi \rightarrow \varphi )$} \rightarrow  {\CTwo\varphi} ) ) \rightarrow  
( ( \varphi \rightarrow &\eqmakebox[b]{$\COne( \varphi \rightarrow \varphi ) $}) \rightarrow ( \varphi \rightarrow {\CTwo\varphi} ) )
\end{align}

Resultado final: Obrigado @Werner.

\documentclass{article} 
\usepackage{amsmath,eqparbox,xcolor} 
\newcommand{\COne}{\color{red}}
\newcommand{\CTwo}{\color{blue}}

\begin{document}

\begin{alignat}{5}
\varphi \rightarrow (&\eqmakebox[a]{$\COne\psi$} &\rightarrow &{\CTwo\chi} ) &\rightarrow 
( ( \varphi \rightarrow &\eqmakebox[b]{$\COne\psi$} ) \rightarrow ( \varphi \rightarrow{\CTwo \chi} )  \\
\varphi \rightarrow ( &\eqmakebox[a]{$\COne( \varphi \rightarrow \varphi )$} &\rightarrow  &{\CTwo\varphi} ) ) &\rightarrow  
( ( \varphi \rightarrow &\eqmakebox[b]{$\COne( \varphi \rightarrow \varphi ) $}) \rightarrow ( \varphi \rightarrow {\CTwo\varphi} ) 
\end{alignat}


\end{document}

insira a descrição da imagem aqui

Responder1

Defina itens com largura semelhante em uma caixa de largura semelhante usandoeqparboxé \eqmakebox[<tag>][<align>]{<stuff>}. S semelhantes <tag>produzirão caixas de tamanhos semelhantes (em largura, correspondendo ao mais largo <stuff>), onde você <align>também pode alterar o mento (o padrão é centre):

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{amsmath,xcolor,eqparbox}
\newcommand{\COne}{\color{red}}
\newcommand{\CTwo}{\color{blue}}

\begin{document}

\begin{align}
  ( \varphi \rightarrow ( &{\COne\psi} &\rightarrow {\CTwo\chi} ) )   \\
  ( \varphi \rightarrow ( &{\COne( \varphi \rightarrow \varphi )} &\rightarrow{\CTwo\varphi} ) )
\end{align}

\begin{equation}
  \begin{aligned}
  ( \varphi \rightarrow ( &{\COne\psi} &&\rightarrow {\CTwo\chi} ) )   \\
  ( \varphi \rightarrow ( &{\COne( \varphi \rightarrow \varphi )} &&\rightarrow{\CTwo\varphi} ) )
  \end{aligned}
\end{equation}

\begin{align}
  ( \varphi \rightarrow ( &\eqmakebox[psi]{$\COne\psi$} \rightarrow {\CTwo\chi} ) )   \\
  ( \varphi \rightarrow ( &\eqmakebox[psi]{$\COne( \varphi \rightarrow \varphi )$}\rightarrow{\CTwo\varphi} ) )
\end{align}

\end{document}

Compile duas vezes na primeira tentativa, já que a largura mais larga do elemento é gravada .auxe lida durante uma execução subsequente. Quaisquer alterações nos elementos mais amplos <stuff>exigirão execuções adicionais.

informação relacionada