summaryrefslogtreecommitdiff
path: root/fonts/shavian
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/shavian
Initial commit
Diffstat (limited to 'fonts/shavian')
-rw-r--r--fonts/shavian/shavian.mf422
1 files changed, 422 insertions, 0 deletions
diff --git a/fonts/shavian/shavian.mf b/fonts/shavian/shavian.mf
new file mode 100644
index 0000000000..b42d72c370
--- /dev/null
+++ b/fonts/shavian/shavian.mf
@@ -0,0 +1,422 @@
+% 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;
+