在对齐环境中将元素置于其分配的空间内

在对齐环境中将元素置于其分配的空间内

在以下 MWE 中,我尝试使用来align确保颜色相似的术语一个接一个地位于另一个之上。我正在寻找一种解决方案:

  1. 将彩色术语围绕联合垂直轴居中,该轴本身相对于分配的水平空间居中。
  2. 让整个对齐环境仅占用所需的水平空间(如示例 2 所示)
  3. 为每个方程式赋予自己的标签(如示例 1 所示)
  4. align这些只是众多例子中的一个,我想避免必须手动指定超出已知范围的“从这部分到那部分”的对齐。

这是我的 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}

我迄今的努力

以下是我所期望的大致结果:

在此处输入图片描述

更新:@Werner 的解决方案非常有效,除了较大的表达式外,我仍然在输出中得到意外的“拉伸”:

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

最后结果:谢谢@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}

在此处输入图片描述

答案1

使用以下方法将宽度相同的项目放入宽度相似的框中:eqparbox\eqmakebox[<tag>][<align>]{<stuff>}。类似的<tag>会产生类似大小的框(宽度方向,与最宽的 匹配<stuff>),您<align>也可以更改 ment(默认为centre):

在此处输入图片描述

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

第一次编译两次,因为最宽元素的宽度被写入.aux并在后续运行中读入。对最宽元素内的任何更改<stuff>都将需要额外的运行。

相关内容