在两个(或多个)不同的 tikzpictures 节点之间绘制圆形连接条

在两个(或多个)不同的 tikzpictures 节点之间绘制圆形连接条

我试图找到与这个问题尽可能相同的内容,但没有找到。如果找到了,请告诉我。我想通过圆形连接条连接处于不同 tikzpicture 环境中的两个节点。默认情况下,连接条代码应该靠近最后声明的节点的 tikzpicture 环境或隔离到单个 tikzpicture,但永远不要隔离到第一个声明节点的 tikzpicture 环境,参见情况 1 和 2。一切似乎(视觉错觉?)运行良好,但在这两种情况下,节点都没有保持在圆形连接条边缘两端的原始位置,这是主要问题。此外,如果有解决方案,它会在使用时适用于情况 3 \newpage

情况1:

在此处输入图片描述

\documentclass{article} 
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}
\node (energy2) at (90:10cm) {motorcycle.2};
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

案例 2:

在此处输入图片描述

\documentclass{article} 
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}
\node (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\begin{tikzpicture}
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

案例 3 (有\newpage):

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\newpage
\begin{tikzpicture}
\node (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\newpage
\begin{tikzpicture}
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

正如@Henri Menke 所指出的,我尝试使用remember pictureoverlay。我不确定如何使用这些参数,但毕竟,我无法将其两端的节点保留在边缘circle connection bar。我在使用这些参数时做错了什么吗?

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node [remember picture,overlay]
(energy1) at (30:10cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\node (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\begin{tikzpicture}
\draw[circle connection bar]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

按照@Henrique Menke 关于上述尝试的说明,我已经能够将节点放在末尾circle connection bar,但无法保持它们的初始位置,尽管我试图将两个节点的坐标更改为越来越远。以检查它是否真的有效或只是一种“视觉错觉”。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}[remember picture]

        \node [remember picture] (energy1) at (30:30cm){motorcycle.1};
\end{tikzpicture}
\begin{tikzpicture}[remember picture]
        \node [remember picture] (energy2) at (90:10cm) {motorcycle.2};
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]

\draw[circle connection bar,remember picture, overlay]
(energy1)
  edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]
  (energy2)
  ;
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

您可以在单个 tikz 环境中绘制所有内容,而无需进行连接不同环境的艰苦工作。定位标签的选项将在这里有所帮助。这是一个例子。

唯一的问题是图纸和标签的大小,可以通过文本缩放来处理。(也许)

\documentclass{standalone} 
\usepackage{tikz}
\usetikzlibrary{mindmap,quotes}
\begin{document}
\begin{tikzpicture}
\node (energy1)[label=right:motorcycle.1] at (30:10cm){};
\node (energy2)[label=left:motorcycle.2] at (90:10cm){};
\draw[circle connection bar]
(energy1)%
edge["USA" {orange ,sloped,above=.5cm,align=center,text width=8cm}]%
(energy2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容