
1. Quero mudar a dinâmica da altura da floresta, assim
for tree={
grow=0,reversed, % tree direction
parent anchor=east,child anchor=west, % edge anchors
edge path={none},
minimum width=15mm,
draw=black,
outer sep=0pt,% node shape
l sep=0mm, % level distance
s sep=0mm % level distance
}
2. Cópia do código de fluxo de Forest_doc
\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[left=1.00cm, right=1.00cm, top=1.00cm, bottom=1.00cm]{geometry}
\usepackage{forest}
\begin{document}
\forestset{box/.style={
draw,
no edge,
l=0,
l sep=0mm,
s sep=0mm,
calign=first,
anchor=base west,
content format={\strut\forestoption{content}},
if n children=0{}{
after packing node={
minimum width/.pgfmath=
{s("!l")+max_x("!l")-s("!1")-min_x("!1")},
for children/.wrap pgfmath arg={s+={##1}}{0},
typeset node}}}}
\begin{forest}
for tree={box} [total
[home[saso[Download][TeX]][alja][joe]]
[usr[bin][share]]]
\end{forest}
\end{document}
Responder1
Este é um complementoA resposta de Zarkoo que evita a codificação de tantas dimensões. Embora o código seja um pouco mais complexo, o resultado é mais flexível, pois é mais fácil estender e/ou adaptar a árvore, por exemplo, adicionando camadas ou nós adicionais com textos multilinhas.
\documentclass[tikz,border=10pt,multi]{standalone}
\usepackage{forest}
\usetikzlibrary{backgrounds}
% modified from Zarko's answer at https://tex.stackexchange.com/a/314181/
\begin{document}
\tikzset{
L0/.style={fill=green},
L1/.style={fill=orange},
L2/.style={fill=yellow},
L3/.style={fill=pink},
basic/.style={line width=1pt, draw=white},
}
\begin{forest}
for tree={
grow'=0,
parent anchor=children,
child anchor=parent,
edge path={none},
minimum width=15mm,
l sep=0pt,
s sep=0pt,
if n children=0{
minimum height=8mm,
}{},
},
before drawing tree={
where n children=0{
tikz+/.wrap pgfmath arg={
\scoped[on background layer]{\path [L#1, basic] (.north west) rectangle (.south east);}
}{level()},
}{
tikz+/.wrap pgfmath arg={
\scoped[on background layer]{\path [L#1, basic] (.west |- !L.south) rectangle (.east |- !F.north);}
}{level()},
}
}
[AAAA
[EEEE, minimum height=32mm
[EEEE
[YYYY]
[AAAA]
]
[DDDD
[DDDD]
[KKKK]
]
]
[OOOO
[PPPP
[KKKK]
[KKKK]
]
]
]
\end{forest}
\end{document}
Responder2
Algo assim:
Ainda estou em fase de aprendizado forest
, então deve haver uma solução mais elegante...
\documentclass[border=3mm]{standalone}
\usepackage{forest}
\begin{document}
\forestset{
line width=1pt,
L1/.style={fill=green,minimum height=48mm,yshift=4mm},
L2/.style={fill=orange,minimum height=16mm},
L3/.style={fill=yellow,minimum height=16mm},
L4/.style={fill=pink,minimum height=8mm},
}
\begin{forest}
for tree={
grow=0,reversed, % tree direction
parent anchor=east,child anchor=west, % edge anchors
edge path={none},
minimum width=15mm, draw=white,outer sep=0pt,% node shape
l sep=0mm, % level distance
s sep=0mm % level distance
}
[AAAA,L1
[EEEE,L2,minimum height=32mm
[EEEE,L3
[YYYY,L4][AAAA,L4]
]
[DDDD,L3
[DDDD,L4][KKKK,L4]
]
]
[OOOO,L2
[PPPP,L3
[KKKK,L4][KKKK,L4]
]
]
]
\end{forest}
\end{document}
Eu mudo a árvore conforme foi determinado no MWE, então é mais provável que seja a imagem fornecida.