%E7%92%B0%E5%A2%83%E4%B8%AD%E5%B0%87%E5%85%83%E7%B4%A0%E5%9C%A8%E5%85%B6%E5%88%86%E9%85%8D%E7%9A%84%E7%A9%BA%E9%96%93%E5%85%A7%E5%B1%85%E4%B8%AD.png)
在下面的 MWE 中,我嘗試使用它align
來確保相似顏色的術語位於另一個之上。我正在尋找一個解決方案:
- 將彩色術語圍繞聯合垂直軸居中,該軸本身相對於分配的水平空間居中。
- 讓整個對齊環境僅佔用所需的水平空間(如範例 2 所示)
- 為每個方程式賦予自己的標籤/標籤(如範例 1 所示)
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>
s 將產生類似大小的框(寬度方向,匹配最寬的<stuff>
),您也可以在其中更改<align>
ment (預設為c
entre ):
\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>
需要額外的運行。