在 tikzcd 图的两部分之间添加箭头

在 tikzcd 图的两部分之间添加箭头

我有以下 tikzcd 图,我正尝试在节点 B 和 A/I 之间创建一条线。

我尝试使用两个幻影节点并在它们之间连接一个箭头,但除了箭头应该所在的点之外什么也没有显示。

(另外,由于某种原因,C 和 I 之间的连接线的粗细比 C/I 到 0 的粗)

在此处输入图片描述

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

\begin{document}
    \begin{tikzcd}[column sep=0em,row sep=1em]
        &R\arrow[dl,dash]\arrow[dr,dash] &&&&& R/I\arrow[dl,dash]\arrow[dr,dash]\\
        A\arrow[dr,dash] && B\arrow[dl,dash]  &\phantom{X}\arrow[r,dash]&\phantom{Y}& A/I\arrow[dr,dash] && B/I\arrow[dl,dash]\\
        &C\arrow[d,dash] &&&&& C/I\arrow[d,dash]\\
        &I &&&&& 0
    \end{tikzcd}    
\end{document}

目标是创建此图表: 在此处输入图片描述

答案1

请求的交换图

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

\begin{document}
    \begin{tikzcd}[column sep=0em,row sep=1em]
        &R\arrow[dl,dash]\arrow[dr,dash] &&&&& R/I\arrow[dl,dash]\arrow[dr,dash]\\
        A\arrow[dr,dash] && B\arrow[dl,dash] \arrow[rrr, leftrightarrow] % This is the new bit
        &\phantom{X}\arrow[r,dash]&\phantom{Y}& A/I\arrow[dr,dash] && B/I\arrow[dl,dash]\\
        &C\arrow[d,dash] &&&&& C/I\arrow[d,dash]\\
        &I &&&&& 0
    \end{tikzcd}    
\end{document}

只需添加\arrow[rrr, leftrightarrow]即可获得一个横跨三列并指向左右的箭头。至于一行中的额外厚度,这似乎是 PDF 阅读器相关的问题,请尝试在其他 PDF 阅读器中查看文档。

答案2

还有一个我认为更简单的解决方案,即绘制两个单独的(简单的)交换图,并通过以下方式连接\longleftrightarrow

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

\begin{document}
\[
\tikzcdset{         arrows = dash,
         column sep/normal = 1em,
every matrix/.append style = {name=m},
          }
    \begin{tikzcd}[baseline=(m-2-3.base)]
    &  R \ar[dl]\ar[dr] &           \\
A   \ar[dr]
    &                   & B \ar[dl] \\
    &  C \ar[d]         &           \\
    &  I                &      
    \end{tikzcd}
\longleftrightarrow
    \begin{tikzcd}[baseline=(m-2-3.base)]
    &  R/I \ar[dl]\ar[dr]   &               \\
A/I   \ar[dr]
    &                       & B/I \ar[dl]   \\
    &  C/I \ar[d]           &               \\
    &  O                    &
    \end{tikzcd}
\]    
\end{document}

在此处输入图片描述

或者在图表之间画箭头:

\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{arrows.meta}

\begin{document}
\[
\tikzcdset{         arrows = dash,
         column sep/normal = 1em,
every matrix/.append style = {name=m},
          }
    \begin{tikzcd}[baseline=(m-2-3.base)]
    &  R \ar[dl]\ar[dr] &           \\
A   \ar[dr]
    &                   & B \ar[dl] \\
    &  C \ar[d]         &           \\
    &  I                &      
    \end{tikzcd}
\tikz[>={Straight Barb[scale=1.2]}, baseline=-0.8ex]   \draw[<->] (0,0) -- (1.5,0);
    \begin{tikzcd}[baseline=(m-2-3.base)]
    &  R/I \ar[dl]\ar[dr]   &               \\
A/I   \ar[dr]
    &                       & B/I \ar[dl]   \\
    &  C/I \ar[d]           &               \\
    &  O                    &
    \end{tikzcd}
\]    
\end{document}

在此处输入图片描述

编辑:O替换为0,默认列宽减小为1em

相关内容