我找到了乳胶代码(带分页符的文件树,此代码(pagebreak+filetree)的所有者/创建者是 Sašo Živanović)。
我想将此代码用于文档。我想要有几棵不同的文件树,但使用此代码,只有一个带分页符的文件树可以工作。有人知道它如何与几棵不同的树一起工作吗?提前谢谢您。
德语论坛:https://texwelt.de/wissen/fragen/24325/wie-kann-man-2-oder-mehrere-file-trees-mit-pagebreak-abbilden
祝你今天过得愉快。
\documentclass[11pt,a4paper,titlepage,bibliography=totoc,numbers=noenddot,abstract=on,multi,dvipsnames,svgnames,x11names]{scrreprt}%Dokumentklasse wie in unserer Vorlage
\usepackage{storebox}%Pagebrak
\usepackage[edges]{forest}%FileTree
\usepackage{adjustbox}%Pagebrak
%\usepackage{lmodern}%Schrift
%Zeilenumbruch in der tikz Umgebung!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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}
\begin{forest}
for tree={
folder,
draw, %zeichnet Kästchen
before computing xy={l=100pt},%definiert die länge der horizontalen Linie
grow'=0,
fit=band,
},
split dir tree auto,
[ \textcolor{green}{\textbf{LASTFall}}
[ {\fontsize{8}{9} \selectfont fdsdssdfsd},edge label={node[pos=0.75,above,font=\scriptsize]{$\textbf{(2.807E+05x) 005}$}} %Mathematik Modus plus Fett
[ \scriptsize{str Rinfi aq000 tq0 fs v002 l000 AW0 check},edge label={node[pos=0.75,above,font=\ttfamily]{$\textbf{(2.807E+05x) 005}$}}] %Mathematik Modus plus Fett
[ \tiny{str Rinfi aq000 tq0 fs v002 l000 AW0 check},edge label={node[pos=0.75,above,font=\scriptsize]{$\textbf{(2.807E+05x) 005}$}}] %Mathematik Modus plus Fett
[ \normalsize{str Rinfi aq000 tq0 fs v002 l000 AW0 check},edge label={node[pos=0.75,above,font=\scriptsize]{$\textbf{(2.807E+05x) 005}$}}] %Mathematik Modus plus Fett
[ \large{str Rinfi aq000 tq0 fs v002 l000 AW0 check},edge label={node[pos=0.75,above,font=\Large]{$\textbf{(2.807E+05x) 005}$}}] %Mathematik Modus plus Fett
[ \small{str Rinfi aq000 tq0 fs v002 l000 AW0 check},edge label={node[pos=0.75,above,font=\large]{$\textbf{(2.807E+05x) 005}$}}] %Mathematik Modus plus Fett
[ str Rinfi aq000 tq0 fs v002 l000 AW0 check,edge label={node[pos=0.75,above,font=\footnotesize]{$\textbf{(2.807E+05x) 005}$}}] %Mathematik Modus
[ str Rinfi aq000 tq0 fs v002 l000 AW0 check,edge label={node[pos=0.75,above,font=\small]{$\textbf{(2.807E+05x) 005}$}}] %Mathematik Modus plus Fett
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
]
]
]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
]
]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}}
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
[ str Rinfi aq000 tq0 fs v002 l000 AW0 kjijlopopheck,edge label={node[pos=0.75,above,font=\scriptsize]{(2.807E+05x) 005}} ]
]
]
]
]
\end{forest}
\end{document}
更新: 此版本(代码)无法运行。知道原因吗?
\documentclass[11pt,a4paper,titlepage,bibliography=totoc,numbers=noenddot,abstract=on,multi,dvipsnames,svgnames,x11names]{scrreprt}%Dokumentklasse wie in unserer Vorlage
\usepackage{storebox}%Pagebrak
\usepackage[edges]{forest}%FileTree
\usepackage{adjustbox}%Pagebrak
%\usepackage{lmodern}%Schrift
%Zeilenumbruch in der tikz Umgebung!
% 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+={\path(!u.parent anchor |- .north) ++(\forestregister{folder indent},1ex) coordinate (before split) |- (.child anchor);},
split register={tempkeylistc}{,}{edge in tikz},
},
edge in tikz/.style={
tikz+/.process=OOw2{#1.edge}{#1.edge label}{%
\path [##1] (before split) |- (#1.child anchor)##2;
},
},
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
}{},
},
},
},
}
%Zeilenumbruch in der tikz Umgebung! Ende
%
\ExplSyntaxOn
\box_new:N \l_helmutW_box
\cs_new_protected:Npx \helmutW_replace_verb_newline:Nn #1 #2
{
\tl_replace_all:Nnn #1 { \char_generate:nn { 13 } { 12 } } { #2 }
}
\cs_new_protected:Npx \helmutW_replace_verb_newline_newline:Nn #1 #2
{
\tl_replace_all:Nnn #1
{ \char_generate:nn { 13 } { 12 } \char_generate:nn { 13 } { 12 } } { #2 }
}
\cs_new_protected:Npn \helmutW_process_verb_newline:nnn #1 #2 #3
{
\tl_set:Nn \ProcessedArgument { #3 }
\helmutW_replace_verb_newline_newline:Nn \ProcessedArgument { #2 }
\helmutW_replace_verb_newline:Nn \ProcessedArgument { #1 }
}
\NewDocumentCommand \AutoSplittedTree
{
s
O{ for~tree = { folder, grow'=0, fit=band,draw } }
>{ \helmutW_process_verb_newline:nnn { ~ } { ~ \par } } +v
}
{
\par
\IfBooleanTF { #1 }
{ \iftrue }
{
\vbox_set:Nn \l_helmutW_box { \helmutW_tree:n { #2, #3 } }
\dim_compare:nNnTF { \box_ht:N \l_helmutW_box } >
{ \dim_min:nn { \pagegoal-\pagetotal } { \textheight } }
{
\iftrue
}
{
\box_use:N \l_helmutW_box
\iffalse
}
}
\helmutW_tree:n { #2, split~dir~tree~auto, #3 }
\fi
}
\cs_new_protected:Npn \helmutW_tree:n #1
{
\scantokens
{
\begin{forest}
#1
\end{forest}%
}
}
\ExplSyntaxOff
\begin{document}
\AutoSplittedTree
{
[ XYZ
[ XYZ
[ \textcolor{green}{\textbf{gfgfg}},edge label={node[pos=0.75,above,font=\scriptsize]{A}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ XYZ,edge label={node[pos=0.75,above,font=\scriptsize]{AAA}}]
[ gfgh,edge label={node[midway,left,font=\scriptsize]{head1}} ]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},rounded corners,edge label={node[pos=0.75,above,font=\scriptsize]{ist das}}
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{lang}}
[ XYZ,before computing xy={l=50pt},edge label={node[pos=0.75,above,font=\scriptsize]{wow}}
[ XYZ,before computing xy={l=100pt},fill=yellow,edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}
]
]
]
]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]\\
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]\\
[ \textcolor{red}{LASTFall},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ gfgh,edge label={node[midway,left,font=\scriptsize]{head11}} ]
[ gfgh,before computing xy={l=50pt}, edge label={node[midway,left,font=\scriptsize]{head1111111111}},minimum size=6cm ]
[ gfgh,edge label={node[midway,left,font=\scriptsize]{head1111111111}},minimum size=3cm ]
[ gfgh,edge label={node[fill=red!20,midway,left,font=\scriptsize]{head1111111111}},minimum size=1cm ]
[ 7,before computing xy={l=50pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
]
]
]
}
\mbox{}
\AutoSplittedTree
{
[ XYZ
[ XYZ
[ \textcolor{green}{\textbf{gfgfg}},edge label={node[pos=0.75,above,font=\scriptsize]{A}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ XYZ,edge label={node[pos=0.75,above,font=\scriptsize]{AAA}}]
[ gfgh,edge label={node[midway,left,font=\scriptsize]{head1}} ]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},rounded corners,edge label={node[pos=0.75,above,font=\scriptsize]{ist das}}
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{lang}}
[ XYZ,before computing xy={l=50pt},edge label={node[pos=0.75,above,font=\scriptsize]{wow}}
[ XYZ,before computing xy={l=100pt},fill=yellow,edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}
]
]
]
]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ XYZ,before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]\\
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]\\
[ \textcolor{red}{LASTFall},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ \textcolor{red}{LASTFall},before computing xy={l=100pt},edge label={node[pos=0.75,above,font=\scriptsize]{\textcolor{green}{\textbf{gfgfg}}}}]
[ gfgh,edge label={node[midway,left,font=\scriptsize]{head11}} ]
[ gfgh,before computing xy={l=50pt}, edge label={node[midway,left,font=\scriptsize]{head1111111111}},minimum size=6cm ]
[ gfgh,edge label={node[midway,left,font=\scriptsize]{head1111111111}},minimum size=3cm ]
[ gfgh,edge label={node[fill=red!20,midway,left,font=\scriptsize]{head1111111111}},minimum size=1cm ]
[ 7,before computing xy={l=50pt},edge label={node[pos=0.75,above,font=\scriptsize]{Too longggggggg}}]
]
]
]
}
\end{document}
答案1
错误是由于自动分割树(第一部分)之前页面上剩余的垂直空间太少而引起的。分割算法试图在根节点处分割树,但它没有注意到这一点,而是试图转到上一个节点(对其进行格式化,即添加标签continued
),这就是错误发生的地方。
虽然正确的解决方案是解决树分割代码中的问题,但我相信以下临时解决方案可能就足够了:使用包needspace
来确保在启动树之前页面上有足够的垂直空间。
在 OP 的例子中,\Needspace{2\baselineskip}
在第二棵树之前添加就可以达到目的,但一般来说,所需的空间量可能会有所不同。
我实际上建议\Needspace{2\baselineskip}
在定义的最开始处添加\AutoSplittedTree
。