我试图找到与这个问题尽可能相同的内容,但没有找到。如果找到了,请告诉我。我想通过圆形连接条连接处于不同 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 picture
和overlay
。我不确定如何使用这些参数,但毕竟,我无法将其两端的节点保留在边缘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}