请帮我用 LaTeX 画出这个图表
答案1
您展示的图片是用 Xy-pic 创建的。现代替代品是tikz-cd
:
\documentclass{article}
\usepackage{amssymb}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}
Y \arrow[r,hook] \arrow[d,swap,"T(f)"] &
\mathcal{H}(D^{\infty}(Y)) \arrow[r,"h"] \arrow[d,swap,"\widehat{T(f)}"]
\arrow[dr,swap,dashed,"\widehat{f}\circ h"] &
\mathcal{H}(D^{\infty}(X)) \arrow[d,"\widehat{f}"] &
X \arrow[l,hook'] \arrow[d,"f"]
\\
\mathbb{R} & \mathbb{R} & \mathbb{R} & \mathbb{R}
\end{tikzcd}
\]
\end{document}
箭头hook'
类型反转了钩子的侧面。其余部分应该几乎不言自明:您构建一个矩阵,指定箭头为d
“向下”,r
箭头为“向右”等等。键指swap
的是标签的位置(默认在箭头的左侧,从尾部到尖端)。
答案2
如果启用了开关(TeX Live、MacTeX)或开关(MiKTeX),pstricks-add
则可以编译该解决方案。pdflatex
-shell-escape
--enable-write18
\documentclass[pdf]{article}
\usepackage{amssymb}
\usepackage{pstricks-add}
\begin{document}
\[%
\begin{psmatrix}
%%% Matrix nodes
Y & \mathcal{H}\smash{(D^{\infty}(Y))} & \mathcal{H}\smash{(D^{\infty}(X))} & X \\
\mathbb{R} & \mathbb{R} & \mathbb{R} & \mathbb{R}
%%% Arrows
\psset{arrows=->, arrowinset=0.2, nodesep=2pt, shortput=nab, hookwidth=-4pt, hooklength=4pt}
\ncline{1,1}{2,1}_{T(f)}\ncline[arrows = H->]{1,1}{1,2}
\ncline{1,2}{2,2}_{\widehat{T(f)}}\ncline{1,2}{1,3}^{h}
\ncline{1,3}{2,3}_{\widehat{f}}
\ncline{1,4}{2,4}_{f}\ncline[arrows=H->, hookwidth=4pt]{1,4}{1,3}
\ncline[linestyle=dashed, nodesepA=6pt]{1,2}{2,3}\nbput[labelsep=0pt, npos=0.4]{\widehat{f}\circ h}
\end{psmatrix}
\]%
\end{document}