I am looking for a way to split a long directory tree across multiple pages.
I've found this post: Automatic page break with Forest? (Spanning a tree over multiple pages.) but I find these examples too complex to analyze.
I have also come across this question: Breaking pictures across multiple pages and used the proposed solution to forest.
The result is as follows, which is almost what I want, except the fact the tree starts on a new page instead of just under the text.
The code is as follows:
\documentclass[a4paper]{article}
\usepackage[edges]{forest}
\usepackage{adjustbox}
\usepackage{blindtext}
\newsavebox{\mysavebox}
\newlength{\myrest}
\begin{document}
\blindtext
\begin{lrbox}{\mysavebox}%
\begin{forest}
for tree={folder,grow'=0,fit=band}
[ XYZ
[ XYZ
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
]
]
\end{forest}
\end{lrbox}
%
\ifdim\ht\mysavebox>\textheight
\setlength{\myrest}{\ht\mysavebox}%
\loop\ifdim\myrest>\textheight
\newpage\par\noindent
\clipbox{0 {\myrest-\textheight} 0 {\ht\mysavebox-\myrest}}{\usebox{\mysavebox}}%
\addtolength{\myrest}{-\textheight}%
\repeat
\newpage\par\noindent
\clipbox{0 0 0 {\ht\mysavebox-\myrest}}{\usebox{\mysavebox}}%
\else
\usebox{\mysavebox}%
\fi
\end{document}
Best Answer
You requested a minimal example without styling. This answer provides such a minimal example. However, do note that the vast majority of the code in the answer you commented on had nothing to do with the styling. Most of the code was simply splitting the tree across pages. Since that is what you wish to do, there is no more minimal example to be given. (Well, there may be a more elegant solution, of course. That's another matter.)
Although you didn't mention the problem, but only said the styling code confused you, the automatic breaking in my earlier answer doesn't work for your example because you have nodes with more children than will fit on a page, whereas the code assumes that at most one split is required among any node's children.
I think the following should work. It avoids the need to accept split node content/words across pages.
However, as you will no doubt expect, it is only minimally tested.
Caveat emptor.