我正在寻找一种方法来将长目录树拆分到多个页面。
我找到了这个帖子:使用 Forest 自动分页?(一棵树跨越多页。)但我发现这些例子太复杂,难以分析。
我也遇到过这个问题:将图片拆分到多个页面并将提出的解决方案应用于森林。
结果如下,这几乎是我想要的,除了树从新页面开始而不是仅仅在文本下方开始。
代码如下:
\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}
答案1
您要求提供一个不带样式的最小示例。此答案提供了这样一个最小示例。但是,请注意,您评论的答案中的绝大多数代码与样式无关。大多数代码只是将树拆分到各个页面。由于这是您希望执行的操作,因此没有更简单的示例可以提供。(当然,可能存在更优雅的解决方案。那是另一回事。)
虽然您没有提到问题,而只是说样式代码让您感到困惑,但我之前回答中的自动断点对您的示例不起作用,因为您的节点的子节点数量多于一页所能容纳的数量,而代码假定任何节点的子节点之间最多只需要一次拆分。
我认为下面的方法应该可行。它避免了跨页面接受拆分节点内容/单词的需要。
然而,正如您所预料的,它只经过了最低限度的测试。
买者自负。
\documentclass[a4paper]{article}
\usepackage{geometry,blindtext}% geometry or similar is needed for correct A4 layout
\usepackage[edges]{forest}
% addaswyd o gôd Sašo Živanović: http://tex.stackexchange.com/a/296771/
\def\hiddenparcommand{\par}
\newcommand\otherhiddenparcommand{\par\noindent}
\newcommand\hiddencommacommand{, }
\forestset{%
declare keylist register={split here ids},% the list of nodes to split the tree at
split here ids={},
declare keylist register={split here interjects},% the list of comments to put in between the tree parts
split here interjects={},
declare keylist={split here auto siblings}{},% a list to hold the siblings which need edge restoration
declare toks register=split here toks,
declare dimen register=tmpdima,
tmpdima'=0pt,
declare dimen register=tmpdimb,
tmpdimb'=0pt,
declare dimen register=tmpdimc,
tmpdimc'=0pt,
to widest/.style={
tikz+={\path (\forestregister{tempdima}, \forestoption{y}) -- (\forestregister{tempdimb}, \forestoption{y});},
},
hide commas/.style={%
split here toks+={\hiddencommacommand},
split here toks+={#1},
},
split dir tree pre/.style={%
label={[text=gray, anchor=north, font=\scriptsize]below:{[cont.]}{}},
},
split dir tree post/.style={%
label={[font=\scriptsize, anchor=south, text=gray]above:{[cont.]}{}},
},
split dir tree auto post/.style={% this gets applied to the first node after a break
split dir tree post,
tempkeylistc'={},
tmpdimb/.option=y,
for nodewalk={
while={
> ORw2+d _+d < On=! & {y}{tmpdimb}{##2-##1} {\textheight-#1} {n'}{1}%
}{
next,
tempkeylistc/.option=name
}%
}{},
% save the list
split here auto siblings/.register=tempkeylistc,
tikz+/.process={% this tries to redraw the edges to the following siblings
OOw2{edge}{id}%
{%
\path [##1] (!u.parent anchor |- .north) ++(\forestregister{folder indent},1ex) coordinate (before ##2) |- (.child anchor);
\edef\tempa{\foresteoption{split here auto siblings}}
\foreach \i in \tempa \path [##1] (before ##2) |- ({forest cs:\i.child anchor});
}%
},
},
split dir tree/.code={%
\forestset{%
draw tree stage/.style={
for root'={
tempdima/.min={%
>OOw2+d{x}{min x}{####1+####2}%
}{tree},
tempdimb/.max={%
>OOw2+d{x}{max x}{####1+####2}%
}{tree},
for tree={%
to widest,
},
},
tempcountb'=-1,
do until={%
strequal((split_here_ids),"")
}{%
tempkeylistb'={},
tempkeylista'={},
split register={split here ids}{,}{tempcounta,tempkeylistb+},
split register={split here interjects}{,}{temptoksa,tempkeylista+},
split here ids'/.register=tempkeylistb,
split here interjects'/.register=tempkeylista,
% Sašo Živanović: http://chat.stackexchange.com/transcript/message/28484520#28484520
for nodewalk={%
draw tree processing order/.style={%
filter={tree}{> ORw+n< OR> & {id}{tempcounta}{########1+1}{id}{tempcountb}}%
}%
}{},
for root'={draw tree},
TeX/.process={Rw{temptoksa}{\otherhiddenparcommand ####1\hiddenparcommand}},
tempcountb'/.register=tempcounta,
},
for nodewalk={%
draw tree processing order/.style={%
filter={tree}{>OR>{id}{tempcountb}}%
}%
}{},
for root'={draw tree},
},
}%
},
split dir here auto/.style n args=2{%
split dir tree pre,
!next node.split dir tree auto post=#2,
split here ids+/.option=id,
% !next node.split resume here ids+/.option=id,
split={#1}{,}{split here toks,hide commas},
split here interjects/.register=split here toks,
},
split dir tree auto/.style={%
split dir tree,
before drawing tree={%
tempdima/.max={y}{tree},
tempdimc/.register=tempdima,
tempdimd/.min={y}{tree},
tempdima-/.register=tempdimd,
tempdimb'=\textheight,
tmpdima'=10ex,
tmpdimc'=\pagetotal,
while={%
>RR>{tempdima}{tempdimb}%
}{%
for nodewalk={%
root',
until={%
> ROw2+d RRw2+d > {tempdimc}{y}{##1-##2} {tmpdima}{tmpdimc}{\textheight-##2-##1}%
}{next node},
previous node,
split dir here auto/.process={R_w2{tmpdima}{continued}{{##2}{##1}}},
next node,
tempdima/.option=y,
tempdimc/.register=tempdima,
tempdima-/.register=tempdimd,
tmpdima'=15ex,
tmpdimc'=0pt
}{},
},
},
},
}
\begin{document}
\blindtext
\begin{forest}
for tree={
folder,
grow'=0,
fit=band,
},
split dir tree auto,
[ XYZ
[ XYZ
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
]
]
[ XYZ
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
]
[ XYZ
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ XYZ ]
[ 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{document}
答案2
也许不是适合所有人的完美解决方案,但非常简单。文本有时会从中间被截断,并部分显示在两页上,但对我来说,目前这是可以接受的。
解决方案是使用adjustbox
和storebox
包。请注意命令的顺序usepackage
很重要。这三个包不完全兼容,即(例如,不同的顺序会导致“标题”文本出现在树上方)
\documentclass[a4paper]{article}
\usepackage{blindtext}
\usepackage{storebox}
\usepackage[edges]{forest}
\usepackage{adjustbox}
\begin{document}
\blindtext
\begin{pagebreakbox}
\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{pagebreakbox}
\end{document}