> Therefore please critique the following PIC.  It looks okay
> but I'm sure it could be improved in appearance and
> (especially) general style.

Since this is structurally like a bulleted list, maybe doing
this in pic is more complicated than necessary?  I'm thinking
a simple approach with a few macros should do the trick.
All that needs to be done is to remember the height of the
previous items at each level, and then use the \D'l ...' escape
to draw the lines instead of the list bullets, something like
in the attached example.  (Most of the finicky stuff here is
for treating the first entry differently.)
The added bonus is that it also works nicely in nroff.


.\"
.\" ----------------------------------------------------------------
.if n .nr EZ 12p \" display skip
.if t .nr EZ  6p \" display skip
.if n .nr ^^ 12p \" extra space between items
.if t .nr ^^  4p \" extra space between items
.nr >> 2n \" indent per level
.\" ----------------------------------------------------------------
.de <<
.in +\\n(>>u+2n
.nr ## +1
.nr **\\n(## \\n(^^u+.5m
..
.de >>
.in -\\n(>>u+2n
.nr ## -1
..
.de ==
.di <>
.if !\\n(#1 .sp \\n(^^u
.ie \\n(#1 \Z'\h'-1n'\v'-.5n'\D'l -\\n(>>u 0'\D'l -1n 0            '\v'.5n''\c
.el        \Z'\h'-1n'\v'-.5n'\D'l -\\n(>>u 0'\D'l 0 -\\n[**\\n(##]u'\v'.5n''\c
\&\\$*
.br
.di
.nr **\\n(## \\n(dn
.if \\n(#1 .nr **\\n(## +\\n(^^u
.if \\n(##>1 .++ \\n(## \\n(dn
.in 0
.nf
.<>
.fi
.in
.nr #1 0
..
.de ++
.nr #= \\$1-1
.nr **\\n(#= +\\$2
.if \\n(#=>1 .++ \\n(#= \\$2
..
.de EX
.br
.nr #1 1
.nr ## 0
.in +\\n(>>u+2n
.di EY
..
.de EE
.di
.ne \\n(dnu+.5v
.sp \\n(EZu
.nf
.in 0
.EY
.sp \\n(EZu
.in
.in -\\n(>>u+2n
.fi
..
.\" ----------------------------------------------------------------
.po 2.5c
.ll 21c-5c
.sp 3c
.ps 10
.vs 12
Text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text.
.EX
.<<
.== project\-1.2.3/
.<<
.== patches/
.<<
.== series
.== patch1.diff
.== patch2.diff
.== foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo 
bar foo bar foo bar foo bar foo bar foo bar foo bar
.== .\ .\ .
.>>
.== .pc/
.<<
.== .quilt_patches
.== .quilt_series
.== .patch1.diff/
.<<
.== .\ .\ .
.>>
.== .patch2.diff/
.<<
.== .\ .\ .
.>>
.>>
.>>
.== project\-4.5.6/
.== project\-7.8.9/
.>>
.EE
Text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text
text text text text text text text text text text text text text text text text.

Attachment: filetree.pdf
Description: Binary data

Reply via email to