如何使用 Tikz 分支箭头?

如何使用 Tikz 分支箭头?

我正在使用以下方法绘制带有节点和箭头的图表蒂克兹,但不知道如何才能做出箭头分为两部分

我正在使用与此非常相似的东西:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
  \matrix (m) [matrix of math nodes,row sep=3em,column sep=4em,minimum
    width=2em]
  {
     F_t(x) & F(x) \\
     A_t & A \\};
  \path[-stealth]
    (m-1-1) edge node [left] {$\mathcal{B}_X$} (m-2-1)
        edge [double] node [below] {$\mathcal{B}_t$} (m-1-2)
    (m-2-1.east|-m-2-2) edge node [below] {$\mathcal{B}_T$}
            node [above] {$\exists$} (m-2-2)
    (m-1-2) edge node [right] {$\mathcal{B}_T$} (m-2-2)
            edge [dashed,-] (m-2-1);
\end{tikzpicture}
\end{document}

代码参考

答案1

我的朋友,我强烈建议你使用tikzcd包。它确实让生活变得更轻松。你可以找到详尽的文档这里。现在来看看代码。你会发现它比一般的痛苦tikz源短得多:

\documentclass[a4paper]{report}

\usepackage{amsmath}
\usepackage{tikz-cd}

\begin{document}

\[
\begin{tikzcd}[column sep=large, row sep=large]
F_t(x) \arrow[d, "\mathcal{B}_X"'] \arrow[r, "\mathcal{B}_t"', rightharpoondown, shift right=0.25ex] \arrow[r, rightharpoonup, shift left=0.25ex] & F(x) \arrow[d, "\mathcal{B}_T"] \\
A_t \arrow[ru, dashrightarrow, dash] \arrow[r, "\exists", "\mathcal{B}_T"'] & A
\end{tikzcd}
\]

\end{document}

在此处输入图片描述

或者您可能想要两个指向同一方向的正常箭头:

\documentclass[a4paper]{report}

\usepackage{amsmath}
\usepackage{tikz-cd}

\begin{document}

\[
\begin{tikzcd}[column sep=large, row sep=large]
F_t(x) \arrow[d, "\mathcal{B}_X"'] \arrow[r, "\mathcal{B}_t"', shift right=0.65ex] \arrow[r, shift left=0.65ex] & F(x) \arrow[d, "\mathcal{B}_T"] \\
A_t \arrow[ru, dashrightarrow, dash] \arrow[r, "\exists", "\mathcal{B}_T"'] & A
\end{tikzcd}
\]

\end{document}

在此处输入图片描述

如果我不回答你的问题,那就太不礼貌了具体来说。也许你对 非常熟练tikz,不想跳到另一个包。我理解。不过我必须警告你,这path不是最好的方法。事实上(对于交换图)它非常糟糕。我重写了整个图表,因为我无法在path环境中找到解决方案。它有点阉割了函数必须提供的很大一部分tikz,例如xshiftyshift过去移动箭头。这是一个简单的解决方案tikz

\documentclass{article}

\usepackage{amsmath}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[node distance=2.3cm, auto]
\node (A) {$F_t(x)$};
\node(B) [right of=A] {$F(x)$};
\node (C) [below of=A] {$A_t$};
\node (D) [right of=C] {$A$};
\draw[transform canvas={yshift=0.5ex},->] (A) -- (B);
\draw[transform canvas={yshift=-0.5ex},->](A) to node [below] {$\mathcal{B}_{t}$} (B); 
\draw[->](A) to node [left] {$\mathcal{B}_{X}$}(C);
\draw[->](B) to node {$\mathcal{B}_{T}$}(D);
\draw[->](C) to node [below] {$\mathcal{B}_{T}$}(D);
\draw[](C) to node [above] {$\exists$}(D);
\draw[dashed](B) to (C);
\end{tikzpicture}

\end{document}

在此处输入图片描述

希望这篇文章对你有帮助。祝你有个美好的一天。

相关内容