In der Ebene A1/B1 steht bei mir sehr viel Text. Die darunter liegenden Ebenen rücken aber dementsprechend nicht mit runter wodurch die Texte in A1/B1 einfach den Rest überlagern. Zudem möchte ich jeder Textbox eine individuelle Textbreite zuweisen, sodass ich die Zeilenumbrüche selber justieren kann.

Öffne in Overleaf
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture}[every tree node/.style={align=center,anchor=north,text width=4cm}]
\Tree [.{A} 
[.{Dies ist ein relativ langer Beispieltext der zeigen soll dass sich diese Node bei zu viel Text mit den darunterliegenden Ebenen überlagert} 
    [.{A11}
      [
        [.{XXX} ] ] ]
     [.B12 
       [ 
         [.{XXX} ] ] ] ] 
  [.{B1} 
    [.{B11}
      [
        [.{XXX} ] ] ]
     [.C12 
       [ 
         [.{XXX} ] ] ] ] ]
\end{tikzpicture}

     \end{document}

gefragt 24 Mär '17, 11:08

GlobalArts's gravatar image

GlobalArts
21981721
Akzeptiert-Rate: 50%

bearbeitet 24 Mär '17, 20:09

cis's gravatar image

cis
9.5k93459491

Ich kann das Problem nicht nachvollziehen. Bei mir sieht das Ergebnis Deines Beispiels so aus:

alt text

Da überlagert sich also nichts. Text kannst Du manuell umbrechen. Ein Beispiel ist u. a. auf Seite 4 oben der Anleitung. Das geht IMHO am besten, wenn man vorher kein text width angegeben hat. Du kannst aber auch \node mit allen möglichen Optionen einbetten (Abschnitt 4).

(24 Mär '17, 12:23) saputello

Habe das entsprechende Problem eingefügt.

(24 Mär '17, 13:04) GlobalArts

Um mal bei tikz-qtree zu bleiben: Du musst einfach sibling distance und level distance anpassend einstellen:

alt text

Öffne in Overleaf
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz-qtree}
%\usepackage{tikz-qtree-compat}

\begin{document}

\begin{tikzpicture}[
every tree node/.style={align=center,anchor=north,text width=2cm},
%sibling distance=1cm,
%level distance =100pt,
level 1/.style={level distance=50pt},
level 2/.style={level distance=120pt}
]
\def\Text{%
Dies ist ein relativ langer Beispieltext der zeigen soll dass sich diese Node bei zu viel Text mit den darunterliegenden Ebenen überlagert.%
}

\Tree [.{A} 
[.\node[align=left, text width=4cm, blue]{\Text};
    [.{A11}
      [
        [.{XXX} ] ] ]
     [.B12 
       [ 
         [.{XXX} ] ] ] ] 
  [.{B1} 
    [.{B11}
      [
        [.{XXX} ] ] ]
     [.C12 
       [ 
         [.{XXX} ] ] ] ] ]
\end{tikzpicture}

\end{document}
Permanenter link

beantwortet 25 Mär '17, 10:22

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 25 Mär '17, 10:25

Mit TikZ graphdrawing. Benötigt LuaLaTeX.

Öffne in Overleaf
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing}
\usegdlibrary{trees}

\begin{document}

\begin{tikzpicture}
  \graph[tree layout,fresh nodes]
  {
    A -- {
      Dies ist ein relativ langer Beispieltext der zeigen soll dass sich
      diese Node bei zu viel Text mit den darunterliegenden Ebenen
      überlagert[text width=5cm,align=center] -- {
        A11 -- XXX,
        B12 -- XXX,
      },
      B1 -- {
        B11 -- XXX,
        C12 -- XXX,
      },
    },
  };
\end{tikzpicture}

\end{document}

alt text

Permanenter link

beantwortet 24 Mär '17, 22:09

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×5

gestellte Frage: 24 Mär '17, 11:08

Frage wurde gesehen: 6,996 Mal

zuletzt geändert: 25 Mär '17, 10:25