[comp.unix.questions] vertical line registration in tbl...

tcianflo@nugipsy.UUCP (Tom Cianflone) (10/08/87)

This is a request for information I received once
before but lost.  Please be kind enough to help me
out once more.

We use tbl to produce outlined tables in text.
Files are first processed by tbl, then sent to psroff
which finally outputs to a DataProducts laser printer.

Here is the problem.  The vertical lines in the table
do not meet flush with the horizontal lines.  At the top
of the table, the vertical lines fall just short of the
top-most horizontal line.  On the bottom, the vertical lines
overshoot the bottom-most horizontal line.

If I remember correctly, this has something to do with
the pipe character (|) being used for drawing the vertical
lines instead of doing it some other way.  What is the
fix for this?

Thanks in advance!
-- 
=> Regards, Tom Cianflone @ Gould Computer Systems Division <=
=>   ...!{uunet,sun,pur-ee,brl-smoke}!gould!tcianflone     <=
=>    ...!ihnp4!{codas,allegra}!novavax!gould!tcianflone    <=
=> NOTE: Disregard header info. Email to above paths only.  <=

pls@sortac.UUCP (Pat Sullivan) (10/09/87)

In article <630@nugipsy.UUCP> tcianflo@nugipsy.UUCP (Tom Cianflone) writes:
>We use tbl to produce outlined tables in text.
>Files are first processed by tbl, then sent to psroff
>which finally outputs to a DataProducts laser printer.
>
>Here is the problem.  The vertical lines in the table
>do not meet flush with the horizontal lines.

Tbl uses the "\(ul" special character for horizontal lines and "\(br" for
vertical lines (incidentally, pic uses "\(ru" for horizontal lines and
"\(br" for vertical when it doesn't have to use "drawdot").

Tbl expects the "\(ul" to be just below the baseline; we use a 10 point
Prestige underscore character on our LaserJet.  Pic expects the "\(ru"
to be right on the baseline (we had to roll our own for this one also).

To meet the "\(ul" character properly, the "\(br" character must extend
from a "\(ul" character on the line above the current line to a "\(ul"
character on the current line and should have its left edge at the same
place in a character cell as the left edge of a "\(ul" character.
Since the pipe character ("|") doesn't really do this, we had to define
our own to download to the LaserJet (e.g., a 3 dot wide, 44 dot high bar
that starts 5 dots below the top of a 50 dot high character cell meets
HP's 10 point Prestige underscore character perfectly - phew!!).

To get a perfect fit, you will probably need to define the "\(br" character
to be one that you download specifically for the purpose or one that you
create by shifting the position and/or size of a pipe character.

============================================================
Pat Sullivan - {akgua|ihnp4}!sortac!pls - voice 404-257-7382

gwyn@brl-smoke.ARPA (Doug Gwyn ) (10/10/87)

In article <630@nugipsy.UUCP> tcianflo@nugipsy.UUCP (Tom Cianflone) writes:
-Here is the problem.  The vertical lines in the table
-do not meet flush with the horizontal lines.  At the top
-of the table, the vertical lines fall just short of the
-top-most horizontal line.  On the bottom, the vertical lines
-overshoot the bottom-most horizontal line.
-
-If I remember correctly, this has something to do with
-the pipe character (|) being used for drawing the vertical
-lines instead of doing it some other way.  What is the
-fix for this?

No, the "box vertical rule" character \(br is used.
It works fine in many environments, including ours.
The real problem is that many fonts supplied for
some "typesetters" do not have proper vertical and
horizontal rule character definitions.  A good
explanation of these matters can be found in
"Adventures with Typesetter-Independent TROFF" by
Mark Kahrs and Lee Moore in the Summer 1984 USENIX
conference proceedings.

irf@kuling.UUCP (Stellan Bergman) (10/12/87)

In article <6550@brl-smoke.ARPA> gwyn@brl.arpa (Doug Gwyn (VLD/VMB) <gwyn>) writes:
>In article <630@nugipsy.UUCP> tcianflo@nugipsy.UUCP (Tom Cianflone) writes:
>-Here is the problem.  The vertical lines in the table
>-do not meet flush with the horizontal lines.  At the top
>-.....
>-If I remember correctly, this has something to do with
>-the pipe character (|) being used for drawing the vertical
>-lines instead of doing it some other way.  What is the
>-fix for this?
>
>No, the "box vertical rule" character \(br is used.
>It works fine in many environments, including ours.
>.....



We use the pipe "|" for our \(br on the Laserjet+ and get perfect
tbl results by specifying '-e' option to nroff.  I think you need
to define the maximum resolution (1/240 inch) in your Laserjet+
driver table, though.  We did that. 'nroff -e' really stands for
even word spacing but it has the nice side effect of yielding
maximum vertical resolution as well! 

As our \(ul character we use the normal "_" which also works OK.
However, there exists an underline mode on the Laserjet+ which
prints a rule under the character at the same time the character
itself is printed (no Backspace-_ pairs needed).  The two
techniques give slightly different results with the internal
underline mode having a better typographical quality.


------------------------------------------------------------------------------
Bo Thide', Swedish Institute of Space Physics.  UUCP: ...enea!kuling!irfu!bt

------------------------------------------------------------------------------

feldman@comet.uucp (Steve Feldman) (10/12/87)

We had this problem too, so I talked to someone in Adobe's technical
support departement, and he told me where to look.  I fiddled with it
and came up with the following patch to the psroff prolog, "psdit.pro":

*** psdit.pro.old       Fri Sep 11 17:02:13 1987
--- psdit.pro   Fri Sep 11 17:03:57 1987
***************
*** 189,193 ****
  /vr{0 800 moveto 0 -770 rls}def
  /bv{0 800 moveto 0 -1000 rls}def
! /br{0 750 moveto 0 -1000 rls}def
  /ul{0 -140 moveto 500 0 rls}def
  /ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
--- 189,193 ----
  /vr{0 800 moveto 0 -770 rls}def
  /bv{0 800 moveto 0 -1000 rls}def
! /br{0 880 moveto 0 -1040 rls}def
  /ul{0 -140 moveto 500 0 rls}def
  /ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def

This makes the box rule character (used for vertical lines) a bit longer
and moves it up to join with the underline (used for horizontal lines).

	Steve Feldman
	Tymnet McDonnell Douglas
	..!sun!oliveb!tymix!feldman  or  oliveb!tymix!feldman@SUN.COM

liam@cs.qmc.ac.uk (William Roberts) (10/23/87)

Expires:

Sender:

Followup-To:

Distribution:


We had this problem after upgrading a LaserWriter to a
LaserWriter+. The characters used for \(br \(ul and so forth no
longer meet up properly. To fix this I changed the ditroff ->
PostScript translation stuff in our copy of TranScript so that
\(ul was modified to fit properly: this may have been done for
you in later versions of TranScript (2.0 and above).

Of course, you may be using utterly different software...
-- 

William Roberts         ARPA: liam@cs.qmc.ac.uk  (gw: cs.ucl.edu)
Queen Mary College      UUCP: liam@qmc-cs.UUCP
LONDON, UK              Tel:  01-980 4811 ext 3900