[comp.sys.mac] Funny Spacing in WriteNow - replies, true nature of the bug, and a workaround

cordy@qucis.UUCP (10/29/87)

Thanks to all those who replied to my query about the funny spacing
produced by WriteNow on the LaserWriter.  Replies were of two kinds,
neither of which actually suggested how I might fix the problem, but 
that's ok because they inspired me to dig harder to find out what it
really was.

- Some people suggested that the problem might have to do with either the
version of LaserWriter driver I was using or with rumored bugs in the
PostScript interpreter embedded in the LW itself, but neither of these
turns out to have anything to do with the problem.  (Even so, thanks
for the suggestions, they prodded me into finally updating my LW driver 
to 4.0 from 3.1 and it sped up printing a *lot*!)

- As many of the replies pointed out, WriteNow *does* work properly if 
you use Helvetica or Times on the screen and the "use printer spacing" 
option, and several people suggested that it was unreasonable for me to
expect it to do well otherwise.  

Well.  Since MacWrite does a very nice job of producing reasonably spaced 
Helvetica output on the LW while editing in Geneva on the screen, I don't 
see why I shouldn't expect the product advertised as "what MacWrite should 
have been" to do likewise.  In any case, the Helvetica and Times fonts were 
not designed for screen use, and it shows when you go blind trying to use 
them that way.  Geneva and New York, on the other hand, *were* designed for
screen use, and that's what I'd like to use them for.

- Anyway, I finally did discover what the "bug" actually was.
It turns out to be due to WriteNow's insistence that the image on the
printer ought to be spaced identically to the image on the screen, even
if the printed image looks ridiculous as a result.  In other words, WriteNow
tries to preserve the strict WYSIWYG property of the screen image even
at the cost of the quality of the printed result.  (Sort of like Word's 
insistence on the quality of the output at the cost of WYSIWYG, only 
backwards.)  MacWrite, on the other hand, is perfectly happy to sacrifice the 
spacing in favor of better output quality, hence my observation that MW 
produces consistently better printed results than WN.

Whether you agree with WriteNow's choice or not, the printed results of this
policy are uniformly bad if you like using the screen fonts and still want
publishable output.  Fortunately the implementation of the policy is
simple enough that it can easily be fixed to give good results if you are 
using a decoupled LaserWriter (i.e., one on a serial line that you download 
PostScript to via some kind of host).

WriteNow implements preservation of the screen spacing in the printed output by
using the "awidthshow" PostScript function to print each line of output instead
of the usual "show" function.  Basically, "awidthshow" asks the LW to stretch 
the spacing of the line of text to a specified width instead of using the 
natural spacing of the built-in font (well, it's more complicated than that,
but we don't really care).  By changing each line that uses "awidthshow" to 
use "show" instead, we can revert to the MacWrite solution of sacrificing 
screen spacing in favor of quality output.  The following simple "sed" command 
accomplishes this on Unix:

	sed -e "/awidthshow/s/^.*(/(/" \
	    -e "/awidthshow/s//show/"  \
	    PostScript > PostScript.fixed

where PostScript is the file produced by Command-K or Command-F from WriteNow,
and PostScript.fixed is the file you will send to the LW to print.  (For the
PostScript hacks among you, the first sed command removes the four numeric
parameters to each call to "awidthshow" and the second command changes each call
to "awidthshow" to "show".)

While it does give us back the really high quality Helvetica output of
MacWrite, this solution also reintroduces the problem that MacWrite has on
LW's, namely that you must specify a ruler width on the screen that is 1/2 
to 1 inch wider than the width you actually expect to see printed, to account
for the compaction of Geneva to Helvetica font widths.  (Not really a problem,
unless you insist on printing the same document on both LWs and Imagewriters.)

Anyway, it works great for me, and I'm glad that I finally found a way, because
I *love* WriteNow and I *hate* Helvetica on the screen.  Perhaps the next
version of WriteNow should make this an option for other half-blind people 
like me who can't read bitmapped Helvetica?

Jim Cordy		cordy@qucis.bitnet
Queen's University 	cordy%qucis.bitnet@wiscvm.wisc.edu
Kingston, Canada