[comp.lang.postscript] groff and ralpage

jmd@franklin.ee.umr.edu (Jim Dumser) (10/18/90)

[ Sorry if this gets to your site twice.  I tried cross posting to
gnu.groff.bug -- it showed up there, but apparently didn't make it c.l.p. ]

I've been trying to solve some problems were having with ralpage (v 1.5 with
jgm/bsz mods v3, running under X11) viewing output from groff (v 0.5).  I
traced the problem down, I think.  Here's an example:

/SF {		% name size font SF -
  findfont exch
  [ exch dup 0 exch 0 exch neg 0 0 ] makefont
  dup setfont
  [ exch /setfont load ] cvx def
} bind def

16 /Times-Roman@0 SF

This produces 'undefined in operator load' when run thru ralpage.  As I
understand load, it will replace setfont on the stack with the procedure
*setfont* (actual executable).  At the end it does a bind.  I don't know why
you'd want to do a bind -- there probably are good reasons :-) -- all bind
does is replace names with their values (makefont -> *makefont*, load ->
*load*, setfont -> *setfont*, etc), right?  Why do a '/setfont load' if
you're going to do a bind anyway?  Wouldn't just '/setfont' (with bind) do
exactly the same thing?

I've found two things that "fix" the problem: remove the load, or remove the
bind.  Both way works with ralpage and with our Laserwriter.  Could it be
that ralpage's bind is replacing name setfont with *setfont*?

BTW: There is also a MF procedure in the grops prolog that has the same
problem as SF, altho it wasn't used in my test document.

Jim Dumser

+-------------------------------------------------------+
|  The fear of the Lord is the beginning of knowledge,  |
| but fools despise wisdom and discipline. Proverbs 1:7 |
|-------------------------------------------------------|
|    Internet: jmd@ee.umr.edu     |  M S - D O S . . .  |
|    UUCP: ...uunet!umree!jmd     |    Just say "NO!"   |
+-------------------------------------------------------+