TikZ 图片:两个箭头;一个在另一个之上

TikZ 图片:两个箭头;一个在另一个之上

我有以下代码:

\documentclass{article}

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

\begin{document}
  \[
        \begin{tikzpicture}
         \matrix (m) [matrix of math nodes,row sep=3em,column sep=1em,minimum width=2em]{
              A &   & G \\
                & S &   \\
         };
         \path[-stealth]
            (m-1-1) edge node [above] {$f$} (m-1-3)
            (m-1-1)  edge [bend right] node [left] {$p\;$} (m-2-2)
            (m-1-3) edge node [right] {$\;q$} (m-2-2)
            (m-2-2) edge node [right] {$\epsilon$} (m-1-1);
         \path[-stealth]
            ([yshift=5pt]m-1-1) edge node [right] {$g$} ([yshift=5pt]m-1-3);
        \end{tikzpicture}
    \]
\end{document}

我敢说你编译它。然后你会得到一个恶心的输出。我想要的是让两个箭头一个在另一个上面(就像 corolary 1.3.1.5,第 70 页,在http://math.umn.edu/~kwlan/articles/cpt-PEL-type-thesis-revision.pdf)。

有人能帮忙吗?如果解决方案没有对我编码图表的方式进行太多修改,我会很高兴,因为这是我一直使用的方式(使用矩阵),但乞丐不能挑三拣四,所以。

答案1

这里尝试使用.east.west锚点来修复它:

在此处输入图片描述

笔记:

  • 不确定您为什么使用数学模式——我已在下面的 MWE 中删除了它。

代码:

\documentclass{article}

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

\begin{document}
        \begin{tikzpicture}
         \matrix (m) [matrix of math nodes,row sep=3em,column sep=1em,minimum width=2em]{
              A &   & G \\
                & S &   \\
         };
         \path[-stealth]
            (m-1-1.east) edge node [above,yshift=1.0ex] {$f$} (m-1-3.west)
            (m-1-1) edge [bend right] node [left] {$p\;$} (m-2-2)
            (m-1-3) edge node [right] {$\;q$} (m-2-2)
            (m-2-2) edge node [right] {$\epsilon$} (m-1-1);
         \path[-stealth]
            ([yshift=5pt]m-1-1.east) edge node [below,,yshift=-1.0ex] {$g$} ([yshift=5pt]m-1-3.west);
        \end{tikzpicture}
\end{document}

答案2

这很容易tikz-cd

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}[column sep=1.5em]
A \arrow[yshift=.85ex]{rr}{f}
  \arrow[yshift=-.45ex,swap]{rr}{g}
  \arrow[yshift=-.4ex,bend right,swap]{dr}{p}
&&
G \arrow{dl}{q} \\
&
S \arrow[swap]{ul}{\epsilon}
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

答案3

这是 Peter 代码的变体,但没有矩阵,并且对一些箭头的位置进行了一些调整。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}
\path          node (A) {$A$}
    (0:4cm)    node (G) {$G$}
    (-60:4cm)  node (S) {$S$};
 \path[-stealth]
   (A) edge [bend right] node [left]  {$p\;$}      (S)
   (G) edge              node [right] {$\;q$}      (S)
   (S) edge              node [right] {$\epsilon$} (A)
   ([yshift=-2.5pt]A.east) edge node [above,yshift= 1.0ex]  {$f$} ([yshift=-2.5pt]G.west)        
   ([yshift= 2.5pt]G.west) edge node [below,yshift=-1.0ex]  {$g$} ([yshift= 2.5pt]A.east);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容