By 1984 (so some years after the formative stage in the era between 4.2BSD and 4.3BSD), there
were a number of different programs on the net (USENET's source groups) to pretty print things
on laser or line printers: grind, tgrind, vgrind, ete. These all had a dozen different ways to gaudy up
the output (err, present the listing in a more aesthetically pleasing way): Line numbers, line numbers
every 5 or 10 lines, line spacing tweaks, keywords as bold or italics, frames around the output,
"two up" printing, various special behavior for functions (grey bands for start of functions, function
definitions in bold, etc), as well as specialized options for assembler / object renderings, etc. Most
were targeted at laser printers, but some were a better version of pr/lpr for line printer output. Some
targeted postscript directly, while others used TeX, troff, etc in a pipeline to gain some device
independence. Oh what a long way from pr -n these were. But at the time it really helped me to
understand the power of the unix philosophy because these 'all in' approaches were great until
you wanted to get a few steps beyond the beaten path and then it became impossible (given the
great number of combinatorics for these options, many of the programs produced odd results for
some combinations of options).
For day to day stuff, I hated these and used simpler options. But for producing nice looking listings
for appendixes for papers / reports / assignments I'd written for school they weren't half bad if
you avoided the worst of the gaudiness options. :)
Warner