[net.wanted] MacFonts2/Venice28.Hex

clewis@mnetor.UUCP (Chris Lewis) (04/18/85)

I am in the process of trying to write a troff to HP laserjet filter.
The current status is that it works just about perfectly on 12 point
text using the HP native fonts.  I have two more major problems to surmount:
	1) I need special characters and different size fonts
	2) Recognizing end of page (eg: where to place the formfeed
	   in the laser output stream)

The reason why I am replying to the MacFonts stuff is that it occured
to me that I could use the MacFonts font files for the laserjet.  Does
anybody know how to take the MacFont files from these postings, decode them,
and then transform them into something useable by a UNIX program (lines
of bits would be preferable)?  Further, how does one change the font size?  
(eg: scaling algorithm, or are all pitches present in the font file?).  
(BTW: is MacFonts public domain?) Once I do this, I will be able to 
determine which graphics density mode to use on the laserjet and emit 
special/different size characters as graphics bitmaps (I'm not sure
which density mode will allow me to do a whole page without overrunning
the laser's graphics mode byte limit).

We only have a binary UNIX license on our Pyramid, and Pyrcorp seems
to have chosen not to give us the BSD fonts.

The second problem is due to how troff outputs page breaks - it doesn't
really.  The C/A/T typesetter is essentially a random relative 
"cursor-motion" device, where the "y" position can essentially be 
infinite.  On a C/A/T or versatec, the macro packages have arranged
to print some sort of page break sequence (usually two dashes at either
side of the page).  This is where you use the guillotine.  However,
in contrast, you cannot do this on a laser jet because the y positioning
will just hit the bottom margin and overprint subsequent stuff.  And,
the page break characters are different for every macro package.
Hence, I have to figger out where to emit the formfeed.

I am using a kludge now:
	1) after every cumulative "y" set of movements that is EXACTLY 
	   11 inches in troff motion units, I emit a formfeed and
	   reset the laserjet absolute y coordinate to 0 (beginning of
	   page)
	2) Ignore all printing within a couple of vertical motions
	   of the top of page - this is to delete the cut marks.

Unfortunately, this won't work on anything else than 11-inch-designed
troff output.  Maybe I could override the page-break characters
AFTER the macros are defined, so I could recognize them easily, but
I'm not sure how to do this without blowing up the other parts of
macro footers/trailers.  Preferably, I would like to get troff to
emit a pseudo C/A/T opcode (one that isn't already used).  The
guys at U of Toronto did this for versatec stuff, but they did
it by modifying troff source, but this is unacceptable.  I want
my filter to work on a stock troff.

Ps: Does anybody know where the character is supposed to appear
with respect to the C/A/T x-y coordinates?  (eg: is the coordinate
the lower left corner of the glyph?)

Thanks very much,

-- 
Chris Lewis, Computer X (CANADA) Ltd.
UUCP: {allegra, linus, ihnp4}!utzoo!mnetor!clewis
BELL: (416)-475-1300 ext. 321