xypic、xymatrix、列内のエントリの配置

xypic、xymatrix、列内のエントリの配置

私は次のコードを使って作業しています:

\documentclass[12pt,letterpaper]{article}
\usepackage[all]{xy}
\begin{document}

\[
\xymatrix
{
                &   A \ar[dd]_{\pi_A}                                   \\
                &   &   **[r] G(A) = G(B)=Z\oplus Z\oplus Z\oplus Z     \\
**[l] 4\beta+ f(\beta) + g(\beta) = &   B \ar[dd]_{\pi_B}               \\
                &   &   **[r] F(B) = F(C)                               \\
**[l] \gamma=   &   C
}
\]
\end{document}

このコードは次の図を作成します。

ここに画像の説明を入力してください

見た目はかなり良いのですが、一番左の列を中央の列にもっと近づけて、ほぼ触れるようにし、一番右の列も中央の列からもっと近づけて、おそらく 1 インチ程度離すようにしたいと思います。

\xymatrixを に変更すると\xymatrix@C=-45pt、かなり良い結果が得られますが、この解決策は私にとっては非常に場当たり的なものに思えます。問題は、列の配置が列の中心線を同じに保ち、列の幅を同じに保ち、エントリを列に割り当てられたスペースで右 (または左) に揃えるのではなく、この中心線に沿って右 (または左) に揃えるように配置していることだと思います。

答え1

こうした方が良いでしょうか?

\[
\hphantom{4\beta+ f(\beta) + g(\beta) ={}}
\xymatrix@R+1pc
{
A \ar[d]_{\pi_A}^{\qquad\textstyle G(A) = G(B)=Z\oplus Z\oplus Z\oplus Z} \\
\llap{$4\beta+ f(\beta) + g(\beta) ={}$}B \ar[d]_{\pi_B}^{\qquad\textstyle F(B) = F(C)} \\
\llap{$\gamma={}$}C
}
\]

ここに画像の説明を入力してください

関連情報