summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/baum
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/baum
Initial commit
Diffstat (limited to 'macros/latex209/contrib/baum')
-rw-r--r--macros/latex209/contrib/baum/baum.sty116
-rw-r--r--macros/latex209/contrib/baum/baumbsp.tex52
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}