[comp.soft-sys.andrew] Tabs: sorry Fred.

wdc@ATHENA.MIT.EDU (Bill Cattey) (07/31/90)

There's really no choice.

The tab code positions the character at the begining of the tab stop at
an absolute position on the screen.  This position is normally specified
in points, and translates to inches across the screen.

We have to widen the tabs to reconcile the fact that 72 pixels worth of
whitespace will be allocated for an inch wide tab.  Into this space, the
printer expects to put a certain sized string of 12 point characters,
which drawtextv has been instructed to fill with 14 point characters.

Therefore an inch on the screen becomes 84 points wide, which is the
same as 72 points on the printer if you're drawing  in Andy12: Times12
in the printer, Times14 on the screen.

But, fear not!  We have decided that default tabs should occur every
half inch (42 pixels on screen), as per the troff manual.  We think this
is much nicer than having them every 8 spaces. which would have been 56
pixels in andytype10, or 64 pixels in the existing tab code.

We are happy to report that the tab code does work, and that we have
tabs that appear at the same character positions on both the screen and
on the printer for a wide variety of tests.  (We are aware that this
fudge factor is an approximation and WILL fail for certain tab sizes in
certain fonts.  We are even planning to compute precicely where it will
fail just for funsies...)

We are considering what options are available to re-integrate all this
lovely text work so that it performs adequately for users of the
typewriter font.

The Example style should define tabs to be 8 spaces nicely on the screen
and on the printer.  (Probably 64 pixels on screen and 64 points in
print.)  We are discovering that this is something that troff got
exactly right:  offering the user the option of positional tabs, or
character tabs.

We look forward to further work to make a streamlined conversion between
tabified text and tables, and we're interested in exploring that idea of
having fields get wrapped onto lines in a particular column.  But we
consider this all far afield of our first priority:  

Users have asked to be able to make simple tables.  They're not afraid
of diddling the tab stops to make the screen and printer line up nicely.
 They've been doing this for years in Scribe, and it's comfortable to
them.

Bill Cattey
&
Nick Williams