私は次のコードを使って作業しています:
\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
}
\]