答案1
使用 Xy-pic 的第一个版本
\documentclass{article}
\usepackage[all]{xy}
\begin{document}
\[
\xymatrix{
& P \ar@{.>}[dl]_{h} \ar[d]^{f} \\
A \ar@{->>}[r]^g & B \ar[r] & 0
}
\]
\end{document}
使用 Xy-pic 的改进版本
\documentclass{article}
\usepackage[all,cmtip]{xy}
\begin{document}
\[
\xymatrix{
& P \ar@{.>}[dl]_{h} \ar[d]^{f} \\
A \ar@{->>}[r]^g & B \ar[r] & 0
}
\]
\end{document}
版本tikz-cd
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}
& P \arrow[dl,dotted,swap,"h"] \arrow[d,"f"] \\
A \arrow[r,two heads,"g"] & B \arrow[r] & 0
\end{tikzcd}
\]
\end{document}
评论
第一个版本看起来和你的图片一模一样,几乎可以肯定是用同样的方式制作的。但是箭头尖很糟糕,与文档中的其他箭头不协调。第二个版本通过添加 解决了这个问题cmtip
。
切换到 有什么好处tikz-cd
?好处太多了,无法一一列举。
语法更简单:在选项中\arrow
指定目标,然后可能是箭头类型和标签;标准位置在左侧(从源到目标),选项 swap 允许更改侧面。标签通过括在引号中来输入。
另一个重要方面是箭头尖通常与主文档数学字体一致,而 Xy-pic 则无法做到这一点。
答案2
一个具有 的解tikz-cd
和一个具有 的解pstricks
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{pstricks-add}
\usepackage{tikz-cd}
\usepackage{auto-pst-pdf}
\begin{document}
\[ \psset{arrows=->, arrowinset=0.2, linewidth=0.5pt, nodesep=2pt, labelsep=2pt, rowsep=0.6cm, colsep = 1.1cm, shortput=tab, linejoin=1}
\everypsbox{\scriptstyle}
\begin{psmatrix}
%%%nodes
& P\\%
A & B & 0%%%
%%% arrows
\ncline{1,2}{2,2}>[tpos =0.4]{f}
\ncline[linestyle=dashed, dash=3pt 2pt]{1,2}{2,1}^[ tpos=0.48]{h}
\ncline[arrows=->>]{2,1}{2,2}^{g} \ncline{2,2}{2,3}
\end{psmatrix}
\]
\[ \begin{tikzcd}
&P \dar{f}\dlar[ swap, dashed]{h} \\%
A \rar[two heads]{g} & B \rar & 0\end{tikzcd}
\]
\end{document}