<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\def\fileversion{1.2}
\def\filedate{94/03/11}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PiCTeX-Makros zum Satz von Verzeichnisb"aumen %
% von Andreas Schrell, Wuppertal                %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% Syntax (EBNF-Derivat): %%%%%
%%%%%%%%%%%%%%%%%%%%
% &lt;baum&gt; :=        %
%%                 %
% \baum &lt;name&gt;     %
% structure        %
%  &lt;struktur&gt;      %
% / at x y         %
%%%%%%%%%%%%%%%%%%%%
% &lt;struktur&gt; :=  %
%%               %
% \ordner &lt;name&gt; %
%  &lt;struktur&gt;    %
% \endordner     %
%%               %
% |              %
%%               %
% \datei &lt;name&gt;  %
% &lt;struktur&gt;     %
%%               %
% | &lt;empty&gt;      %
%%%%%%%%%%%%%%%%%%
% &lt;leer&gt; :=      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% &lt;name&gt; := &lt;alles was in einer \mbox stehen kann, %
%            also z.B. kein einfacher _ \ % etc. &gt; %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newdimen\OAx \newdimen\OAy \newbox\Obox \newdimen\GY
\newdimen\Oleng \newdimen\GX \newdimen\Odown

\newif\ifvariing \variingfalse
\def\VariablerBaum{\variingtrue}
\def\FesterBaum{\variingfalse}

\def\Osep{0.5\unitlength}
\def\Oright{20\unitlength}
\def\Oinsert{15\unitlength}

\def\Ostrut{\vphantom{/}}
\def\Bfont{\footnotesize\bf\Ostrut}
\def\Ofont{\footnotesize\bf\Ostrut}
\def\Dfont{\footnotesize\rm\Ostrut}
\def\Drule{.4pt}
\def\Orule{1pt}
\def\Brule{1pt}
\def\Oboxsep{3pt}

\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}\kern.06em}

\def\baum #1 structure #2/ at #3 #4 
 {\put {\beginpicture
 \fboxsep=\Oboxsep
 \fboxrule=\Orule
 \unitlength=1mm
 \OAx=0mm \OAy=0mm
 \setdimensionmode
 \setbox\Obox\hbox{\fboxrule=\Brule\fbox{\Bfont#1}}%
\ifvariing
 \Odown=0pt
\else
 \Odown=\ht\Obox \advance\Odown by \dp\Obox 
\fi
 \advance\Odown by \Osep
 \Oleng=\Odown
 \put {\box\Obox} [b] at 0mm 0mm
 #2
 \endpicture} at #3 #4
}

\def\ordner #1 
 {\GY=\OAy
  \begingroup
  \setbox\Obox\hbox{\fbox{\Ofont#1}}%
   \global\GX=-\dp\Obox \global\advance\GX by -\ht\Obox
\ifvariing
  \Odown=-.5\GX \advance\Odown by \Osep
   \advance\Oleng by -.5\GX
\fi
   \global\advance\OAy by -\Odown
   \put {\vrule height\Oleng width\linethickness depth0pt}
        [bl] at {\OAx} {\OAy}
  \put {\vrule height\linethickness width\Oinsert depth0pt} 
        [lb] at {\OAx} {\OAy}
  \put {\box\Obox} 
         &lt;\Oinsert,0mm&gt; [l] at {\OAx} {\OAy}
\ifvariing
  \global\advance\OAy by .5\GX
\fi
   \Oleng=\Odown
   \advance\OAx by \Oright
   \advance\Oleng by .5\GX
}

\catcode`\!=11
\def\endordner{%
  \global\!Xleft=\!xleft \global\!Xright=\!xright
  \global\!Ybot=\!ybot \global\!Ytop=\!ytop
  \endgroup
  \!xleft=\!Xleft \!xright=\!Xright
  \!ybot=\!Ybot \!ytop=\!Ytop
  \Oleng=-\OAy \advance\Oleng by \GY
\ifvariing
  \advance\Oleng by .5\GX
\fi   
}
   
\catcode`\!=12 

\def\datei #1 
 {\fboxrule=\Drule
  \ordner{\Dfont#1} \endordner
   \fboxrule=\Orule}
 
\endinput
</pre></body></html>