Мне нужна помощь в завершении древовидной диаграммы.

Мне нужна помощь в завершении древовидной диаграммы.

введите описание изображения здесьВопрос: Я пытаюсь завершить начатую мной древовидную диаграмму (см. рисунок).

Пожалуйста помоги.введите описание изображения здесь

Вот что у меня есть

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}

\begin{document}
    
    \begin{center}
        \begin{tikzpicture}[level 1/.style={sibling distance=5cm},level 2/.style={sibling distance=4.0cm}]
        \node {1}[edge from parent fork down]
        child { node {2}}
        child { node {3}
            child {node{4} }
            child {node{5}}
        }               
        ;
    \end{tikzpicture}
    \end{center}
    
\end{document}

решение1

Для сравнения, вот как это можно сделать, используя forest:

введите описание изображения здесь

\documentclass{article}

\usepackage[edges]{forest}

\begin{document}

\begin{forest}
for tree={forked edge, edge=->, draw, circle, minimum size=8mm, l sep=5mm}
[1, s sep=5cm
    [2]
    [3, s sep=4cm
        [4, s sep=3cm
            [6, s sep=1cm
                [9][10][11]
            ]
            [7]
            [8, s sep=2cm
                [12][13]
            ]
        ]
        [5]
    ]
]
\end{forest}

\end{document}

решение2

Вам просто нужно вложить ваши childs:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}

\begin{document}
  
  \begin{center}
    \begin{tikzpicture}[level 1/.style={sibling distance=5cm},
      level 2/.style={sibling distance=4.0cm},
      level 3/.style={sibling distance=2.0cm},
      level 4/.style={sibling distance=1.0cm}]
      \node {1}[edge from parent fork down]
      child { node {2}}
      child { node {3}
        child {node{4}
          child {node{6}
            child {node{9}}
            child {node{10}}
            child {node{11}}}
          child {node{7}}
          child {node{8}
            child {node{12}}
            child {node{13}}}}
        child {node{5}}
      }               
      ;
    \end{tikzpicture}
  \end{center}
  
\end{document}

введите описание изображения здесь

Если вам нужны обведенные цифры, в tikzpictureпараметрах добавьте

every node/.style={draw, circle},

решение3

Это основано на ответе Сэнди Г. Я понятия не имею, используете ли вы A4 или US letter. Скорее всего, последний, но я предполагаю первый, так как он уже.

Если вы используете forest, то подойдет что-то вроде вашего дерева. Это не совсем ваше дерево, потому что я потерял терпение, печатая содержимое, когда слова стали незнакомыми, и начал придумывать что-то новое.

Обратите внимание, что причина переключения на foresthelp заключается в том, что пакет по умолчанию создает более компактные деревья ( fit=tight).

\begin{forest}
  % ateb: https://tex.stackexchange.com/a/707154/ addaswyd o ateb Sandy G: https://tex.stackexchange.com/a/706800/
  forked edges,
  for tree={
    edge+=->,
    draw,
    font=\sffamily,
  },
  where={>Ow+P{n children}{isodd(#1)}}{%
    delay={for n=2{calign with current edge}}
  }{},
  [Fluids
    [Ideal Fluids]
    [Real Fluids
      [Non-Newtonian Fluids
        [Time-Independant Fluids
          [Vouch-saving Vanilla][Soliciting Sourdough][Advocating Avocado]
        ]
        [Timeless Thyme]
        [Time-Dependant Fluids
          [Peppermint][Spearmint]
        ]
      ]
      [Newtonian Fluids]
    ]
  ]
\end{forest}

лесная версия

Полный код:

\documentclass[a4paper]{article}
\usepackage[showframe]{geometry}
% ateb: https://tex.stackexchange.com/a/707154/ addaswyd o ateb Sandy G: https://tex.stackexchange.com/a/706800/
\usepackage[edges]{forest}

\begin{document}

\noindent
\begin{forest}
  % ateb: https://tex.stackexchange.com/a/707154/ addaswyd o ateb Sandy G: https://tex.stackexchange.com/a/706800/
  forked edges,
  for tree={
    edge+=->,
    draw,
    font=\sffamily,
  },
  where={>Ow+P{n children}{isodd(#1)}}{%
    delay={for n=2{calign with current edge}}
  }{},
  [Fluids
    [Ideal Fluids]
    [Real Fluids
      [Non-Newtonian Fluids
        [Time-Independant Fluids
          [Vouch-saving Vanilla][Soliciting Sourdough][Advocating Avocado]
        ]
        [Timeless Thyme]
        [Time-Dependant Fluids
          [Peppermint][Spearmint]
        ]
      ]
      [Newtonian Fluids]
    ]
  ]
\end{forest}

\end{document}

Если этого недостаточно, я предлагаю либо использовать sidewaysfigureиз rotatingпакета, либо разрешить переносы строк в узлах.

\begin{forest}
  % ateb: https://tex.stackexchange.com/a/707154/ addaswyd o ateb Sandy G: https://tex.stackexchange.com/a/706800/
  forked edges,
  for tree={
    edge+=->,
    draw,
    font=\sffamily,
    align=center,
  },
  where={>Ow+P{n children}{isodd(#1)}}{%
    delay={for n=2{calign with current edge}}
  }{},
  [Fluids
    [Ideal Fluids]
    [Real Fluids
      [Non-Newtonian Fluids
        [Time-Independant\\Fluids
          [Vouch-saving\\Vanilla][Soliciting\\Sourdough][Advocating\\Avocado]
        ]
        [Timeless\\Thyme]
        [Time-Dependant\\Fluids
          [Peppermint][Spearmint]
        ]
      ]
      [Newtonian Fluids]
    ]
  ]
\end{forest}

с многострочными узлами

А еще лучше — избегайте дублирования информации. Верхушка дерева говорит, что все это жидкости, так зачем же повторяться? Удаление лишнего Fluidsможет сделать вашу диаграмму более понятной, даже если это не сильно уменьшит ширину.

Или, если вы хотите проявить больше смелости, вы можете даже обратить непокорные узлы, хотя я бы рекомендовал использовать этот метод только в соответствующих случаях (и я сомневаюсь, что этот входит в их число).

\begin{forest}
  % ateb: https://tex.stackexchange.com/a/707154/ addaswyd o ateb Sandy G: https://tex.stackexchange.com/a/706800/
  forked edges,
  for tree={
    edge+=->,
    draw,
    font=\sffamily,
  },
  where={>Ow+P{n children}{isodd(#1)}}{%
    delay={for n=2{calign with current edge}}
  }{},
  before typesetting nodes={%
    tempcounta/.max={>O{level}}{tree},
    where={> OR= {level}{tempcounta}}{rotate=-90,anchor=parent}{},
  },
  [Fluids
    [Ideal]
    [Real
      [Non-Newtonian
        [Time-Independent
          [Vouch-saving Vanilla][Soliciting Sourdough][Advocating Avocado]
        ]
        [Timeless Thyme]
        [Time-Dependant
          [Peppermint][Spearmint]
        ]
      ]
      [Newtonian]
    ]
  ]
\end{forest}

повернул конечный уровень и меньше жидкости

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