Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!pasteur!ucbvax!decwrl!sun!pitstop!sundc!seismo!uunet!munnari!munnari.oz!mwp
From: mwp@munnari.oz (Michael Paddon)
Newsgroups: comp.lang.postscript
Subject: Re: Question from Ignorant
Message-ID: <2379@munnari.oz>
Date: 19 Sep 88 03:14:27 GMT
References: <692@clinet.FI>
Sender: news@munnari.oz
Reply-To: mwp@munnari
Lines: 37

From article <692@clinet.FI>, by toweri@clinet.FI (Jukka Lindgren):
> 
> But I am not so sure...  Until now I have thought that the postscript
> doesn't "draw" individual letters, but merely "tells" the type-setter
> that
>  "there is the beginning of text column (x1,y1) and it ends at (x2,y2)
>   and it contains the following text with following type- and size setting.
> 
> Am I right or am I right ?

Wrong. Sets of postscript characters (fonts) may be described as arbitrary
graphical shapes. As such, they are subject to all forms of manipulation
that other general shapes are subject to (transformations etc). In general,
a character's definition is
	"a procedure body that executes...to produce the character's shape"
				(Red book, page 86)

Of course, this level of generalisation could be very inefficient in
practice, so some optimizations have been made. The abstract definition,
however, is probably good enough for people not actually building fonts
of their own.

Because fonts are very widely used in page descriptions, Adobe specified
some higher level operations to simplify their use in everyday situations.
The "show" operator is one such example (there are many others). These
specialised operators do not alter the fact that characters are merely
arbitrary shapes.

Some PostScript systems I have used also allow characters to be defined
as bit maps and the corresponding bit masks. This system is not as
flexible as the more general font model, but is occasionally useful
as many fonts already exist as bitmap descriptions.

========================================================
| Michael Paddon (mwp@munnari.oz.au)                   |
| Department of Computer Science, Melbourne University |
========================================================