Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!ucbvax!WASHINGTON.ARPA!MACKAY From: MACKAY@WASHINGTON.ARPA (Pierre MacKay) Newsgroups: mod.computers.laser-printers Subject: (Valid) null characters on the LaserWriter. Message-ID: <12213790842.39.MACKAY@WASHINGTON.ARPA> Date: Tue, 10-Jun-86 17:56:55 EDT Article-I.D.: WASHINGT.12213790842.39.MACKAY Posted: Tue Jun 10 17:56:55 1986 Date-Received: Thu, 19-Jun-86 07:45:30 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 60 Approved: laser-lovers@washington.arpa As soon as you start using cmsa10.*pxl or cmtex10.*pxl, or any slitex invisible fonts on the LaserWriter, you may run into the whopping great bug in tex.ps (which reflects a bug in post-script). \char32 in the two named fonts, and all the characters in invisible fonts have 0 rasters of length 0, and when the old tex.ps sees that it will work very hard to fill up the LaserWriter memory with 0 bytes. (The old decrement from 0 until 0 error). Jan Sanislo at UW has put in a patch that traps this condition and gives the desired results when it hits such characters. (That is, the tfmwidth is used for hosizontal spacing, and nothing at all is done about the rasters.) So many of you already have the distributed version of tex.ps without the fix that I can only hope to reach even a majority, but I want to get this fix out to as many as possible. Since many sites have already modified tex.ps for local purposes, I will give FIRST the text of the unmodified @dc macro, and then the modified text. This has been tested at other sites besides the UW. ---------------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%The unmodified macro%%%%%%%%%%%%%%%%%%%%% ---------------------------------------------------------------- /@dc % char-data ch @dc - -- define a new character bitmap { /ch-code exch def /ch-data exch def currentfont /BitMaps get ch-code ch-data put currentfont /Encoding get ch-code dup ( ) cvs cvn % generate a unique name simply from the character code put } def ----------------------------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%Rationale for correction%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ----------------------------------------------------------------------------- % oystr 12-Feb-1986 % Changed @dc macro to check for badly formed bits in character % definitions. Can get a <> bit map if a character is not actually % in the font file. This is absolutely guaranteed to drive the % printer nuts - it will appear that you can no longer define a % new font, although the built-ins will still be there. ---------------------------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%The corrected code%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --------------------------------------------------------------------------- /@dc % char-data ch @dc - -- define a new character bitmap { /ch-code exch def % ++oystr 12-Feb-86++ dup 0 get length 2 lt { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null if % --oystr 12-Feb-86-- /ch-data exch def currentfont /BitMaps get ch-code ch-data put currentfont /Encoding get ch-code dup ( ) cvs cvn % generate a unique name simply from the character code put } def ---------------------------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%That's all%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ---------------------------------------------------------------------------- Pierre -------