Как соединить два дерева с помощью forest/tikz

Как соединить два дерева с помощью forest/tikz

Извините, если я делаю ошибки, я здесь совсем новичок. Я пытаюсь сделать презентацию с помощью Beamer о синтаксических структурах и мне нужно нарисовать два дерева. Второе дерево (которое начинается с ForceP) — это своего рода увеличение/разделение части первого дерева. Мне также нужно связать их стрелкой.

Я сделал это с двумя деревьями (нарисованными с помощью леса) и отдельной стрелкой с помощью tikzpicture. Знаете, как мне сделать это точнее? Возможно, используя какие-то якоря, tikzmark или метки на деревьях? Большое спасибо!

\documentclass[10pt]{beamer}

%------- CODIFICA ------------------------------------
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
%---- LINGUISTICA -----------------------------------
\usepackage{tikz}
\usepackage{tikz-qtree}
\usetikzlibrary{tikzmark,arrows.meta}
\usepackage{forest}
\useforestlibrary{linguistics}


\begin{document}
\forestset{
 xlist/.style={
 phantom,
 for children={no edge,replace by={[,append,
 delay={content/.wrap pgfmath arg={\csname @alph\endcsname{##1}.}{n()+##1}}
 ]}}
 },
 xlist/.default=0
 }
\begin{columns}
 \begin{column}{5cm}
 \begin{forest}
[CP,tikz={\node [draw,red,fit=()(!1)(AB)] {};}
[SpecCP] [C' [C$_0$] [IP,name=AB [SpecIP] [I' [I$_0$] [VP [,roof]]]]]]
\end{forest}
\end{column}

\begin{column}{5cm}
\begin{forest}
[ForceP,tikz={\node [draw,red,fit to=tree] {};}
  [SpecForce] 
[Force' [Force$_0$] 
[\ldots [FinP [SpecFin] 
[Fin' [Fin$_0$] [IP [,roof]]]
]]]]
\end{forest}
 \end{column}
\end{columns}
\begin{tikzpicture}[remember picture, overlay]
 \draw [-Latex, red] (2.80,5) [out=75, in=230]to (5.9,4);
\end{tikzpicture}
\end{document}

Вот мой результат

решение1

Самым простым решением может быть использование phantomкорня и рисование обоих деревьев как одного.

\documentclass[border=10pt,beamer]{standalone}
\usepackage[linguistics]{forest}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{frame}{Two in One}
  \centering
  \begin{forest}
    [, phantom, for children={fit=band}, s sep'+=20pt
      [CP, name=CP
        [SpecCP]
        [C'
          [C$_0$]
          [IP, name=AB
            [SpecIP]
            [I'
              [I$_0$]
              [VP
                [,roof]
              ]
            ]
          ]
        ]
      ]
      [ForceP, tikz+={
        \node (fit1) [draw, red, fit to={name=CP,1,name=AB}] {};
        \node (fit2) [draw, red, fit to=tree] {};
        \draw [-Latex, red] (fit1.east) [out=75, in=230]to (fit2.west);
      }
        [SpecForce
        ]
        [Force'
          [Force$_0$]
          [\ldots
            [FinP
              [SpecFin]
              [Fin'
                [Fin$_0$]
                [IP
                  [,roof]
                ]
              ]
            ]
          ]
        ]
      ]
    ]
  \end{forest}
\end{frame}
\end{document}

два в одном

Связанный контент