绘制矩形交换图

绘制矩形交换图

我知道如何创建矩形交换图,例如

\begin{tikzcd}
A \arrow[r, "\phi"] \arrow[d, red]
& B \arrow[d, "\psi" red] \\
C \arrow[r, red, "\eta" blue]
& D
\end{tikzcd}

将创造

在此处输入图片描述

但我想画出以下内容

在此处输入图片描述

请建议如何做到这一点。

答案1

原理其实是一样的。将图表看作一个 4×3 矩阵。第一行KF'第二列中,第一列和第三列中没有任何内容。第二行第一列和第三列中分别有 和KF'第三行和第四行第二列中有 和K\cup F'F第一列和第三列中没有任何内容。

有几种可能的方法可以将||置于线的顶部。一种方法是简单地将带有 的标签置于||线上,即, "||"{anchor=center,sloped}。这里的anchor=center表示标签置于线的顶部,而不是线的旁边(默认),sloped表示节点旋转以匹配线的角度。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}
        & KF' 
          \arrow[dl, dash]
          \arrow[dr, dash, "||"{anchor=center,sloped}] \\
 K \arrow[dr, dash, "||"{anchor=center,sloped}] & & 
 F' \arrow[dl, dash] \\
        & K\cap F' \arrow[d, dash] \\
        & F
\end{tikzcd}
\end{document}

答案2

在此处输入图片描述

\documentclass[a4paper,12pt]{article}
\usepackage{tikz-cd}
\usetikzlibrary{decorations.markings}
\tikzset{
  doubleline/.style = {decoration = {markings, mark = at position 0.5 with { \node[transform shape, xscale = .9, yscale=.5] {//}; } }, postaction = {decorate} },
}
\begin{document}
\begin{tikzcd}
 &  & KF' \arrow[lld,no head] \arrow[rrd, doubleline, no head] &  &  \\
K \arrow[rrd,  doubleline, no head] &  &  &  & F' \arrow[lld,  no head] \\
 &  & K\cap F' \arrow[d, no head] &  &  \\
 &  & F &  & 
\end{tikzcd}
\end{document}

相关内容