获得相同长度的箭

获得相同长度的箭
$$\begin{tikzpicture}[scale=3]
\node (A) at (1,0) {$0$};
\node (B) at (2,0) {$H^1(G/H,M^H)$};
\node (C) at (3,0) {$H^1(G,M)$};
\node (D) at (4,0) {$H^1(H,M)$};
\node (E) at (5,0) {$0$};
\path[->,font=\scriptsize,>=angle 90]
(A) edge node[above]{} (B)
(B) edge node[above]{$\phi$} (C)
(C) edge node[above]{$\psi$} (D)
(D) edge node[above]{} (E);
\end{tikzpicture}$$

我如何才能改变箭头的长度,使它们都具有相同的长度?如果可能的话,我想尝试将整个文档的箭头长度标准化。

$H^1(G/H,M^H)$, $H^1(G,M)$另外,我意识到如果我使用较小的比例,即比例=2,那么由于项和的大小$H^1(H,M)$,它们最终会重叠。

答案1

箭头的长度由项之间的距离决定。

您可以使用单行矩阵来定位具有相同间隔的项。

\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{arrows,matrix}

\begin{document}
\[\begin{tikzpicture}
  \matrix(m)[
      matrix of math nodes,
      column sep=1cm% sep between columns
    ]{
    0 & H^1(G/H,M^H) & H^1(G,M) & H^1(H,M) & 0 \\};
% arrows:
  \foreach[count=\i,evaluate={\j=int(\i+1)}]\text in {{},$\phi$,$\psi$,{}}
    \path[-angle 90,font=\scriptsize](m-1-\i)edge node[above]{\text}(m-1-\j);
\end{tikzpicture}\]
\end{document}

在此处输入图片描述

或者您可以使用该graphs库(需要 pgf/TikZ 版本 3.0):

\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{arrows,graphs,quotes}
\tikzset{
  graphs/mathgraph/.style={
    math nodes,
    /tikz/>=angle 90,
    grow right sep=1cm,% sep between nodes
    edge={font=\scriptsize},
    fresh nodes
  }
}

\begin{document}
\[\tikz\graph[mathgraph]{0 -> "H^1(G/H,M^H)" ->["$\phi$"] "H^1(G,M)"->["$\psi$"]"H^1(H,M)" -> 0};\]

\end{document}

结果和上面一样。

答案2

虽然对于精确序列来说,相同长度的箭头可能是更好的选择,但对于交换图来说,这并不可行。然而,在我看来,长箭头并不能改善外观。

不使用 TikZ 你也可以做到:

\documentclass{article}
\newcommand{\lto}{\longrightarrow}
\begin{document}
This has long arrows
\[
0 \lto H^1(G/H,M^H) \lto H^1(G,M) \lto H^1(H,M) \lto 0
\]
and this has short ones, which I prefer,
\[
0 \to H^1(G/H,M^H) \to H^1(G,M) \to H^1(H,M) \to 0
\]
\end{document}

在此处输入图片描述

相关内容