% % kinit.ps - install Kanji fonts % % Apr. 4, 1992 by N.Katayama % % Akira Tanaka modified for gs4.03/VFlib support. 1996/10/17 %QUIET not { (Installing Kanji fonts... ) print flush } if %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Define utility operators % 14 dict begin % QUIET % acvs, copyfont, % buffer, basefontname, composename, % JISMappingDict, SJISMappingDict, CNameMappingDict, % StandardMappingProc, % bitmapkanji, outlinekanji % basekanji and compositekanji /QUIET true def % % array string ACVS string % /acvs { % Check stack 2 copy type /stringtype ne exch type /arraytype ne or { /acvs errordict /typecheck get exec } if 2 copy length exch length ne { /acvs errordict /rangecheck get exec } if % Convert array into string 0 1 3 index length 1 sub { dup 3 index exch get 2 index 3 1 roll put } for exch pop } bind def % % fontname newname COPYFONT - % /copyfont { % Check stack count 2 lt { /copyfont errordict /stackunderflow get exec } if 2 copy type /nametype ne exch type /nametype ne or { /copyfont errordict /typecheck get exec } if exch findfont dup maxlength dict begin { 1 index /FID ne 2 index /UniqueID ne and { def }{ pop pop } ifelse } forall currentdict end definefont pop } bind def % % Buffer % /buffer 2 dict begin /str 256 string def /len 0 def currentdict end def % % font_name suffix1 row_code suffix2 BASEFONTNAME font_name % /basefontname { buffer begin 4 -1 roll str cvs length /len exch def str len 4 index putinterval 3 -1 roll length len add /len exch def exch 16 str len 2 getinterval cvrs pop /len len 2 add def str len 2 index putinterval length len add /len exch def str 0 len getinterval cvn end } bind def % % font_name suffix NAME font_name % /composename { buffer begin exch str cvs length /len exch def str len 2 index putinterval length len add /len exch def str 0 len getinterval cvn end } bind def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Define Encoding Vectors % userdict begin % % JIS % /JISEncoding [ 16#00 1 16#20 { pop 0 } for 16#21 1 16#28 { 16#20 sub } for 16#29 1 16#2F { pop 0 } for 16#30 1 16#74 { 16#27 sub } for 16#75 1 16#FF { pop 0 } for ] readonly def % % Ext % /ExtEncoding [ 16#00 1 16#20 { pop 0 } for 16#21 1 16#27 { 16#20 sub } for 16#28 1 16#28 { pop 0 } for 16#29 1 16#2D { 16#21 sub } for 16#2E 1 16#2F { pop 0 } for 16#30 1 16#73 { 16#23 sub } for 16#74 1 16#FF { pop 0 } for ] readonly def % % EUC % /EUCEncoding [ 16#00 1 16#A0 { pop 0 } for 16#A1 1 16#A8 { 16#A0 sub } for 16#A9 1 16#AF { pop 0 } for 16#B0 1 16#F4 { 16#A7 sub } for 16#F5 1 16#FF { pop 0 } for ] readonly def % % JIS Sub % /JISSubEncoding [ % 16#00 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 16#20 /.notdef /c21 /c22 /c23 /c24 /c25 /c26 /c27 /c28 /c29 /c2A /c2B /c2C /c2D /c2E /c2F /c30 /c31 /c32 /c33 /c34 /c35 /c36 /c37 /c38 /c39 /c3A /c3B /c3C /c3D /c3E /c3F % 16#40 /c40 /c41 /c42 /c43 /c44 /c45 /c46 /c47 /c48 /c49 /c4A /c4B /c4C /c4D /c4E /c4F /c50 /c51 /c52 /c53 /c54 /c55 /c56 /c57 /c58 /c59 /c5A /c5B /c5C /c5D /c5E /c5F % 16#60 /c60 /c61 /c62 /c63 /c64 /c65 /c66 /c67 /c68 /c69 /c6A /c6B /c6C /c6D /c6E /c6F /c70 /c71 /c72 /c73 /c74 /c75 /c76 /c77 /c78 /c79 /c7A /c7B /c7C /c7D /c7E /.notdef 128 copy ] readonly def % % Roman % /RomanEncoding [ % 16#00 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 16#20 /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 16#40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /yen /bracketright /asciicircum /underscore % 16#60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /overline /.notdef % 16#80 1 1 128 { /.notdef } for ] readonly def % % Hiragana % /HiraganaEncoding [ % 16#00 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 16#20 /space /jperiod /jbracketleft /jbracketright /jcomma /periodcentered /wogana /asmallgana /ismallgana /usmallgana /esmallgana /osmallgana /yasmallgana /yusmallgana /yosmallgana /tsusmallgana /jprolonged /agana /igana /ugana /egana /ogana /kagana /kigana /kugana /kegana /kogana /sagana /shigana /sugana /segana /sogana % 16#40 /tagana /chigana /tsugana /tegana /togana /nagana /nigana /nugana /negana /nogana /hagana /higana /fugana /hegana /hogana /magana /migana /mugana /megana /mogana /yagana /yugana /yogana /ragana /rigana /rugana /regana /rogana /wagana /ngana /jvoiced /jsemivoiced % 16#60 /wigana /yegana /wasmallgana /.notdef /.notdef /.notdef /gagana /gigana /gugana /gegana /gogana /zagana /jigana /zugana /zegana /zogana /dagana /digana /dugana /degana /dogana /bagana /pagana /bigana /pigana /bugana /pugana /begana /pegana /bogana /pogana /.notdef % 16#80 1 1 128 { /.notdef } for ] readonly def % % Katakana % /KatakanaEncoding [ % 16#00 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 16#20 /space /jperiod /jbracketleft /jbracketright /jcomma /periodcentered /wokana /asmallkana /ismallkana /usmallkana /esmallkana /osmallkana /yasmallkana /yusmallkana /yosmallkana /tsusmallkana /jprolonged /akana /ikana /ukana /ekana /okana /kakana /kikana /kukana /kekana /kokana /sakana /shikana /sukana /sekana /sokana % 16#40 /takana /chikana /tsukana /tekana /tokana /nakana /nikana /nukana /nekana /nokana /hakana /hikana /fukana /hekana /hokana /makana /mikana /mukana /mekana /mokana /yakana /yukana /yokana /rakana /rikana /rukana /rekana /rokana /wakana /nkana /jvoiced /jsemivoiced % 16#60 /wikana /yekana /wasmallkana /kasmallkana /kesmallkana /vukana /gakana /gikana /gukana /gekana /gokana /zakana /jikana /zukana /zekana /zokana /dakana /dikana /dukana /dekana /dokana /bakana /pakana /bikana /pikana /bukana /pukana /bekana /pekana /bokana /pokana /.notdef % 16#80 1 1 128 { /.notdef } for ] readonly def % % Hankaku % /HankakuEncoding [ % 16#00 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 16#20 /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 16#40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /yen /bracketright /asciicircum /underscore % 16#60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /overline /.notdef % 16#80 /space /jperiod /jbracketleft /jbracketright /jcomma /periodcentered /wogana /asmallgana /ismallgana /usmallgana /esmallgana /osmallgana /yasmallgana /yusmallgana /yosmallgana /tsusmallgana /jprolonged /agana /igana /ugana /egana /ogana /kagana /kigana /kugana /kegana /kogana /sagana /shigana /sugana /segana /sogana %16#A0 /space /jperiod /jbracketleft /jbracketright /jcomma /periodcentered /wokana /asmallkana /ismallkana /usmallkana /esmallkana /osmallkana /yasmallkana /yusmallkana /yosmallkana /tsusmallkana /jprolonged /akana /ikana /ukana /ekana /okana /kakana /kikana /kukana /kekana /kokana /sakana /shikana /sukana /sekana /sokana % 16#C0 /takana /chikana /tsukana /tekana /tokana /nakana /nikana /nukana /nekana /nokana /hakana /hikana /fukana /hekana /hokana /makana /mikana /mukana /mekana /mokana /yakana /yukana /yokana /rakana /rikana /rukana /rekana /rokana /wakana /nkana /jvoiced /jsemivoiced % 16#E0 /tagana /chigana /tsugana /tegana /togana /nagana /nigana /nugana /negana /nogana /hagana /higana /fugana /hegana /hogana /magana /migana /mugana /megana /mogana /yagana /yugana /yogana /ragana /rigana /rugana /regana /rogana /wagana /ngana /jvoiced /jsemivoiced ] readonly def % % Shift-JIS % /RKSJEncoding [ 0 1 2 3 4 5 ] readonly def /RKSJSubsVector [ 0 128 1 31 64 16 ] dup length string acvs readonly def /SJSuppAEncoding [ 16#81 1 16#9F { 16#80 sub } for ] readonly def /SJSuppBEncoding [ 16#E0 1 16#EA { 16#DF sub } for 16#EB 1 16#EF { pop 0 } for ] readonly def /83pvSJSuppBEncoding [ 16#E0 1 16#EE { 16#DF sub } for 16#EF 1 16#EF { pop 0 } for ] readonly def /90pvSJSuppBEncoding [ 16#E0 1 16#ED { 16#DF sub } for 16#EE 1 16#EF { pop 0 } for ] readonly def /90msRKSJEncoding [ 0 1 2 3 4 5 ] readonly def /90msRKSJSubsVector [ 0 128 1 31 64 29 ] dup length string acvs readonly def /90msSJSuppBEncoding [ 16#E0 1 16#EA { 16#DF sub } for 16#EB 1 16#EC { pop 0 } for 16#ED 1 16#EE { 16#E1 sub } for 16#EF 1 16#F9 { pop 0 } for 16#FA 1 16#FC { 16#EC sub } for ] readonly def /RKSuppKEncoding [ % 16#00 /space /jperiod /jbracketleft /jbracketright /jcomma /periodcentered /wokana /asmallkana /ismallkana /usmallkana /esmallkana /osmallkana /yasmallkana /yusmallkana /yosmallkana /tsusmallkana /jprolonged /akana /ikana /ukana /ekana /okana /kakana /kikana /kukana /kekana /kokana /sakana /shikana /sukana /sekana /sokana % 16#20 /takana /chikana /tsukana /tekana /tokana /nakana /nikana /nukana /nekana /nokana /hakana /hikana /fukana /hekana /hokana /makana /mikana /mukana /mekana /mokana /yakana /yukana /yokana /rakana /rikana /rukana /rekana /rokana /wakana /nkana /jvoiced /jsemivoiced ] readonly def /SJSubEncoding [ % 16#00 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 16#20 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % 16#40 /c40 /c41 /c42 /c43 /c44 /c45 /c46 /c47 /c48 /c49 /c4A /c4B /c4C /c4D /c4E /c4F /c50 /c51 /c52 /c53 /c54 /c55 /c56 /c57 /c58 /c59 /c5A /c5B /c5C /c5D /c5E /c5F % 16#60 /c60 /c61 /c62 /c63 /c64 /c65 /c66 /c67 /c68 /c69 /c6A /c6B /c6C /c6D /c6E /c6F /c70 /c71 /c72 /c73 /c74 /c75 /c76 /c77 /c78 /c79 /c7A /c7B /c7C /c7D /c7E /.notdef % 16#80 /c80 /c81 /c82 /c83 /c84 /c85 /c86 /c87 /c88 /c89 /c8A /c8B /c8C /c8D /c8E /c8F /c90 /c91 /c92 /c93 /c94 /c95 /c96 /c97 /c98 /c99 /c9A /c9B /c9C /c9D /c9E /c9F % 16#A0 /cA0 /cA1 /cA2 /cA3 /cA4 /cA5 /cA6 /cA7 /cA8 /cA9 /cAA /cAB /cAC /cAD /cAE /cAF /cB0 /cB1 /cB2 /cB3 /cB4 /cB5 /cB6 /cB7 /cB8 /cB9 /cBA /cBB /cBC /cBD /cBE /cBF % 16#C0 /cC0 /cC1 /cC2 /cC3 /cC4 /cC5 /cC6 /cC7 /cC8 /cC9 /cCA /cCB /cCC /cCD /cCE /cCF /cD0 /cD1 /cD2 /cD3 /cD4 /cD5 /cD6 /cD7 /cD8 /cD9 /cDA /cDB /cDC /cDD /cDE /cDF % 16#E0 /cE0 /cE1 /cE2 /cE3 /cE4 /cE5 /cE6 /cE7 /cE8 /cE9 /cEA /cEB /cEC /cED /cEE /cEF /cF0 /cF1 /cF2 /cF3 /cF4 /cF5 /cF6 /cF7 /cF8 /cF9 /cFA /cFB /cFC /.notdef /.notdef /.notdef ] readonly def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Include supplementary files % % Define basekanji operator (kbase.ps) runlibfile % Define compositekanji operator (kcomp.ps) runlibfile % Define Mapping Dictionary (kmapping.ps) runlibfile % Define outlinekanji operator (koutline.ps) runlibfile % Define bitmapkanji operator (kbitmap.ps) runlibfile %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Define NotDefFont % 7 dict begin /FontName /NotDefFont def /FontType 3 def /FontMatrix [ 0.001 0 0 0.001 0 0 ] readonly def /FontBBox { 0 -120 1000 880 } readonly def /Encoding [ 0 1 255 { pop 0 } for ] readonly def /BuildChar { pop pop 1000 0 0 -120 1000 880 0 -1000 500 880 setcachedevice2 } readonly def currentdict end dup /FontName get exch definefont pop %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Load Kanji font configuration file % systemdict /KCONFIG 2 copy known { get }{ pop pop (kconfig.ps) } ifelse runlibfile %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end %QUIET not { (done.\n) print flush } if