I'm trying to make a diagram for a folder/file structure. The problem I have is there is a large number of files in subfolders which produces a really long diagram.
MWE:
\documentclass[border=5pt]{standalone}
\usepackage[edges]{forest}
\definecolor{folderbg}{RGB}{124,166,198}
\definecolor{folderborder}{RGB}{110,144,169}
\def\Size{4pt}
\tikzset{
folder/.pic={
\filldraw[draw=folderborder,top color=folderbg!50,bottom color=folderbg]
(-1.05*\Size,0.2\Size+5pt) rectangle ++(.75*\Size,-0.2\Size-5pt);
\filldraw[draw=folderborder,top color=folderbg!50,bottom color=folderbg]
(-1.15*\Size,-\Size) rectangle (1.15*\Size,\Size);
}
}
\begin{document}
\begin{forest}
for tree={
font=\ttfamily,
grow'=0,
child anchor=west,
parent anchor=south,
anchor=west,
calign=first,
inner xsep=7pt,
forked edges,
edge path={
\noexpand\path [draw, \forestoption{edge}]
(!u.south west) +(7.5pt,0) |- (.child anchor) pic {folder} \forestoption{edge label};
},
before typesetting nodes={
if n=1
{insert before={[,phantom]}}
{}
},
fit=band,
before computing xy={l=15pt},
}
[Main Folder
[subfolder 1
[subsubfolder 1
[file
]
]
[subsubfolder 2
[file
]
]
[file
]
]
[subfolder 2
]
[subfolder 3
]
[subfolder 4
]
]
\end{forest}
\end{document}
Which produces:
Is there a way I can branch each top level subfolder horizontally and have the remaining structure within the subfolder be vertical like the diagram above? E.g.
UPDATE
Using @js bibra's answer I changed the line
grow'=0,
To:
where level=0{
l sep'=0.1cm,
s sep'=0.5cm,
}{
grow'=0,
},
For reference my full diagram then looks like:

This is quite close to what I would like to achieve. Is there a way to reduce the horizontal spacing and centre the branches relative to the parent?


