在正确的位置打洞(xypics)

在正确的位置打洞(xypics)

我需要一些帮助,以便将孔放在正确的位置。以下是图表:

\xymatrix { \{\iota\} \sqcup A^0 \ar@{->}[rddd]\ar@{->}[dd]_-{\bigsqcup\limits_{\alpha\in A^0} g_\alpha} \ar@{->}[rr]^-{} && \{\iota\} \sqcup A \ar@{->}[rddd]^/20pt/{\rho^{\{\iota\}}(f)} \ar@{->}[rr]^-{\phi} \ar@{->}[dd]_-{} && X \ar@{->}[rdrdd]^-{g}  \\  && &&  \\ \bigsqcup\limits_{\alpha\in A^0} P_\alpha \ar@{->}[rddd]_-{\subset} \ar@{->}[rr]^-{}|!{[r]}\hole && \widehat{A}\ar@{-->}[rddd]_/10pt/{\exists !} \ar@{-->}[rruu]^-{\exists !} && \\ &\{\iota\} \sqcup B^0 \ar@{->}[dd]^-{\bigsqcup\limits_{\beta\in B^0} g_\beta} \ar@{->}[rr]^-{} && \{\iota\} \sqcup B \ar@{->}[rrr]^-{\psi} \ar@{->}[dd]_-{} &&& Y \\  &&& && \\ &\bigsqcup\limits_{\beta\in B^0} P_\beta \ar@{->}[rr]^-{} && \widehat{B} \ar@{-->}[rrruu]^-{\exists !} && }

在此处输入图片描述

我想推动左边的洞,使其位于从 ${\iota} \sqcup A^0$ 到 ${\iota} \sqcup B^0$ 的箭头下方。我不知道该怎么做。谢谢你的帮助。

答案1

在 中xy-matrix,您可以使用括号指定孔(或标签)沿箭头的距离,因此\ar[r]|(0.5)\hole将孔放置在箭头的一半处,\ar[r]|(0.9)\hole将其放置在箭头的十分之九处,依此类推。经过反复试验,确定在本例中,它应该是\ar@{->}[rr]^-{}|(0.315)\hole

这是完整的图表。

\xymatrix {
    \{\iota\} \sqcup A^0 \ar@{->}[rddd]
                         \ar@{->}[dd]_-{\bigsqcup\limits_{\alpha\in A^0} g_\alpha}
                         \ar@{->}[rr]^-{}
    && \{\iota\} \sqcup A \ar@{->}[rddd]^/20pt/{\rho^{\{\iota\}}(f)} 
                          \ar@{->}[rr]^-{\phi}
                          \ar@{->}[dd]_-{}
    && X \ar@{->}[rdrdd]^-{g} \\
    && && \\
    \bigsqcup\limits_{\alpha\in A^0} P_\alpha \ar@{->}[rddd]_-{\subset}
                                              \ar@{->}[rr]^-{}|(0.315)\hole % here
    && \widehat{A} \ar@{-->}[rddd]_/10pt/{\exists !}
                   \ar@{-->}[rruu]^-{\exists !} && \\
    &\{\iota\} \sqcup B^0 \ar@{->}[dd]^-{\bigsqcup\limits_{\beta\in B^0} g_\beta}
                          \ar@{->}[rr]^-{}
    && \{\iota\} \sqcup B \ar@{->}[rrr]^-{\psi}
                          \ar@{->}[dd]_-{} &&& \\
    &&& && \\
    &\bigsqcup\limits_{\beta\in B^0} P_\beta \ar@{->}[rr]^-{}
    && \widehat{B} \ar@{-->}[rrruu]^-{\exists !} &&
}

相关的 TeX.SX 文章:12

(最后,这是一个小问题,但\ar没有@{}默认值\ar@{->},这可以节省您的一些输入。同样,您不需要用^{}或来装饰_{},因为如果为空,它们不会执行任何操作。)

答案2

替代方法tikz-cd:交叉很容易,有时只需要稍后画一个箭头。

为了节点,需要进行一些调整才能获得平行箭头。

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}[column sep=1.5em]
\{\iota\} \sqcup A^0
  \arrow[dd,swap,"\bigsqcup\limits_{\alpha\in A^0} g_\alpha"]
%  \arrow[rddd]% later, for crossing over
  \arrow[rr] &&
\{\iota\} \sqcup A
  \arrow[dd]
%  \arrow[rddd,"\rho^{\{\iota\}}(f)"]% later, for crossing over
  \arrow[rr,"\phi"] &&
X
  \arrow[rrddd,xshift=-.4em,end anchor={[xshift=.4em]north},"g"] \\ \\
\bigsqcup\limits_{\alpha\in A^0} P_\alpha
  \arrow[rddd,swap,"\subset"]
  \arrow[rr] &&
\widehat{A}
  \arrow[rddd,dashed,swap,pos=0.25,"\exists!"]
  \arrow[rruu,dashed,"\exists!"] \\
&\{\iota\} \sqcup B^0
  \arrow[luuu,<-,crossing over]% reversed!
  \arrow[dd,"\bigsqcup\limits_{\beta\in B^0} g_\beta"]
  \arrow[rr,crossing over] &&
\{\iota\} \sqcup B
  \arrow[luuu,<-,crossing over,swap,pos=0.3,"\rho^{\{\iota\}}(f)"]% reversed!
  \arrow[rrr,"\psi"]
  \arrow[dd] &&&
Y \\ \\
&\bigsqcup\limits_{\beta\in B^0} P_\beta
  \arrow[rr] &&
\widehat{B}
  \arrow[rrruu,dashed,"\exists!"]
\end{tikzcd}

\end{document}

在此处输入图片描述

答案3

除了 egreg 的解决方案之外,这里还有一个非硬编码的更正,用于获得平行箭头。我还稍微改变了注释的方式,以显示可能性。选择你喜欢的方式。

% arara: pdflatex

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}[column sep={15ex,between origins}, row sep={5em,between origins}]
    \{\iota\} \sqcup A^0 \arrow{d}[swap]{\bigsqcup\limits_{\alpha\in A^0} g_\alpha} \arrow{rr} 
    & &[-2.5em]
    \{\iota\} \sqcup A \arrow{d}\arrow{rr}{\phi} 
    & &[-5em]
    X \arrow{rdd}{g} 
    \\
    \bigsqcup\limits_{\alpha\in A^0} P_\alpha \arrow{rdd}[swap]{\subset}\arrow{rr} 
    & & 
    \widehat{A} \arrow[dashed]{rdd}[swap,pos=.25]{\exists!}\arrow[dashed]{rru}{\exists!} 
    \\
    &
    \{\iota\} \sqcup B^0 \arrow[leftarrow,crossing over]{luu}\arrow{d}{\bigsqcup\limits_{\beta\in B^0} g_\beta}\arrow[crossing over]{rr}
    & &
    \{\iota\} \sqcup B \arrow[leftarrow,crossing over]{luu}[swap,pos=0.3]{\rho^{\{\iota\}}(f)}\arrow{rr}{\psi}\arrow{d}
    & &
    Y 
    \\
    &
    \bigsqcup\limits_{\beta\in B^0} P_\beta \arrow{rr} 
    & &
    \widehat{B} \arrow[dashed]{rru}{\exists!}
    & &
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

相关内容