diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/baum |
Initial commit
Diffstat (limited to 'macros/latex209/contrib/baum')
-rw-r--r-- | macros/latex209/contrib/baum/baum.sty | 116 | ||||
-rw-r--r-- | macros/latex209/contrib/baum/baumbsp.tex | 52 |
2 files changed, 168 insertions, 0 deletions
diff --git a/macros/latex209/contrib/baum/baum.sty b/macros/latex209/contrib/baum/baum.sty new file mode 100644 index 0000000000..efa1085f46 --- /dev/null +++ b/macros/latex209/contrib/baum/baum.sty @@ -0,0 +1,116 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PiCTeX-Makros zum Satz von Verzeichnisb"aumen % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Syntax (EBNF-Derivat): %%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%% +% <baum> := % +%% % +% \baum <name> structure % +% <struktur> % +% / at x y % +%%%%%%%%%%%%%%%%%%%%%%%%%%% +% <struktur> := % +%% % +% \ordner <name> % +% <struktur> % +% \endordner % +%% % +% | % +%% % +% \datei <name> % +% <struktur> % +%% % +% | <empty> % +%%%%%%%%%%%%%%%%%% +% <leer> := % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% <name> := <alles was in einer \mbox stehen kann, % +% also z.B. kein einfacher _ \ % etc. > % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\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\fontseries{m}\fontshape{n}\selectfont\Ostrut} +\def\Drule{.4pt} +\def\Orule{1pt} +\def\Brule{1pt} + +\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}\kern.06em} + +\def\baum #1 structure #2/ at #3 #4 + {\put {\beginpicture + \fboxsep=1pt + \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} + <\Oinsert,0mm> [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} + + diff --git a/macros/latex209/contrib/baum/baumbsp.tex b/macros/latex209/contrib/baum/baumbsp.tex new file mode 100644 index 0000000000..5a84a42ea1 --- /dev/null +++ b/macros/latex209/contrib/baum/baumbsp.tex @@ -0,0 +1,52 @@ +\documentstyle[pictex,baum]{article} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Einstellungen (optional) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Baumzeilen gleichmaessig oder variierend: + +%\VariablerBaum +%\FesterBaum + +% vertikaler Abstand +% \def\Osep{0.5\unitlength} + +% horizontale Einrueckungen +\def\Oright{20\unitlength} +\def\Oinsert{15\unitlength} + +% Strut im Kasten +\def\Ostrut{\vphantom{/}} + +% Fonts fuer Baum, Ordner, Dateien +\def\Bfont{\footnotesize\bf\Ostrut} +\def\Ofont{\footnotesize\bf\Ostrut} +\def\Dfont{\footnotesize\fontseries{m}\fontshape{n}\selectfont\Ostrut} + +% Linienbreiten fuer Baum, Ordner, Dateien +\def\Brule{1pt} +\def\Orule{1pt} +\def\Drule{.4pt} + + + +\begin{document} + +\beginpicture +\baum {Testbaum} structure + \ordner {Ordnername 1} + \ordner {Ordner 1a} + \datei {Datei 1a(i)} + \datei {Datei 1a(ii)} + \datei {$\ldots$} + \endordner + \datei {Datei 1(i)} + \datei {Datei 1(ii)} + \endordner + \datei {Datei (i)} + \datei {Datei (ii)} +/ at 0 0 +\endpicture + +\end{document} |