dudkl@dcatla.UUCP (Danny K. Llewallyn) (05/10/88)
Dear PostScript Experts,
I am having trouble reencoding a font. I am using the routine found in
the Green Book on pages 115-117. When I run the program appended at the
end of this message, I get the invalidfont error when I try to print the
following code points:
Code Points \267 - \275: atilde,otilde,agrave,egrave,igrave,ograve,ugrave.
Code Points \300 - \306: Agrave,Egrave,Igrave,Ograve,Ugrave,Atilde,Otilde.
Code Points \322 - \326: Acircumflex,Ecircumflex,Icircumflex,Ocircumflex,
Ucircumflex.
I know that the charprocs exist for these characters, for the characters
will print if I change the starting reencode point to 0 versus 176. Also,
I realize there is another reencoding example in the Blue Book, however
the one in the Green Book is more concise and elegant. Thanks in Advance
for any help you can give me with this problem.
Danny.
----------- PostScript Program Starts Below this Line ----------------
/RE {
findfont begin currentdict dup length dict begin{1 index/FID ne{def}{pop
pop}ifelse}forall/FontName exch def dup length 0 ne{/Encoding Encoding 256
array copy def 0 exch{dup type/nametype eq{Encoding 2 index 2 index put pop
1 add}{exch pop}ifelse}forall}if pop currentdict dup end end/FontName get
exch definefont pop
}bind def
/stdencoding[176/space/space/space/space/dieresis/acute/cedilla/atilde
/otilde/agrave/egrave/igrave/ograve/ugrave/udieresis/eacute/Agrave/Egrave
/Igrave/Ograve/Ugrave/Atilde/Otilde/Y/A/E/E/I/O/U/Y/C/Edieresis/Idieresis
/Acircumflex/Ecircumflex/Icircumflex/Ocircumflex/Ucircumflex/Aacute
/Iacute/Oacute/Uacute/space/ccedilla/semicolon/asterisk/oslash/D/one/three
/space/V/P/Y/P/paragraph/underscore/equal/endash/registered/space/space
/space/space/space/space/space/space/space/space/space/space/space/space
/space/space/space/space/space]def
stdencoding /NewCourier /Courier RE
/NewCourier findfont 8 scalefont setfont
72 750 moveto
currentpoint
( 0123456789ABCDEF) show stroke
moveto
currentpoint
( ________________) show stroke
moveto
0 -10 rmoveto
currentpoint
(0:\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017)
show stroke
moveto
0 -10 rmoveto
currentpoint
(1:\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037)
show stroke
moveto
0 -10 rmoveto
currentpoint
(2:\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057)
show stroke
moveto
0 -10 rmoveto
currentpoint
(3:\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077)
show stroke
moveto
0 -10 rmoveto
currentpoint
(4:\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117)
show stroke
moveto
0 -10 rmoveto
currentpoint
(5:\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137)
show stroke
moveto
0 -10 rmoveto
currentpoint
(6:\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157)
show stroke
moveto
0 -10 rmoveto
currentpoint
(7:\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177)
show stroke
moveto
0 -10 rmoveto
currentpoint
(8:\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217)
show stroke
moveto
0 -10 rmoveto
currentpoint
(9:\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237)
show stroke
moveto
0 -10 rmoveto
currentpoint
(A:\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257)
show stroke
moveto
0 -10 rmoveto
currentpoint
(B:\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277)
show stroke
moveto
0 -10 rmoveto
currentpoint
(C:\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317)
show stroke
moveto
0 -10 rmoveto
currentpoint
(D:\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337)
show stroke
moveto
0 -10 rmoveto
currentpoint
(E:\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357)
show stroke
moveto
0 -10 rmoveto
currentpoint
(F:\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377)
show stroke
moveto
showpage
greid@ondine.COM (Glenn Reid) (05/11/88)
>I am having trouble reencoding a font. I am using the routine found in >the Green Book on pages 115-117. When I run the program appended at the >end of this message, I get the invalidfont error when I try to print the >following code points: > >Code Points \267 - \275: atilde,otilde,agrave,egrave,igrave,ograve,ugrave. >Code Points \300 - \306: Agrave,Egrave,Igrave,Ograve,Ugrave,Atilde,Otilde. >Code Points \322 - \326: Acircumflex,Ecircumflex,Icircumflex,Ocircumflex, > Ucircumflex. I believe the problem is that you do not have "grave", "tilde", and "circumflex" in the encoding anywhere. In order to set composite characters, both of the component pieces need to be encoded (it doesn't particularly matter where). The other thing that will get you is the "dotlessi" character, which is one of the components of "iacute", "igrave", etc. It does NOT use the "i" character, as you might originally suspect. "dotlessi" may already be in the encoding (haven't checked that carefully) but if it isn't, it can cause hours of grief trying to track it down. Good luck. Glenn Reid Adobe Systems