答案1
这很简单:
\documentclass{article}
\usepackage{amsmath}
\usepackage[all,cmtip]{xy}
\begin{document}
\[
\xymatrix@R+1pc@C+1pc{
E \ar[r]^*{e} & X \ar[r]<4pt>^*{s} \ar[r]<-4pt>_*{t} & Y \\
Z \ar[u]<4pt>^*{\gamma_1} \ar[u]<-4pt>_*{\gamma_2}
\ar[ur]_*{e \circ \gamma_1 = e \circ \gamma_2}
}
\]
\end{document}
我@R+1pc
告诉 Xy-pic 将行间距增加 1pc(12pt);同样,@C+1pc
增加列间距。使用以下命令可获得相同的结果
\xymatrix@+1pc{
这会将设置应用于行间距和列间距。单独指定它们可以实现更精细的控制。
注意你应该使用\[...\]
而不是$$
,请参阅为什么 \[ ... \] 比 $$ ... $$ 更可取?您也不需要任何xy
环境。
相同之处tikz-cd
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}[column sep=3em,row sep=3em]
E \arrow[r,"e"] & X \arrow[r,shift left=.7ex,"s"] \arrow[r,shift right=.7ex,swap,"t"] & Y
\\
Z \arrow[u,shift left=.7ex,"\gamma_1"] \arrow[u,shift right=.7ex,swap,"\gamma_2"]
\arrow[ur,swap,"e \circ \gamma_1 = e \circ \gamma_2"]
\end{tikzcd}
\]
\end{document}
答案2
只有通过增大物体间的距离才能使箭头变得更长。
您可以通过指定例如来使矩阵更大\xymatrix@=2cm{
。您还可以指定不同的行和列分隔。
或者在其中放入虚拟条目以使一些箭头变大:
\begin{xy}\xymatrix@=1cm{
E
\ar[rr]^*{e}
&&
X
\ar[r]<4pt>^*{s}
\ar[r]<-4pt>_*{t}
&
Y \\
Z
\ar[u]<4pt>^*{\gamma_1}
\ar[u]<-4pt>_*{\gamma_2}
\ar[urr]_*{e \circ \gamma_1 = e \circ \gamma_2}
}\end{xy}
顺便说一句,在 LaTeX 中您应该使用\[...\]
而不是$$...$$
。