我正在使用以下代码:
\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}
此代码创建下图:
它看起来相当不错,只是我希望最左边的列更近一些,几乎触及中心列,并且最右边的列更近一些,但可能距离中心列一英寸左右。
\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
}
\]