%20%D1%83%D0%B7%D0%BB%D0%B0%D0%BC%D0%B8%20%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85%20tikzpictures.png)
Я пытался найти что-то максимально идентичное этому вопросу, но не нашел. Если так, пожалуйста, дайте мне знать. Я хочу соединить два узла, которые находятся в разных средах 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}