我有以下代码:
\documentclass[a4paper, 12pt]{article}
\usepackage{amsmath, amstext, amssymb, amsfonts, amsthm, euscript}
\usepackage{tikz-cd}
\usetikzlibrary{babel}
\begin{document}
\[\begin{tikzcd}
TM \ar[r, "{\rm d}f"] \ar[d, "\pi"] & TN \ar[d, "\pi"] \\ M \ar[ur, shift right = .25ex, "{\rm d}f \circ X"] \ar[ur, shift left = .25ex, "Y \circ f"] \ar[r, "f"] \ar[u, bend left = 50, "X"] & N \ar[u, bend right = 50, "Y"]
\end{tikzcd}\]
\end{document}
生成结果:
我对此了解甚少tikz-cd
,只能画简单的三角形和正方形图。我想要:
- 更大的图表,所有内容的间距都更大,箭头更长一些,等等;
- 标记的两个对角箭头,分别为上面的 X 和下面的 Y;
- 最右边箭头中的标签 Y 位于右侧,而不是左侧。
我浏览了一下网站,想找一个类似的图表,但什么也没找到。我只能得到图片中的内容,但我不知道该怎么做。有人能帮我吗?谢谢。
答案1
您可以增加column sep
和row sep
;标签位置可以从箭头左侧的默认位置进行交换。
您不需要加载amstext
(amsmath
是否这样做)和amsfonts
(amssymb
是否这样做)。
此外,该{\rm d}
语法已被弃用二十多年。使用\diff
as defined 也会在适当的位置留出一个较短的空格。
\documentclass[a4paper, 12pt]{article}
\usepackage{amsmath, amssymb, amsthm, euscript}
\usepackage{tikz-cd}
\usetikzlibrary{babel}
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
\begin{document}
\[
\begin{tikzcd}[column sep=4em,row sep=4em]
TM \ar[r, "\diff f"] \ar[d, swap, "\pi"] & TN \ar[d, "\pi"] \\
M
\ar[ur, shift right = .75ex, swap, "\diff f \circ X"]
\ar[ur, shift left = .75ex, "Y \circ f"] \ar[r, "f"]
\ar[u, bend left = 50, "X"] &
N \ar[u, bend right = 50, swap, "Y"]
\end{tikzcd}
\]
\end{document}