[comp.lang.postscript] where does rootfont live

flar@bendenweyr.Eng.Sun.COM (Jim Graham) (05/07/91)

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