Pregunta: He estado intentando completar el diagrama de árbol que comencé (ver la figura).
Esto es lo que tengo
\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}
Respuesta1
A modo de comparación, así es como puedes hacer esto usando 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}
Respuesta2
Sólo tienes que anidar tu child
s:
\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}
Si desea números entre círculos, en las tikzpicture
opciones agregue
every node/.style={draw, circle},
Respuesta3
Esto se basa en la respuesta de Sandy G. No tengo idea si estás usando A4 o carta estadounidense. Probablemente lo segundo, pero asumo lo primero porque es más estrecho.
Si usas forest
, encajará algo parecido a tu árbol. No es exactamente tu árbol porque perdí la paciencia al escribir contenidos cuando las palabras se volvieron desconocidas y comencé a inventar cosas.
Tenga en cuenta que la razón por la que cambiar a forest
ayuda es que el paquete produce árboles más compactos de forma predeterminada ( 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}
Código completo:
\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}
Si eso no es suficiente, sugiero usarlo sidewaysfigure
desde el rotating
paquete o permitir saltos de línea en los nodos.
\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}
Mejor aún, evite duplicar información. La copa del árbol dice que todos estos son fluidos, entonces, ¿por qué seguir repitiéndolo? Quitar el exceso Fluids
puede hacer que el diagrama sea más claro, incluso si no reduce mucho el ancho.
O, si quieres ser más aventurero, puedes incluso activar los nodos recalcitrantes, aunque sólo sugeriría usar este método en los casos apropiados (y dudo que este esté entre ellos).
\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}