summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/treesvr
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/latex/contrib/treesvr
Initial commit
Diffstat (limited to 'macros/latex/contrib/treesvr')
-rw-r--r--macros/latex/contrib/treesvr/legal.txt14
-rw-r--r--macros/latex/contrib/treesvr/treedoc.latex20965
-rw-r--r--macros/latex/contrib/treesvr/treedoc.pdfbin0 -> 55957 bytes
-rw-r--r--macros/latex/contrib/treesvr/treedoc.tex66
-rw-r--r--macros/latex/contrib/treesvr/trees.sty86
5 files changed, 231 insertions, 0 deletions
diff --git a/macros/latex/contrib/treesvr/legal.txt b/macros/latex/contrib/treesvr/legal.txt
new file mode 100644
index 0000000000..b61c93b451
--- /dev/null
+++ b/macros/latex/contrib/treesvr/legal.txt
@@ -0,0 +1,14 @@
+The files of this package "treesvr" may be distributed and/or modified
+under the conditions of the LaTeX Project Public License, either version
+1.2 of this license or (at your option) any later version. The latest
+version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.2 or later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+The complete listing of files covered by this license is
+ treedoc.latex209
+ treedoc.tex
+ trees.sty
+
+May 2002, Reinhard Zierke with permission of the copyright owner.
diff --git a/macros/latex/contrib/treesvr/treedoc.latex209 b/macros/latex/contrib/treesvr/treedoc.latex209
new file mode 100644
index 0000000000..edf859f71d
--- /dev/null
+++ b/macros/latex/contrib/treesvr/treedoc.latex209
@@ -0,0 +1,65 @@
+\documentstyle[trees,a4]{article}
+
+\title{{\tt trees.sty}: A Macro for Drawing Binary \\
+ or Ternary Trees}
+
+\author{Peter Vanroose \\
+ Peter.Vanroose@esat.kuleuven.ac.be}
+
+\date{18 april 1990}
+
+\begin{document}
+
+\maketitle
+
+The following macros let you draw a (binary or ternary) tree of any size.
+For each "internal node", you only have to specify which are the descending
+nodes, with a \verb|\branch| command (\verb|\tbranch| for ternary node.).
+To this end, nodes are given a label (only used internally!). These macros
+will give you some ideas on designing similar things for, e.g.,
+digital circuits.
+
+Trees are constructed with labels on the branches (default 0 and 1), and
+with text (e.g., its name or value) on the nodes. The first parameter to
+\verb|\branch| (0, 1, 2 or 3) determines the steepness of the branches.
+
+Example:
+\small
+\begin{verbatim}
+\begin{picture}(100,100)(-50,10)
+\unitlength=2mm
+\branchlabels ABC % 012 is the default
+\root(2,10) 0. % root at absolute coordinate (2,10)
+ % its (internally used) label is 0
+ % the space before the 0 is obligatory
+\branch2{16} 0:1,2. % node 0 (i.e., the root) has children 1 and 2
+ % the text "1.00" is written above it
+ % space is optional, :,. are obligatory
+ \leaf{4}{$u_1$} 1. % node 1 is a leaf
+ % "0.45" written above, "$u_1$" to the right
+ \branch2{12} 2:3,7. % branch to node 3 goes up, and has label A
+ \tbranch2{9} 3:4,5,6.
+ \leaf{4}{$u_3$}4. % the symbols 0--7 can be replaced by anything
+ \leaf{3}{$u_4$}5.
+ \leaf{2}{$u_5$}6.
+ \leaf{3}{$u_2$} 7.
+\end{picture}
+\end{verbatim}
+\normalsize
+will typeset something like:
+\begin{flushleft}
+\begin{picture}(100,100)(-50,10)
+\unitlength=2mm
+\branchlabels ABC
+\root(2,10) 0.
+\branch2{16} 0:1,2.
+ \leaf{4}{$u_1$} 1.
+ \branch2{12} 2:3,7.
+ \tbranch2{9} 3:4,5,6.
+ \leaf{4}{$u_3$}4.
+ \leaf{3}{$u_4$}5.
+ \leaf{2}{$u_5$}6.
+ \leaf{3}{$u_2$} 7.
+\end{picture}
+\end{flushleft}
+\end{document}
diff --git a/macros/latex/contrib/treesvr/treedoc.pdf b/macros/latex/contrib/treesvr/treedoc.pdf
new file mode 100644
index 0000000000..d7485414c9
--- /dev/null
+++ b/macros/latex/contrib/treesvr/treedoc.pdf
Binary files differ
diff --git a/macros/latex/contrib/treesvr/treedoc.tex b/macros/latex/contrib/treesvr/treedoc.tex
new file mode 100644
index 0000000000..55b349e8ba
--- /dev/null
+++ b/macros/latex/contrib/treesvr/treedoc.tex
@@ -0,0 +1,66 @@
+\documentclass{article}
+\usepackage{trees}
+\usepackage{a4}
+
+\title{{\tt trees.sty}: A Macro for Drawing Binary \\
+ or Ternary Trees}
+
+\author{Peter Vanroose \\
+ Peter.Vanroose@esat.kuleuven.ac.be}
+\date{18 april 1990}
+
+\begin{document}
+
+\maketitle
+
+The following macros let you draw a (binary or ternary) tree of any size.
+For each "internal node", you only have to specify which are the descending
+nodes, with a \verb|\branch| command (\verb|\tbranch| for ternary node.).
+To this end, nodes are given a label (only used internally!). These macros
+will give you some ideas on designing similar things for, e.g.,
+digital circuits.
+
+Trees are constructed with labels on the branches (default 0 and 1), and
+with text (e.g., its name or value) on the nodes. The first parameter to
+\verb|\branch| (0, 1, 2 or 3) determines the steepness of the branches.
+
+Example:
+\small
+\begin{verbatim}
+\begin{picture}(100,100)(-50,10)
+\unitlength=2mm
+\branchlabels ABC % 012 is the default
+\root(2,10) 0. % root at absolute coordinate (2,10)
+ % its (internally used) label is 0
+ % the space before the 0 is obligatory
+\branch2{16} 0:1,2. % node 0 (i.e., the root) has children 1 and 2
+ % the text "1.00" is written above it
+ % space is optional, :,. are obligatory
+ \leaf{4}{$u_1$} 1. % node 1 is a leaf
+ % "0.45" written above, "$u_1$" to the right
+ \branch2{12} 2:3,7. % branch to node 3 goes up, and has label A
+ \tbranch2{9} 3:4,5,6.
+ \leaf{4}{$u_3$}4. % the symbols 0--7 can be replaced by anything
+ \leaf{3}{$u_4$}5.
+ \leaf{2}{$u_5$}6.
+ \leaf{3}{$u_2$} 7.
+\end{picture}
+\end{verbatim}
+\normalsize
+will typeset something like:
+\begin{flushleft}
+\begin{picture}(100,100)(-50,10)
+\unitlength=2mm
+\branchlabels ABC
+\root(2,10) 0.
+\branch2{16} 0:1,2.
+ \leaf{4}{$u_1$} 1.
+ \branch2{12} 2:3,7.
+ \tbranch2{9} 3:4,5,6.
+ \leaf{4}{$u_3$}4.
+ \leaf{3}{$u_4$}5.
+ \leaf{2}{$u_5$}6.
+ \leaf{3}{$u_2$} 7.
+\end{picture}
+\end{flushleft}
+\end{document}
diff --git a/macros/latex/contrib/treesvr/trees.sty b/macros/latex/contrib/treesvr/trees.sty
new file mode 100644
index 0000000000..bb5d5e0ff1
--- /dev/null
+++ b/macros/latex/contrib/treesvr/trees.sty
@@ -0,0 +1,86 @@
+%---------- trees.sty --------------------
+% Peter Vanroose, 18 april 1990.
+\newcount\branchwidth\newcount\xcoord\newcount\ycoord\newcount\coordstep
+\def\branchlabels#1#2#3{\edef\labela{#1}\edef\labelb{#2}\edef\labelc{#3}}
+\branchlabels012
+%
+\def\root(#1,#2) #3.{\catcode32=9 % ignore spaces
+ % #3 is the node label of the root
+ \expandafter\xdef\csname nodex#3\endcsname{#1}
+ \expandafter\xdef\csname nodey#3\endcsname{#2}
+ \put(#1,#2){
+ \put(0,0){\line(-1,0)6}\put(-6,0){\line(0,-1)3}\put(-9,-3){\line(1,0)6}}}
+%
+\def\branch#1#2#3:#4,#5.{ \branchwidth=#1
+ \xcoord=\expandafter\number\csname nodex#3\endcsname
+ \ycoord=\expandafter\number\csname nodey#3\endcsname
+ \edef\coord{(\number\xcoord,\number\ycoord)}
+ \advance\xcoord by 12 % #4,#5 are the labels of the childs
+ \expandafter\xdef\csname nodex#4\endcsname{\number\xcoord}
+ \expandafter\xdef\csname nodex#5\endcsname{\number\xcoord}
+ \ifcase\branchwidth
+ \advance\ycoord by 24\coordstep=-48 \or % case 0
+ \advance\ycoord by 12\coordstep=-24 \or % case 1
+ \advance\ycoord by 6\coordstep=-12 \or % case 2
+ \advance\ycoord by 3\coordstep=- 6 \fi % case 3
+ \expandafter\xdef\csname nodey#4\endcsname{\number\ycoord}
+ \advance\ycoord by \coordstep
+ \expandafter\xdef\csname nodey#5\endcsname{\number\ycoord}
+ \expandafter\put\coord{
+ \put(0,0){\circle*1}\put(0,1.5){\makebox(0,0){\scriptsize #2}}
+ \ifcase\branchwidth
+ \put(0,0){\line(1,2){12}}\put(0,0){\line(1,-2){12}}
+ \put(5,12){\tiny$\labela$}\put(5,-12){\tiny$\labelb$} \or % case 0
+ \put(0,0){\line(1,1){12}}\put(0,0){\line(1,-1){12}}
+ \put(6,7){\tiny$\labela$}\put(6,-8){\tiny$\labelb$} \or % case 1
+ \put(0,0){\line(2,1){12}}\put(0,0){\line(2,-1){12}}
+ \put(6,3.6){\tiny$\labela$}\put(6,-5){\tiny$\labelb$} \or % case 2
+ \put(0,0){\line(4,1){12}}\put(0,0){\line(4,-1){12}}
+ \put(6,2){\tiny$\labela$}\put(6,-3){\tiny$\labelb$} \fi % case 3
+}}
+%
+\def\tbranch#1#2#3:#4,#5,#6.{
+ \branchwidth=#1
+ \xcoord=\expandafter\number\csname nodex#3\endcsname
+ \ycoord=\expandafter\number\csname nodey#3\endcsname
+ \edef\coord{(\number\xcoord,\number\ycoord)}
+ \advance\xcoord by 12
+ \expandafter\xdef\csname nodex#4\endcsname{\number\xcoord}
+ \expandafter\xdef\csname nodex#5\endcsname{\number\xcoord}
+ \expandafter\xdef\csname nodex#6\endcsname{\number\xcoord}
+ \ifcase\branchwidth
+ \advance\ycoord by 24\coordstep=-24 \or % case 0
+ \advance\ycoord by 12\coordstep=-12 \or % case 1
+ \advance\ycoord by 6\coordstep= -6 \or % case 2
+ \advance\ycoord by 3\coordstep= -3 \fi % case 3
+ \expandafter\xdef\csname nodey#4\endcsname{\number\ycoord}
+ \advance\ycoord by \coordstep
+ \expandafter\xdef\csname nodey#5\endcsname{\number\ycoord}
+ \advance\ycoord by \coordstep
+ \expandafter\xdef\csname nodey#6\endcsname{\number\ycoord}
+ \expandafter\put\coord{
+ \put(0,0){\circle*1}\put(0,1.5){\makebox(0,0){\scriptsize #2}}
+ \ifcase\branchwidth
+ \put(0,0){\line(1,2){12}}\put(0,0){\line(1,0){12}}\put(0,0){\line(1,-2){12}}
+ \put(5,12){\tiny$\labela$}\put(5,0.6){\tiny$\labelb$}\put
+ (5,-12){\tiny$\labelc$} \or % case 0
+ \put(0,0){\line(1,1){12}}\put(0,0){\line(1,0){12}}\put(0,0){\line(1,-1){12}}
+ \put(6,7){\tiny$\labela$}\put(6,0.5){\tiny$\labelb$}\put
+ (6,-8){\tiny$\labelc$} \or % case 1
+ \put(0,0){\line(2,1){12}}\put(0,0){\line(1,0){12}}\put(0,0){\line(2,-1){12}}
+ \put(6,3.6){\tiny$\labela$}\put(6,0.5){\tiny$\labelb$}\put
+ (6,-5){\tiny$\labelc$} \or % case 2
+ \put(0,0){\line(4,1){12}}\put(0,0){\line(1,0){12}}\put(0,0){\line(4,-1){12}}
+ \put(6,2){\tiny$\labela$}\put(6,0.25){\tiny$\labelb$}\put
+ (6,-3){\tiny$\labelc$} \fi % case 3
+}}
+%
+\def\leaf#1#2#3.{
+ \xcoord=\expandafter\number\csname nodex#3\endcsname
+ \ycoord=\expandafter\number\csname nodey#3\endcsname
+ \edef\coord{(\number\xcoord,\number\ycoord)}
+ \expandafter\put\coord{
+ \put(0,0){\circle*1}\put(0,1.5){\makebox(0,0){\scriptsize #1}}
+ \put(2,-0.6){\makebox(0,0)[l]{#2}}}}
+%
+%-------- end of trees.sty -------------