1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19if unknown punk_font_loaded :
20
21 if unknown scale_factor :
22 scale_factor := 1 ;
23 fi ;
24
25 boolean punk_font_loaded ;
26
27 punk_font_loaded := true ;
28 warningcheck := 0 ;
29 proofing := 0 ;
30 designsize := 10pt#;
31 font_identifier := "Punk Nova" ;
32
33 ht# := 7pt# ;
34 u# := 14pt# ;
35 dev# := .3pt# ;
36
37 if known bold_punk :
38 s# := 1.2pt# ;
39 px# := 1pt# ;
40 py# := .8pt# ;
41 dot# := 1.7pt# ;
42 else :
43 s# := 0 ;
44 px# := .6pt# ;
45 py# := .5pt# ;
46 dot# := 1.3pt# ;
47 fi ;
48
49 pt := .1pt ;
50 mag := scale_factor 10 ;
51 bp_per_pixel := bpppix_ mag ;
52
53 define_pixels(u,dev) ;
54 define_blacker_pixels(px,py,dot) ;
55 define_whole_pixels(s) ;
56 xoffset := s ;
57
58 pickup pencircle xscaled px yscaled py ;
59 punk_pen := savepen ;
60 pickup pencircle scaled dot ;
61 path dot_pen_path ;
62 dot_pen_path := tensepath makepath currentpen ;
63
64 defaultcolormodel := 1 ;
65
66 if known slanted_punk :
67 dot_pen_path := dot_pen_path slanted -0.25 ;
68 extra_endchar := extra_endchar & "currentpicture := currentpicture slanted 0.25 ;" ;
69 fi ;
70
71
72 def beginpunkchar(expr c,n,h,v) =
73 hdev := h dev ;
74 vdev := v dev ;
75 beginchar(c,nu#,ht#,0) ;
76 italcorr 0 ;
77
78 pickup punk_pen
79 enddef ;
80
81 def =
82 transformed currenttransform
83 enddef ;
84
85 def makebox(text rule) =
86 for y=0, h :
87 rule((s,y),(ws,y)) ;
88 endfor
89 for x=s, 0, w-2s, ws :
90 rule((x,0),(x,h)) ;
91 endfor
92 enddef ;
93
94 rulepen := pensquare ;
95
96 vardef pp expr z =
97 z (hdev normaldeviate, vdev normaldeviate)
98 enddef;
99
100 def pd expr z =
101 addto currentpicture contour dot_pen_path shifted z.t_
102 enddef;
103
104 def initialize_punk_upper =
105 ht# := 7pt# ; dev# := .3pt# ;
106 enddef ;
107 def initialize_punk_lower =
108 sht# := ht#; sdev := dev;
109 ht# := .6ht# ; dev := .7dev ;
110 enddef ;
111 def revert_punk_lower =
112 ht# := sht#; dev := sdev;
113 enddef ;
114
115fi ;
116 |