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:
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 tikzpicture
s in \savebox
es 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}