Erstellen eines Baumstamms in TikZ

Erstellen eines Baumstamms in TikZ

Ich möchte einen Baum in TikZ erstellenderen Knoten selbst Bäume sind.

Ich habe den folgenden Codeabschnitt:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree} 

\tikzset{% 
    every picture/.append style={
      grow'=up,
      sibling distance=.5em
    }
}

\begin{document}

\begin{tikzpicture}[baseline=-.3em]
  \node[draw] {
    \begin{tikzpicture}
      \Tree 
      [. $+$ 
      \node[draw]{
      \begin{tikzpicture}
       \Tree
       [. $+$ [. $+$ $a$ $b$ ]
           [. $+$ $c$ $d$ ] ]
      \end{tikzpicture}
      }; 
      \node[draw]{
      \begin{tikzpicture}
       \Tree
       [. $+$ $e$
           $f$ ]
      \end{tikzpicture}
      }; 
      ]
    \end{tikzpicture}
  };
\end{tikzpicture}

\end{document}

Das Problem besteht darin, dass die Knoten des äußeren Baums nicht richtig verbunden sind:

Bildbeschreibung hier eingeben

Ich denke, der Grund ist, dass qtree die inneren Knoten irgendwie „immer noch sieht“. Gibt es eine Möglichkeit, TikZ die inneren Knoten „unsichtbar“ zu machen? So etwas wie das Gegenteil von „Bild merken“?

Ich kann die inneren Knoten immer als separates PDF exportieren und dann wieder einbinden, aber ich suchte nach einer eleganteren Option, wenn möglich.

Antwort1

Du nistesttikzpicture s,was vermieden werden sollte. Hier könnten Sie die inneren tikzpictures in \saveboxes speichern.

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree} 

\tikzset{% 
    every picture/.append style={
      grow'=up,
      sibling distance=.5em
    }
}
\newsavebox\TreeA
\newsavebox\TreeB
\begin{document}
\savebox\TreeA{\begin{tikzpicture}
       \Tree
       [. $+$ [. $+$ $a$ $b$ ]
           [. $+$ $c$ $d$ ] ]
      \end{tikzpicture}
}
\savebox\TreeB{\begin{tikzpicture}
       \Tree
       [. $+$ $e$
           $f$ ]
      \end{tikzpicture}
}
\begin{tikzpicture}[baseline=-.3em]
  \node[draw] {
    \begin{tikzpicture}
      \Tree 
      [. $+$ 
      \node[draw]{\usebox\TreeA}; 
      \node[draw]{\usebox\TreeB}; 
      ]
    \end{tikzpicture}
  };
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen