% Font inspired by Gerard and Marjan Unger's lectures, Feb 1985
mode_setup;

randomseed:=seed;

define_pixels(u,dev);
define_blacker_pixels(px,py,dot);
define_whole_pixels(s);
xoffset:=s;
pickup pencircle xscaled px yscaled py; punk_pen:=savepen;
pickup pencircle scaled dot; def_pen_path_;
path dot_pen_path; dot_pen_path:=currentpen_path;
currenttransform:=identity slanted slant yscaled aspect_ratio;

def beginpunkchar(expr c,n,h,v) = % code $c$; width is $n$ units
  hdev:=h*dev; vdev:=v*dev;% modify horizontal and vertical amounts of deviation
  beginchar(c,n*u#,ht#,0); italcorr ht#*slant; pickup punk_pen enddef;
extra_endchar:=extra_endchar&"w:=w+2s;charwd:=charwd+2s#";

def ^ = transformed currenttransform enddef;
def makebox(text rule) =
 for y=0,h:
  rule((-s,y)^,(w-s,y)^); endfor % horizontals
 for x=-s,0,w-2s,w-s:   rule((x,0)^,(x,h)^); endfor % verticals
 enddef;
rulepen:=pensquare;

vardef pp expr z = z+(hdev*normaldeviate,vdev*normaldeviate) enddef;

def pd expr z = addto_currentpicture contour
  dot_pen_path shifted z.t_ withpen penspeck enddef; % {\bf drawdot}

input punkl % uppercase letters
input punkae % uppercase \AE, \OE, \O
input punkg % uppercase greek
input punkp % punctuation
input punkd % digits
input punka % accents

ht#:=.6ht#; dev:=.7dev;
input punksl % special lowercase
extra_beginchar:=extra_beginchar&"charcode:=charcode+32;";
input punkl % lowercase letters
extra_beginchar:=extra_beginchar&"charcode:=charcode-35;";
input punkae % lowercase \ae, \oe, \o

font_slant:=slant;
font_quad:=18u#+2s#;
font_normal_space:=9u#+2s#;
font_normal_stretch:=6u#;
font_normal_shrink:=4u#;
font_x_height:=ht#;
font_coding_scheme:="TeX text without f-ligatures";


bye
