home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / pc / source / epsonps.lzh / epsonps.2 / epsonps.pro < prev    next >
Encoding:
Text File  |  1991-06-05  |  16.6 KB  |  359 lines

  1. % Prolog for epsonps.c, by Russell Lang 19910507
  2. /M {moveto} def
  3. /L {lineto} def
  4. /S {show} def
  5. /pica    { /fwidth xdpi 10 idiv def /fheight ydpi 6 idiv def } def
  6. /elite   { /fwidth xdpi 12 idiv def /fheight ydpi 6 idiv def } def
  7. /fifteen { /fwidth xdpi 15 idiv def /fheight ydpi 6 idiv def } def
  8. /condensed  { /fwidth fwidth 3 mul 5 idiv def } def
  9. /doublewidth { /fwidth fwidth 2 mul def } def
  10. /doubleheight { /fwidth fwidth 2 mul def /fheight fheight 2 mul def } def
  11. /quadheight { /fwidth fwidth 4 mul def /fheight fheight 4 mul def } def
  12. /normalfont {/Epson findfont
  13.   [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  14. /boldfont {/Epson-Bold findfont
  15.   [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  16. /italicfont {/Epson-Oblique findfont
  17.   [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  18. /bolditalicfont {/Epson-BoldOblique findfont
  19.   [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  20. /ibmgraphfont {/IBMgraphic findfont
  21.   [fwidth 10 6 div mul 0 0 fheight neg 0 0] makefont setfont} def
  22. /graphicbuf 2 string def
  23. % copy StandardEncoding and call the new version IBMEncoding
  24. StandardEncoding dup length array copy /IBMEncoding exch def
  25. % Re Encode a font with IBMEncoding vector
  26. /IBMEncode {
  27.   /BasefontDict BasefontName findfont def
  28.   /NewfontDict BasefontDict maxlength dict def
  29.   BasefontDict
  30.   { exch dup /FID ne
  31.     { dup /Encoding eq
  32.       { exch pop IBMEncoding NewfontDict 3 1 roll put }
  33.       { exch NewfontDict 3 1 roll put }
  34.       ifelse
  35.     }
  36.     { pop pop }
  37.     ifelse
  38.   } forall
  39.   NewfontDict /FontName NewfontName put
  40.   NewfontName NewfontDict definefont pop
  41. } def
  42. % Load a vector into the current Encoding Vector
  43. /EncodingLoad { aload length 2 idiv
  44.   {Encoding 3 1 roll put} repeat} def
  45. % Create new Epson fonts from Courier fonts, with IBMEncoding
  46. /BasefontName /Courier def /NewfontName /Epson def
  47. IBMEncode
  48. /BasefontName /Courier-Bold def /NewfontName /Epson-Bold def
  49. IBMEncode
  50. /BasefontName /Courier-BoldOblique def /NewfontName /Epson-BoldOblique def
  51. IBMEncode
  52. /BasefontName /Courier-Oblique def /NewfontName /Epson-Oblique def
  53. IBMEncode
  54. % add the extra character encodings for IBMEncoding
  55. [ 128 /Ccedilla 129 /udieresis 130 /eacute 131 /acircumflex
  56.   132 /adieresis 133 /agrave 134 /aring 135 /ccedilla 136 /ecircumflex
  57.   137 /edieresis 138 /egrave 139 /idieresis 140 /icircumflex 141 /igrave
  58.   142 /Adieresis 143 /Aring 144 /Eacute
  59.   145 /ae % not in Courier.afm, but seems to be present
  60.   146 /AE % not in Courier.afm, but seems to be present
  61.   147 /ocircumflex 148 /odieresis 149 /ograve 150 /ucircumflex 151 /ugrave
  62.   152 /ydieresis 153 /Odieresis 154 /Udieresis 155 /cent 156 /sterling 157 /yen
  63.   158 /.notdef % Peseta
  64.   159 /florin 160 /aacute 161 /iacute 162 /oacute 163 /uacute 164 /ntilde
  65.   165 /Ntilde 166 /ordfeminine 167 /ordmasculine 168 /questiondown
  66.   169 /.notdef % logical ??
  67.   170 /.notdef % logical not
  68.   171 /.notdef % half
  69.   172 /.notdef % quarter
  70.   173 /exclamdown 174 /guillemotleft 175 /guillemotright
  71. ]
  72. /Epson findfont begin EncodingLoad end
  73. % International character sets
  74. /USA [ 35 /numbersign 36 /dollar 64 /at
  75.   91 /bracketleft 92 /backslash 93 /bracketright 94 /asciicircum 96 /quoteleft
  76.   123 /braceleft 124 /bar 125 /braceright 126 /asciitilde ] def
  77. /France [ 35 /numbersign 36 /dollar 64 /agrave
  78.   91 /ring 92 /ccedilla 93 /section 94 /asciicircum 96 /quoteleft
  79.   123 /eacute 124 /ugrave 125 /egrave 126 /dieresis ] def
  80. /Germany [ 35 /numbersign 36 /dollar 64 /section
  81.   91 /Adieresis 92 /Odieresis 93 /Udieresis 94 /asciicircum 96 /quoteleft
  82.   123 /adieresis 124 /odieresis 125 /udieresis 126 /germandbls ] def
  83. /UnitedKingdom [ 35 /sterling 36 /dollar 64 /at
  84.   91 /bracketleft 92 /backslash 93 /bracketright 94 /asciicircum 96 /quoteleft
  85.   123 /braceleft 124 /bar 125 /braceright 126 /asciitilde ] def
  86. /DenmarkI [ 35 /numbersign 36 /dollar 64 /at
  87.   91 /AE 92 /Oslash 93 /Aring 94 /asciicircum 96 /quoteleft
  88.   123 /ae 124 /oslash 125 /aring 126 /asciitilde ] def
  89. /Sweden [ 35 /numbersign 36 /currency 64 /Eacute
  90.   91 /Adieresis 92 /Odieresis 93 /Aring 94 /Udieresis 96 /eacute
  91.   123 /adieresis 124 /odieresis 125 /aring 126 /udieresis ] def
  92. /Italy [ 35 /numbersign 36 /dollar 64 /at
  93.   91 /ring 92 /backslash 93 /eacute 94 /asciicircum 96 /ugrave
  94.   123 /agrave 124 /ograve 125 /egrave 126 /igrave ] def
  95. /SpainI [ 35 /currency 36 /dollar 64 /at  % 35 should be peseta
  96.   91 /exclamdown 92 /Ntilde 93 /questiondown 94 /asciicircum 96 /quoteleft
  97.   123 /dieresis 124 /ntilde 125 /braceright 126 /asciitilde ] def
  98. /Japan [ 35 /numbersign 36 /dollar 64 /at
  99.   91 /bracketleft 92 /yen 93 /bracketright 94 /asciicircum 96 /quoteleft
  100.   123 /braceleft 124 /bar 125 /braceright 126 /asciitilde ] def
  101. /Norway [ 35 /numbersign 36 /currency 64 /Eacute
  102.   91 /AE 92 /Oslash 93 /Aring 94 /Udieresis 96 /eacute
  103.   123 /ae 124 /oslash 125 /aring 126 /udieresis ] def
  104. /DenmarkII [ 35 /numbersign 36 /dollar 64 /Eacute
  105.   91 /AE 92 /Oslash 93 /Aring 94 /Udieresis 96 /eacute
  106.   123 /ae 124 /oslash 125 /aring 126 /udieresis ] def
  107. /SpainII [ 35 /numbersign 36 /dollar 64 /aacute
  108.   91 /exclamdown 92 /Ntilde 93 /questiondown 94 /eacute 96 /quoteleft
  109.   123 /iacute 124 /ntilde 125 /oacute 126 /uacute ] def
  110. /LatinAmerica [ 35 /numbersign 36 /dollar 64 /aacute
  111.   91 /exclamdown 92 /Ntilde 93 /questiondown 94 /eacute 96 /udieresis
  112.   123 /iacute 124 /ntilde 125 /oacute 126 /uacute ] def
  113. % set the international character set
  114. % this relies on all four Epson fonts using the same copy of IBMEncoding
  115. /InternationalSet {/Epson findfont begin EncodingLoad end} def
  116. %%BeginFont: IBMgraphic
  117. 12 dict begin % start dictionary for font
  118. % add FontInfo dictionary
  119. /FontInfo 2 dict dup begin
  120. /Notice (A partial IBM PC graphic characters font by Russell Lang 19910507) readonly def
  121. /FullName (IBMgraphic) readonly def
  122. end readonly def
  123. % fill in rest of IBMgraphic dictionary
  124. /FontName /IBMgraphic def
  125. /PaintType 3 def   % fill or stroke
  126. /FontType 3 def    % user defined
  127. /FontMatrix [ 0.1 0 0 0.1 0 0 ] readonly def
  128. /FontBBox [ 0 -2 6 8 ] readonly def
  129. /Encoding 256 array def   % allocate the Encoding array
  130.   0 1 255 { Encoding exch /.notdef put} for
  131. % look up an IBM or Epson manual for explanation of these codes
  132. [
  133.   000 /blank 001 /face 002 /facereverse 003 /heart 004 /diamond 005 /club
  134.   006 /spade 007 /disc 008 /discreverse 009 /circle 010 /circlereverse
  135.   011 /male 012 /female 013 /note 014 /notes 015 /lamp
  136.   016 /triangleright 017 /triangleleft 018 /arrowupdown 019 /exclamdouble
  137.   020 /paragraph 021 /section 022 /I022 023 /arrowupdownunder 024 /arrowup
  138.   025 /arrowdown 026 /arrowright 027 /arrowleft 028 /I028 029 /arrowboth
  139.   030 /triangleup 031 /triangledown
  140.   127 /delete 158 /peseta 169 /I169
  141.   170 /logicalnot 171 /half 172 /quarter
  142.   176 /lightgrey 177 /mediumgrey 178 /darkgrey
  143.   179 /I179 180 /I180 181 /I181 182 /I182 183 /I183 184 /I184 185 /I185
  144.   186 /I186 187 /I187 188 /I188 189 /I189 190 /I190 191 /I191 192 /I192
  145.   193 /I193 194 /I194 195 /I195 196 /I196 197 /I197 198 /I198 199 /I199
  146.   200 /I200 201 /I201 202 /I202 203 /I203 204 /I204 205 /I205 206 /I206
  147.   207 /I207 208 /I208 209 /I209 210 /I210 211 /I211 212 /I212 213 /I213
  148.   214 /I214 215 /I215 216 /I216 217 /I217 218 /I218
  149.   219 /blockfull 220 /blockbot 221 /blockleft 222 /blockright 223 /blocktop
  150.   224 /alpha 225 /beta 226 /Gamma 227 /pi 228 /Sigma 229 /sigma 230 /mu
  151.   231 /tau 232 /Phi 233 /Theta 234 /Omega 235 /delta 236 /infinity
  152.   237 /emptyset 238 /element 239 /intersection 240 /equivalence 241 /plusminus
  153.   242 /greaterequal 243 /lessequal 244 /integraltop 245 /integralbot
  154.   246 /divide 247 /approxequal 248 /degree 249 /bullet 250 /dotmath
  155.   251 /radical 252 /supern 253 /super2 254 /slug
  156. ]
  157. EncodingLoad
  158. % show string from the Symbol font
  159. /SymbolShow { % char_code matrix --
  160.   /Symbol findfont exch makefont setfont
  161.   0 0 moveto show
  162. } def
  163. % show string from the Courier font
  164. /CourierShow { % char_code matrix --
  165.   /Courier findfont exch makefont setfont
  166.   0 0 moveto show
  167. } def
  168. % Build Character into cache
  169. /BuildChar {  %  font_dictionary char_code --
  170.   exch begin                      % this font dictionary
  171.   Encoding exch get               % get character name
  172.   gsave                           % save graphics state
  173.   0.5 setlinewidth          % width of stroked lines
  174.   newpath
  175.   6 0                             % width vector (mono spaced)
  176.   0 -2 6 8 setcachedevice         % cache this bounding box
  177.   CharProcs exch get              % get procedure
  178.   exec                            % draw it
  179.   grestore                  % restore graphics state
  180.   end                             % end of font dictionary
  181. } def
  182. % add CharProcs dictionary which describes each character
  183. /CharProcs 118 dict dup begin
  184. /.notdef {} def
  185. /blank {} def
  186. /face {5.75 4.5 M 4 4.5 1.75 0 90 arc 2 4.5 1.75 90 180 arc
  187.   2 1.5 1.75 180 270 arc 4 1.5 1.75 270 360 arc 5.75 4.5 lineto
  188.   5.25 4.5 M  4 1.5 1.25 360 270 arcn 2 1.5 1.25 270 180 arcn
  189.   2 4.5 1.25 180 90 arcn 4 4.5 1.25 90 0 arcn 5.25 4.5 lineto
  190.   2.5 4 M 2 4 0.5 360 0 arcn
  191.   4.5 4 M 4 4 0.5 360 0 arcn
  192.   1.375 2.185 M 3 5 3.25 240 300 arc 3 5 3.75 300 240 arcn closepath
  193.   fill} def
  194. /facereverse {5.75 4.5 M 4 4.5 1.75 0 90 arc 2 4.5 1.75 90 180 arc
  195.   2 1.5 1.75 180 270 arc 4 1.5 1.75 270 360 arc 5.75 4.5 lineto
  196.   2.5 4 M 2 4 0.5 360 0 arcn
  197.   4.5 4 M 4 4 0.5 360 0 arcn
  198.   1.375 2.185 M 3 5 3.25 240 300 arc 3 5 3.75 300 240 arcn closepath
  199.   fill} def
  200. /heart {(\251) [8 0 0 10 0 0] SymbolShow} def
  201. /diamond {(\250) [8 0 0 10 0 0] SymbolShow} def
  202. /club {(\247) [8 0 0 10 0 0] SymbolShow} def
  203. /spade {(\252) [8 0 0 10 0 0] SymbolShow} def
  204. /disc {3 3 1.5 0 360 arc closepath fill} def
  205. /discreverse {0 -2 M 6 -2 L 6 8 L 0 8 L closepath
  206.   4.5 3 M 3 3 1.5 360 0 arcn closepath fill} def
  207. /circle {3 3 2.5 0 360 arc 3 3 2 360 0 arcn fill} def
  208. /circlereverse {0 -2 M 6 -2 L 6 8 L 0 8 L closepath
  209.   5.5 3 M 3 3 2.5 360 0 arcn 5 3 M 3 3 2 0 360 arc fill} def
  210. /male {2.5 1.5 1.5 0 360 arc
  211.   2.5 3 M 5 5.5 L 3 5.5 M 5 5.5 L 5 3.5 L stroke } def
  212. /female {3 4.5 1.5 0 360 arc 3 3 M 3 0 L 1.5 1.5 M 4.5 1.5 L stroke} def
  213. /note {1.5 1.5 1 0 360 arc fill
  214.   2.25 1.5 M 2.25 6 L 5 6 L 5 5 L 2.25 5 L stroke} def
  215. /notes {1.5 1.5 1 0 360 arc fill 4.25 1.5 1 0 360 arc fill
  216.   2.25 1.5 M 2.25 6 L 5 6 L 5 5 L 2.25 5 L 5 6 M 5 1.5 L stroke} def
  217. /lamp {3 3 1 0 360 arc 3 6 M 3 4 L 3 0 M 3 2 L
  218.   4 4 M 5 5 L 2 4 M 1 5 L 2 2 M 1 1 L 4 2 M 5 1 L stroke} def
  219. /triangleleft  {5 0 M 1 3 L 5 6 L 5 0 L closepath fill} def
  220. /triangleright {1 0 M 1 6 L 5 3 L 1 0 L closepath fill} def
  221. /arrowupdown {3 0.5 M 3 5.5 L stroke
  222.   1.5 4.5 M 3 6 L 4.5 4.5 L closepath fill
  223.   1.5 1.5 M 3 0 L 4.5 1.5 L closepath fill} def
  224. /exclamdouble {(!) [10 0 0 10 -1.5 0] CourierShow
  225.   (!) [10 0 0 10  1.5 0] CourierShow} def
  226. /paragraph {(\266) [10 0 0 10 0 0] CourierShow} def
  227. /section {(\247) [10 0 0 10 0 0] CourierShow} def
  228. /I022 {0 0 M 0 1.5 L 6 1.5 L 6 0 L 0 0 L closepath fill} def % cursor ??
  229. /arrowupdownunder {CharProcs /arrowupdown get exec
  230.   1.5 -0.25 M 4.5 -0.25 L stroke} def
  231. /arrowup    {1.5 4.5 M 3 6 L 4.5 4.5 L closepath fill
  232.   3 0 M 3 4.5 L stroke} def
  233. /arrowdown  {1.5 1.5 M 3 0 L 4.5 1.5 L closepath fill
  234.   3 1.5 M 3 6 L stroke} def
  235. /arrowleft  {2 4.5 M 0.5 3 L 2 1.5 L closepath fill
  236.   2 3 M 5.25 3 L stroke} def
  237. /arrowright {4 4.5 M 5.5 3 L 4 1.5 L closepath fill
  238.   0.25 3 M 4.5 3 L stroke} def
  239. /I028 {0.4 setlinewidth 1 6 M 1 4 L 5 4 L stroke} def % logical ??
  240. /arrowboth {2 3 M 4.5 3 L stroke
  241.   2 4.5 M 0.5 3 L 2 1.5 L closepath fill
  242.   4 4.5 M 5.5 3 L 4 1.5 L closepath fill} def
  243. /triangleup   {1 1 M 3 5 L 5 1 L 1 1 L closepath fill} def
  244. /triangledown {1 5 M 3 1 L 5 5 L 1 5 L closepath fill} def
  245. % Strays
  246. /delete {1 1 M 5 1 L 5 3 L 3 5 L 1 3 L 1 1 L closepath stroke} def
  247. /peseta { /Courier findfont [6 0 0 10 0 0] makefont setfont
  248.   0 0 M (P) show 2.5 0 M (t) show} def
  249. /I169 {0.4 setlinewidth 1 2 M 1 4 L 5 4 L stroke} def % logical ??
  250. /logicalnot {0.4 setlinewidth 1 4 M 5 4 L 5 2 L stroke} def
  251. /half { /Courier findfont [5 0 0 5 0 0] makefont setfont 0 4 M (1) show
  252.   2.5 0 M (2) show 0.2 setlinewidth 0.5 2 M 5.5 5 L stroke} def
  253. /quarter { /Courier findfont [5 0 0 5 0 0] makefont setfont 0 4 M (1) show
  254.   2.5 0 M (4) show 0.2 setlinewidth 0.5 2 M 5.5 5 L stroke} def
  255. % Grey Blobs
  256. /lightgrey {1 setlinewidth
  257.   -0.5 2 8 {0 3 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  258.   -1.5 2 8 {1.5 3 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  259.   stroke} def
  260. /mediumgrey {1 setlinewidth
  261.   -0.5 2 8 {0 2 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  262.   -1.5 2 8 {1 2 6 {1 index moveto currentlinewidth 0 rlineto} for pop} for
  263.   stroke} def
  264. /darkgrey {1 setlinewidth
  265.   -0.5 2 8 {0 exch M 2   0 rlineto 1 0 rmoveto 2 0 rlineto} for
  266.   -1.5 2 8 {0 exch M 0.5 0 rlineto 1 0 rmoveto 2 0 rlineto
  267.    1 0 rmoveto 1.5 0 rlineto} for stroke} def
  268. % Box line line segments
  269. /I179 {3 -2 M 3 8 L stroke} def
  270. /I180 {3 -2 M 3 8 L 0 4 M 3 4 L stroke} def
  271. /I181 {3 -2 M 3 8 L 0 4 M 3 4 L 0 2 M 3 2 L stroke} def
  272. /I182 {2 -2 M 2 8 L 4 -2 M 4 8 L 0 4 M 2 4 L stroke} def
  273. /I183 {0 4 M 4 4 L 4 -2 L 2 -2 M 2 4 L stroke} def
  274. /I184 {0 4 M 3 4 L 3 -2 L 0 2 M 3 2 L stroke} def
  275. /I185 {4 -2 M 4 8 L 0 4 M 2 4 L 2 8 L 0 2 M 2 2 L 2 -2 L stroke} def
  276. /I186 {2 -2 M 2 8 L 4 -2 M 4 8 L stroke} def
  277. /I187 {0 4 M 4 4 L 4 -2 L 0 2 M 2 2 L 2 -2 L stroke} def
  278. /I188 {0 2 M 4 2 L 4 8 L 0 4 M 2 4 L 2 8 L stroke} def
  279. /I189 {0 4 M 4 4 L 4 8 L 2 4 M 2 8 L stroke} def
  280. /I190 {0 2 M 3 2 L 3 8 L 0 4 M 3 4 L stroke} def
  281. /I191 {0 4 M 3 4 L 3 -2 L stroke} def
  282. /I192 {3 8 M 3 4 L 6 4 L stroke} def
  283. /I193 {0 4 M 6 4 L 3 4 M 3 8 L stroke} def
  284. /I194 {0 4 M 6 4 L 3 4 M 3 -2 L stroke} def
  285. /I195 {3 -2 M 3 8 L 3 4 M 6 4 L stroke} def
  286. /I196 {0 4 M 6 4 L stroke} def
  287. /I197 {0 4 M 6 4 L 3 -2 M 3 8 L stroke} def
  288. /I198 {3 -2 M 3 8 L 3 4 M 6 4 L 3 2 M 6 2 L stroke} def
  289. /I199 {2 -2 M 2 8 L 4 -2 M 4 8 L 4 4 M 6 4 L stroke} def
  290. /I200 {2 8 M 2 2 L 6 2 L 4 8 M 4 4 L 6 4 L stroke} def
  291. /I201 {2 -2 M 2 4 L 6 4 L 4 -2 M 4 2 L 6 2 L stroke} def
  292. /I202 {0 2 M 6 2 L 0 4 M 2 4 L 2 8 L 4 8 M 4 4 L 6 4 L stroke} def
  293. /I203 {0 4 M 6 4 L 0 2 M 2 2 L 2 -2 L 4 -2 M 4 2 L 6 2 L stroke} def
  294. /I204 {2 -2 M 2 8 L 4 8 M 4 4 L 6 4 L 4 -2 M 4 2 L 6 2 L stroke} def
  295. /I205 {0 4 M 6 4 L 0 2 M 6 2 L stroke} def
  296. /I206 {0 4 M 2 4 L 2 8 L 4 8 M 4 4 L 6 4 L 6 2 M 4 2 L 4 -2 L
  297.   2 -2 M 2 2 L 0 2 L stroke} def
  298. /I207 {0 2 M 6 2 L 0 4 M 6 4 L 3 4 M 3 8 L stroke} def
  299. /I208 {0 4 M 6 4 L 2 4 M 2 8 L 4 4 M 4 8 L stroke} def
  300. /I209 {0 4 M 6 4 L 0 2 M 6 2 L 3 2 M 3 -2 L stroke} def
  301. /I210 {0 4 M 6 4 L 2 4 M 2 -2 L 4 4 M 4 -2 L stroke} def
  302. /I211 {2 8 M 2 4 L 6 4 L 4 8 M 4 4 L stroke} def
  303. /I212 {3 8 M 3 2 L 6 2 L 3 4 M 6 4 L stroke} def
  304. /I213 {3 -2 M 3 4 L 6 4 L 3 2 M 6 2 L stroke} def
  305. /I214 {2 -2 M 2 4 L 6 4 L 4 -2 M 4 4 L stroke} def
  306. /I215 {2 -2 M 2 8 L 4 -2 M 4 8 L 0 4 M 6 4 L stroke} def
  307. /I216 {3 -2 M 3 8 L 0 4 M 6 4 L 0 2 M 6 2 L stroke} def
  308. /I217 {0 4 M 3 4 L 3 8 L stroke} def
  309. /I218 {3 -2 M 3 4 L 6 4 L stroke} def
  310. % Block segments
  311. /blockfull  {0 -2 M 6 -2 L 6 8 L 0 8 L 0 -2 L closepath fill} def
  312. /blockbot   {0 -2 M 6 -2 L 6 3 L 0 3 L 0 -2 L closepath fill} def
  313. /blockleft  {0 -2 M 3 -2 L 3 8 L 0 8 L 0 -2 L closepath fill} def
  314. /blockright {3 -2 M 6 -2 L 6 8 L 3 8 L 3 -2 L closepath fill} def
  315. /blocktop   {0 3 M 6 3 L 6 8 L 0 8 L 0 3 L closepath fill} def
  316. % from symbol font
  317. /alpha {(a) [9.5 0 0 10 0 0] SymbolShow} def
  318. /beta {(b) [10 0 0 10 0 0] SymbolShow} def
  319. /Gamma {(G) [10 0 0 10 0 0] SymbolShow} def
  320. /pi {(p) [10 0 0 10 0 0] SymbolShow} def
  321. /Sigma {(S) [10 0 0 10 0 0] SymbolShow} def
  322. /sigma {(s) [10 0 0 10 0 0] SymbolShow} def
  323. /mu {(m) [10 0 0 10 0 0] SymbolShow} def
  324. /tau {(t) [10 0 0 10 0.5 0] SymbolShow} def
  325. /Phi {(F) [8 0 0 10 0 0] SymbolShow} def
  326. /Theta {(Q) [8 0 0 10 0 0] SymbolShow} def
  327. /Omega {(W) [8 0 0 10 0 0] SymbolShow} def
  328. /delta {(d) [10 0 0 10 0 0] SymbolShow} def
  329. /infinity {(\245) [8.5 0 0 10 0 0] SymbolShow} def
  330. /emptyset {(\306) [7.5 0 0 10 0 0] SymbolShow} def
  331. /element {(\316) [8.5 0 0 10 0 0] SymbolShow} def
  332. /intersection {(\307) [8 0 0 10 0 0] SymbolShow} def
  333. /equivalence {(\272) [10 0 0 10 0 0] SymbolShow} def
  334. /plusminus {(\261) [10 0 0 10 0 0] SymbolShow} def
  335. /greaterequal {(\263) [10 0 0 10 0 0] SymbolShow} def
  336. /lessequal {(\243) [10 0 0 10 0 0] SymbolShow} def
  337. % integral pieces
  338. /integraltop {3 -2 M 3 6 L 4 6 1 180 0 arcn stroke} def
  339. /integralbot {3 8 M 3 0 L 2 0 1 0 180 arcn stroke} def
  340. % from symbol font
  341. /divide {(\270) [10 0 0 10 0 0] SymbolShow} def
  342. /approxequal {(\273) [10 0 0 10 0 0] SymbolShow} def
  343. /degree {(\260) [10 0 0 10 0 0] SymbolShow} def
  344. /bullet {(\267) [10 0 0 10 0 0] SymbolShow} def
  345. /dotmath {(\327) [10 0 0 10 0 0] SymbolShow} def
  346. /radical {(\326) [10 0 0 10 0 0] SymbolShow} def
  347. % from courier font
  348. /supern { /Courier findfont [7 0 0 5 0 0] makefont setfont
  349.   0 4 moveto (n) show } def
  350. /super2 { /Courier findfont [7 0 0 5 0 0] makefont setfont
  351.   0 4 moveto (2) show } def
  352. % slug
  353. /slug {1.5 0 M 4.5 0 L 4.5 5 L 1.5 5 L 1.5 0 L closepath fill} def
  354. end readonly def % end CharProcs
  355. currentdict end  % end the font dictionary, and leave it on the stack
  356. dup /FontName get exch definefont pop % define the new font
  357. %%EndFont
  358. % end of epsonps.pro
  359.