%E7%92%B0%E5%A2%83%E5%86%85%E3%81%AE%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%89%E3%82%8C%E3%81%9F%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E5%86%85%E3%81%A7%E8%A6%81%E7%B4%A0%E3%82%92%E4%B8%AD%E5%A4%AE%E6%8F%83%E3%81%88%E3%81%99%E3%82%8B.png)
align
次の MWE では、同様の色の用語が互いに重なるようにするために使用してみました。次のような解決策を探しています。
- 割り当てられた水平スペースを基準にして、色付きの用語を共同垂直軸の周囲に中央揃えします。
- 整列した環境全体が、必要な水平方向のスペースのみを占めるようにします(例2を参照)。
- 各方程式に独自のタグ/ラベルを付ける(例1のように)
- これらは、多くの例の 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>
は、同様のサイズのボックス (幅方向、最も広い に一致<stuff>
) を生成します。ここで、 ment も変更できます<align>
(デフォルトは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
、その後の実行中に読み込まれるため、最初の実行では 2 回コンパイルします。最も広い要素内の要素を変更する場合は、<stuff>
追加の実行が必要になります。