Package: freefont
Version: 0.10-11

When using KWord to print documents containing some fonts in this
package, e.g. Crillee, the resulting PostScript has errors.  I
consulted a local PostScript expert and he said:

The Crillee font code leaves detritus in the current user
dictionary. The encrypted portion of the font begins with the code

  userdict/RD{string currentfile exch readstring pop}executeonly put
  userdict/ND{noaccess def}executeonly put
  userdict/NP{noaccess put}executeonly put
  dup/Private 11 dict dup begin
  /BlueValues [-10 0 645 646 800 810 813 814]ND
  % everything defined after here goes in the new `Private' dictionary

which has the effect of defining procedures `RD', `ND' and `NP' in the
user dictionary that was in force before the font code was
executed. This means that if the font is included in a PostScript
document whose prologue code also defines a function with any of these
names, the prologue's functions will be overwritten and the PostScript
document will not print correctly. For example, the TrollTech prologue
code as generated by KWord does define `NP' as an abbreviation for
`newpath', and thus a KWord-printed PS file containing the Crillee
font can fail to print.

Other PostScript fonts deal with this by defining these internal
procedures _inside_ the `Private' dictionary created by the encrypted
font code. Here's a sample snippet from the start of the encrypted
section of a proper Type 1 font:

  dup /Private 14 dict dup begin
  /-|{string currentfile exch readstring pop}executeonly def
  /|-{noaccess def}executeonly def
  /|{noaccess put}executeonly def
  /BlueValues [ -25 0 563 588 430 455 606 631 ] |-
  % and more font definitions follow

The three procedures have different names in this snippet, which would
serve to eliminate the specific KWord problem but is not the important
aspect. The important point is that the `Private' dictionary has been
declared to be three elements larger, and is begun _before_ defining
the three internal procedures, so that their definitions go in the
`Private' dictionary and do not clutter up the main userdict. After
the encrypted font code finishes up, it removes the `Private'
dictionary from the active dictionary stack and those three
definitions are no longer accessible.

(I fear this may be a bug in Fontographer, by which the Crillee font
claims to have been generated.)

(S)
-- 
Tear down the wall!  http://gush-shalom.org/thewall/

`Beware the Subjects bird, and shred / The serious Bandwidth!'


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to