summaryrefslogtreecommitdiff
path: root/Master/xemtex/doc/ghostscript/examples/alphabet.ps
blob: 95137585b258b68591f16953e896f72f445afa8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%!
% Check for command line parameters:
%	Name, FirstSize, Ratio, NumSizes, UseOutline.

/alphabetsave save def		% prevent left over effects

/FontName where { pop } { /FontName (Palatino-Italic) def } ifelse
/FirstSize where { pop } { /FirstSize 15 def } ifelse
/Ratio where { pop } { /Ratio 1.6 def } ifelse
/NumSizes where { pop } { /NumSizes 3 def } ifelse
/UseOutline where { pop } { /UseOutline false def } ifelse

/Strings FirstSize 20 gt
 { [
	(ABCDEFGHIJ) (KLMNOPQR) (STUVWXYZ)
	(abcdefghijklm) (nopqrstuvwxyz)
	(0123456789<=>) (:;?@  !"#$%&')
	(\(\)*+,-./[\\]^_) (`{|}~)
 ] }
 { [
	(ABCDEFGHIJKLMNOPQRSTUVWXYZ)
	(abcdefghijklmnopqrstuvwxyz)
	(0123456789<=>:;?@  !"#$%&')
	(\(\)*+,-./  [\\]^_  `{|}~)
 ] }
ifelse def

/sshow
 { gsave UseOutline
    { { gsave ( ) dup 0 4 -1 roll put
	false charpath pathbbox 0 setlinewidth stroke grestore
	pop 8 add currentpoint exch pop moveto pop
      } forall
    }
    { 2 0 3 -1 roll ashow }
   ifelse grestore
 } def

FontName findfont FirstSize scalefont setfont

clippath pathbbox /top exch def pop pop pop newpath
10 10 moveto
NumSizes
 { gsave nulldevice (Q) false charpath pathbbox grestore
     exch pop exch sub exch pop 1.25 mul /height exch def
   Strings
    { currentpoint exch pop top height 3 mul sub gt
       { showpage 10 10 height sub moveto
       }
      if
      dup sshow
      UseOutline not
       { 0 height rmoveto gsave 0.01 rotate sshow grestore }
      if
      0 height rmoveto
    } forall
   Ratio dup scale
 } repeat
showpage

clear cleardictstack
alphabetsave restore