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