From: de19@umail.umd.edu (Dana S Emery)
Newsgroups: comp.sys.mac.programmer
Subject: Re: sys6fonts2sys7?
Date: 27 Sep 92 11:19:20 GMT
Followup-To: comp.sys.mac.programmer
Organization: Personal

In article <1992Sep21.123833.16912@kth.se>, f91-gal@nada.kth.se (Gran
Alterland) wrote:
> 
> I've been using Word 4.0 for writing my lab reports at home, taking 
> them to my school for printout at the lazerprinter connected to the 
> appletalk network.

The only major dificulty in doing this lies in font reconciliation, and in
the fact that early versions of Word are buggy under system 7.  I dont know
from experience, but I think that v4d is the earliest version which may
work, but I wouldnt bet the farm on total compatibility.

> I've been using a special bitmap font that for generating
> the special characters (logic, maths) that I word with, 
> using the option to to force the bitmap font to the lazer available within that program.

??? I thought I knew word 4 well, and I have never seen any such 'option',
but there is a strategy
which one can use to force word to download a font in a manner that will
allow it to lurk in the background of the printer, for timely use when an
illustration needs it, read on for details.

Be warned, lecture mode is on.  

PS font definitions must exist at the printer for them to be used in the PS
code.  Some fonts are permanantly resident, others semiperanantly (cached
on disk attached to the printer), others are temporarily resident (via 
prior 'Send PS' download), but will volatize when the printers power is
reset.  Individual PS jobs can include font definitions as an integral or
as an ad-hoc part of them selves, such font definitions are temporary, and
will volatize when the job is done.

The LaserWriter driver monitors your program while it draws each page of
the document, and translates each quickdraw call you make into its PS
equivalent.  Since some of those commands will involve text, it gets to see
the fonts used by the document, and can arrange for any non-resident fonts
to be included in the PS print stream.  Additionally, arbitrary PS emission
mechanisms exist, so that a program can emit PS code of its (or the users)
choosing at any point within a given page.  

Unfortunatly, PS is a complex enough language that, short of becoming a PS
interpreter, the LW driver cant be made to scan arbitrary PS code to
observe font useage in it, and thus doesnt support the font requirements of
arbitrary PS emision.  Since Apple refuses to provide robust PS specific
printing support, no provision has been made in the current LaserWriter
driver for the program to request that individual fonts need to be
downloaded.  Also, while a given eps could provide its own fonts
explicitly, that becomes a significant burden, as the page is protected
from the eps, and the font(s) defined by an eps are not available to other
eps, or to the document itself.  Further, a bitmap is not directly suitable
for PS use, the LW driver has code which can create a type 3 font from a
bitmap, but the only way to trigger that is to image some text with a
quickdraw call which references a bitmap that implies neither a 'sfnt' nor
a 'LWFN' in its 'FOND' (yes, the FOND knows).

It is possible to make a 'poor mans' type 3 font, by recycling a
print-to-disk file into 'POST' resources located in a 'LWFN' file, and I
have done just that for Geneva, Monaco and some of my own fonts, but these
are simply bitmaps in drag --- while they are legal PS, they are not 'real'
PS.

Thus, programs which want to intermix eps illustrations with quickdraw
graphics/text have some difficulty when the eps uses PS fonts (eps which
just draws lines works ok).

The workaround is to use quickdraw calls to image some real (ie, not a
spce) character in each font somewhat prior to the use of the font in the
document, and hope that the printer has enough memory available to keep the
font resident (fails for font samplers). Obviously, it is inconvenient if
the text doesnt happen to use the font prior to its use in an illustration,
and so a more general solution is to use words position paragrah ability to
place the trigger text near enough to the page edge that the printer will
clip it.  Since Word prints each page in layers, with the header/footer
being printed before the body, it usually is best to put the trigger text
in the header.

end of lecture mode.

> But lately my school's upgraded their network to sys7 and now MSWord does
> simply not recognize my font any longer. I've tried to install it by moving
> the fonts manually to the fonts drawer, and by using the mover, but neighter
> works. 

???  does any thing else recognize your fonts?  have you tried to see them
in the format character dialog?  the Fonts menu can be restricted to show a
subset of the available fonts, perhaps your font is simply not being
included in that set?

Doesnt your school have any technical support?  Do you bring in your own
hard drive?  Could you boot it if you did?  If so, you could use the system
7 LW driver under 6.0.7/ 6.0.8 (as I have done), and that might help.

Have you tried using the utillity Suitcase? but that shouldnt be necessary,
and your existing FONT (? NFNT) should be able to be used as-is.  

System 6.0.8 introduced system based support for the new font type 'sfnt',
which is a special envelope that wraps a truetype fonts bitmaps and PS
code, along with some other stuff for international support (ie, roman and
native transliteration of the fonts name for use in a roman script prefered
environment).

Were you able to test this under 6.0.8?

>  Is there any Netter out there who knows how to solve this problem? Porting
> this font to Sys7 is a must, as there simply aren't any commercial fonts that
> match my requirements. 
>  Is there a way to port the bitmap sys6 font to a bitmap or pastscript sys7 font?

There is no such thing as a system 7 font.  Under both system 6 and 7 there
are:

   'FONT' 'NFNT' and 'sfnt' resource formats for specific bitmap size
definition (size 0, for sfnt).
   'FOND' and 'fbit' resources which serve to organize and group the
bitmaps of a font family;
   'POST' resources for type 1/ type 3 postscript code (commonly located in
'LWFN' files).

>  Is there a program that takes an existing sys7 font and lets you modify it?

There are several PS/Truetype font creation/editors, some handle both
formats.  See the catalogs of MacConnection, MacWarehouse, MacsPlace et al
for prices, ecpect to pay 250+++, as these are not only niche market
products, they are also serious production tools.

In addition, there are specialty products which allow one to manipulate
extant Truetype/ type 1 / type 3 PS fonts to construct weird and wonderfull
new fonts.  FontMonger and TypeStyler come to mind.

>  Is there nobody out there who makes an living out of supplying tailor-made fonts?

Adobe, Bitstream, Cassidy and Greene, some 20+ more and counting.


--

Dana S Emery <de19@umail.umd.edu> | "Novo, de Novo,
                                  |     de novo, de no-o-o-o-o---, 
                                  | Novemba come an' dey gonna go home."
Newsgroups: comp.sys.mac.programmer