[comp.text] Making "pic" and "tbl" output look correct on IMAGEN printers!

SofPasuk@imagen.UUCP (05/26/87)

At IMAGEN, we are often asked about methods of assuring "perfect"
boxes and line drawings for users of AT&T's DWB and/or ditroff with
IMAGEN's printers.

We hope that the following information can be of some assistance:


Users of "pic" (picture generator)
==================================

The DWB (2.0) version of "pic" has an undocumented option -D
which uses the line drawing functions of device independent troff
for purposes of drawing lines (the \D'l dx dy' command).
Instead of using horizontal and vertical rule characters to generate
lines, "dimp" directly generates imPRESS commands for creation and drawing
of paths resulting in "perfectly" cornered boxes and correct length lines.


Users of "tbl" (table generator)
================================

Users of DWB or "ditroff" with AT&T source licenses for same may
avail themselves of the following source code fixes to force "tbl" to
use the line drawing functions of device independent troff
for purposes of drawing lines (the \D'l dx dy' command):

Source code file "tu.c" should be modified as follows:

  Change:  fprintf(tabout, "\\l'|\\n(%2su'", reg(cr,CRIGHT));
  To:	   fprintf(tabout, "\\D'l |\\n(%2su 0'", reg(cr,CRIGHT));

  Change:  fprintf(tabout, "\\l'|\\n(TWu%s%s'", exhr,lnch);
  To:	   fprintf(tabout, "\\D'l |\\n(TWu%s 0'", exhr);

  Change (2 lines):
 	   fprintf(tabout, "\\l'(|\\n(%2su+|\\n(%2su)/2u%s%s'", reg(cr,CRIGHT),
		reg(cr+1,CLEFT), exhr, lnch);
  To:	   fprintf(tabout, "\\D'l (|\\n(%2su+|\\n(%2su)/2u%s 0'", reg(cr,CRIGHT),
		reg(cr+1,CLEFT), exhr);

Source code file "tv.c" should be modified as follows:

  Change:  fprintf(tabout, "\\L'|\\n(#%cu-%s", linestop[start]+'a'-1, vm=='v'? "1v" : "\\n(35u");
  To:	   fprintf(tabout, "\\D'l 0 |\\n(#%cu-%s", linestop[start]+'a'-1, vm=='v'? "1v" : "\\n(35u");


IMAGEN users are invited to let us know of any other such "fixes" that
may be of use of ditroff/DWB users.

phil@qfdts.UUCP (06/04/87)

In article <1257@imagen.UUCP>, SofPasuk@imagen.UUCP (Munach Rvi'i) writes:
> 
> Users of DWB or "ditroff" with AT&T source licenses for same may
> avail themselves of the following source code fixes to force "tbl" to
> use the line drawing functions of device independent troff
> for purposes of drawing lines (the \D'l dx dy' command):
> 
> Source code file "tu.c" should be modified as follows:
> 
I appreciated this information very much, however when
I tried the fixes there were several problems:

  1.  it does not work al all with nroff

It should not be too difficult to add some `.ie t' and `.el'
conditionals in the tbl output to retain the old code for
nroff and use the new code for troff.

  2.  all lines were a little short 
  3.  horizontal lines were too high

I suspect my backend driver for a custom laser printer may
be responsible for 2 above.  Tbl normally uses \(ul's to
draw horizontal lines in tables and I wonder if 3 is due
to lack of compensation for the fact that \(ul's may 
appear lower on the page that a line drawn starting at
the same vertical position.  (i.e. the fix should go
into tbl and not the back end.)

Has anyone else applied these fixes and found them to work
with a `standard' output device (e.g. Autologic APS-5)?

Phil Chadwick.

SofPasuk@imagen.UUCP (Munach Rvi'i) (06/06/87)

In article <1295@qfdts.OZ>, phil@qfdts.OZ (Phil Chadwick) writes:
 > In article <1257@imagen.UUCP>, SofPasuk@imagen.UUCP (Munach Rvi'i) writes:
 > > 
 > > Users of DWB or "ditroff" with AT&T source licenses for same may
 > > avail themselves of the following source code fixes to force "tbl" to
 > > use the line drawing functions of device independent troff
 > > for purposes of drawing lines (the \D'l dx dy' command):
 > > 
 > > Source code file "tu.c" should be modified as follows:
 > > 
 > I appreciated this information very much, however when
 > I tried the fixes there were several problems:
 > 
 >   1.  it does not work al all with nroff
 > 
 > It should not be too difficult to add some `.ie t' and `.el'
 > conditionals in the tbl output to retain the old code for
 > nroff and use the new code for troff.
 > 
 >   2.  all lines were a little short 
 >   3.  horizontal lines were too high
 > 
 > I suspect my backend driver for a custom laser printer may
 > be responsible for 2 above.  Tbl normally uses \(ul's to
 > draw horizontal lines in tables and I wonder if 3 is due
 > to lack of compensation for the fact that \(ul's may 
 > appear lower on the page that a line drawn starting at
 > the same vertical position.  (i.e. the fix should go
 > into tbl and not the back end.)
 > 
 > Has anyone else applied these fixes and found them to work
 > with a `standard' output device (e.g. Autologic APS-5)?
 > 
 > Phil Chadwick.

Please note that the "fixup" that I posted has been tested only with
IMAGEN printers using IMAGEN's Unix Host Software.  It assumes that
the ditroff/dwb "backend" filter/driver can draw lines using "draw"
commands as opposed to using underbars and vertical bars - use of
characters to simulate lines is the cause of the original problems!