当我在测试的时候一个答案我意识到我必须设置独立边框选项,border={2mm 2mm 14mm 2mm}
因为border=2mm
图像被截断了。
为什么?
\documentclass[tikz, border=2mm]{standalone}
%\documentclass[tikz, border={2mm 2mm 14mm 2mm}]{standalone}
\usetikzlibrary{cd}
\usepackage{amsmath, amssymb}
\begin{document}
\begin{tikzcd}%
&[-30pt] \ker(f) \arrow[dl, phantom, sloped, "\supset"] \arrow[dr, phantom, sloped, "\subset"]&[-30pt] & &[-75pt] \\[-4pt]
\ker(w) \arrow[rr, phantom, "\subset"]& & E \arrow[rr, "w"] \arrow[rd, end anchor={[xshift=.5em]north west}, "\pi_f"] \arrow[dd, swap, "f"] & & \mathbb{K}\\
& & & E/\ker(f) \simeq Im(f) \arrow[ru, dashrightarrow, start anchor={[xshift=1.1em]north west}, swap, "w'"]& \\
& & F & &
\end{tikzcd}%
\end{document}
答案1
以下是结合几种技巧的答案:
- 为子集/超集定义新样式
- 用于
\mathrlap
覆盖部分- 用于
\mathord
控制间距\mathrlap
Im
应该\operatorname{Im}
。
- 用于
- 使用
column sep=
以避免图表太宽。- 添加其他内容
&
以在右侧创建空间。(这很脏!)
- 添加其他内容
\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{cd}
\usepackage{amssymb,mathtools}
\begin{document}
\tikzcdset{
subset/.code={\tikzcdset{double line}\pgfsetarrows{Arc Barb[length=0 .5].-}},
supset/.code={\tikzcdset{double line}\pgfsetarrows{-.Arc Barb[length=0 .5]}}
}
\begin{tikzcd}[column sep=tiny]
& \ker(f) \dlar[subset] \drar[subset] &&& \\
\ker(w) \ar[rr,subset]& & E \ar[rr, "w"] \drar["\pi_f"] \arrow[dd,',"f"] && \mathbb{K} \\
&&& E/\ker(f)\mathrlap{\mathord{}\simeq Im(f)} \urar[dashrightarrow,',"w'"]& \\
&& F &&&&
\end{tikzcd}
\end{document}