%		shavian.mf
% This font was designed by Alan M Stanier	( alan@essex.ac.uk ),
% at Essex University Computer Service, Colchester, Essex CO4 3EA. England.
%
% If you make significant additions or improvements to the font,
% please email me an updated version
%
% The Shavian "Proposed British Alphabet" was devised by Kingsley Reed
% and was the winning entry in a competition financed by a trust set up
% under George Bernard Shaw's will. The aim was to find an alphabet able
% to write English without indicating single sounds by groups of letters
% or by diacriticalmarks.
%
% Capitals are not distinguished. Proper names are identified by a raised
% "namer dot", and single symbols are used for the words "the" "of" "and"
% and "to".
%
% The coding scheme used is as follows
%
%	a	a	as in Ash
%	b	b	as in Bib
%	c	ch	as in CHurch
%	d	d	as in Dead
%	e	e	as in Egg
%	f	f	as in Fee
%	g	g	as in Gag
%	h	h	as in Ha-ha
%	i	i	as in If
%	j	j	as in Judge
%	k	k	as in Kick
%	l	l	as in Loll
%	m	m	as in Mime
%	n	n	as in Nun
%	o	o	as in On
%	p	p	as in Peep
%	q	oa	as in OAk
%	r	r	as in Roar
%	s	s	as in So
%	t	T	as in Tot
%	u	u	as in Up
%	v	v	as in Vow
%	w	w	as in Woe
%	x	the
%	y	y	as in Yea
%	z	z	as Zoo
%	A	aw	as in AWe
%	E	ea	as in EAt
%	H	a	as in Age
%	I	i	as in Ice
%	N	ng	as in huNG
%	O	oo	as in OOze
%	Q	ou	as in OUt
%	R	ah	as in AH
%	S	s	as in Sure
%	T	th	as in THey
%	U	oo	as in wOOl
%	X	th	as in THigh
%	Z	s	as in meaSure
%	~	oi	as in OIl
%	%	of
%	>	to
%	&	and
%	@	a	as in Ado
%	#		namer dot
%
%
%
mg:=1.0;	% CHANGE THIS TO GET DIFFERENT SIZES OF FONT (font size = 10*mg pt)

mode_setup;
tracingtitles := 1;
bigpensize#:=mg*1.2pt;
xpensize#:=mg*0.8pt;
ypensize#:=mg*0.4pt;
height#:=mg*9.6pt#;
depth#:=mg*3.2pt#;
width#:=mg*6.6pt#;
narrowwidth#:=mg*3.4pt#;
widewidth#:=mg*9.6pt#;
verywidewidth#:=mg*15pt#;
define_pixels(height,depth,width,halfwidth,widewidth);
def getpen = pickup pencircle xscaled xpensize# yscaled ypensize# rotated 30 enddef;
def getbigpen = pickup pencircle scaled bigpensize# enddef;

beginchar("x",widewidth#,height#,depth#); "the";
getpen;
draw (18*mg,-9*mg) .. (10*mg,9*mg) .. (9*mg,18*mg){up} .. (12*mg,27*mg){right}
	.. (18*mg,24*mg){down} .. (10*mg,9*mg);
endchar;

beginchar(".",narrowwidth#,height#,depth#); "fullstop";
getbigpen;
drawdot(4.5*mg,0);
endchar;

beginchar("'",narrowwidth#,height#,depth#); "comma";
getbigpen;
draw (4.5*mg,0){down} .. (1.5*mg,-6*mg){left};
endchar;

beginchar(":",narrowwidth#,height#,depth#); "colon";
getbigpen;
drawdot(4.5*mg,0);
drawdot(4.5*mg,9*mg);
endchar;

beginchar(";",narrowwidth#,height#,depth#); "semicolon";
getbigpen;
drawdot(4.5*mg,9*mg);
draw (4.5*mg,0){down} .. (1.5*mg,-6*mg){left};
endchar;

beginchar("!",narrowwidth#,height#,depth#); "exclamation";
getbigpen;
drawdot(4.5*mg,0);
getpen;
draw (4.5*mg,9*mg) -- (4.5*mg,27*mg);
endchar;

beginchar("?",width#,height#,depth#); "question";
getpen;
draw (0,21*mg){up} .. (9*mg,27*mg){right} .. (18*mg,21*mg){down} .. (9*mg,15*mg){left};
draw (9*mg,15*mg) -- (9*mg,9*mg);
getbigpen;
drawdot(9*mg,0);
endchar;

beginchar("0",width#,height#,depth#); "0";
getpen;
draw fullcircle xscaled (18*mg) yscaled (27*mg) shifted (9*mg,13.5*mg);
endchar;

beginchar("1",width#,height#,depth#); "1";
getpen;
draw (0,0) -- (18*mg,0);
draw (9*mg,0) -- (9*mg,27*mg) -- (3*mg,21*mg);
endchar;

beginchar("2",width#,height#,depth#); "2";
getpen;
draw (0,18*mg){up} .. (9*mg,27*mg){right} .. (18*mg,18*mg){down} .. (0,0);
draw (0,0) -- (18*mg,0);
endchar;

beginchar("3",width#,height#,depth#); "3";
getpen;
draw (0,22.5*mg){up} .. (9*mg,27*mg){right} .. (18*mg,18*mg){down} .. (9*mg,13.5*mg){left};
draw (0,4.5*mg){down} .. (9*mg,0){right} .. (18*mg,9*mg){up} .. (9*mg,13.5*mg){left};
endchar;

beginchar("4",width#,height#,depth#); "4";
getpen;
draw (12*mg,0) -- (12*mg,27*mg) -- (0,9*mg) -- (18*mg,9*mg);
endchar;

beginchar("5",width#,height#,depth#); "5";
getpen;
draw (18*mg,27*mg) -- (0,27*mg) -- (0,18*mg);
draw (0,18*mg){right} .. (18*mg,9*mg){down} .. (0,0){left};
endchar;

beginchar("6",width#,height#,depth#); "6";
getpen;
draw (12*mg,27*mg) .. (3*mg,18*mg) .. (0,9*mg){down} .. (6*mg,0){right} .. (18*mg,12*mg){up} .. (3*mg,18*mg);
endchar;

beginchar("7",width#,height#,depth#); "7";
getpen;
draw (0,0) -- (18*mg,27*mg) -- (0,27*mg);
endchar;

beginchar("8",width#,height#,depth#); "8";
getpen;
draw fullcircle xscaled (18*mg) yscaled (13.5*mg) shifted (9*mg,6.75*mg);
draw fullcircle xscaled (18*mg) yscaled (13.5*mg) shifted (9*mg,20.25*mg);
endchar;

beginchar("9",width#,height#,depth#); "9";
getpen;
draw (18*mg,0) -- (18*mg,27*mg);
draw (18*mg,27*mg) {left} .. (0,20.25*mg){down} .. (18*mg, 13.5*mg){right};
endchar;

%	Talls

beginchar("p",narrowwidth#,height#,depth#); "p";
getpen;
draw (0,27*mg){right} .. (9*mg,18*mg){down} -- (9*mg,0);
endchar;

beginchar("t",narrowwidth#,height#,depth#); "t";
getpen;
draw  (0,18*mg) -- (9*mg,27*mg) -- (9*mg,0);
endchar;

beginchar("k",width#,height#,depth#); "k";
getpen;
draw  (18*mg,27*mg) -- (18*mg,12*mg);
draw (18*mg,12*mg){up} .. (0,9*mg){down} .. (18*mg,0);
endchar;

beginchar("f",narrowwidth#,height#,depth#); "f";
getpen;
draw (9*mg,27*mg) .. (9*mg,9*mg){down} .. (0,0){left};
endchar;

beginchar("X",width#,height#,depth#); "X";
getpen;
draw (0,27*mg) -- (10*mg,20*mg) .. (18*mg,9*mg){down} .. (9*mg,0){left} .. (0,9*mg){up} .. (10*mg,20*mg);
endchar;

beginchar("s",narrowwidth#,height#,depth#); "s";
getpen;
draw (9*mg,27*mg) .. (0,18*mg){down} .. (9*mg,9*mg){down} .. (0,0);
endchar;

beginchar("S",width#,height#,depth#); "S";
getpen;
draw (18*mg,27*mg){(-1,-1)} .. (0,9*mg){down} .. (9*mg,0){right} .. (18*mg,9*mg);
endchar;

beginchar("c",width#,height#,depth#); "c";
getpen;
draw (18*mg,27*mg){(-1,-1)} .. (0,9*mg){down} .. (9*mg,0){right} .. (18*mg,9*mg);
draw (0,21*mg) -- (18*mg,27*mg);
endchar;

beginchar("y",narrowwidth#,height#,depth#); "y";
getpen;
draw (0,27*mg) -- (9*mg,0);
endchar;

beginchar("N",width#,height#,depth#); "N";
getpen;
draw (0,0) .. (18*mg,18*mg){up} .. (9*mg,27*mg){left} .. (0,18*mg){down} .. (18*mg,0);
endchar;

%	Deeps

beginchar("b",narrowwidth#,height#,depth#); "b";
getpen;
draw (0,18*mg) -- (0,0){down} .. (9*mg,-9*mg){right};
endchar;

beginchar("d",narrowwidth#,height#,depth#); "d";
getpen;
draw (0,18*mg) -- (0,-9*mg) -- (9*mg,0);
endchar;

beginchar("g",width#,height#,depth#); "g";
getpen;
draw (0,-9*mg) -- (0,6*mg);
draw (0,6*mg){down} .. (18*mg,9*mg){up} .. (0,18*mg);
endchar;

beginchar("v",narrowwidth#,height#,depth#); "v";
getpen;
draw (0,-9*mg) .. (0,9*mg){up} .. (9*mg,18*mg);
endchar;

beginchar("T",width#,height#,depth#); "T";
getpen;
draw (18*mg,-9*mg) .. (8*mg,-2*mg) .. (0,9*mg){up} .. (9*mg,18*mg){right} .. (18*mg,9*mg){down} .. (8*mg,-2*mg);
endchar;

beginchar("z",narrowwidth#,height#,depth#); "z";
getpen;
draw (0,18*mg) .. (9*mg,9*mg){down} .. (0,0){down} .. (9*mg,-9*mg);
endchar;

beginchar("Z",width#,height#,depth#); "Z";
getpen;
draw (0,9*mg){up} .. (9*mg,18*mg){right} .. (18*mg,9*mg){down} .. (0,-9*mg){(-1,-1)};
endchar;

beginchar("j",width#,height#,depth#); "j";
getpen;
draw (0,9*mg){up} .. (9*mg,18*mg){right} .. (18*mg,9*mg){down} .. (0,-9*mg){(-1,-1)};
draw (0,-9*mg) -- (18*mg,-3*mg);
endchar;

beginchar("w",narrowwidth#,height#,depth#); "w";
getpen;
draw  (0,-9*mg) -- (9*mg,18*mg);
endchar;

beginchar("h",width#,height#,depth#); "h";
getpen;
draw (0,18*mg) .. (18*mg,0){down} .. (9*mg,-9*mg){left} .. (0,0){up} .. (18*mg,18*mg);
endchar;

%	Shorts

beginchar("l",width#,height#,depth#); "l";
getpen;
draw (18*mg,18*mg){left} .. (0,9*mg){down} .. (18*mg,0){right};
endchar;

beginchar("m",width#,height#,depth#); "m";
getpen;
draw (0,0){right} .. (18*mg,18*mg){right};
endchar;

beginchar("i",narrowwidth#,height#,depth#); "i";
getpen;
draw (4.5*mg,0) -- (4.5*mg,18*mg);
endchar;

beginchar("e",narrowwidth#,height#,depth#); "e";
getpen;
draw (0,18*mg){down} .. (9*mg,0){right};
endchar;

beginchar("a",narrowwidth#,height#,depth#); "a";
getpen;
draw  (0,0){right} .. (9*mg,18*mg){up};
endchar;

beginchar("o",narrowwidth#,height#,depth#); "o";
getpen;
draw (0,18*mg){right} .. (9*mg,0){down};
endchar;

beginchar("U",width#,height#,depth#); "U";
getpen;
draw (0,18*mg) -- (9*mg,0) -- (18*mg,18*mg);
endchar;

beginchar("Q",narrowwidth#,height#,depth#); "Q";
getpen;
draw (9*mg,18*mg) -- (0,9*mg);
draw (0,9*mg){right} .. (9*mg,0){right};
endchar;

beginchar("R",width#,height#,depth#); "R";
getpen;
draw (18*mg,18*mg){left} .. (0,12*mg){down} .. (9*mg,9*mg);
draw (9*mg,9*mg){down} .. (0,0){left};
endchar;

beginchar("r",width#,height#,depth#); "r";
getpen;
draw (0,18*mg){right} .. (18*mg,9*mg){down} .. (0,0){left};
endchar;

beginchar("n",width#,height#,depth#); "n";
getpen;
draw (0,18*mg){right} .. (18*mg,0){right};
endchar;

beginchar("E",narrowwidth#,height#,depth#); "E";
getpen;
draw (0,18*mg) -- (0,6*mg) -- (9*mg,12*mg) -- (9*mg,0);
endchar;

beginchar("H",width#,height#,depth#); "H";
getpen;
draw (0,18*mg) .. (9*mg,15*mg) .. (18*mg,18*mg);
draw (0,18*mg){down} .. (18*mg,0);
endchar;

beginchar("I",width#,height#,depth#); "I";
getpen;
draw (0,18*mg) .. (9*mg,15*mg) .. (18*mg,18*mg);
draw (18*mg,18*mg){down} .. (0,0);
endchar;

beginchar("u",width#,height#,depth#); "u";
getpen;
draw (0,18*mg) -- (18*mg,18*mg);
draw (18*mg,18*mg){(-1,-1)} .. (0,0){down};
endchar;

beginchar("q",width#,height#,depth#); "q";
getpen;
draw fullcircle scaled (18*mg) shifted (9*mg,9*mg);
endchar;

beginchar("O",width#,height#,depth#); "O";
getpen;
draw (0,0) -- (9*mg,18*mg) -- (18*mg,0);
endchar;

beginchar("A",width#,height#,depth#); "A";
getpen;
draw (0,18*mg){right} .. (18*mg,12*mg){down} .. (9*mg,9*mg);
draw (9*mg,9*mg){down} .. (18*mg,0){right};
endchar;

beginchar("%",widewidth#,height#,depth#); "of";
getpen;
draw (18*mg,27*mg){left} .. (9*mg,18*mg){down} -- (9*mg,-9*mg);
endchar;

beginchar("&",widewidth#,height#,depth#); "and";
getpen;
draw (9*mg,27*mg){right} .. (36*mg,-9*mg){right};
endchar;

beginchar(">",widewidth#,height#,depth#); "to";
getpen;
draw (9*mg,18*mg) -- (18*mg,27*mg) -- (18*mg,-9*mg);
endchar;

beginchar("#",narrowwidth#,height#,depth#); "naming dot";
getbigpen;
drawdot(4.5*mg,24*mg);
endchar;

beginchar("~",narrowwidth#,height#,depth#); "~";
getpen;
draw (0,0) -- (9*mg,9*mg);
draw (9*mg,9*mg){left} .. (0,18*mg){left};
endchar;

beginchar("@",narrowwidth#,height#,depth#); "@";
getpen;
draw (0,0){up} .. (9*mg,18*mg){right};
endchar;

end;

