我无法找到有关如何使用\compositemap
xypic 的 2cell 功能的详细说明,我想制作(相对简单的)粘贴图表。特别是,我想排版晶须状操作,其中交换正方形的顶点之间有一个对角双箭头。
另外,在 LyX 中,有没有办法反转 xypic 中 2cells 中双箭头的方向?
救命啊!
答案1
我也推荐tikz-cd
。不过这里有一个 Xy-pic 版本。
\documentclass{article}
\usepackage{amsmath}
\usepackage[all,cmtip]{xy}
\begin{document}
\[
\begin{gathered}
\xymatrix@C+3em@R+3em{
V_1 \ar[r]^{\rho_1(g)} \ar[d]_{\phi} &
V_1 \ar[r]^{\rho_1(g')} \ar[d]^{\phi} &
V_1 \ar[d]^{\phi} \\
V_2 \ar[r]_{\rho_2(g)} \ar@{=>}[ur]^{\phi(g)} &
V_2 \ar[r]_{\rho_2(g')} \ar@{=>}[ur]^{\phi(g')} &
V_2
}
\end{gathered}
=
\begin{gathered}
\xymatrix@C+3em@R+3em{
V_1 \ar[r]^{\rho_1(g'g)} \ar[d]_{\phi} &
V_1 \ar[d]^{\phi} \\
V_2 \ar[r]_{\rho_2(g'g)} \ar@{=>}[ur]^{\phi(g'g)} &
V_2
}
\end{gathered}
\]
\end{document}
这是带有缩短箭头的
\documentclass{article}
\usepackage{amsmath}
\usepackage[all,cmtip,2cell]{xy}
\newdir{S}{{}*!/-4em/@{=}}
\newdir{>S}{!/-4em/@{}*@{=>}}
\begin{document}
\[
\begin{gathered}
\xymatrix@C+3em@R+3em{
V_1 \ar[r]^{\rho_1(g)} \ar[d]_{\phi} &
V_1 \ar[r]^{\rho_1(g')} \ar[d]^{\phi} &
V_1 \ar[d]^{\phi} \\
V_2 \ar[r]_{\rho_2(g)} \ar@2{S->S}[ur]^{\phi(g)} &
V_2 \ar[r]_{\rho_2(g')} \ar@2{S->S}[ur]^{\phi(g')} &
V_2
}
\end{gathered}
=
\begin{gathered}
\xymatrix@C+3em@R+3em{
V_1 \ar[r]^{\rho_1(g'g)} \ar[d]_{\phi} &
V_1 \ar[d]^{\phi} \\
V_2 \ar[r]_{\rho_2(g'g)} \ar@2{S->S}[ur]^{\phi(g'g)} &
V_2
}
\end{gathered}
\]
\end{document}
答案2
我知道你特别要求xy-pic
解决方案,但是,这里有一个可能性,使用更现代、更强大的tikz-cd
包裹:
代码:
% 虽然你明确要求使用 xy 解决方案,但可以使用更现代、更强大的tikz-cd
包裹:
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=large,row sep=large]
V_{1}
\arrow[r,"\rho_{1}(g)"]
\arrow[d,swap,"\phi"] &
V_{1}
\arrow[r,"\rho_{1}(g')"]
\arrow[d,swap,"\phi"] &
V_{1}
\arrow[d,swap,"\phi"] &
V_{1}
\arrow[r,"\rho_{1}(g'g)"]
\arrow[d,swap,"\phi"] &
V_{1}
\arrow[d,swap,"\phi"]
\\
V_{2}
\arrow[r,swap,"\rho_{2}(g)"]
\arrow[ur,Rightarrow,"\phi(g)"] &
V_{2}
\arrow[r,swap,"\rho_{2}(g')"]
\arrow[ur,Rightarrow,"\phi(g')"] &
V_{2}
\arrow[ur, phantom, "{=}", midway] &
V_{2}
\arrow[r,swap,"\rho_{2}(g'g)"]
\arrow[ur,Rightarrow,"\phi(g'g)"] &
V_{2}
\end{tikzcd}
\end{document}
答案3
这是我要做的,它与其他示例不同:
\documentclass{article}
\usepackage{amsmath}
\usepackage[all,cmtip]{xy}
\begin{document}
\[
\vcenter{\hbox{
\xymatrix@!0@=20mm{
V_1\ar[r]^{\rho_1(g)}\ar[d]_{\phi}\xtwocell[rd]{}<>{^\phi(g)\quad}&
V_1\ar[r]^{\rho_1(g')}\ar[d]_{\phi}\xtwocell[rd]{}<>{^\phi(g')\quad\ }&
V_1\ar[d]^{\phi}\\
V_2\ar[r]_{\rho_2(g)}&
V_2\ar[r]_{\rho_2(g')}&
V_2
}
}}
=
\vcenter{\hbox{
\xymatrix@!0@=20mm{
V_1\ar[r]^{\rho_1(g'g)}\ar[d]_{\phi}\xtwocell[rd]{}<>{^\phi(g'g)\qquad}&
V_1\ar[d]^{\phi}\\
V_2\ar[r]_{\rho_2(g'g)}&
V_2
}
}}
\]
\end{document}
您也可以写\drtwocell<\omit>{^\phi(g)\quad}
而不是\xtwocell[rd]{}<>{^\phi(g)\quad}
但第二种方法的优点是它可以采取任何方向,而第一种方法虽然更简单,但您只有\··twocell
。至于反转两个单元格中的箭头,^
其中的符号可以完成这项工作。空白\quad
是调整标签位置的解决方法,否则标签位置会与 2 单元格重叠。并且\vcenter{\hbox{...}}
将 xymatrix 的原点更改为框的中心。