如何制作以下精确的六边形?

如何制作以下精确的六边形?

我对数组环境有点熟悉,但我不确定生成该图表的最佳方法是什么:

在此处输入图片描述

我该如何制作这个或类似的图表?倾斜的箭头和定位是让我困惑的主要因素。

答案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内部。否则丢弃该环境。gatheredgathered

在此处输入图片描述

我缩短了列距,并将中间的箭头加倍放在空列上,以保持箭头长度均匀。

更新

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}

在此处输入图片描述

相关内容