Ostwärts wachsender Baum passt nicht ins Tikzbild

Ostwärts wachsender Baum passt nicht ins Tikzbild

Dieser Code

\documentclass[a4paper]{article}

\usepackage{tikz}
    \usetikzlibrary{backgrounds}

\usepackage{forest}

\begin{document}
We are the knights who say "Ni!".
\begin{center}
\begin{tikzpicture}[framed]
    \begin{forest}
        [,for tree={grow'=east},shape=coordinate
            [
                [
                    []
                    []
                ]
                [
                    []
                    []
                ]
            ]
            [
                [
                    []
                    []
                ]
                [
                    []
                    []
                ]
            ]
        ]
        \end{forest}
\end{tikzpicture}
\end{center}
\end{document}

gibt mir

Ergebnisse des obigen Codes

Offensichtlich ragt der Baum aus dem Bild heraus und überlappt den Text oben. Ist das ein bekannter Fehler oder ein Fehler meinerseits, und gibt es eine Lösung?

Antwort1

Ich glaube nicht, dass es überhaupt eine gute Idee ist, eine forestUmgebung in a zu setzen tikzpicture, und ich vermute stark, dass unerwartet schlimme Dinge passieren können. Im Allgemeinen tikzpicturefunktioniert das Verschachteln von s manchmal in einfachen Fällen, ist aber bekanntermaßen problematisch. (Das heißt, wenn es funktioniert, funktioniert es. Wenn nicht, können Sie beide Teile behalten.) Denken Sie daran, dass a a forestist, tikzpicturealso sagen Sie im Wesentlichen

\begin{tikzpicture}[framed]
  ...
  \begin{tikzpicture}
    ...

In Deinem Beispiel klappt es aber, wenn Du die Größe baselinedes Bildes entsprechend anpasst.

  \begin{tikzpicture}[framed,baseline=(current bounding box.center)]

Ich denke jedoch, dass es sicherer wäre, den Rahmen als Teil des zu zeichnen forest. Ich nehme an, Sie möchten letztendlich etwas Ausgefalleneres als eine bloße Box haben. Falls nicht, gibt es einfachere Ansätze. Ein komplexer Hintergrund kann jedoch problemlos als Teil der Spezifikation selbst hinzugefügt werden forest. Es gibt mehrere Möglichkeiten, dies zu tun.

\begin{forest}
  [
    ..
  ]
  \begin{scope}[on background layer]
    <drawing commands>
  \end{scope}
\end{forest}

Oder die Zeichenbefehle können als Teil der Baumspezifikation oder in der Baumpräambel hinzugefügt werden. Zum Beispiel:

  \begin{forest}
    [,for tree={grow'=east},shape=coordinate, tikz+={%
      \begin{scope}[on background layer]
        \node [fit=(current bounding box.north east) (current bounding box.south west), draw=blue!50!cyan, outer color=blue!50!cyan!25, inner color=blue!50!cyan!10, rounded corners, line width=1mm] {};
      \end{scope}
    }
        [
    ...
  \end{forest}

Bäume in Schachteln

Vollständiger Code für Beispiele:

\documentclass[a4paper]{article}
\usepackage{forest}
\usetikzlibrary{backgrounds,fit}

\begin{document}
We are the knights who say "Ni!".
\begin{center}
  \begin{tikzpicture}[framed,baseline=(current bounding box.center)]
    \begin{forest}
      [,for tree={grow'=east},shape=coordinate
          [
              [
                  []
                  []
              ]
              [
                  []
                  []
              ]
          ]
          [
              [
                  []
                  []
              ]
              [
                  []
                  []
              ]
          ]
      ]
    \end{forest}
  \end{tikzpicture}
\end{center}
We are the knights who say "Ni!".
\begin{center}
  \begin{forest}
    [,for tree={grow'=east},shape=coordinate, tikz+={%
      \begin{scope}[on background layer]
        \node [fit=(current bounding box.north east) (current bounding box.south west), draw=blue!50!cyan, outer color=blue!50!cyan!25, inner color=blue!50!cyan!10, rounded corners, line width=1mm] {};
      \end{scope}
    }
        [
            [
                []
                []
            ]
            [
                []
                []
            ]
        ]
        [
            [
                []
                []
            ]
            [
                []
                []
            ]
        ]
    ]
  \end{forest}
\end{center}
\end{document}

verwandte Informationen