我对数组环境有点熟悉,但我不确定生成该图表的最佳方法是什么:
我该如何制作这个或类似的图表?倾斜的箭头和定位是让我困惑的主要因素。
答案1
我会用 TikZ 来画那个图
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[>=latex]
\def\radius{2cm} % change to an appropriate value
\node (h0A) at (60:\radius) {$H^0(A)$};
\node (h0C) at (0:\radius) {$H^0(C)$};
\node (h1B) at (-60:\radius) {$H^1(B)$};
\node (h1A) at (-120:\radius) {$H^1(A)$};
\node (h1C) at (180:\radius) {$H^1(C)$};
\node (h0B) at (120:\radius) {$H^0(B)$};
\path[->,font=\small]
(h0A) edge node[auto] {$g_0$} (h0C)
(h0C) edge node[auto] {$\delta_0$} (h1B)
(h1B) edge node[auto] {$f_1$} (h1A)
(h1A) edge node[auto] {$g_1$} (h1C)
(h1C) edge node[auto] {$\delta_1$} (h0B)
(h0B) edge node[auto] {$f_0$} (h0A);
\end{tikzpicture}
\end{document}
首先定义 6 个顶点(如下节点在 TikZ 中,使用极坐标绘制箭头。它们被命名(h0A)
为。然后使用路径 ( )(h0B)
绘制箭头,并使用 放置描述(再次是节点)旁边。edge
(start) edge (finish)
node[auto] {text}
用 TikZ 绘制交换图的一个很好的介绍是TikZ 的交换图。
答案2
这是使用 Xy-pic 的方法
\documentclass[a4paper]{article}
\usepackage[all,cmtip,pdf]{xy}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{gathered}
\xymatrix@C-1em{
& H^0(B) \ar[rr]^{f_0} && H^0(A) \ar[dr]^{g_0} \\
H^1(C) \ar[ur]^{\delta_1} &&&& H^0(C) \ar[dl]^{\delta_0} \\
& H^1(A) \ar[ul]^{g_1} && H^1(B) \ar[ll]^{f_1}
}
\end{gathered}
\end{equation}
\end{document}
如果您需要方程编号,请记住将其放在环境\xymatrix
内部。否则丢弃该环境。gathered
gathered
我缩短了列距,并将中间的箭头加倍放在空列上,以保持箭头长度均匀。
更新
和tikz-cd
:
\documentclass[a4paper]{article}
\usepackage{amsmath}
\usepackage{tikz-cd}
\begin{document}
\begin{equation}
\begin{gathered}
\begin{tikzcd}
& H^0(B) \arrow[r,"f_0"] &[1em] H^0(A) \arrow[dr,"g_0"] \\
H^1(C) \arrow[ur,"\delta_1"] &&& H^0(C) \arrow[dl,"\delta_0"] \\
& H^1(A) \arrow[ul,"g_1"] & H^1(B) \arrow[l,"f_1"]
\end{tikzcd}
\end{gathered}
\end{equation}
\end{document}
答案3
运行xelatex
\documentclass{article}
\usepackage{pst-node}
\begin{document}
\def\R{2.5}
\begin{pspicture}(-3,-3)(3,3)
\psframe*[linecolor=red!10](-3,-3)(3,3)
\psset{nodesep=3pt,arrows=->,shortput=nab}\degrees[6]
\psnode(\R;0){P0}{$H^0(C)$} \psnode(\R;1){P1}{$H^0(B)$}
\psnode(\R;2){P2}{$H^0(B)$} \psnode(\R;3){P3}{$H^1(C)$}
\psnode(\R;4){P4}{$H^1(A)$} \psnode(\R;5){P5}{$H^1(B)$}
\ncline{P0}{P5}^{$\delta_0$}\ncline{P5}{P4}^{$f_1$}
\ncline{P4}{P3}^{$g_1$} \ncline{P3}{P2}^{$\delta_1$}
\ncline{P2}{P1}^{$f_0$} \ncline{P1}{P0}^{$g_0$}
\end{pspicture}
\end{document}
答案4
另一个选项是使用PSTricks
,见下文。一如既往,有多种方法可以做到这一点!
请参阅pst-node
文档以了解更多详细信息和大量示例。
\documentclass{article}
\usepackage{pst-node}
\begin{document}
$ \psmatrix[colsep=1.5cm,rowsep=1.5cm]
& H^0(B) & H^0(B) & \\
H^1(C) & & & H^0(C) \\
& H^1(A) & H^1(B) &
\endpsmatrix
\psset{nodesep=3pt,arrows=->}
\ncline{2,1}{1,2}\naput{\delta_1}
\ncline{1,2}{1,3}\naput{f_0}
\ncline{1,3}{2,4}\naput{g_0}
\ncline{2,4}{3,3}\naput{\delta_0}
\ncline{3,3}{3,2}\naput{f_1}
\ncline{3,2}{2,1}\naput{g_1}
$
\end{document}