Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!dali.cs.montana.edu!uakari.primate.wisc.edu!sdd.hp.com!cs.utexas.edu!convex!central!newstop!sun!exodus!bendenweyr!flar From: flar@bendenweyr.Eng.Sun.COM (Jim Graham) Newsgroups: comp.lang.postscript Subject: where does rootfont live Message-ID: <12904@exodus.Eng.Sun.COM> Date: 6 May 91 21:26:31 GMT Sender: news@exodus.Eng.Sun.COM Reply-To: flar@bendenweyr.Eng.Sun.COM (Jim Graham) Organization: Sun Microsystems, Inc. Lines: 34 In the PostScript Language Reference Manual (Second Edition), a new operator - rootfont - is defined. No mention is made of where this operator lives, which generally means that it is an operator and it resides in systemdict. Exceptions to this rule are usually explicitly flagged in the description of the operator (see description of "systemdict"). In the NTX-J (Japanese version of the Laserwriter NTX), which is a level 1 implementation with the Composite Font extensions, rootfont is not an operator, but a value stored in userdict. It is stored there by a setfont override which appears in userdict and is defined as: /setfont { setfont userdict /rootfont currentfont put } bind def The question is, how is rootfont supposed to be defined according to the Level 2 spec? Is it supposed to be an operator and the NTX-J implementation is a prototype work-around? Or is it supposed to be a value stored in userdict, but the Second Edition redbook does not clarify this. Can someone at Adobe please clarify this? Also, I am interested in knowing whether this operator is supposed to be defined at all times, or only within the context of a /BuildChar procedure execution (as are setcachdevice[2], and setcharwidth). Currently, it is only defined after the first "setfont" is executed even though "currentfont" is defined at all times (and returns a bogus /NotDefFont until you set a font). This contradicts the description of the operator "Normally, rootfont returns the same font as currentfont." ...jim