From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- fonts/engwar/barcap.mf | 21 ++++ fonts/engwar/bars.mf | 33 +++++ fonts/engwar/e.bat | 9 ++ fonts/engwar/eng.mf | 27 +++++ fonts/engwar/engacc.mf | 174 +++++++++++++++++++++++++++ fonts/engwar/englcase.mf | 307 +++++++++++++++++++++++++++++++++++++++++++++++ fonts/engwar/englig.mf | 15 +++ fonts/engwar/engnum.mf | 115 ++++++++++++++++++ fonts/engwar/engpun.mf | 163 +++++++++++++++++++++++++ fonts/engwar/engucase.mf | 287 ++++++++++++++++++++++++++++++++++++++++++++ fonts/engwar/engwar.mf | 58 +++++++++ fonts/engwar/lucap.mf | 50 ++++++++ fonts/engwar/luvar.mf | 50 ++++++++ fonts/engwar/telcap.mf | 52 ++++++++ fonts/engwar/telcor.mf | 52 ++++++++ 15 files changed, 1413 insertions(+) create mode 100644 fonts/engwar/barcap.mf create mode 100644 fonts/engwar/bars.mf create mode 100644 fonts/engwar/e.bat create mode 100644 fonts/engwar/eng.mf create mode 100644 fonts/engwar/engacc.mf create mode 100644 fonts/engwar/englcase.mf create mode 100644 fonts/engwar/englig.mf create mode 100644 fonts/engwar/engnum.mf create mode 100644 fonts/engwar/engpun.mf create mode 100644 fonts/engwar/engucase.mf create mode 100644 fonts/engwar/engwar.mf create mode 100644 fonts/engwar/lucap.mf create mode 100644 fonts/engwar/luvar.mf create mode 100644 fonts/engwar/telcap.mf create mode 100644 fonts/engwar/telcor.mf (limited to 'fonts/engwar') diff --git a/fonts/engwar/barcap.mf b/fonts/engwar/barcap.mf new file mode 100644 index 0000000000..f6e9c6df60 --- /dev/null +++ b/fonts/engwar/barcap.mf @@ -0,0 +1,21 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)bars.mf 1.1 10/1/86 + +def Overbar= +begingroup; + save x,y; + z9 = barpoint; + x10 = .7w; top y10=Xht; + x11= .2w; top y11=Xht; + x12=0; top y12=Xht-1/80em; + draw z9..z10{left}..z11{left}..z12; +endgroup; +enddef; + diff --git a/fonts/engwar/bars.mf b/fonts/engwar/bars.mf new file mode 100644 index 0000000000..40b45ce674 --- /dev/null +++ b/fonts/engwar/bars.mf @@ -0,0 +1,33 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)bars.mf 1.1 10/1/86 + +def underbar= +begingroup; + save x,y; + z9 = barpoint; + x10 = .5w; y10=0; + x11= .8w; y11=0; + x12=w; y12=1/80em; + draw z9..z10{right}..z11{right}..z12; + penlabels(5,6,7,8,9,10,11,12); +endgroup; +enddef; + +def overbar= +begingroup; + save x,y; + z9 = barpoint; + x10 = .7w; top y10=xht; + x11= .2w; top y11=xht; + x12=0; top y12=xht-1/80em; + draw z9..z10{left}..z11{left}..z12; +endgroup; +enddef; + diff --git a/fonts/engwar/e.bat b/fonts/engwar/e.bat new file mode 100644 index 0000000000..256a79bf16 --- /dev/null +++ b/fonts/engwar/e.bat @@ -0,0 +1,9 @@ +del engwar.300 +del engwar.tfm +del engwar.gf +mf \mode=localfont; input engwar +ren engwar.300 engwar.gf +gftopk engwar +tex testfont +stuff .\\engwar\r +vv testfont diff --git a/fonts/engwar/eng.mf b/fonts/engwar/eng.mf new file mode 100644 index 0000000000..9ae98af4c4 --- /dev/null +++ b/fonts/engwar/eng.mf @@ -0,0 +1,27 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)tiw.mf 1.1 10/1/86 + +pair bowpoint, barpoint, hookpoint; + +input telcor; +input telcap; +input luvar; +input lucap; + +input bars; +input barcap; + +input engucase; +input englcase; +input engnum; +input engacc; +input engpun; + +input englig; diff --git a/fonts/engwar/engacc.mf b/fonts/engwar/engacc.mf new file mode 100644 index 0000000000..38fd4a308e --- /dev/null +++ b/fonts/engwar/engacc.mf @@ -0,0 +1,174 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)accents.mf 1.1 10/1/86 + +def centerpt= + (w-((w-leadgap)/2), xht+3.2thin) +enddef; + +beginchar (18, shortwidth, cap#, 0); "The grave accent"; + begingroup; + save x,y; + pickup elvishpen; + z0 = centerpt; + top y1=h; %z1-z0=whatever*(dir tilt); + lft x1 = leadgap; + draw z0--z1; + endgroup; +endchar; + +beginchar (19, shortwidth, cap#, 0); "The acute accent"; + begingroup; + save x,y; + pickup elvishpen; + z0 = centerpt; + top y1=h; %z1-z0=whatever*(dir tilt); + rt x1 = w; + draw z0--z1; + endgroup; +endchar; + +beginchar (20, shortwidth, cap#, 0); "The check accent"; + begingroup; + save x,y; + pickup elvishpen; + z0 = centerpt; + top y1=h; + rt x1 = w; + top y2=h; + lft x2 = leadgap; + draw z2--z0--z1; + endgroup; +endchar; + +beginchar (21, shortwidth, cap#, 0); "The scoop accent"; + begingroup; + save x,y; + pickup elvishpen; + z0 = centerpt; + top y1=h; + rt x1 = w; + top y2=h; + lft x2 = leadgap; + draw z2..z0..z1; + endgroup; +endchar; + +beginchar ("^", shortwidth, cap#, 0); "The character ^"; + begingroup; + save x,y; + pickup elvishpen; + x0 = w-((w-leadgap)/2); + y0 = xht; + rt x1 = w; + y1 = xht+3.2thin; + y2= y1; + lft x2 = leadgap; + draw z2--z0--z1; + endgroup; +endchar; + +beginchar ("}", shortwidth, cap#, 0); "The double acute accent"; + begingroup; + save x,y; + pickup elvishpen; + z0 = centerpt; + top y1=h; %z1-z0=whatever*(dir tilt); + rt x1 = w; + draw z0--z1; + draw ((z0--z1) shifted (2.5*thin*right)); + endgroup; +endchar; + + +beginchar ("_", shortwidth, cap#, 0); "The dot-above accent (i)"; + begingroup; + save x,y; + pickup pensquare scaled thick rotated 45; + z0 = centerpt; + drawdot z0; + endgroup; +endchar; + +beginchar (127, shortwidth, cap#, 0); "The umlaut accent (double i)"; + begingroup; + save x, y; + pickup pensquare scaled thick rotated 45; + z0 = centerpt; + z1 = z0 + thick*left; + z2 = z0 + thick*right; + drawdot z1; drawdot z2; + endgroup; +endchar; + +beginchar ("`", shortwidth, cap#, 0); "The character `"; + begingroup; + save x,y, rightcurl; + path rightcurl; + pickup elvishpen; + z0 = centerpt; + top y1=h; x1 = .7[x0, w]; + rt x2=w; y2 = .7[y0, h]; + x3 = .8[x0,w]; y1-y2 = y2-y3; + rightcurl = (z0..tension 2.0..z1{right}..z2..z3); + draw rightcurl; + endgroup; +endchar; + +beginchar ("\\", shortwidth, cap#, 0); "left quote"; + begingroup; + save x,y, rightcurl; + path rightcurl; + pickup elvishpen; + z0 = centerpt; + top y1=h; x1 = .7[x0, w]; + rt x2=w; y2 = .7[y0, h]; + x3 = .8[x0,w]; y1-y2 = y2-y3; + rightcurl = (z0..tension 2.0..z1{right}..z2..z3); + draw rightcurl; + draw (rightcurl shifted (3*thin,0)); + endgroup; +endchar; + +beginchar ("'", shortwidth, cap#, 0); "The character '"; + begingroup; + save x,y; + pickup elvishpen; + z0 = centerpt; + lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h]; + top y2 = h; x2 = x0; + y3 = y1; x3-x0 = x0-x1; + draw z1..z2{right}..z0{down}; + endgroup; +endchar; + +beginchar (oct"042", shortwidth, cap#, 0); "The right quote"; + begingroup; + save x,y, leftcurl; + path leftcurl; + pickup elvishpen; + z0 = centerpt; + lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h]; + top y2 = h; x2 = x0; + y3 = y1; x3-x0 = x0-x1; + leftcurl = (z1..z2{right}..z0{down}); + draw leftcurl; + draw leftcurl shifted ((x1-x0)*right); + endgroup; +endchar; + +beginchar (22, shortwidth, .5[xht#,cap#], 0); "Short top bar"; + begingroup; + save x,y; + pickup elvishpen; + lft x0 = leadgap; rt x1 = w; + y0=y1=h; + draw z0--z1; + endgroup; +endchar; diff --git a/fonts/engwar/englcase.mf b/fonts/engwar/englcase.mf new file mode 100644 index 0000000000..b346dc88fc --- /dev/null +++ b/fonts/engwar/englcase.mf @@ -0,0 +1,307 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)letters.mf 1.1 10/1/86 + +beginchar("a", shortwidth,xht#,0); "The letter a"; + pickup elvishpen; + nutelco(w,shortstem, stemdepth); + nuluva (bowpoint, leadgap, false); + overbar; +endchar; + +beginchar("b", shortwidth, cap#, 0); "the letter b"; + pickup elvishpen; + telco(leadgap, longstem, stemdepth); + luva (bowpoint, w, false); + underbar; +endchar; + +beginchar ("c",shortwidth, xht#, 0); "The letter c"; + begingroup; + save x,y; + pickup elvishpen; + top y1= h; x1 = .75[leadgap, w]; + lft x2= leadgap; y2= .4h; + bot y3= 0; x3= .5[leadgap, w]; + y4= .2h; rt x4=w; + draw z1..z2{down}..z3{right}..z4; + endgroup; +endchar; + +beginchar("d", shortwidth,cap#,0); "The letter d"; + pickup elvishpen; + nutelco(w,longstem, stemdepth); + nuluva (bowpoint, leadgap, false); + overbar; +endchar; + +beginchar ("e",shortwidth, xht#, 0); "The letter e"; + begingroup; + save x,y; + pickup elvishpen; + top y1= h; x1 = .75[leadgap, w]; + lft x2= leadgap; y2= .4h; + bot y3= 0; x3= .5[leadgap, w]; + y4= .2h; rt x4=w; + z0 = .5[z2, z3]; + draw z0--z1..z2{down}..z3{right}..z4; + endgroup; +endchar; + +beginchar("f", shortwidth,xht#,dep#); "The letter f"; + pickup elvishpen; + telco(leadgap,shortstem, stemdepth); + z1 = bowpoint; + rt x2 = w; + y2 = y1; + draw z1--z2; + underbar; +endchar; + +beginchar("g", shortwidth,xht#,dep#); "The letter g"; + pickup elvishpen; + + luva ((w, h), leadgap, false); + path sweep; + lft x0 = leadgap; top y0 = h; + lft x1 = 0; z0-z1 = whatever*(dir tilt); + x2 = .75w; top y2=h; + rt x3 = w; y3 = .5h; + lft x4 = leadgap; y4 = -.65d; + x5 = .5w; y5 = -d; + x6 = .85w; z6-z5 = whatever*(dir tilt); + sweep = (z2..z3{down}..z4{down}..z5{right}..z6); + z7 = sweep intersectionpoint + ((-infinity,0)--(infinity,0)); + draw sweep; +endchar; + +beginchar("h", shortwidth,cap#, 0); "the letter h"; + pickup elvishpen; + telco(leadgap, longstem, stemdepth); + luva (bowpoint, w, true); +endchar; + +def commoncarrier= + pickup elvishpen; + x0=x1-thick; top y0=h; + x1=1/2[leadgap,w]; y1=y0; + x2=x1; y2=-d/2; + x3=x0; y3=-d; + draw z0--z1{down}..z2{down}..z3; +enddef; + +beginchar (16,3*leadgap#,xht#,.2dep#); "The dotless letter i"; + begingroup; + save x,y; + commoncarrier; + endgroup; +endchar; + +beginchar ("i",3*leadgap#,xht#,.2dep#); "The letter i"; + begingroup; + save x,y; + commoncarrier; + x4 = x1; y4 = y1 + 2*thick; + pickup pensquare scaled thick rotated 45; + drawdot z4; + endgroup; +endchar; + +beginchar (17,3*leadgap#,xht#,dep#); "The dotless letter j"; + begingroup; + save x,y; + commoncarrier; + endgroup; +endchar; + +beginchar ("j",3*leadgap#,xht#,dep#); "The letter j"; + begingroup; + save x,y; + commoncarrier; + x4 = x1; y4 = y1 + 2*thick; + pickup pensquare scaled thick rotated 45; + drawdot z4; + endgroup; +endchar; + +beginchar ("k", shortwidth,cap#,0); "The letter k"; + pickup elvishpen; + telco(leadgap, longstem, stemdepth); + lft x1 = leadgap; bot y1 = 0; + rt x2 = w; top y2 = xht; + lft x4 = w; bot y4 = 0; + draw z1..{right}z2; + draw z1{z2 - z1}..{down}z4; +endchar; + +beginchar ("l",3*leadgap#,cap#,0); "The letter l"; + begingroup; + save x,y; + commoncarrier; + endgroup; +endchar; + +beginchar ("m", 1em#, xht#, 0); "the letter m"; + pickup elvishpen; + telco(leadgap, shortstem, stemdepth); + luva (bowpoint, bowsize*em, false); + luva (bowpoint, w, false); + underbar; +endchar; + +beginchar ("n", shortwidth, xht#, 0); "the letter n"; + pickup elvishpen; + telco (leadgap, shortstem, stemdepth); + luva (bowpoint, w, true); +endchar; + +beginchar ("o", shortwidth, xht#, 0); "The letter o"; + begingroup; + save x,y; + pickup elvishpen; + lft x0 = leadgap; + top y1 = h; + rt x2 = w; + bot y3 = 0; + y0 = .65h; x1 = leadgap+.35w; + y2 = .35h; x3 = leadgap+.65w; + draw z0..z1..z2..z3..cycle; + endgroup; +endchar; + +beginchar("p", shortwidth,xht#,dep#); "The letter p"; + pickup elvishpen; + telco(leadgap,shortstem, stemdepth); + luva (bowpoint, w, false); + underbar; +endchar; + +beginchar("q", shortwidth,xht#,dep#); "The letter q"; + pickup elvishpen; + nutelco(w,shortstem, stemdepth); + nuluva (bowpoint, 0, false); + overbar; +endchar; + +beginchar ("r", shortwidth, xht#, 0); "the letter r"; + pickup elvishpen; + telco (leadgap, shortstem, stemdepth); + z5 = bowpoint; + top y6=xht; x6=.5[x5,w]; + rt x7=w; y7=.47xht; + draw z5..z6..{down}z7; +endchar; + +beginchar("s", shortwidth,xht#,0); "The letter s"; + hthick := 3thick/4; hthin := 3thin/4; + pickup pencircle xscaled hthick yscaled hthin rotated tilt; + x1 = x2 = x3 = .5[leadgap,w]; + top y1 = h; + y2 = .5[y1, y3]; + bot y3 = 0; + y4 = y3; + y5 = y1; + lft x4 = leadgap; + rt x5 = w; + x6 = x4; y6 = y5; + x7 = x5; y7 = y4; + draw z5..{left}z1..z6..z2..z7..{left}z3..z4; +endchar; + +beginchar("t", 3*leadgap#,cap#,0); "The letter t"; + pickup elvishpen; + telco(.5[leadgap,w],longstem, stemdepth); + lft x1 = 0; y1 = xht + thick; + x2 = w; + y2 = y1; + draw z1--z2; +endchar; + +beginchar("u", shortwidth,xht#,0); "The letter u"; + pickup elvishpen; + nutelco(w,shortstem, stemdepth); + nuluva (bowpoint, leadgap, true); +endchar; + + +beginchar("v", shortwidth, xht#, 0); "The letter v"; + begingroup; + save x,y; + pickup elvishpen; + top y0 = 0; x0=.5[0, w]; + lft x1 = 0; y1=h; + y2=h; rt x2=w; + y3=y0; x3=x0-.7thick; + z4-z1 = whatever*(z0-z2); + x1-x4=.2thin; + z6-z2 = whatever*(z0-z1); + x6=w; + draw z3..z0--z2..z6; + draw z4..z1--z0; + endgroup; +endchar; + +beginchar("w", 1em#,xht#,0); "The letter w"; + pickup elvishpen; + nutelco(w,shortstem, stemdepth); + nuluva (bowpoint,w-bowsize*em+leadgap, true); + nuluva (bowpoint, leadgap, true); +endchar; + +beginchar("x", shortwidth,xht#,0); "The letter x"; + pickup elvishpen; + lft x1 = leadgap; + rt x2 = w; + x3 = x1; + x4 = x2; + top y1 = h; + bot y2 = 0; + y3 = y2; + y4 = y1; + draw z1{right}..{right}z2; + draw z3{right}..{right}z4; +endchar; + +def commonr= + pickup elvishpen; + save x,y,sweep; + path sweep; + lft x0 = leadgap; top y0 = h; + lft x1 = 0; z0-z1 = whatever*(dir tilt); + x2 = .75w; top y2=h; + rt x3 = w; y3 = .5h; + lft x4 = leadgap; y4 = -.65d; + x5 = .5w; y5 = -d; + x6 = .85w; z6-z5 = whatever*(dir tilt); + sweep = (z2..z3{down}..z4{down}..z5{right}..z6); + z7 = sweep intersectionpoint + ((-infinity,0)--(infinity,0)); + draw sweep; + draw z1--z0..z7; +enddef; + +beginchar("y", shortwidth, xht#, dep#); "The letter y"; + begingroup; + commonr; + endgroup; +endchar; + +beginchar("z", shortwidth,xht#,0); "The letter z"; + pickup elvishpen; + lft x1 = leadgap; + rt x2 = w; + x3 = x1; + x4 = x2; + top y1 = h; + bot y2 = 0; + y3 = y2; + y4 = y1; + draw z1--z4--z3--z2; +endchar; diff --git a/fonts/engwar/englig.mf b/fonts/engwar/englig.mf new file mode 100644 index 0000000000..70d3fd7672 --- /dev/null +++ b/fonts/engwar/englig.mf @@ -0,0 +1,15 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)ligtable.mf 1.1 10/1/86 + +ligtable "`": "`"=:oct"134"; +ligtable "'": "'"=:oct"042"; + +ligtable "-": "-"=:oct"173"; +ligtable oct"173": "-"=:oct"174"; diff --git a/fonts/engwar/engnum.mf b/fonts/engwar/engnum.mf new file mode 100644 index 0000000000..a762514d4b --- /dev/null +++ b/fonts/engwar/engnum.mf @@ -0,0 +1,115 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)numbers.mf 1.1 10/1/86 + +beginchar("0", shortwidth,cap#,0); "The number 0"; + pickup elvishpen; + x1 = x3 = .5[leadgap,w]; + y2 = y4 = .5[h,0]; + top y1 = h; bot y3 = 0; + lft x4 = leadgap; rt x2 = w; + draw z1..z2..z3..z4..cycle; +endchar; + +beginchar("1", shortwidth,cap#,0); "The number 1"; + pickup elvishpen; + x1 = x2 = .5[leadgap,w]; + top y1 = h; bot y2 = 0; + draw z1..z2; +endchar; + +beginchar("2", shortwidth,cap#,0); "The number 2"; + pickup elvishpen; + lft x1 = leadgap; y1 = .5[0,h]; + x2 = .5[leadgap,w]; top y2 = h; + bot y3 = 0; lft x3 = leadgap; + y4 = y3; rt x4 = w; + draw z1{up}..z2{right}..{down}z3--z4; +endchar; + +beginchar("3", shortwidth,cap#,0); "The number 3"; + hthick := 3thick/4; hthin := 3thin/4; + pickup pencircle xscaled hthick yscaled hthin rotated tilt; + x1 = x2 = x3 = leadgap; + top y1 = h; bot y3 = 0; y2 = xht; + rt x4 = w; x5 = x4; + y4 = .5[y1,y2]; y5 = .5[y2,y3]; + draw z1{right}..z4..{left}z2; + draw z2{right}..z5..{left}z3; +endchar; + +beginchar("4", shortwidth,cap#,0); "The number 4"; + pickup elvishpen; + rt x1 = w; x2 = x1 = x4; + bot y1 = 0; top y2 = h; + lft x3 = leadgap; y3 = y4 = xht; + draw z1--z2--z3--z4; +endchar; + +beginchar("5", shortwidth,cap#,0); "The number 5"; + hthick := 3thick/4; hthin := 3thin/4; + pickup pencircle xscaled hthick yscaled hthin rotated tilt; + rt x1 = w; top y1 = h; + lft x2 = leadgap; y2 = y1; + x3 = x2; y3 = xht; + x4 = x1; y4 = .5[y3,y5]; + x5 = x3; bot y5 = 0; + draw z1--z2--z3..z4..z5; +endchar; + +beginchar("6", shortwidth,cap#,0); "The number 6"; + hthick := 3thick/4; hthin := 3thin/4; + pickup pencircle xscaled hthick yscaled hthin rotated tilt; + x1 = x3 = x5 = .5[leadgap, w]; + lft x2 = lft x6 = leadgap; + rt x7 = rt x4 = w; + top y1 = h; + y2 = y7 = .5[y1,y3]; + y3 = xht; + y6 = y4 = .5[y5,y3]; + bot y5 = 0; + draw z7..z1..z2---z6..z5..z4..z3..{down}z6; +endchar; + +beginchar("7", shortwidth,cap#,0); "The number 7"; + pickup elvishpen; + lft x1 = leadgap; top y1 = h; + rt x2 = w; y2 = y1; + x3 = x1; bot y3 = 0; + draw z1--z2..{down}z3; +endchar; + +beginchar("8", shortwidth,cap#,0); "The number 8"; + hthick := 3thick/4; hthin := 3thin/4; + pickup pencircle xscaled hthick yscaled hthin rotated tilt; + x1 = x3 = x5 = .5[leadgap, w]; + lft x2 = lft x6 = leadgap; + rt x7 = rt x4 = w; + top y1 = h; + y2 = y7 = .5[y1,y3]; + y3 = xht; + y6 = y4 = .5[y5,y3]; + bot y5 = 0; + draw z1..z2..z3..z4..z5..z6..z3..z7..cycle; +endchar; + +beginchar("9", shortwidth,cap#,0); "The number 9"; + hthick := 3thick/4; hthin := 3thin/4; + pickup pencircle xscaled hthick yscaled hthin rotated tilt; + x1 = x3 = x5 = .5[leadgap, w]; + lft x2 = lft x6 = leadgap; + rt x7 = rt x4 = w; + top y1 = h; + y2 = y7 = .5[y1,y3]; + y3 = xht; + y6 = y4 = .5[y5,y3]; + bot y5 = 0; + lft x8 = leadgap; bot y8 = 0; + draw z8{up}..{up}z7..z1..z2..z3..{up}z7; +endchar; diff --git a/fonts/engwar/engpun.mf b/fonts/engwar/engpun.mf new file mode 100644 index 0000000000..ca188c8229 --- /dev/null +++ b/fonts/engwar/engpun.mf @@ -0,0 +1,163 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)punctuation.mf 1.1 10/1/86 + +beginchar ("(", 3*leadgap#, cap#, 0); "The character ("; + x1 = x3 = w; + x2 = leadgap; + y1 = h; + y2 = .5[y1,y3]; + y3 = 0; + pickup elvishpen; + draw z1..z2..z3; +endchar; + +beginchar (")", 3*leadgap#, cap#, 0); "The character )"; + x1 = x3 = leadgap; + x2 = w; + y1 = h; + y2 = .5[y1,y3]; + y3 = 0; + pickup elvishpen; + draw z1..z2..z3; +endchar; + +beginchar (",", 3*leadgap#, xht#, 0); "The punctuation comma (one dot)"; + begingroup; + save x, y; + pickup pensquare scaled thick rotated 45; + z1 = (1/2w, h/2); + drawdot z1; + endgroup; +endchar; + +beginchar (";", 2*leadgap#, xht#, 0); "The punctuation semicolon (two dots)"; + begingroup; + save x, y; + pickup pensquare scaled thick rotated 45; + z1 = (w/2, h-2thin); + z2 = (w/2, 2thin); + drawdot z1; + drawdot z2; + endgroup; +endchar; + +beginchar (".", 3*leadgap#, xht#, 0); "The punctuation period (four dots)"; + begingroup; + save x, y; + pickup pensquare scaled thick rotated 45; + z1 = (w/3, h-2thin); + z2 = (w/3, 2thin); + z3 = (w, h-2thin); + z4 = (w, 2thin); + drawdot z1; + drawdot z2; + drawdot z3; + drawdot z4; + endgroup; +endchar; + +beginchar ("!", .7shortwidth, cap#, 0); "The exclamation point"; + begingroup; + save x, y; + pickup elvishpen; + rt x1 = w; top y1=h; bot y4=2thick; + y2 = y3 = .5[y1,y4]; + z1-z2 = z3-z4 = whatever*(dir 40); + x4 = leadgap; + draw z1..controls z2 and z3..z4; + pickup pensquare scaled thick rotated 45; + z5 = (leadgap + .5thick, thick); + drawdot z5; + endgroup; +endchar; + +beginchar ("?", .7shortwidth, cap#, 0); "The question mark"; + begingroup; + save x, y; + pickup elvishpen; + z1 = (leadgap, h); + top y2 = h; x2 = .6[leadgap, w]; + rt x3 = w; y3 = .7(h - xht) + xht; + lft x4 = leadgap; bot y4 = xht; + lft x6 = leadgap; y6 = 2thick; + draw z1..tension 2.0..z2..z3..z4--z6; + pickup pensquare scaled thick rotated 45; + z5 = (leadgap + .5thick, thick); + drawdot z5; + endgroup; +endchar; + +beginchar ("-", shortwidth, xht#, 0); "The dash (tilde)"; + begingroup; + save x, y; + pickup elvishpen; + x1 = leadgap; + x4 = w; + y1 = .4h; y4 = .6h; + z2-z1 = z4-z3 = whatever*(dir tilt); + y2-y1 = 3 (y4-y1); + draw z1..controls z2 and z3..z4; + endgroup; +endchar; + +beginchar (oct"173", 1.5*shortwidth, xht#, 0); "en dash"; + begingroup; + save x, y; + pickup elvishpen; + x1 = leadgap; + x4 = w; + y1 = .4h; y4 = .6h; + z2-z1 = z4-z3 = whatever*(dir tilt); + y2-y1 = 3 (y4-y1); + draw z1..controls z2 and z3..z4; + endgroup; +endchar; + +beginchar (oct"174", 3*shortwidth, xht#, 0); "em dash"; + begingroup; + save x, y; + pickup elvishpen; + x1 = leadgap; + x4 = w; + y1 = .4h; y4 = .6h; + z2-z1 = z4-z3 = whatever*(dir tilt); + y2-y1 = 3 (y4-y1); + draw z1..controls z2 and z3..z4; + endgroup; +endchar; + +beginchar ("=", shortwidth, xht#, 0); "The equals"; + begingroup; + save x, y; + pickup elvishpen; + x1 = leadgap; + x4 = w; + y1 = .8h; y4 = 1h; + z2-z1 = z4-z3 = whatever*(dir tilt); + y2-y1 = 3 (y4-y1); + draw z1..controls z2 and z3..z4; + x5 = x1; x6 = x2; x7 = x3; x8 = x4; + y5 = y1 - 2thick; y6 = y2 - 2thick; y7 = y3 - 2thick; y8 = y4 - 2thick; + draw z5..controls z6 and z7..z8; + endgroup; +endchar; + +beginchar ("~", shortwidth, cap#, 0); "The tilde"; + begingroup; + save x, y; + pickup elvishpen; + x1 = leadgap; + x4 = w; + y1 = .8h; y4 = .7h; + z2-z1 = z4-z3 = whatever*(dir tilt); + y2-y1 = 3 (y4-y1); + draw z1..controls z2 and z3..z4; + endgroup; +endchar; diff --git a/fonts/engwar/engucase.mf b/fonts/engwar/engucase.mf new file mode 100644 index 0000000000..e83d933e09 --- /dev/null +++ b/fonts/engwar/engucase.mf @@ -0,0 +1,287 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)letters.mf 1.1 10/1/86 + +beginchar("A", shortwidth,Xht#,0); "The letter a"; + pickup elvishpen; + Nutelco(w,shortstem, stemdepth); + Nuluva (bowpoint, leadgap, false); + Overbar; +endchar; + +beginchar("B", shortwidth, cap#, 0); "the letter b"; + pickup elvishpen; + Telco(leadgap, longstem, stemdepth); + Luva (bowpoint, w, false); + underbar; +endchar; + +beginchar ("C",shortwidth, Xht#, 0); "The letter c"; + begingroup; + save x,y; + pickup elvishpen; + top y1= h; x1 = .75[leadgap, w]; + lft x2= leadgap; y2= .4h; + bot y3= 0; x3= .5[leadgap, w]; + y4= .2h; rt x4=w; + draw z1..z2{down}..z3{right}..z4; + endgroup; +endchar; + +beginchar("D", shortwidth,cap#,0); "The letter d"; + pickup elvishpen; + Nutelco(w,longstem, stemdepth); + Nuluva (bowpoint, leadgap, false); + Overbar; +endchar; + +beginchar ("E",shortwidth, Xht#, 0); "The letter e"; + begingroup; + save x,y; + pickup elvishpen; + top y1= h; x1 = .75[leadgap, w]; + lft x2= leadgap; y2= .4h; + bot y3= 0; x3= .5[leadgap, w]; + y4= .2h; rt x4=w; + z0 = .5[z2, z3]; + draw z0--z1..z2{down}..z3{right}..z4; + endgroup; +endchar; + +beginchar("F", shortwidth,Xht#,dep#); "The letter f"; + pickup elvishpen; + Telco(leadgap,shortstem, stemdepth); + z1 = bowpoint; + rt x2 = w; + y2 = y1; + draw z1--z2; + underbar; +endchar; + +beginchar("G", shortwidth,Xht#,dep#); "The letter g"; + pickup elvishpen; + + Luva ((w, h), leadgap, false); + path sweep; + lft x0 = leadgap; top y0 = h; + lft x1 = 0; z0-z1 = whatever*(dir tilt); + x2 = .75w; top y2=h; + rt x3 = w; y3 = .5h; + lft x4 = leadgap; y4 = -.65d; + x5 = .5w; y5 = -d; + x6 = .85w; z6-z5 = whatever*(dir tilt); + sweep = (z2..z3{down}..z4{down}..z5{right}..z6); + z7 = sweep intersectionpoint + ((-infinity,0)--(infinity,0)); + draw sweep; +endchar; + +beginchar("H", shortwidth,cap#, 0); "the letter h"; + pickup elvishpen; + Telco(leadgap, longstem, stemdepth); + Luva (bowpoint, w, true); +endchar; + +def commoncarrier= + pickup elvishpen; + x0=x1-thick; top y0=h; + x1=1/2[leadgap,w]; y1=y0; + x2=x1; y2=-d/2; + x3=x0; y3=-d; + draw z0--z1{down}..z2{down}..z3; +enddef; + +beginchar ("I",3*leadgap#,Xht#,.2dep#); "The letter i"; + begingroup; + save x,y; + commoncarrier; + endgroup; +endchar; + +beginchar ("J",3*leadgap#,Xht#,dep#); "The letter j"; + begingroup; + save x,y; + commoncarrier; + endgroup; +endchar; + +beginchar ("K", shortwidth,cap#,0); "The letter k"; + pickup elvishpen; + Telco(leadgap, longstem, stemdepth); + lft x1 = leadgap; bot y1 = 0; + rt x2 = w; top y2 = Xht; + lft x4 = w; bot y4 = 0; + draw z1..{right}z2; + draw z1{z2 - z1}..{down}z4; +endchar; + +beginchar ("L",3*leadgap#,cap#,.2dep#); "The letter l"; + begingroup; + save x,y; + commoncarrier; + endgroup; +endchar; + +beginchar ("M", 1em#, Xht#, 0); "the letter m"; + pickup elvishpen; + Telco(leadgap, shortstem, stemdepth); + Luva (bowpoint, bowsize*em, false); + Luva (bowpoint, w, false); + underbar; +endchar; + +beginchar ("N", shortwidth, Xht#, 0); "the letter n"; + pickup elvishpen; + Telco (leadgap, shortstem, stemdepth); + Luva (bowpoint, w, true); +endchar; + +beginchar ("O", shortwidth, Xht#, 0); "The letter o"; + begingroup; + save x,y; + pickup elvishpen; + lft x0 = leadgap; + top y1 = h; + rt x2 = w; + bot y3 = 0; + y0 = .65h; x1 = leadgap+.35w; + y2 = .35h; x3 = leadgap+.65w; + draw z0..z1..z2..z3..cycle; + endgroup; +endchar; + +beginchar("P", shortwidth,Xht#,dep#); "The letter p"; + pickup elvishpen; + Telco(leadgap,shortstem, stemdepth); + Luva (bowpoint, w, false); + underbar; +endchar; + +beginchar("Q", shortwidth,Xht#,dep#); "The letter q"; + pickup elvishpen; + Nutelco(w,shortstem, stemdepth); + Nuluva (bowpoint, 0, false); + Overbar; +endchar; + +beginchar ("R", shortwidth, Xht#, 0); "the letter r"; + pickup elvishpen; + Telco (leadgap, shortstem, stemdepth); + z5 = bowpoint; + top y6=Xht; x6=.5[x5,w]; + rt x7=w; y7=.47Xht; + draw z5..z6..{down}z7; +endchar; + +beginchar("S", shortwidth,Xht#,0); "The letter s"; + hthick := 3thick/4; hthin := 3thin/4; + pickup pencircle xscaled hthick yscaled hthin rotated tilt; + x1 = x2 = x3 = .5[leadgap,w]; + top y1 = h; + y2 = .5[y1, y3]; + bot y3 = 0; + y4 = y3; + y5 = y1; + lft x4 = leadgap; + rt x5 = w; + x6 = x4; y6 = y5; + x7 = x5; y7 = y4; + draw z5..{left}z1..z6..z2..z7..{left}z3..z4; +endchar; + +beginchar("T", 3*leadgap#,cap#,0); "The letter t"; + pickup elvishpen; + Telco(.5[leadgap,w],longstem, stemdepth); + lft x1 = 0; y1 = Xht; + x2 = w; + y2 = y1; + draw z1--z2; +endchar; + +beginchar("U", shortwidth,Xht#,0); "The letter u"; + pickup elvishpen; + Nutelco(w,shortstem, stemdepth); + Nuluva (bowpoint, leadgap, true); +endchar; + + +beginchar("V", shortwidth, Xht#, 0); "The letter v"; + begingroup; + save x,y; + pickup elvishpen; + top y0 = 0; x0=.5[0, w]; + lft x1 = 0; y1=h; + y2=h; rt x2=w; + y3=y0; x3=x0-.7thick; + z4-z1 = whatever*(z0-z2); + x1-x4=.2thin; + z6-z2 = whatever*(z0-z1); + x6=w; + draw z3..z0--z2..z6; + draw z4..z1--z0; + endgroup; +endchar; + +beginchar("W", 1em#,Xht#,0); "The letter w"; + pickup elvishpen; + Nutelco(w,shortstem, stemdepth); + Nuluva (bowpoint,w-bowsize*em+leadgap, true); + Nuluva (bowpoint, leadgap, true); +endchar; + +beginchar("X", shortwidth,Xht#,0); "The letter x"; + pickup elvishpen; + lft x1 = leadgap; + rt x2 = w; + x3 = x1; + x4 = x2; + top y1 = h; + bot y2 = 0; + y3 = y2; + y4 = y1; + draw z1{right}..{right}z2; + draw z3{right}..{right}z4; +endchar; + +def commonr= + pickup elvishpen; + save x,y,sweep; + path sweep; + lft x0 = leadgap; top y0 = h; + lft x1 = 0; z0-z1 = whatever*(dir tilt); + x2 = .75w; top y2=h; + rt x3 = w; y3 = .5h; + lft x4 = leadgap; y4 = -.65d; + x5 = .5w; y5 = -d; + x6 = .85w; z6-z5 = whatever*(dir tilt); + sweep = (z2..z3{down}..z4{down}..z5{right}..z6); + z7 = sweep intersectionpoint + ((-infinity,0)--(infinity,0)); + draw sweep; + draw z1--z0..z7; +enddef; + +beginchar("Y", shortwidth, Xht#, dep#); "The letter y"; + begingroup; + commonr; + endgroup; +endchar; + +beginchar("Z", shortwidth,Xht#,0); "The letter z"; + pickup elvishpen; + lft x1 = leadgap; + rt x2 = w; + x3 = x1; + x4 = x2; + top y1 = h; + bot y2 = 0; + y3 = y2; + y4 = y1; + draw z1--z4--z3--z2; +endchar; diff --git a/fonts/engwar/engwar.mf b/fonts/engwar/engwar.mf new file mode 100644 index 0000000000..af4194cf77 --- /dev/null +++ b/fonts/engwar/engwar.mf @@ -0,0 +1,58 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)tengwar.mf 1.1 10/1/86 + +mode_setup; +em#:=10pt#; cap#=.8em#; dep#=.4em#; xht#=.4em#; +Xht#=.6em#; +shortwidth := .6em#; + +thick#:=9/80em#; thin#:=3/80em#; +leadgap# := .1em#; +bowstart#= .66xht#; +Bowstart#= .66Xht#; +serifthick# := 1.1thick#; + +tilt:=50; seriftilt := 110; botseriftilt:=80; +shortstem := .7; +longstem := .85; +stemdepth := .9; +bowsize := .58; + +define_pixels(em,cap,dep,xht,Xht,bowstart,Bowstart); +define_pixels(thin,thick,serifthick,leadgap); + +pen elvishpen; elvishpen = pencircle xscaled thick yscaled thin rotated tilt; + +% +% Because even "tall" characters want to be accented in the same place, +% but because we want to use "h" in "beginchar" definitions +% in a typical plain-MF way, +% we force all characters to have a character height of xht#. This is +% something a kludge, and makes tall characters stick into preceding lines +% when the baselines aren't sufficiently separated. But that's how the +% title-page inscription looks anyway. +% +let oldendchar = endchar; +def endchar= + charht := xht#; + oldendchar; +enddef; + +input eng; + +font_normal_space .45em#; +font_normal_stretch .22em#; +font_normal_shrink .15em#; +font_x_height xht#; +font_quad 1em#; +font_extra_space 1/6em#; +designsize:=1em#; + +bye; diff --git a/fonts/engwar/lucap.mf b/fonts/engwar/lucap.mf new file mode 100644 index 0000000000..04a1fa5e5a --- /dev/null +++ b/fonts/engwar/lucap.mf @@ -0,0 +1,50 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)luvar.mf 1.1 10/1/86 + +def Luva(expr startpt, endx, looped) = +begingroup; + save x,y; + z5 = startpt; + top y6=Xht; x6=.5[x5,endx]; + rt x7=endx; y7=.47Xht; + if looped : + bot y8 =0; x8=1/4[x6,endx]; + y9 = .7thick; z9=whatever*(dir (tilt+90))+z8; + draw z5..z6..z7{down}..z8{left}..z9; % lu'va (bow) + else: + bot y8 =0; x8=.7[x6,endx]; + draw z5..z6..z7{down}..z8;%{dir (tilt+180)}; + fi; + bowpoint:= z7; + hookpoint := z8; + penlabels(5,6,7,8,9); +endgroup; +enddef; + +def Nuluva(expr startpt, endx, looped) = +begingroup; + save x,y; + z5 = startpt; + bot y6=0; x6=.5[x5,endx]; + lft x7=endx; y7=.45Xht; + if looped : + top y8 =Xht; x8=1/4[x6,endx]; + y9 = Xht-.7thick; z9=whatever*(dir (tilt-90))+z8; + draw z5..z6..z7{up}..z8{right}..z9; % lu'va (bow) + else: + top y8 =Xht; x8=.7[x6,endx]; + draw z5..z6..z7{up}..z8;%{dir (tilt)}; + fi; + bowpoint:= z7; + hookpoint := z8; + penlabels(5,6,7,8,9); +endgroup; +enddef; + diff --git a/fonts/engwar/luvar.mf b/fonts/engwar/luvar.mf new file mode 100644 index 0000000000..a7a5faa74b --- /dev/null +++ b/fonts/engwar/luvar.mf @@ -0,0 +1,50 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)luvar.mf 1.1 10/1/86 + +def luva(expr startpt, endx, looped) = +begingroup; + save x,y; + z5 = startpt; + top y6=xht; x6=.5[x5,endx]; + rt x7=endx; y7=.47xht; + if looped : + bot y8 =0; x8=1/4[x6,endx]; + y9 = .7thick; z9=whatever*(dir (tilt+90))+z8; + draw z5..z6..z7{down}..z8{left}..z9; % lu'va (bow) + else: + bot y8 =0; x8=.7[x6,endx]; + draw z5..z6..z7{down}..z8;%{dir (tilt+180)}; + fi; + bowpoint:= z7; + hookpoint := z8; + penlabels(5,6,7,8,9); +endgroup; +enddef; + +def nuluva(expr startpt, endx, looped) = +begingroup; + save x,y; + z5 = startpt; + bot y6=0; x6=.5[x5,endx]; + lft x7=endx; y7=.45xht; + if looped : + top y8 =xht; x8=1/4[x6,endx]; + y9 = xht-.7thick; z9=whatever*(dir (tilt-90))+z8; + draw z5..z6..z7{up}..z8{right}..z9; % lu'va (bow) + else: + top y8 =xht; x8=.7[x6,endx]; + draw z5..z6..z7{up}..z8;%{dir (tilt)}; + fi; + bowpoint:= z7; + hookpoint := z8; + penlabels(5,6,7,8,9); +endgroup; +enddef; + diff --git a/fonts/engwar/telcap.mf b/fonts/engwar/telcap.mf new file mode 100644 index 0000000000..6bd729fb89 --- /dev/null +++ b/fonts/engwar/telcap.mf @@ -0,0 +1,52 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)telcor.mf 1.1 10/1/86 + +def Telco (expr posn, stemtop, stembottom) = + begingroup; + save x,y,stem; + path stem; + y0 = stemtop*h; + lft x0 = posn; + y1 = h; z1-z0=whatever*dir(seriftilt); + x3 = x0; y3 = -stembottom*d; + y4 = -d; z3-z4=whatever*dir(180-seriftilt); + stem = z1..tension 3.0..z0{down}..z3{down}..z4; + draw stem; + bowpoint := stem intersectionpoint + ((-infinity,Bowstart)--(infinity, Bowstart)); + barpoint := stem intersectionpoint + ((-infinity,0)--(infinity, 0)); + penlabels(0,1,2,3,4); + endgroup; +enddef; + +def Nutelco (expr posn, stemtop, stembottom) = + begingroup; + save x,y,stem; + path stem; + y0 = stemtop*h; + rt x0 = posn; + y1 = h; z1-z0=whatever*dir(seriftilt); + x3 = x0; y3 = -stembottom*d; + y4 = -d; z3-z4=whatever*dir(seriftilt); + stem = z1..tension 3.0..z0{down}..z3--z4; + draw stem; + bowpoint := stem intersectionpoint + ((-infinity, Xht-Bowstart)--(infinity, Xht-Bowstart)); + if y0 > Xht : + barpoint := stem intersectionpoint + ((-infinity, Xht)--(infinity, Xht)); + else : + barpoint := z0; + fi ; + penlabels(0,1,3,4); + endgroup; +enddef; + diff --git a/fonts/engwar/telcor.mf b/fonts/engwar/telcor.mf new file mode 100644 index 0000000000..58483e83ef --- /dev/null +++ b/fonts/engwar/telcor.mf @@ -0,0 +1,52 @@ +% Copyright 1986 Michael Urban +% Everyone is granted permission to copy, modify and redistribute +% this file, provided that a currently-dated copy of this +% copyright notice is included in the copy. +% License is granted to produce fonts based on the information +% in this file, provided that such fonts are redistributed +% without charge to any third party. + +% SCCS ID @(#)telcor.mf 1.1 10/1/86 + +def telco (expr posn, stemtop, stembottom) = + begingroup; + save x,y,stem; + path stem; + y0 = stemtop*h; + lft x0 = posn; + y1 = h; z1-z0=whatever*dir(seriftilt); + x3 = x0; y3 = -stembottom*d; + y4 = -d; z3-z4=whatever*dir(180-seriftilt); + stem = z1..tension 3.0..z0{down}..z3{down}..z4; + draw stem; + bowpoint := stem intersectionpoint + ((-infinity,bowstart)--(infinity, bowstart)); + barpoint := stem intersectionpoint + ((-infinity,0)--(infinity, 0)); + penlabels(0,1,2,3,4); + endgroup; +enddef; + +def nutelco (expr posn, stemtop, stembottom) = + begingroup; + save x,y,stem; + path stem; + y0 = stemtop*h; + rt x0 = posn; + y1 = h; z1-z0=whatever*dir(seriftilt); + x3 = x0; y3 = -stembottom*d; + y4 = -d; z3-z4=whatever*dir(seriftilt); + stem = z1..tension 3.0..z0{down}..z3--z4; + draw stem; + bowpoint := stem intersectionpoint + ((-infinity, xht-bowstart)--(infinity, xht-bowstart)); + if y0 > xht : + barpoint := stem intersectionpoint + ((-infinity, xht)--(infinity, xht)); + else : + barpoint := z0; + fi ; + penlabels(0,1,3,4); + endgroup; +enddef; + -- cgit v1.2.3