将边缘并排放置?

将边缘并排放置?

我有两个节点应该通过边连接,一条边从A 到 B以及一个B到A问题是,它们确实重叠但我想把它们展示为单独的箭头- 因此,一个可能稍微向右移动,另一个可能稍微向左移动。如何实现这一点?

(那里似乎有一个解决方案TikZ 节点之间的平行边但是例子太复杂了,所以我无法将自动化内容与并排放置边缘的内容分开。)

最小示例:

\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\begin{document}
 \begin{tikzpicture}[->]
    \node (1) {A};
    \node (2) [below of=1] {B};
    \path[every node/.style={font=\sffamily\small}]
    (1) edge node [left] {edge1} (2)
    (2) edge node [right] {edge2} (1)
    ;
  \end{tikzpicture}
\end{document}

结果:

enter image description here

答案1

您可以引入一些转变;下面的代码显示了两种可能性;第一种,使用xshift,第二种,使用<name>.<angle>语法:

\documentclass{article}
\usepackage{tikz}

\begin{document}
 \begin{tikzpicture}[->]
    \node (1) {A};
    \node (2) [below of=1] {B};
    \path[every node/.style={font=\sffamily\small}]
    ([xshift=-2pt]1.south) edge node [left] {edge1} ([xshift=-2pt]1.south|-2.north)
    ([xshift=2pt]2.north) edge node [right] {edge2} ([xshift=2pt]2.north|-1.south)
    ;
 \begin{scope}[xshift=3cm]
    \node (1) {A};
    \node (2) [below of=1] {B};
    \path[every node/.style={font=\sffamily\small}]
    (1.255) edge node [left] {edge1} (1.255|-2.north)
    (2.75) edge node [right] {edge2} (2.75|-1.south)
    ;
  \end{scope}
  \end{tikzpicture}
\end{document}

enter image description here

相关内容