使用 tikz 在两个节点之间画两条线

使用 tikz 在两个节点之间画两条线

我有两个节点

\node (A) {A};
\node [below=of A] (B) {B};

我可以在它们之间划一条线

\draw (A) -- (B);

但我需要它们之间有两条线。如果我使用

\draw (A) -- (B);
\draw (B) -- (A);

它会将两条线画在彼此的上方。我可以给它们留出一些空间吗?我也试过了,(A.west) -- (B.west)但那太靠左边了。这两条线应该彼此靠近。

答案1

有几种方法,例如:

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

\begin{document}
\begin{tikzpicture}
  \node (A) {A};
  \node [below=of A] (B) {B};
  \draw[transform canvas={xshift=-1.5pt}] (A) -- (B);
  \draw[transform canvas={xshift=1.5pt}] (B) -- (A);
\end{tikzpicture}
\end{document}

结果

或者可以将移位添加到起点和终点:

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

\begin{document}
\begin{tikzpicture}
  \node (A) {A};
  \node [below=of A] (B) {B};
  \foreach \s in {-1.5pt, 1.5pt} {
    \draw ([xshift=\s]A.south) -- ([xshift=\s]B.north);
  }
\end{tikzpicture}
\end{document}

或者可以使用双线,参见回答阿莱南诺的。

答案2

您可以使用选项double中的密钥\draw

输出

图1

代码

\documentclass[tikz,margin=10pt]{standalone}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
\node (A) {A};
\node [below=of A] (B) {B};

\draw[double] (A) -- (B);
\end{tikzpicture}
\end{document}

正如 Paul Stiverson 在评论中指出的那样,您可以使用 来增加距离。这是一个简短的 gif,展示了从到 的double distance=...各种尺寸。1pt10pt

在此处输入图片描述

答案3

另外两个解决方案

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{positioning,calc,intersections}

\begin{document}


\begin{tikzpicture}

\begin{scope}
\node[draw] (A) at (0,0){A};
\node[draw,right=5em of A] (B)  {B};
\draw[-latex] (A.10)--(A.10-|B.west);
\draw[-latex] (B.-170)--(B.-170-|A.east);
\end{scope}

\begin{scope}[yshift=-2cm]
\node[draw] (A) at (0,0){A};
\node[draw,right=5em of A] (B)  {B};
\draw[-latex] (A) to [bend right=10] (B);
\draw[-latex] (B) to [bend right=10] (A);
\end{scope}


\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容