我有以下 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