summaryrefslogtreecommitdiff
path: root/fonts/boisik/bskletters-o.mf
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/boisik/bskletters-o.mf
Initial commit
Diffstat (limited to 'fonts/boisik/bskletters-o.mf')
-rw-r--r--fonts/boisik/bskletters-o.mf6625
1 files changed, 6625 insertions, 0 deletions
diff --git a/fonts/boisik/bskletters-o.mf b/fonts/boisik/bskletters-o.mf
new file mode 100644
index 0000000000..e2e274ed0c
--- /dev/null
+++ b/fonts/boisik/bskletters-o.mf
@@ -0,0 +1,6625 @@
+%Boisik letters in other forms (greek, calligraphic, one cyrilic) -- for math only!
+numeric bbs; bbs:=if cap_hair+eps>tiny-eps: 2 else 1 fi; %correction for BB letters
+def mft = -.5bar_height#*slant enddef;
+
+charscription(11u,cap_height,0)(
+pos1(cap_stem,0); pos2(cap_stem,0);
+bot y1=0; top y2=h; lft x1l= lft x2l=2u;
+cap_serifs_bl(1l); cap_serifs_br(1r);
+cap_serifs_tl(2l);
+top y3r=h; rt x3r=w-u;
+numeric oldbeak; oldbeak:=beak; beak:=1.25beak;
+filldraw z1l.b{down}..{left}z1l.c..z1l.a{right}..z1+ser_boule*up..
+ {right}z1r.a..z1r.c{left}..z1r.b---(reverse arm_top_r_points(2r,3))
+ ---z2l.a..{right}z2l.c..z2l.b---cycle;
+beak:=oldbeak;
+penlabels(1,2);
+);
+
+iff known chars.greek_Gamma:
+bskchar "The Greek letter Gamma";
+beginchar(chars.greek_Gamma,11u#,cap_height#,0); uni "0x0393";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+math_fit(0,ic#-5u#);
+endchar;
+
+iff known chars.greek_Gamma_BB:
+bskchar "The blackboard-bold Greek letter Gamma";
+beginchar(chars.greek_Gamma_BB,11u#,cap_height#,0); uni "0x213E";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+bot z100=(x1l,y1l.c); top z101=(x2l,y2l.c);
+infill obl(2r,2l,1r)---obl(1r,2r,1l)---z1l...obl(100,1l.c,2l)---obl(101,1l,2l.c)...z2l---cycle;
+math_fit(0,ic#-4u#);
+endchar;
+
+iff known chars.greek_Gamma_SS:
+bskchar "The sans-serif Greek letter Gamma";
+beginchar(chars.greek_Gamma_SS,11u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_hair,90);
+bot y1=0; top y2=h; lft x1l= lft x2l=2u;
+cap_serifs_bl(1l); cap_serifs_br(1r);
+cap_serifs_tl(2l);
+top y3r=h; rt x3r=w-u; z2'=(x2r,y3l);
+oblu:=cap_hair;
+filldraw z1l.b..z1..z1r.b---obl(2',1r,3l)---z3l+cap_stem*left...z3...z3r+cap_stem*left
+ ---z2..z2l.b---cycle;
+penlabels(1,2,3); labels(2');
+math_fit(0,ic#-4u#);
+endchar;
+
+charscription(12u,cap_height,0)(
+path p;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos5(cap_bar,90); pos6(cap_bar,90); pos5'(ser_height,90); pos6'(1.21beak,90);
+bot y1=0; top y2=h;
+top y3r=h; rt x3r=w-u;
+lft x1l=lft x2l=2u;
+y5=y5'=y6=y6'=.52[y1,y2]; x5=x2r+cap_hair; x6=x2r+3/8(x3-x2r); x5'=x2r; x6'-x6=1.5u;
+cap_serifs_tl(2l); cap_serifs_bl(1l); cap_serifs_br_p(1r,1.1);
+p=reverse arm_top_r_points(2r,3);
+filldraw z1l.b{down}..{left}z1l.c..z1l.a{right}..z1+ser_boule*up..
+ {right}z1r.a..{left}z1r.c..z1r.b---z5'l{dir80}..z5l---
+ z6l..z6'l+.5serif_o*left{down}..z6'l{dir87}..{dir93}z6'...z6r
+ ---z5r..{dir100}z5'r---p--z2l.a..{right}z2l.c..z2l.b---cycle;
+penlabels(1,2,5,5',6,6');
+);
+
+iff known chars.greek_Digamma:
+bskchar "The Greek letter Digamma";
+beginchar(chars.greek_Digamma,12u#,cap_height#,0); uni "0x03DC";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+math_fit(0,ic#-4u#);
+endchar;
+
+iff known chars.greek_Digamma_BB:
+bskchar "The blackboard-bold Greek letter Digamma";
+beginchar(chars.greek_Digamma_BB,12u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+bot z100=(x1l,y1l.c); top z101=(x2l,y2l.c);
+infill obl(2r,2l,1r)---obl(1r,2r,1l)---z1l...obl(100,1l.c,2l)---obl(101,1l,2l.c)...z2l---cycle;
+math_fit(0,ic#-3u#);
+endchar;
+
+iff known chars.greek_Digamma_SS:
+bskchar "The sans-serif Greek letter Digamma";
+beginchar(chars.greek_Digamma_SS,12u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+path p;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_hair,90);
+pos5(cap_bar,90); pos6(cap_bar,90); pos5'(ser_height,90);
+bot y1=0; top y2=h;
+top y3r=h; rt x3r=w-u;
+lft x1l=lft x2l=2u;
+y5=y5'=y6=y6'=.52[y1,y2]; x5=x2r+cap_hair; x6=x2r+3/8(x3-x2r); x5'=x2r; x6'-x6=1.5u;
+cap_serifs_tl(2l); cap_serifs_bl(1l); cap_serifs_br_p(1r,1.1);
+z2'=(x2r,y3l);
+oblu:=cap_hair;
+filldraw z1l.b{down}..z1..z1r.b---z5'l{dir80}..z5l---
+ z6l...z6'...z6r---z5r..{dir100}z5'r---obl(2',5'r,3l)---z3l+cap_stem*left
+ ...z3...z3r+cap_stem*left---z2..z2l.b---cycle;
+penlabels(1,2,3,5,5',6); labels(2',6');
+math_fit(0,ic#-3u#);
+endchar;
+
+charscription(14u,cap_height,0)(
+numeric alpha, right_stem, left_stem, old_jut;
+old_jut:=cap_jut;
+{{ save cap_jut; cap_jut=old_jut-.5u;
+lft x1l=1.5u; rt x2r=w-1.5u; bot y1l=bot y2r=0;
+x3l=.5w; top y3l=h+apex_o;
+left_stem=cap_hair;
+right_stem=cap_stem;
+alpha=diag_ratio(2,left_stem,y3l-y1l,x3l-x1l);
+pos1(alpha*left_stem,0); pos2(alpha*right_stem,0);
+pos1'(alpha*left_stem,0); pos2'(alpha*right_stem,0);
+z1'l=z3l=z2'r;
+z3'=whatever[z1'r,z1r]=whatever[z2'l,z2l]; y3'l=y3'r=y3'-.25[cap_hair,cap_stem];
+z3'l=whatever[z3',z1r]; z3'r=whatever[z3',z2l];
+cap_serifs_bl(1l); cap_serifs_br(1r); cap_serifs_br_p(2r,.8); cap_serifs_bl(2l);
+filldraw z1l.a---z2r.a..{left}z2r.c..diag_serif(2r,3l)---z3l---
+ diag_serif(1l,3l)..z1l.c{left}..cycle;
+infill z2l.c{right}..diag_serif(2l,3')---z3'r...z3'l---diag_serif(1r,3')
+ ..z1r.c---cycle;
+penlabels(1,1',2,2',3,3');
+}};
+);
+
+iff known chars.greek_Delta:
+bskchar "The Greek letter Delta";
+beginchar(chars.greek_Delta,14u#,cap_height#,0); uni "0x0394";
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_Delta_BB:
+bskchar "The blackboard-bold Greek letter Delta";
+beginchar(chars.greek_Delta_BB,14u#,cap_height#,0); uni "non";
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+numeric oblu.more; oblu.more:=2oblu;
+bot y100=y2r.c; z100=whatever[z3l,z2r];
+infill ifobl(3',3l,2l,2r,,more)---obl(100,3l,2r.c)..z2r---obl(2l,2r,3')---cycle;
+labels(100);
+endchar;
+
+iff known chars.greek_Delta_SS:
+bskchar "The sans-serif Greek letter Delta";
+beginchar(chars.greek_Delta_SS,14u#,cap_height#,0); uni "non";
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+numeric alpha, right_stem, left_stem, old_jut;
+old_jut:=cap_jut;
+{{ save cap_jut; cap_jut=old_jut-.5u;
+lft x1l=1.5u; rt x2r=w-1.5u; bot y1l=bot y2r=0;
+x3l=.5w; top y3l=h+apex_o;
+left_stem=cap_hair;
+right_stem=cap_stem;
+alpha=diag_ratio(2,left_stem,y3l-y1l,x3l-x1l);
+pos1(alpha*left_stem,0); pos2(alpha*right_stem,0);
+pos1'(alpha*left_stem,0); pos2'(alpha*right_stem,0);
+z1'l=z3l=z2'r;
+z3'=whatever[z1'r,z1r]=whatever[z2'l,z2l]; y3'l=y3'r=y3'-.25[cap_hair,cap_stem];
+z3'l=whatever[z3',z1r]; z3'r=whatever[z3',z2l];
+cap_serifs_bl(1l); cap_serifs_br(1r); cap_serifs_br_p(2r,.8); cap_serifs_bl(2l);
+filldraw z1---z2...diag_serif(2r,3l)---z3l---
+ diag_serif(1l,3l)...cycle;
+infill z2l.c{right}..diag_serif(2l,3')---z3'r...z3'l---diag_serif(1r,3')
+ ..z1r.c---cycle;
+penlabels(1,1',2,2',3,3');
+}};
+endchar;
+
+charscription(13u,cap_height,0)(
+numeric alpha, right_stem, left_stem;
+lft x1l=u; rt x2r=w-u; bot y1l=bot y2r=0;
+x3l=.5w; top y3l=h+apex_o;
+left_stem=cap_hair;
+right_stem=cap_stem;
+alpha=diag_ratio(2,left_stem,y3l-y1l,x3l-x1l);
+pos1(alpha*left_stem,0); pos2(alpha*right_stem,0);
+pos1'(alpha*left_stem,0); pos2'(alpha*right_stem,0);
+z1'l=z3l=z2'r;
+y1r:=y2l:=y1r+serif_o;
+z3'=whatever[z1'r,z1r]=whatever[z2'l,z2l]; y3'l=y3'r=y3'-.25[cap_hair,cap_stem];
+z3'l=whatever[z3',z1r]; z3'r=whatever[z3',z2l];
+filldraw z1l---z2r--z3l--cycle;
+infill (x1r+serif_o,y1r)--(x2l-serif_o,y2l)---z3'r...z3'l---cycle;
+penlabels(1,2,3,3');
+);
+
+iff known chars.greek_Delta_alt:
+bskchar "The Greek letter Delta alternative";
+beginchar(chars.greek_Delta_alt,13u#,cap_height#,0); uni "non";
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_Delta_alt_BB:
+bskchar "The blackboard-bold Greek letter Delta alternative";
+beginchar(chars.greek_Delta_alt_BB,13u#,cap_height#,0); uni "non";
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+oblu:=2f_obl;
+infill ifobl(3'r,3l,2l,2l,,)---ifobl(2r,2l,3l,3'r,,)---cycle;
+endchar;
+
+charscription(9u,cap_height,0)(
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_hair,90); pos4(cap_hair,90); pos5(ser_height,90);
+bot y1=0; top y2=h; lft x1l=lft x2l=2u;
+y3=y4=y5=.52h; x3=x1r.a; rt x4=w-u; x5=x1r;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l); cap_serifs_br(1r);
+filldraw z1l.b{down}..{left}z1l.c..z1l.a{right}..z1+ser_boule*up..{right}z1r.a
+ ..z1r.c{left}..z1r.b---z5l{dir80}..z3l---z4l..z4r---z3r..{dir100}z5r
+ ---z2r.b..{right}z2r.c..z2r.a---z2l.a..{right}z2l.c..z2l.b---cycle;
+penlabels(1,2,3,4,5);
+);
+
+iff known chars.greek_Heta:
+bskchar "The Greek letter Heta";
+beginchar(chars.greek_Heta,9u#,cap_height#,0); uni "0x0370";
+italcorr .5cap_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+math_fit(0,ic#-2u#);
+endchar;
+
+iff known chars.greek_Heta_BB:
+bskchar "The blackboard-bold Greek letter Heta";
+beginchar(chars.greek_Heta_BB,9u#,cap_height#,0); uni "non";
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+bot z100=(x1l,y1l.c); top z101=(x2l,y2l.c);
+infill obl(2r,2l,1r)---obl(1r,2r,1l)---z1l...obl(100,1l.c,2l)---obl(101,1l,2l.c)...z2l---cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known chars.greek_Heta_SS:
+bskchar "The sans-serif Greek letter Heta";
+beginchar(chars.greek_Heta_SS,9u#,cap_height#,0); uni "non";
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_hair,90); pos4(cap_hair,90); pos5(ser_height,90);
+bot y1=0; top y2=h; lft x1l=lft x2l=2u;
+y3=y4=y5=.52h; x3=x1r.a; rt x4=w-u; x5=x1r;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l); cap_serifs_br(1r);
+filldraw z1l.b..z1..z1r.b---z5l{dir80}..z3l---z4l..z4r---z3r..{dir100}z5r
+ ---z2r.b..z2..z2l.b---cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+charscription(14u,cap_height,0)(
+pos1(cap_curve,0); pos2(cap_hair,90); pos3(cap_curve,180); pos4(cap_hair,270);
+lft x1l=u-o; rt x3l=w-u+o; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2-x4=.5u; bot y2l=-o; top y4l=h+o;
+filldraw z1l{down}..z2l..z3l..z4l..{down}cycle;
+infill z1r{up}..z4r..z3r..z2r..{up}cycle;
+z5=.5[z4,z2];
+pos6(.65beak,80); pos7(.65beak,85);
+y6=y7=y5; .5[x6,x7]=x5; x7-x6=.47(x3r-x1r);
+z6'r-z6r=z6'l-z6l=z7r-z7'r=z7l-z7'l=(serif_o,0);
+y6l:=y6l-o; y7r:=y7r+o;
+pos8(cap_hair,90); pos9(cap_hair,90);
+y8=y9; .5[z8,z9]=z5; x9-x8=1/3(x7-x6);
+filldraw z8r..{dir80}z6'r..z6r---z6l..{dir80}z6'l..z8l---z9l
+ ..{dir-95}z7'l..z7l---z7r..{dir-95}z7'r..z9r---cycle;
+penlabels(1,2,3,4,5,6,6',7,7',8,9);
+);
+
+iff known chars.greek_Theta:
+bskchar "The Greek letter Theta";
+beginchar(chars.greek_Theta,14u#,cap_height#,0); uni "0x0398";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-.5cap_height#*slant+.5u#,.5cap_height#*slant);
+endchar;
+
+iff known chars.greek_Theta_BB:
+bskchar "The blackboard-bold Greek letter Theta";
+beginchar(chars.greek_Theta_BB,14u#,cap_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+path p[]; numeric tim[];
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z4l..z1l{down}..z2l..z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,bbs*up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,bbs*down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,bbs*up,p101,down);
+z103=bsktouch(subpath(2,3) of p100,bbs*down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,y1)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p101 intersectiontimes (z103--(x103,y2l-5)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_Theta_SS:
+bskchar "The sans-serif Greek letter Theta";
+beginchar(chars.greek_Theta_SS,14u#,cap_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(cap_curve,0); pos2(cap_hair,90); pos3(cap_curve,180); pos4(cap_hair,270);
+lft x1l=u-o; rt x3l=w-u+o; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2-x4=.5u; bot y2l=-o; top y4l=h+o;
+filldraw z1l{down}..z2l..z3l..z4l..{down}cycle;
+infill z1r{up}..z4r..z3r..z2r..{up}cycle;
+z5=.5[z4,z2];
+pos6(.65beak,80); pos7(.65beak,85);
+y6=y7=y5; .5[x6,x7]=x5; x7-x6=.47(x3r-x1r);
+z6'r-z6r=z6'l-z6l=z7r-z7'r=z7l-z7'l=(serif_o,0);
+y6l:=y6l-o; y7r:=y7r+o;
+pos8(cap_hair,90); pos9(cap_hair,90);
+y8=y9; .5[z8,z9]=z5; x9-x8=(x7-x6);
+filldraw z8r..z8l---z9l..z9r---cycle;
+penlabels(1,2,3,4,5,6,6',7,7',8,9);
+endchar;
+
+charscription(13u,cap_height,0)(
+numeric alpha, right_stem, left_stem;
+lft x1l=2u; rt x2r=w-2u; bot y1l=bot y2r=0;
+x3l=.5w; top y3l=h+apex_o;
+left_stem=cap_hair;
+right_stem=cap_stem;
+alpha=diag_ratio(2,left_stem,y3l-y1l,x3l-x1l);
+pos1(alpha*left_stem,0); pos2(alpha*right_stem,0);
+pos1'(alpha*left_stem,0); pos2'(alpha*right_stem,0);
+z1'l=z3l=z2'r;
+z3'=whatever[z1'r,z1r]=whatever[z2'l,z2l]; y3'l=y3'r=y3'-.25[cap_hair,cap_stem];
+z3'l=whatever[z3',z1r]; z3'r=whatever[z3',z2l];
+cap_serifs_bl(1l); cap_serifs_br(1r); cap_serifs_br_p(2r,.8); cap_serifs_bl(2l);
+filldraw z1l+ser_boule*up..{left}z1l.a{left}..{right}z1l.c..diag_serif(1l,3l)---z3l---
+ diag_serif(2r,3l)..{right}z2r.c..z2r.a{left}..z2r+ser_boule*up..
+ {left}z2l.a..{right}z2l.c..diag_serif(2l,3')---z3'r...z3'l---
+ diag_serif(1r,3') ..z1r.c{right}..z1r.a{left}..cycle;
+penlabels(1,1',2,2',3,3');
+);
+
+iff known chars.greek_Lambda:
+bskchar "The Greek letter Lambda";
+beginchar(chars.greek_Lambda,13u#,cap_height#,0); uni "0x039B";
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_Lambda_BB:
+bskchar "The blackboard-bold Greek letter Lambda";
+beginchar(chars.greek_Lambda_BB,13u#,cap_height#,0); uni "non";
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+numeric oblu.more; oblu.more:=2oblu;
+bot y100=y2r.c; z100=whatever[z3l,z2r];
+infill ifobl(3',3l,2r,2l,,more)---obl(100,3l,2r.c)..z2r---obl(2l,2r,3')---cycle;
+labels(100);
+endchar;
+
+iff known chars.greek_Lambda_SS:
+bskchar "The sans-serif Greek letter Lambda";
+beginchar(chars.greek_Lambda_SS,13u#,cap_height#,0); uni "non";
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+numeric alpha, right_stem, left_stem;
+lft x1l=2u; rt x2r=w-2u; bot y1l=bot y2r=0;
+x3l=.5w; top y3l=h+apex_o;
+left_stem=cap_hair;
+right_stem=cap_stem;
+alpha=diag_ratio(2,left_stem,y3l-y1l,x3l-x1l);
+pos1(alpha*left_stem,0); pos2(alpha*right_stem,0);
+pos1'(alpha*left_stem,0); pos2'(alpha*right_stem,0);
+z1'l=z3l=z2'r;
+z3'=whatever[z1'r,z1r]=whatever[z2'l,z2l]; y3'l=y3'r=y3'-.25[cap_hair,cap_stem];
+z3'l=whatever[z3',z1r]; z3'r=whatever[z3',z2l];
+cap_serifs_bl(1l); cap_serifs_br(1r); cap_serifs_br_p(2r,.8); cap_serifs_bl(2l);
+filldraw z1...diag_serif(1l,3l)---z3l---
+ diag_serif(2r,3l)...z2...diag_serif(2l,3')---z3'r...z3'l---
+ diag_serif(1r,3')...cycle;
+penlabels(1,1',2,2',3,3');
+endchar;
+
+iff known chars.greek_Xi:
+bskchar "The Greek letter Xi";
+beginchar(chars.greek_Xi,13.5u#,cap_height#,0); uni "0x039E";
+italcorr cap_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric ofs;
+pos1(cap_stem,0); pos2(cap_stem,0);
+bot y1=0; top y2=h; x1=x2=.5w;
+cap_serifs_bl(1l); cap_serifs_br(1r);
+top y3r=top y4r=h; rt x3r=w-u-o; lft x4r=u+o;
+bot y5r=0; rt x5l=w-u;
+{{
+ numeric oldbeak, old_jut; oldbeak:=beak; old_jut=cap_jut; save beak, cap_jut;
+ beak:=.9oldbeak; cap_jut:=if bold_face: .7\\ fi old_jut;
+ p0:=reverse arm_top_r_points(2r,3).alt; p1:=arm_top_l_points(2l,4).alt;
+ p2:=arm_bot_r_points(1r,5).alt; p2:=subpath(1, length(p2)-1) of p2;
+}};
+p3:=reverse (p2 reflectedabout (z1r.c,z1r.a));
+ofs:=if monospace and (x3d-x2r<stem): 2.3 else: 1 fi;
+filldraw subpath(ofs, infinity) of p0--subpath(0,length(p1)-ofs) of p1--cycle;
+filldraw p2--(p3 shifted (2u-xpart(point 2 of p3),0))--cycle;
+pos6(.65beak,90); pos7(.65beak,90);
+y6=y7=.5h+o; .5[x6,x7]=.5w; x7-x6=.47(x3r-x4r);
+z6'r-z6r=z6'l-z6l=z7r-z7'r=z7l-z7'l=(serif_o,0);
+pos8(cap_hair,90); pos9(cap_hair,90);
+y8=y9; .5[z8,z9]=.5[z6,z7]; x9-x8=1/3(x7-x6);
+filldraw z8r..{up}z6'r..z6r---z6l..{up}z6'l..z8l---z9l
+ ..{down}z7'l..z7l---z7r..{down}z7'r..z9r---cycle;
+penlabels(1,2,6,7,8,9);
+math_fit(-.25u#,.5u#);
+endchar;
+
+iff known chars.greek_Xi_BB:
+bskchar "The blackboard-bold Greek letter Xi";
+beginchar(chars.greek_Xi_BB,13.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric ofs;
+pos1(cap_stem,0); pos2(cap_stem,0);
+bot y1=0; top y2=h; x1=x2=.5w;
+cap_serifs_bl(1l); cap_serifs_br(1r);
+top y3r=top y4r=h; rt x3r=w-u-o; lft x4r=u+o;
+bot y5r=0; rt x5l=w-u;
+{{
+ numeric oldbeak, old_jut; oldbeak:=beak; old_jut=cap_jut; save beak, cap_jut, alt_cap_hair;
+ beak:=.9oldbeak; cap_jut:=if bold_face: .7\\ fi old_jut;
+ alt_cap_hair:=if .5beak>cap_stem: cap_stem else: .4beak; fi;
+ p0:=reverse arm_top_r_points(2r,3).alt; p1:=arm_top_l_points(2l,4).alt;
+ p2:=arm_bot_r_points(1r,5).alt;
+ p2:=z5a{right}...z5b--z5r---z5l..{down}z5l.o&z5l.o..z5c...{left}z5d---z5e;
+}};
+p3:=reverse (p2 reflectedabout (z1r.c,z1r.a));
+ofs:=if monospace and (x3d-x2r<stem): 2.3 else: 1 fi;
+filldraw subpath(ofs, infinity) of p0--subpath(0,length(p1)-ofs) of p1--cycle;
+filldraw p2--(p3 shifted (2u-xpart(point 2 of p3),0))--cycle;
+pos6(.65beak,90); pos7(.65beak,90);
+y6=y7=.5h+o; .5[x6,x7]=.5w; x7-x6=.47(x3r-x4r);
+z6'r-z6r=z6'l-z6l=z7r-z7'r=z7l-z7'l=(serif_o,0);
+pos8(cap_hair,90); pos9(cap_hair,90);
+y8=y9; .5[z8,z9]=.5[z6,z7]; x9-x8=1/3(x7-x6);
+filldraw z8r..{up}z6'r..z6r---z6l..{up}z6'l..z8l---z9l
+ ..{down}z7'l..z7l---z7r..{down}z7'r..z9r---cycle;
+p100:=subpath(0,1) of p2;
+p101:=subpath(5,infinity) of p2;
+p102:=reverse (p100 reflectedabout (z1,z2));
+p103:=reverse (p101 reflectedabout (z1,z2));
+z100=(x5l.o,.5[y5,y5b]);
+z101=z100 reflectedabout (z1,z2);
+infill subpath(0,rundy(p100,infinity).zpet) of p100..{up}z100
+ ..subpath(rundy(p101,0),infinity) of p101
+ ---subpath(0,rundy(p103,infinity).zpet) of p103..{down}z101
+ ..subpath(rundy(p102,0),infinity) of p102---cycle;
+infill (x3a,y3d)..z3a---z4a..(x4a,y4d)---cycle;
+penlabels(1,2,6,7,8,9); labels(100,101);
+endchar;
+
+iff known chars.greek_Xi_SS:
+bskchar "The sans-serif Greek letter Xi";
+beginchar(chars.greek_Xi_SS,12u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric ofs, tharm;
+tharm:=if ((substring(0,5) of font_identifier_) = "BSKHC"): cap_stem else: cap_hair fi;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_hair,90); pos4(cap_hair,90);
+pos5(tharm,-90); pos5'(tharm,-90);
+bot y1=0; top y2=h; x1=x2=.5w;
+cap_serifs_bl(1l); cap_serifs_br(1r);
+top y3r=top y4r=h; rt x3r=w-u-o; lft x4r=u+o;
+bot y5r=bot y5'r=0; rt x5l=w-u; lft x5'=u;
+pos6(.65beak,90); pos7(.65beak,90);
+y6=y7=.5h+o; .5[x6,x7]=.5w; x7-x6=.47(x3r-x4r);
+z6'r-z6r=z6'l-z6l=z7r-z7'r=z7l-z7'l=(serif_o,0);
+pos8(cap_hair,90); pos9(cap_hair,90);
+y8=y9; .5[z8,z9]=.5[z6,z7]; x9-x8=(x7-x6);
+filldraw z8r..z8l---z9l..z9r---cycle;
+filldraw z4l+cap_stem*right---z3l+cap_stem*left...z3...z3r+cap_stem*left
+ ---z4r+cap_stem*right...z4...cycle;
+filldraw z5'l+cap_stem*right---z5l+cap_stem*left...z5...z5r+cap_stem*left
+ ---z5'r+cap_stem*right...z5'...cycle;
+penlabels(1,2,3,4,5,5',6,7,8,9);
+endchar;
+
+charscription(13u,cap_height,0)(
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+bot y1=0; top y2=h;
+lft x1l=lft x2l=2u;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l); cap_serifs_br(1r);
+bot y3=0; top y4=h;
+rt x3r=rt x4r=w-2u;
+cap_serifs_tl(4l); cap_serifs_tr(4r); cap_serifs_bl(3l); cap_serifs_br(3r);
+filldraw z1l.b{down}..{left}z1l.c..z1l.a{right}..z1+ser_boule*up..
+ {right}z1r.a..z1r.c{left}..z1r.b---z2r.b..z2r.c---z4l.c..z4l.b
+ ---z3l.b{down}..{left}z3l.c..z3l.a{right}..
+ z3+ser_boule*up..{right}z3r.a..z3r.c{left}..z3r.b---z4r.b..
+ {right}z4r.c..z4r.a---z2r.a---z2l.a..{right}z2l.c..z2l.b---cycle;
+penlabels(1,2,3,4);
+);
+
+iff known chars.greek_Pi:
+bskchar "The Greek letter Pi";
+beginchar(chars.greek_Pi,13u#,cap_height#,0); uni "0x03A0";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_Pi_BB:
+bskchar "The blackboard-bold Greek letter Pi";
+beginchar(chars.greek_Pi_BB,13u#,cap_height#,0); uni "0x213F";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+bot z100=(x1l,y1l.c); top z101=(x2l,y2l.c);
+bot z102=(x3r,y3r.c); top z103=(x4r,y4r.c);
+infill obl(2r,2l,1r)---obl(1r,2r,1l)---z1l...obl(100,1l.c,2l)---obl(101,1l,2l.c)...z2l---cycle;
+infill obl(4l,4r,3l)---obl(3l,4l,3r)---z3r...obl(102,3r.c,4r)---obl(103,3r,4r.c)...z4r---cycle;
+endchar;
+
+iff known chars.greek_Pi_SS:
+bskchar "The sans-serif Greek letter Pi";
+beginchar(chars.greek_Pi_SS,13u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+bot y1=0; top y2=h;
+lft x1l=lft x2l=2u;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l); cap_serifs_br(1r);
+bot y3=0; top y4=h;
+rt x3r=rt x4r=w-2u;
+cap_serifs_tl(4l); cap_serifs_tr(4r); cap_serifs_bl(3l); cap_serifs_br(3r);
+filldraw z1l.b...z1...z1r.b---z2r.b..z2r.c---z4l.c..z4l.b
+ ---z3l.b...z3...z3r.b---z4r.b..
+ z4---z2r.a---z2..z2l.b---cycle;
+penlabels(1,2,3,4);
+endchar;
+
+charscription(13u,cap_height,0)(
+path p[];
+numeric alpha, top_stem; oblu:=2oblu;
+pos1(cap_stem,0); pos2(cap_stem,0);
+bot y1=0; top y2=h;
+lft x1l=lft x2l-o=2u;
+cap_serifs_bl(1l); cap_serifs_tl(2l); cap_serifs_br(1r); cap_serifs_tr(2r);
+bot y3r=0; top y4r=h; rt x3r=w-u; x4r=w-2.5u;
+x5r=.5w-o; y5=.5[x_height,bar_height];
+alpha=diag_ratio(2,cap_stem,y2-y5,x5r-x2r);
+pos5(alpha*cap_stem,0);
+alpha:=diag_ratio(2,cap_hair,y5-y1,x5r-x1r);
+pos6(alpha*cap_hair,0); z5r=z6r;
+p1:=arm_bot_r_points(1r,3).alt;
+p2:=arm_top_r_points(2r,4);
+y1'=y1l.b; z1'=z6l+whatever*(z3.f-z6r);
+z5'=whatever[z2l.b,z5l]=whatever[z6l,z1'];
+filldraw subpath(0, length(p1)-1) of p1..z3f---obl(5r,3f,2r.b)---
+ z2r.b..(reverse subpath(0,length(p2)-1) of p2)---z2l.a..
+ {right}z2l.c..z2l.b---obl(5',2l.b,1')---z1'..{left}z1l.c..
+ z1l.a---cycle;
+penlabels(1,2,5,6); labels(1',5');
+);
+
+iff known chars.greek_Sigma:
+bskchar "The Greek letter Sigma";
+beginchar(chars.greek_Sigma,13u#,cap_height#,0); uni "0x03A3";
+italcorr cap_height#*slant-1.25u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+math_fit(0,.5bar_height#*slant);
+endchar;
+
+iff known chars.greek_Sigma_BB:
+bskchar "The blackboard-bold Greek letter Sigma";
+beginchar(chars.greek_Sigma_BB,13u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-1.25u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+usechar;
+y100=y101=y2; z100=whatever[z5',z2l.b]; z101=whatever[z2r.b,z5r];
+infill ifobl(5r,5',101,100,,)---ifobl(100,101,5',5r,,)---cycle;
+endchar;
+
+iff known chars.greek_Sigma_SS:
+bskchar "The sans-serif Greek letter Sigma";
+beginchar(chars.greek_Sigma_SS,13u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-1.25u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+path p[];
+numeric alpha, top_stem; oblu:=2oblu;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_hair,-90); pos4(cap_hair,90);
+bot y1=0; top y2=h;
+lft x1l=lft x2l-o=2u;
+cap_serifs_bl(1l); cap_serifs_tl(2l); cap_serifs_br(1r); cap_serifs_tr(2r);
+bot y3r=0; top y4r=h; rt x3r=w-u; x4r=w-2.5u; z3'=(x1r,y3l); z2'=(x2r+oblu,y4l);
+x5r=if ((substring(0,5) of font_identifier_)="BSKHC"): .5[x4,x2r] else: .5w-o fi;
+y5=.5[x_height,bar_height];
+alpha=diag_ratio(2,cap_stem,y2-y5,x5r-x2r);
+pos5(alpha*cap_stem,0);
+alpha:=diag_ratio(2,cap_hair,y5-y1,x5r-x1r);
+pos6(alpha*cap_hair,0); z5r=z6r;
+y1'=y1l.b; z1'=z6l+whatever*(z3'-z6r);
+z5'=whatever[z2l.b,z5l]=whatever[z6l,z1'];
+filldraw z3r+cap_stem*left...z3...z3l+cap_stem*left---obl(3',3,5r)---obl(5r,3',2r.b)---
+ z2r.b..z2'---z4l+cap_stem*left...z4...z4r+cap_stem*left---z2
+ ..z2l.b---obl(5',2l.b,1')---z1'..z1---cycle;
+penlabels(1,2,3,4,5,6); labels(1',2',3',5');
+endchar;
+
+charscription(14u,cap_height,0)(
+path p[]; numeric tim[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_hair,210); pos3'(cap_curve,-90);
+pos4(cap_hair,-30); pos4'(cap_curve,-90);
+x1=x2=.5w; bot y1=0; top y2=x_height;
+x3l=w-u; y3=y4+o=.1[x_height,h]; top y3'l=top y4'l=h+o;
+x3'=.45[x2,x3]; x4'=.5[x2,x4]; x4l=u;
+cap_serifs_bl(1l); cap_serifs_br(1r);
+p0=z3l{up}..{left}z3'l..{down}z2l;
+p1=z2r{up}..z4'l{left}..{down}z4l;
+(tim1,tim2)=p0 intersectiontimes p1;
+filldraw z2l---z1l.b..{left}z1l.c..z1l.a{right}..z1+ser_boule*up..
+ {right}z1r.a..z1r.c{left}..z1r.b---z2r...z3'r..{down}z3r
+ ..subpath(0,rundy(p0,tim1).zpet) of p0
+ ..subpath(rundy(p1,tim2),infinity) of p1..z4r{up}..z4'r...cycle;
+penlabels(1,2,3,3',4,4');
+);
+
+iff known chars.greek_Upsilon:
+bskchar "The Greek letter Upsilon";
+beginchar(chars.greek_Upsilon,14u#,cap_height#,0); uni "0x03A5";
+italcorr x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-x_height#*slant,ic#-4u#);
+endchar;
+
+iff known chars.greek_Upsilon_BB:
+bskchar "The blackboard-bold Greek letter Upsilon";
+beginchar(chars.greek_Upsilon_BB,14u#,cap_height#,0); uni "non";
+italcorr x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+p100:=p1;
+p101:=z4r{up}..z4'r..{down}z2l;
+z100=bsktouch(p100,right,p101,left);
+tim100=xpart(p100 intersectiontimes (z100--(0,y100)));
+tim101=xpart(p101 intersectiontimes (z100--(x4',y100)));
+bot z101=(x1l,y1l.c);
+oblu.f:=f_obl;
+oblu:=bbw;
+infill subpath(0,rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),infinity) of p101
+ ---obl(101,2l,1l.c).f...z1l
+ ---if (x1r-x1l)>oblu: obl(1r,1l,2r) else: z1..z1r+oblu*up fi---cycle;
+labels(100,101);
+math_fit(0,ic#-3u#);
+endchar;
+
+iff known chars.greek_Upsilon_SS:
+bskchar "The sans-serif Greek letter Upsilon";
+beginchar(chars.greek_Upsilon_SS,14u#,cap_height#,0); uni "non";
+italcorr x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_hair,210); pos3'(cap_curve,-90);
+pos4(cap_hair,-30); pos4'(cap_curve,-90);
+x1=x2=.5w; bot y1=0; top y2=x_height;
+x3l=w-u; y3=y4+o=.1[x_height,h]; top y3'l=top y4'l=h+o;
+x3'=.45[x2,x3]; x4'=.5[x2,x4]; x4l=u;
+cap_serifs_bl(1l); cap_serifs_br(1r);
+p0=z3l{up}..{left}z3'l..{down}z2l;
+p1=z2r{up}..z4'l{left}..{down}z4l;
+(tim1,tim2)=p0 intersectiontimes p1;
+filldraw z2l---z1l.b...z1...z1r.b---z2r...z3'r..{down}z3r
+ ..subpath(0,rundy(p0,tim1).zpet) of p0
+ ..subpath(rundy(p1,tim2),infinity) of p1..z4r{up}..z4'r...cycle;
+penlabels(1,2,3,3',4,4');
+math_fit(0,ic#-3u#);
+endchar;
+
+charscription(13u,cap_height,0)(
+path p[]; numeric tim[]; oblu:=2oblu;
+pos1(cap_curve,0); pos2(cap_hair,90); pos3(cap_curve,180); pos4(cap_hair,270);
+pos5(cap_stem,0); pos6(cap_stem,0);
+lft x1l=u-o; rt x3l=w-u+o; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2-x4=.5u; .5[y2,y4]=top y1;
+y2=1/3x_height if bold_face: +.5cap_hair fi; bot y5=0; top y6=h;
+x5=x6=.5w;
+{{
+ numeric old_serif; old_serif:=ser_height;
+ save ser_heigth;
+ ser_height:= if bold_face: .6\\fi old_serif;
+ cap_serifs_tl(6l); cap_serifs_tr(6r); cap_serifs_bl(5l); cap_serifs_br(5r);
+}};
+p1:=z1l{down}..z2l..z3l..z4l..{down}cycle;
+p2:=z1r{up}..z4r..z3r..z2r..{up}cycle;
+p3:=z5l.b{down}..{left}z5l.c..z5l.a{right}..z5+ser_boule*up..
+ {right}z5r.a..z5r.c{left}..{up}z5r.b;
+p4:=z6r.b{up}..{right}z6r.c..z6r.a---z6l.a..{right}z6l.c..{down}z6l.b;
+p5:=z6l.b--z5l.b;
+p6:=z6r.b--z5r.b;
+tim1=xpart(p1 intersectiontimes (z5r.b--z6r.b));
+tim2=xpart(p1 intersectiontimes (z6r.b--(x6r.b,y1)));
+tim3=xpart(p1 intersectiontimes (z6l.b--(x6l.b,y1)));
+tim4=xpart(p1 intersectiontimes (z5l.b--z6l.b));
+(tim5,tim6)=p2 intersectiontimes p5;
+(tim7,tim8)=p2 intersectiontimes subpath(.5,1) of p5;
+(tim9,tim10)=p2 intersectiontimes p6;
+(tim11,tim12)=p2 intersectiontimes subpath(.5,1) of p6;
+z0=directionpoint right of p1;
+filldraw if y0<y5r.b+tiny: subpath(rundy(p3,0),rundy(p3,infinity).zpet) of fi p3
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1..p4
+ ..subpath(rundy(p1,tim3),length(p1)) of p1
+ ..subpath(0,rundy(p1,tim4).zpet) of p1..cycle;
+infill subpath(0,rundy(p2,tim5).zpet) of p2
+ ..subpath(rundy(p5,tim6),rundy(p5,tim8).zpet) of p5
+ ..subpath(rundy(p2,tim7),length(p2)) of p2&cycle;
+infill subpath(rundy(p2,tim9),rundy(p2,tim11).zpet) of p2
+ ..subpath(rundy(p6,tim12).zpet,rundy(p6,tim10)) of p6..cycle;
+penlabels(1,2,3,4,5,6);
+);
+
+iff known chars.greek_Phi:
+bskchar "The Greek letter Phi";
+beginchar(chars.greek_Phi,13u#,cap_height#,0); uni "0x03A6";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-.5cap_height#*slant,0);
+endchar;
+
+iff known chars.greek_Phi_BB:
+bskchar "The blackboard-bold Greek letter Phi";
+beginchar(chars.greek_Phi_BB,13u#,cap_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z4l..z1l{down}..z2l..z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,bbs*up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,bbs*down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,bbs*up,p101,down);
+z103=bsktouch(subpath(2,3) of p100,bbs*down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,y1)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p101 intersectiontimes (z103--(x103,y2l-5)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+oblu:=f_obl;
+bot z104=(x5l,y5l.c); z105=(x6l,y6l.c);
+infill obl(6r,6l,5r)---obl(5r,6r,5l)---z5l...obl(104,5l.c,6l)---obl(105,5l,6l.c)...z6l---cycle;
+labels(100,101,102,103,104,105);
+endchar;
+
+iff known chars.greek_Phi_SS:
+bskchar "The sans-serif Greek letter Phi";
+beginchar(chars.greek_Phi_SS,12u#,cap_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[], thc; oblu:=2oblu;
+thc=if ((substring(0,5) of font_identifier_)="BSKHC"): cap_hair else: cap_curve fi;
+pos1(thc,0); pos2(cap_hair,90); pos3(thc,180); pos4(cap_hair,270);
+pos5(cap_stem,0); pos6(cap_stem,0);
+lft x1l=u-o; rt x3l=w-u+o; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2-x4=.5u; .5[y2,y4]=top y1;
+y2=1/3x_height if bold_face: +.5cap_hair fi; bot y5=0; top y6=h;
+x5=x6=.5w;
+{{
+ numeric old_serif; old_serif:=ser_height;
+ save ser_heigth;
+ ser_height:= if bold_face: .6\\fi old_serif;
+ cap_serifs_tl(6l); cap_serifs_tr(6r); cap_serifs_bl(5l); cap_serifs_br(5r);
+}};
+p1:=z1l{down}..z2l..z3l..z4l..{down}cycle;
+p2:=z1r{up}..z4r..z3r..z2r..{up}cycle;
+p3:=z5l.b{down}...z5...{up}z5r.b;
+p4:=z6r.b{up}...z6...{down}z6l.b;
+p5:=z6l.b--z5l.b;
+p6:=z6r.b--z5r.b;
+tim1=xpart(p1 intersectiontimes (z5r.b--z6r.b));
+tim2=xpart(p1 intersectiontimes (z6r.b--(x6r.b,y1)));
+tim3=xpart(p1 intersectiontimes (z6l.b--(x6l.b,y1)));
+tim4=xpart(p1 intersectiontimes (z5l.b--z6l.b));
+(tim5,tim6)=p2 intersectiontimes p5;
+(tim7,tim8)=p2 intersectiontimes subpath(.5,1) of p5;
+(tim9,tim10)=p2 intersectiontimes p6;
+(tim11,tim12)=p2 intersectiontimes subpath(.5,1) of p6;
+filldraw p3..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1..p4..
+ subpath(rundy(p1,tim3),length(p1)) of p1..
+ subpath(0,rundy(p1,tim4).zpet) of p1..cycle;
+infill subpath(0,rundy(p2,tim5).zpet) of p2 ..
+ subpath(rundy(p5,tim6),rundy(p5,tim8).zpet) of p5..
+ subpath(rundy(p2,tim7),length(p2)) of p2 & cycle;
+infill subpath(rundy(p2,tim9),rundy(p2,tim11).zpet) of p2 ..
+ subpath(rundy(p6,tim12).zpet,rundy(p6,tim10)) of p6..cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+charscription(14u,cap_height,0)(
+path p[]; numeric tim[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_hair,90); pos4(cap_hair,90);
+pos5(cap_curve,0); pos6(cap_curve,180);
+pos7(cap_hair,90); pos8(cap_hair,90);
+x1=x2=.5w; top y2=h; bot y1=0;
+y3l=y4l=top .55bar_height; y5=y6=.5[bar_height,x_height]; top y7r=top y8r=.55[x_height,h];
+x3=x1l; x4=x1r; x3-x5=y5-y3r; x6-x4=y6-y4r;
+lft x7l=u; rt x8r=w-u;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l); cap_serifs_br(1r);
+p1:=z3r{left}..{up}z5r..{left}z7r;
+p2:=z7l{right}..{down}z5l..{right}z3l;
+p3:=z1l.b{down}..{left}z1l.c..z1l.a{right}..z1+ser_boule*up..
+ {right}z1r.a..z1r.c{left}..{up}z1r.b;
+p4:=z2r.b{up}..{right}z2r.c..z2r.a---z2l.a..{right}z2l.c..{down}z2l.b;
+p5:=z4l{right}..{up}z6l..{right}z8l;
+p6:=z8r{left}..{down}z6r..{left}z4r;
+filldraw subpath(0,rundy(p2,length(p2)).zpet) of p2..p3..
+ subpath(rundy(p5,0),infinity) of p5..
+ subpath(0,rundy(p6,length(p6)).zpet) of p6..(x1r,y4r+oblu)---p4
+ ---(x1l,y3r+oblu)..subpath(rundy(p1,0),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+);
+
+iff known chars.greek_Psi:
+bskchar "The Greek letter Psi";
+beginchar(chars.greek_Psi,14u#,cap_height#,0); uni "0x03A8";
+italcorr .5[x_height#,cap_height#]*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-.7cap_height#*slant,0);
+endchar;
+
+iff known chars.greek_Psi_BB:
+bskchar "The blackboard-bold Greek letter Psi";
+beginchar(chars.greek_Psi_BB,14u#,cap_height#,0); uni "non";
+italcorr .5[x_height#,cap_height#]*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+oblu:=1.25bbw;
+p100=p1;
+p101=p2;
+p102=p5;
+p103=p6;
+z100=bsktouch(p100,bbs*down,subpath(0,1) of p101,up);
+z101=bsktouch(subpath(0,1) of p100,bbs*down,p101,up);
+z102=bsktouch(p102,bbs*up,subpath(0,1) of p103,down);
+z103=bsktouch(subpath(0,1) of p102,bbs*up,p103,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,h)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,0)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,h)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,0)));
+tim104=xpart(p102 intersectiontimes (z102--(x102,x_height)));
+tim105=xpart(p103 intersectiontimes (z102--(x102,h)));
+tim106=xpart(p102 intersectiontimes (z103--(x103,0)));
+tim107=xpart(p103 intersectiontimes (z103--(x103,h)));
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+infill subpath(rundy(p102,tim106),rundy(p102,tim104).zpet) of p102
+ ..subpath(rundy(p103,tim105),rundy(p103,tim107).zpet) of p103..cycle;
+oblu:=f_obl;
+bot z104=(x1l,y1l.c); z105=(x2l,y2l.c);
+infill obl(2r,2l,1r)---obl(1r,2r,1l)---z1l...obl(104,1l.c,2l)---obl(105,1l,2l.c)...z2l---cycle;
+labels(100,101,102,103,104,105);
+endchar;
+
+iff known chars.greek_Psi_SS:
+bskchar "The sans-serif Greek letter Psi";
+beginchar(chars.greek_Psi_SS,13u#,cap_height#,0); uni "non";
+italcorr .5[x_height#,cap_height#]*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[], thc; oblu:=2oblu;
+thc=if ((substring(0,5) of font_identifier_)="BSKHC"): cap_hair else: cap_curve fi;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_hair,90); pos4(cap_hair,90);
+pos5(thc,0); pos6(thc,180);
+pos7(cap_hair,90); pos8(cap_hair,90);
+x1=x2=.5w; top y2=h; bot y1=0;
+y3l=y4l=top .55bar_height; y5=y6=.5[bar_height,x_height]; top y7r=top y8r=.55[x_height,h];
+x3=x1l; x4=x1r; x3-x5=y5-y3r; x6-x4=y6-y4r;
+lft x7l=u; rt x8r=w-u;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l); cap_serifs_br(1r);
+p1:=z3r{left}..{up}z5r..{left}z7r;
+p2:=z7l{right}..{down}z5l..{right}z3l;
+p3:=z1l.b{down}...z1...{up}z1r.b;
+p4:=z2r.b{up}...z2...{down}z2l.b;
+p5:=z4l{right}..{up}z6l..{right}z8l;
+p6:=z8r{left}..{down}z6r..{left}z4r;
+filldraw subpath(0,rundy(p2,length(p2)).zpet) of p2..p3..
+ subpath(rundy(p5,0),infinity) of p5..
+ subpath(0,rundy(p6,length(p6)).zpet) of p6..(x1r,y4r+oblu)---p4
+ ---(x1l,y3r+oblu)..subpath(rundy(p1,0),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+charscription(14u,cap_height,0)(
+path p[];
+pos1(cap_curve,0); pos2(cap_hair,90); pos3(cap_curve,180); pos4(cap_hair,270);
+pos5(cap_hair,0); pos6(cap_hair,180);
+pos5'(cap_hair,0); pos6'(cap_hair,180);
+lft x1l=u+o; x3l=w-x1l; y1=y3=x_height;
+.5[x2,x4]=.5[x1,x3]; x2-x4=.5u; bot y2l=-o; top y4l=h+o;
+.5[x5,x6]=x2; y5=y6=.5bar_height; x6-x5=.35(x3r-x1r);
+z5'-z5=z6'-z6=o*down;
+x7r=x6l; x7l=x5l; y7l=y7r=0;
+bot y8r=bot y9r=0; rt x8l=w-u; lft x9l=u;
+{{ numeric oldbeak; oldbeak:=beak; save beak; numeric beak; beak:=.65oldbeak;
+p0=arm_bot_r_points(7r,8).alt; y8f:=.5[y8f,y8d];
+p1=arm_bot_l_points(7l,9).alt; y9f:=.5[y9f,y9d];
+}};
+filldraw z5'l{z1-z5}..z1l..z4l..z3l..{z6-z3}z6'l..z8f...z8d...z8c..
+ z8l.o&z8l.o{up}..z8l---z8r--z8b...z8a---z7r..z6r{z3-z6}..
+ z3r..z4r..z1r..z5r{z5-z1}..z7l---z9a...z9b--z9r---z9l..
+ {down}z9l.o&z9l.o..z9c...z9d..z9f..cycle;
+penlabels(1,2,3,4,5,5',6,6',7);
+);
+
+iff known chars.greek_Omega:
+bskchar "The Greek letter Omega";
+beginchar(chars.greek_Omega,14u#,cap_height#,0); uni "0x03A9";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(0,.5bar_height#*slant);
+endchar;
+
+iff known chars.greek_Omega_BB:
+bskchar "The blackboard-bold Greek letter Omega";
+beginchar(chars.greek_Omega_BB,14u#,cap_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+numeric tim[];
+oblu:=1.25bbw;
+p100:=z5'l{z1-z5}..z1l..z4l..z3l..{z6-z3}z6'l;
+p101:=z6r{z3-z6}..z3r..z4r..z1r..{z5-z1}z5r;
+z100=bsktouch(subpath(0,1) of p100,bbs*right,p101,left);
+z101=bsktouch(subpath(0,2) of p100,bbs*down,p101,up);
+z102=bsktouch(subpath(2,infinity) of p100,bbs*down,p101,up);
+z103=bsktouch(p100,bbs*left,subpath(0,1) of p101,right);
+tim100=xpart(p100 intersectiontimes (z100--(0,y100)));
+tim101=xpart(p101 intersectiontimes (z100--(x4,y100)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,h+u)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y1)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,h+u)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y3)));
+tim106=xpart(p100 intersectiontimes (z103--(w,y103)));
+tim107=xpart(p101 intersectiontimes (z103--(x4,y103)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+infill subpath(rundy(p100,tim104),rundy(p100,tim106).zpet) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_Omega_SS:
+bskchar "The sans-serif Greek letter Omega";
+beginchar(chars.greek_Omega_SS,14u#,cap_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[];
+pos1(cap_curve,0); pos2(cap_hair,90); pos3(cap_curve,180); pos4(cap_hair,270);
+pos5(cap_hair,0); pos6(cap_hair,180);
+pos5'(cap_hair,0); pos6'(cap_hair,180);
+pos8(cap_hair,-90); pos9(cap_hair,-90);
+lft x1l=u+o; x3l=w-x1l; y1=y3=x_height;
+.5[x2,x4]=.5[x1,x3]; x2-x4=.5u; bot y2l=-o; top y4l=h+o;
+.5[x5,x6]=x2; y5=y6=.5bar_height; x6-x5=.35(x3r-x1r);
+z5'-z5=z6'-z6=o*down;
+x7r=x6l; x7l=x5l; bot y7l=bot y7r=0;
+bot y8r=bot y9r=0; rt x8l=w-u; lft x9l=u;
+filldraw z5'l{z1-z5}..z1l..z4l..z3l..{z6-z3}z6'l..(x7r,y8l)---z8l+cap_stem*left
+ ...z8...z8r+cap_stem*left---z7r..z6r{z3-z6}..z3r..z4r..z1r..z5r{z5-z1}
+ ..z7l---z9r+cap_stem*right...z9...z9l+cap_stem*right---(x7l,y9l)..cycle;
+penlabels(1,2,3,4,5,5',6,6',7,8,9);
+endchar;
+
+charscription(14u,cap_height,0)(
+path p[]; numeric tim[], theta;
+pos0(cap_hair,180); pos1(cap_hair,90); pos3(cap_hair,-90); pos0'(cap_hair,180);
+lft x0r=u; y0=2/3[x_height,h]; top y1r=h+o; bot y3=0; x1=4u; x3=.5w-u;
+y0'=h-y0; x3-x0'=x1-x0;
+y2=x_height; rt x2=w-u-.5cap_curve;
+p0:=z0..z1..z2..{left}z3..z0'; theta=angle(direction 2 of p0)+90; pos2(cap_curve,theta);
+p1:=z0r..z1r..z2r..z3r{left}..z0'r;
+p2:=z0'l..z3l{right}..z2l..z1l..z0l;
+pos4(cap_hair,theta-90); pos5(cap_hair,theta-90);
+z4=p0 intersectionpoint ((0,1/2[x_height,h])--(w,1/2[x_height,h]));
+z5=p0 intersectionpoint ((0,1/2[x_height,bar_height])--(w,1/2[x_height,bar_height]));
+pos6(cap_stem,theta-100); pos7(cap_stem,theta-80);
+pos6'(.5[cap_hair,cap_stem],theta-90); pos7'(.5[cap_hair,cap_stem],theta-90);
+x4-x6=.4w; z6r=z4l+whatever*dir(theta+5);
+z7l=z5r-abs(z6r-z4l)*dir(theta+5);
+z6'l=z6l+1/3(z4l-z6l)+.5hair*dir(theta-90);
+z7'r=z7r+1/3(z5r-z7r)+.5hair*dir(theta+90);
+p3:=reverse(z4l---z6'l..z6l&z6l..z6r..z6'r---z4r);
+p4:=z5r---z7'r..z7r&z7r..z7l..z7'l---z5l;
+(tim0,tim1)=p2 intersectiontimes p4;
+(tim2,tim3-1)=p2 intersectiontimes subpath(1,infinity) of p4;
+(tim4,tim5)=p2 intersectiontimes p3;
+(tim6,tim7-1)=p2 intersectiontimes subpath(1,infinity) of p3;
+oblu:=2oblu;
+filldraw subpath(0,rundy(p2,tim0).zpet) of p2
+ ..subpath(rundy(p4,tim1),rundy(p4,tim3).zpet) of p4
+ ..subpath(rundy(p2,tim2),rundy(p2,tim4).zpet) of p2
+ ..subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3
+ ..subpath(rundy(p2,tim6),infinity) of p2..p1..cycle;
+penlabels(0,0',1,2,3,4,5,6,6',7,7');
+);
+
+iff known chars.greek_Sampi:
+bskchar "The Greek letter Sampi";
+beginchar(chars.greek_Sampi,14u#,cap_height#,0); uni "0x03E0";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-x_height#*slant,0);
+endchar;
+
+iff known chars.greek_Sampi_BB:
+bskchar "The blackboard-bold Greek letter Sampi";
+beginchar(chars.greek_Sampi_BB,14u#,cap_height#,0); uni "non";
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+p100=subpath(1,3) of p1;
+p101=subpath(1,3) of p2;
+z100=bsktouch(subpath(0,1) of p100,bbs*down,p101,up);
+z101=bsktouch(p100,bbs*up,subpath(0,1) of p101,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,2h)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y2)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y3r-u-5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+labels(100,101);
+endchar;
+
+iff known chars.greek_Sampi_SS:
+bskchar "The sans-serif Greek letter Sampi";
+beginchar(chars.greek_Sampi_SS,13u#,cap_height#,0); uni "non";
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[], theta;
+pos0(cap_hair,180); pos1(cap_hair,90); pos3(cap_hair,-90); pos0'(cap_hair,180);
+lft x0r=u; y0=2/3[x_height,h]; top y1r=h+o; bot y3=0; x1=4u; x3=.5w-u;
+y0'=h-y0; x3-x0'=x1-x0;
+y2=x_height; rt x2=w-u-.5cap_curve;
+p0:=z0..z1..z2..{left}z3..z0'; theta=angle(direction 2 of p0)+90; pos2(cap_curve,theta);
+p1:=z0r..z1r..z2r..z3r{left}..z0'r;
+p2:=z0'l..z3l{right}..z2l..z1l..z0l;
+pos4(cap_hair,theta-90); pos5(cap_hair,theta-90);
+z4=p0 intersectionpoint ((0,1/2[x_height,h])--(w,1/2[x_height,h]));
+z5=p0 intersectionpoint ((0,1/2[x_height,bar_height])--(w,1/2[x_height,bar_height]));
+pos6(cap_hair,theta-100); pos7(cap_hair,theta-80);
+pos6'(cap_hair,theta-90); pos7'(cap_hair,theta-90);
+x4-x6=.4w; z6r=z4l+whatever*dir(theta+10);
+z7l=z5r-abs(z6r-z4l)*dir(theta+5);
+z6'l=z6l+1/3(z4l-z6l);
+z7'r=z7r+1/3(z5r-z7r);
+p3:=reverse(z4l---z6l&z6l..z6r---z4r);
+p4:=z5r---z7r&z7r..z7l---z5l;
+(tim0,tim1)=p2 intersectiontimes p4;
+(tim2,tim3-1)=p2 intersectiontimes subpath(1,infinity) of p4;
+(tim4,tim5)=p2 intersectiontimes p3;
+(tim6,tim7-1)=p2 intersectiontimes subpath(1,infinity) of p3;
+oblu:=2oblu;
+filldraw subpath(0,rundy(p2,tim0).zpet) of p2
+ ..subpath(rundy(p4,tim1),rundy(p4,tim3).zpet) of p4
+ ..subpath(rundy(p2,tim2),rundy(p2,tim4).zpet) of p2
+ ..subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3
+ ..subpath(rundy(p2,tim6),infinity) of p2..p1..cycle;
+penlabels(0,0',1,2,3,4,5,6,6',7,7');
+endchar;
+
+charscription(14u,cap_height,0)(
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0); pos5(cap_stem,0); pos6(cap_stem,0);
+bot y1=bot y3=bar_height; top y2=top y4=h; bot y5=0; y6=y2l.c;
+lft x1l=lft x2l=2u; rt x3r=rt x4r=w-2u; x5=x6=.5w;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l);
+cap_serifs_tl(4l); cap_serifs_tr(4r); cap_serifs_br(3r);
+cap_serifs_bl(5l); cap_serifs_br(5r);
+{{ numeric old_jut; old_jut:=cap_jut; save cap_jut; cap_jut:=.75old_jut;
+ cap_serifs_bl(3l); cap_serifs_br(1r);
+}};
+filldraw z1l.b{down}..{left}z1l.c..z1l.a{right}..z1+ser_boule*up..{right}z1r.a
+ ..z1r.c{left}..z1r.b---z2r.b..z2r.c---obl(6l,2r.c,5l)---z5l.b..{left}z5l.c
+ ..z5l.a{right}..z5+ser_boule*up..{right}z5r.a..z5r.c{left}..z5r.b
+ ---obl(6r,5r,4l.c)---z4l.c..z4l.b---z3l.b{down}..{left}z3l.c..z3l.a{right}
+ ..z3+ser_boule*up..{right}z3r.a..z3r.c{left}..z3r.b---z4r.b..{right}z4r.c
+ ..z4r.a---z2r.a---z2l.a..{right}z2l.c..z2l.b---cycle;
+penlabels(1,2,3,4,5,6);
+);
+
+iff known chars.greek_Varsampi:
+bskchar "The Archaic Greek letter Sampi";
+beginchar(chars.greek_Varsampi,14u#,cap_height#,0); uni "0x0372";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+math_fit(-bar_height#*slant,u#);
+endchar;
+
+iff known chars.greek_Varsampi_BB:
+bskchar "The blackboard-bold Archaic Greek letter Sampi";
+beginchar(chars.greek_Varsampi_BB,14u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+usechar;
+bot z100=(x1l,y1l.c); top z101=(x2l,y2l.c);
+bot z102=(x3r,y3r.c); top z103=(x4r,y4r.c);
+infill obl(2r,2l,1r)---obl(1r,2r,1l)---z1l...obl(100,1l.c,2l)---obl(101,1l,2l.c)...z2l---cycle;
+infill obl(4l,4r,3l)---obl(3l,4l,3r)---z3r...obl(102,3r.c,4r)---obl(103,3r,4r.c)...z4r---cycle;
+infill ifobl(6r,6l,5r,5l,,)---ifobl(5l,5r,6l,6r,,)--cycle;
+endchar;
+
+iff known chars.greek_Varsampi_SS:
+bskchar "The sans-serif Archaic Greek letter Sampi";
+beginchar(chars.greek_Varsampi_SS,14u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+numeric thc;
+thc=if ((substring(0,5) of font_identifier_)="BSKHC"): cap_hair else: cap_stem fi;
+pos1(thc,0); pos2(thc,0);
+pos3(thc,0); pos4(thc,0); pos5(cap_stem,0); pos6(cap_stem,0);
+bot y1=bot y3=bar_height; top y2=top y4=h; bot y5=0; y6=y2l.c;
+lft x1l=lft x2l=2u; rt x3r=rt x4r=w-2u; x5=x6=.5w;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l);
+cap_serifs_tl(4l); cap_serifs_tr(4r); cap_serifs_br(3r);
+cap_serifs_bl(5l); cap_serifs_br(5r);
+{{ numeric old_jut; old_jut:=cap_jut; save cap_jut; cap_jut:=.75old_jut;
+ cap_serifs_bl(3l); cap_serifs_br(1r);
+}};
+filldraw z1l.b{down}...z1...z1r.b---z2r.b..z2r.c---obl(6l,2r.c,5l)---z5l.b...z5
+ ...z5r.b---obl(6r,5r,4l.c)---z4l.c..z4l.b---z3l.b...z3...z3r.b---z4r.b
+ ...z4---z2...z2l.b---cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+charscription(14u,cap_height,desc_depth)(
+path p[]; numeric tim[]; oblu:=2oblu;
+pos1(cap_curve,0); pos2(cap_hair,90); pos3(cap_curve,180); pos4(cap_hair,270);
+pos5(cap_stem,0); pos6(cap_stem,0);
+lft x1l=u-o; rt x3l=w-u+o; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2-x4=.5u; bot y2l=-o; top y4l=h+o;
+x5=x6=x2; y5=y2; bot y6=-d;
+cap_serifs_bl(6l); cap_serifs_br(6r);
+p0=z1l{down}..z2l..z3l..z4l..{down}z1l;
+p1=z5l---z6l.b..{left}z6l.c..{right}z6l.a..z6+ser_boule*up..{right}z6r.a..z6r.c{left}..z6r.b---z5r;
+(tim0,tim1)=p0 intersectiontimes subpath(0,1) of p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+infill z1r{up}..z4r..z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6);
+);
+
+iff known chars.greek_Qoppa:
+bskchar "The Archaic Greek letter Qoppa";
+beginchar(chars.greek_Qoppa,14u#,cap_height#,desc_depth#); uni "0x03D8";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-.5cap_height#*slant,ic#-2u#);
+endchar;
+
+iff known chars.greek_Qoppa_BB:
+bskchar "The blackboard-bold Archaic Greek letter Qoppa";
+beginchar(chars.greek_Qoppa_BB,14u#,cap_height#,desc_depth#); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+path p[]; numeric tim[];
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z4l..z1l{down}..z2l..z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,bbs*up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,bbs*down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,bbs*up,p101,down);
+z103=bsktouch(subpath(2,3) of p100,bbs*down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,y1)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p101 intersectiontimes (z103--(x103,y2l-5)));
+bot z104=(x6l,y6l.c);
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+oblu:=f_obl;
+infill ifobl(5l,5r,6l,6r,,)---obl(6r,5r,6l)---z6l...obl(104,6l.c,5l)---cycle;
+labels(100,101,102,103,104);
+endchar;
+
+iff known chars.greek_Qoppa_SS:
+bskchar "The sans-serif Archaic Greek letter Qoppa";
+beginchar(chars.greek_Qoppa_SS,14u#,cap_height#,desc_depth#); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=2oblu;
+pos1(cap_curve,0); pos2(cap_hair,90); pos3(cap_curve,180); pos4(cap_hair,270);
+pos5(cap_stem,0); pos6(cap_stem,0);
+lft x1l=u-o; rt x3l=w-u+o; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2-x4=.5u; bot y2l=-o; top y4l=h+o;
+x5=x6=x2; y5=y2r; bot y6=-d;
+cap_serifs_bl(6l); cap_serifs_br(6r);
+p0=z1l{down}..z2l..z3l..z4l..{down}z1l;
+p1=z5l---z6l.b..z6..z6r.b---z5r;
+(tim0,tim1)=p0 intersectiontimes subpath(0,1) of p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+infill z1r{up}..z4r..z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+charscription(13.3u,cap_height,.75desc_depth)(
+path p[]; numeric tim[], sersh;
+sersh=.15tiny;
+pos1(cap_curve,0); pos2(cap_stem,90); pos3(cap_hair,180); pos4(cap_hair,270);
+pos6(cap_stem,90); pos7(cap_hair,0); pos8(cap_stem,-90); pos8'(.9cap_stem,-90);
+lft x1l=u-o; rt x3r=w-u; y1=y3=.5h; x2=x4=.5[x1,x3]; bot y2l=-o; top y4l=h+o;
+y6=y2; rt x7r=w-u; bot y8r=-d; x7-x6=.5(y6-y8); x8=.5[x2,x6]; y7=.5[y6,y8];
+z8'r=z8r+cap_stem*right;
+p0:=z1r{down}..z2r..z3r..z4r..{down}cycle;
+p1:=z1l{down}..z2l..z3l..z4l..{down}cycle;
+z5'=((.5w,y3+.2h)--(2w,y3+.2h)) intersectionpoint p0; tim1= ypart(((.5w,y3+.2h)--(2w,y3+.2h)) intersectiontimes reverse p0);
+z5'a=z5'+serif_o*right; z5'b=(x5'a-sersh,h+o); z5'c=(.35[x4,x3r],y3);
+z5'd=(z5'c--z5'b) intersectionpoint p1; z5'e=.35[z5'b,z5'd];
+tim3=ypart(((.5w,y5'e+.15ser_height)--(w,y5'e+.15ser_height)) intersectiontimes p1);
+filldraw subpath(-1,tim1) of reverse p0..z5'a--z5'b---z5'e..subpath (tim3,5) of p1
+ ---z6l..{down}z7l..z8'l..z8l..z8r---z8'r..{up}z7r..z6r---cycle;
+penlabels(1,2,3,4,6,7,8,8'); labels(5,5',5'a,5'b,5'c,5'd,5'e);
+);
+
+iff known chars.greek_Stigma:
+bskchar "The Greek letter Stigma";
+beginchar(chars.greek_Stigma,13.3u#,cap_height#,.75desc_depth#); uni "0x03DA";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-.5cap_height#*slant,0);
+endchar;
+
+iff known chars.greek_Stigma_BB:
+bskchar "The blackboard-bold Greek letter Stigma";
+beginchar(chars.greek_Stigma_BB,13.3u#,cap_height#,.75desc_depth#); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+p100:=subpath(-1,1) of p0---z6r..{down}z7r;
+p101:=reverse (subpath(-1,1) of p1---z6l..{down}z7l);
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,bbs*up,p101,down);
+z101=bsktouch(p100,bbs*left,subpath(0,1) of p101,right);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(w,y101)));
+tim103=xpart(p101 intersectiontimes (z101--(0,y101)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+labels(100,101);
+endchar;
+
+iff known chars.greek_Stigma_SS:
+bskchar "The sans-serif Greek letter Stigma";
+beginchar(chars.greek_Stigma_SS,13.3u#,cap_height#,.75desc_depth#); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[], sersh;
+sersh=.15tiny;
+pos1(cap_curve,0); pos2(cap_stem,90); pos4(cap_hair,270);
+pos3(if ((substring(0,5) of font_identifier_)="BSKHC"):1.2\\fi cap_hair,180);
+pos6(cap_stem,90); pos7(cap_hair,0); pos8(cap_stem,-90); pos8'(.9cap_stem,-90);
+lft x1l=u-o; rt x3r=w-u; y1=y3=.5h; x2=x4=.5[x1,x3]; bot y2l=-o; top y4l=h+o;
+y6=y2; rt x7r=w-u; bot y8r=-d; x7-x6=.5(y6-y8); x8=.5[x2,x6]; y7=.5[y6,y8];
+z8'r=z8r+if ((substring(0,5) of font_identifier_)="BSKHC"):.5\\ fi cap_stem*right;
+if ((substring(0,5) of font_identifier_)="BSKHC"):
+ p0:=z1r{down}..z2r..z3r..{left}z4r..{down}cycle;
+ p1:=z1l{down}..z2l..z3l..{left}z4l..{down}cycle;
+else:
+ p0:=z1r{down}..z2r..z3r..z4r..{down}cycle;
+ p1:=z1l{down}..z2l..z3l..z4l..{down}cycle;
+fi
+tim1= ypart(((.5w,y3+.2h)--(2w,y3+.2h)) intersectiontimes reverse p0);
+tim3= ypart(((.5w,y3+.2h)--(2w,y3+.2h)) intersectiontimes p1);
+filldraw subpath(-1,tim1) of reverse p0..subpath (tim3,5) of p1
+ ---z6l..{down}z7l..z8'l..z8l..z8r---z8'r..{up}z7r..z6r---cycle;
+penlabels(1,2,3,4,6,7,8,8');
+endchar;
+
+iff known chars.greek_alpha:
+bskchar "The Greek letter alpha";
+beginchar(chars.greek_alpha,10.5u#,x_height#,0); uni "0x03B1";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(hair,-90); pos1(.5[stem,hair],0); pos2(.5[stem,hair],0);
+pos3(hair,-90); pos4(curve,180); pos5(hair,90);
+pos6(hair,0); pos7(hair,90); pos8(stem,180);
+top y0l=h; x0=w-u;
+rt x1r=w-1.5u; x2=x1-stem; top y1=h-u; y2=.5bar_height;
+x3=.5x2; x5=.55x1; bot y3r=-o; top y5r=h+o;
+lft x4r=u; y4=bar_height; y6=.55bar_height; x6=x2;
+x7=w-2u; bot y7l=-o; lft x8l=w-u; y8=.75curve;
+z8'=z8+.2stem*right+o*up; z8''=z8+.5(stem-currentbreadth)*dir225;
+p0=z0r{left}..z1r...z2r..z3r..z4r..z5r..z6r..{right}z7r..z8''..z8r;
+p1=z8r..z8'..z8l..z7l{left}..z6l..z5l..z4l..z3l..z2l---z1l..z0l;
+(tim0,tim1-5)=p0 intersectiontimes subpath (5,infinity) of p0;
+(tim2,tim3)=p1 intersectiontimes p0;
+(tim4-4,tim5-6)=subpath(4,infinity) of p0 intersectiontimes subpath (6,infinity) of p1;
+(tim6,tim7-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,.5bar_height)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,.5bar_height)),infinity) of p1..cycle;
+infill subpath (rundy(p1,tim6),rundy(p1,tim7).zpet) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(8',8'');
+math_fit(mft,.5u#);
+endchar;
+
+iff known chars.greek_alpha_BB:
+bskchar "The blackboard-bold Greek letter alpha";
+beginchar(chars.greek_alpha_BB,10.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(hair,-90); pos1(.5[stem,hair],0); pos2(.5[stem,hair],0);
+pos3(hair,-90); pos4(cap_stem,180); pos5(hair,90);
+pos6(hair,0); pos7(hair,90); pos8(stem,180);
+top y0l=h; x0=w-u;
+rt x1r=w-1.5u; x2=x1-stem; top y1=h-u; y2=.5bar_height;
+lft x3=.5x2; lft x5=.55x1; bot y3r=-o; top y5r=h+o;
+lft x4r=u; y4=bar_height; y6=.55bar_height; x6=x2;
+x7=w-2u; bot y7l=-o; lft x8l=w-u; y8=.75curve;
+z8'=z8+.2stem*right+o*up; z8''=z8+.5(stem-currentbreadth)*dir225;
+p0=z0r{left}..z1r...z2r..z3r..z4r..z5r..z6r..{right}z7r..z8''..z8r;
+p1=z8r..z8'..z8l..z7l{left}..z6l..z5l..z4l..z3l..z2l---z1l..z0l;
+(tim0,tim1-5)=p0 intersectiontimes subpath (5,infinity) of p0;
+(tim2,tim3)=p1 intersectiontimes p0;
+(tim4-4,tim5-6)=subpath(4,infinity) of p0 intersectiontimes subpath (6,infinity) of p1;
+(tim6,tim7-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,.5bar_height)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,.5bar_height)),infinity) of p1..cycle;
+infill subpath (rundy(p1,tim6),rundy(p1,tim7).zpet) of p1..cycle;
+p100=subpath(3,5) of p0;
+p101=subpath(5,7) of p1;
+z100=bsktouch(p100,up,p101,down);
+z101=bsktouch(p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y3r-u-5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y2)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y5r+u+5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y4)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(8',8'',100,101);
+endchar;
+
+iff known chars.greek_alpha_SS:
+bskchar "The sans-serif Greek letter alpha";
+beginchar(chars.greek_alpha_SS,10.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(hair,0); pos1(.5[stem,hair],0); pos2(.5[stem,hair],0);
+pos3(hair,-90); pos4(curve,180); pos5(hair,90);
+pos6(hair,0); pos7(hair,0); pos8(stem,180);
+top y0l=h; x0r=w-u;
+rt x1r=w-1.5u; x2=x1-stem; top y1=h-u; y2=.5bar_height;
+x3=.5x2; x5=.55x1; bot y3r=-o; top y5r=h+o;
+lft x4r=u; y4=bar_height; y6=.75bar_height; x6=x2;
+x7=w-u; bot y7l=-o; lft x8l=w-u; y8=.75curve;
+z8'=z8+.2stem*right+o*up; z8''=z8+.5(stem-currentbreadth)*dir225;
+p0=z0r..z1r...z2r..z3r..z4r..z5r..z6r..{z7-z6}z7r;
+p1=z7l{z6-z7}..z6l..z5l..z4l..z3l..z2l---z1l..z0l;
+(tim0,tim1-5)=p0 intersectiontimes subpath (5,infinity) of p0;
+(tim2,tim3)=p1 intersectiontimes p0;
+(tim4-4,tim5-4)=subpath(4,infinity) of p0 intersectiontimes subpath (3,infinity) of p1;
+(tim6,tim7-4)=subpath(0,3) of p1 intersectiontimes subpath (4,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,.5bar_height)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,.5bar_height)),infinity) of p1..cycle;
+infill subpath (rundy(p1,tim6),rundy(p1,tim7).zpet) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(8',8'');
+endchar;
+
+iff known chars.greek_beta:
+bskchar "The Greek letter beta";
+beginchar(chars.greek_beta,9u#,asc_height#,desc_depth#); uni "0x03B2";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,180); pos2(hair,180);
+pos3(hair,90); pos4(stem,0); pos5(hair,180); pos5'(hair,120); pos5''(.5[hair,stem],-30);
+pos6(curve,-30); pos7(hair,-90); pos8(stem,180);
+lft x1r=lft x2r=u; y1=-d; y2=.5[h,x_height];
+x3=.5w-stem; top y3r=h+o; rt x4r=w-2.5u; rt x6r=w-u;
+y5=.25[x_height,bar_height]; y4=.5[x_height,h]; y6=.5[y5,0];
+x5=x3; x7=.5[x2l,x6]; bot y7r=-o;
+x5'=x5''=.5[x4,x5]; .5[y5',y5'']=y5; y5'-y5''=.5(x4-x5);
+x8r=x2l+stem; y8=.25bar_height;
+z8'=z8+.2stem*right+o*down; z8''=z8+.5(stem-currentbreadth)*dir135;
+p0=z1r---z2r..z3r..z4r..z5''r..z5r..z5'r..z6r..{left}z7r..z8r..z8''..z8l{down}..z8';
+p1=z8'..z7l{right}..z6l..z5'l..z5l..z5''l..z4l..z3l..z2l---z1l;
+(tim0,tim1-5)=subpath (0,4) of p0 intersectiontimes subpath (5,infinity) of p0;
+(tim2,tim3-4)=subpath(0,3) of p1 intersectiontimes subpath(4,infinity) of p1;
+tim4-3=xpart(subpath(3,5) of p0 intersectiontimes p1);
+(tim5-6,tim6-5)=subpath(6,infinity) of p0 intersectiontimes subpath (5,infinity) of p1;
+tim7=xpart(subpath(0,3) of p1 intersectiontimes subpath (4,infinity) of p1);
+filldraw subpath(0,rundy(p0,(tim0,hair)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,hair)),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim4),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(p1,tim6),infinity) of p1..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p1,tim6).zpet,rundy(p1,tim7)) of p1..cycle;
+penlabels(0,1,2,3,4,5,5',5'',6,7,8); labels(8',8'');
+math_fit(desc_depth#*slant,ic#);
+endchar;
+
+iff known chars.greek_beta_BB:
+bskchar "The blackboard-bold Greek letter beta";
+beginchar(chars.greek_beta_BB,9.5u#,asc_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(.8cap_stem,180); pos2(.8cap_stem,180);
+pos3(hair,90); pos4(stem,0); pos5(hair,180); pos5'(hair,120); pos5''(.5[hair,stem],-30);
+pos6(cap_stem,-30); pos7(hair,-90); pos8(stem,180);
+lft x1r=lft x2r=u; y1=-d; y2=.5[h,x_height];
+x3=.5w-stem; top y3r=h+o; rt x4r=w-2.5u; rt x6r=w-u;
+y5=.25[x_height,bar_height]; y4=.5[x_height,h]; y6=.5[y5,0];
+x5=x3; x7=.5[x2l,x6]; bot y7r=-o;
+x5'=x5''=.5[x4,x5]; .5[y5',y5'']=y5; y5'-y5''=.5(x4-x5);
+x8r=x2l+stem; y8=.25bar_height;
+z8'=z8+.2stem*right+o*down; z8''=z8+.5(stem-currentbreadth)*dir135;
+p0=z1r---z2r..z3r..z4r..z5''r..z5r..z5'r..z6r..{left}z7r..z8r..z8''..z8l{down}..z8';
+p1=z8'..z7l{right}..z6l..z5'l..z5l..z5''l..z4l..z3l..z2l---z1l;
+(tim0,tim1-5)=subpath (0,4) of p0 intersectiontimes subpath (5,infinity) of p0;
+(tim2,tim3-4)=subpath(0,3) of p1 intersectiontimes subpath(4,infinity) of p1;
+tim4-3=xpart(subpath(3,5) of p0 intersectiontimes p1);
+(tim5-6,tim6-5)=subpath(6,infinity) of p0 intersectiontimes subpath (5,infinity) of p1;
+tim7=xpart(subpath(0,3) of p1 intersectiontimes subpath (4,infinity) of p1);
+filldraw subpath(0,rundy(p0,(tim0,hair)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,hair)),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim4),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(p1,tim6),infinity) of p1..z1+tiny*down..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p1,tim6).zpet,rundy(p1,tim7)) of p1..cycle;
+p100=subpath(0,2) of p0;
+p101=subpath(7,infinity) of p1;
+p102=subpath(5,infinity) of p0;
+p103=subpath(0,4) of p1;
+z100=bsktouch(p100,down,p101,up);
+z101=bsktouch(p102,up,p103,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y3r+u)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y2)));
+tim102=xpart(p102 intersectiontimes (z101--(x101,-d)));
+tim103=xpart(p103 intersectiontimes (z101--(x101,y6)));
+oblu:=.8bbw;
+infill subpath(0,rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),infinity) of p101..z1+tiny*down..cycle;
+infill subpath(rundy(p0,tim1),rundy(p0,tim102+5).zpet) of p0
+ ..subpath(rundy(p103,tim103),rundy(p103,tim2).zpet) of p103..cycle;
+penlabels(0,1,2,3,4,5,5',5'',6,7,8); labels(8',8'',100,101);
+endchar;
+
+iff known chars.greek_beta_SS:
+bskchar "The sans-serif Greek letter beta";
+beginchar(chars.greek_beta_SS,9u#,asc_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,180); pos2(hair,180);
+pos3(hair,90); pos4(stem,0); pos5(hair,180); pos5'(hair,120); pos5''(.5[hair,stem],-30);
+pos6(curve,-30); pos7(hair,-90); pos8(hair,-90);
+lft x1r=lft x2r=u; y1=-d; y2=.5[h,x_height];
+x3=.5w-stem; top y3r=h+o; rt x4r=w-2.5u; rt x6r=w-u;
+y5=.25[x_height,bar_height]; y4=.5[x_height,h]; y6=.5[y5,0];
+x5=x3; x7=.5[x2l,x6]; bot y7r=-o;
+x5'=x5''=.5[x4,x5]; .5[y5',y5'']=y5; y5'-y5''=.5(x4-x5);
+x8r=x2l+stem; y8r=y7r;
+z8'=z8+.2stem*right+o*down; z8''=z8+.5(stem-currentbreadth)*dir135;
+p0=z1r---z2r..z3r..z4r..z5''r..z5r..z5'r..z6r..{left}z7r..z8r..{right}z8l;
+p1=z8l---z7l..z6l..z5'l..z5l..z5''l..z4l..z3l..z2l---z1l;
+(tim0,tim1-5)=subpath (0,4) of p0 intersectiontimes subpath (5,infinity) of p0;
+(tim2,tim3-4)=subpath(0,3) of p1 intersectiontimes subpath(4,infinity) of p1;
+tim4-3=xpart(subpath(3,5) of p0 intersectiontimes p1);
+(tim5-6,tim6-5)=subpath(6,infinity) of p0 intersectiontimes subpath (5,infinity) of p1;
+tim7=xpart(subpath(0,3) of p1 intersectiontimes subpath (4,infinity) of p1);
+filldraw subpath(0,rundy(p0,(tim0,hair)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,hair)),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim4),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(p1,tim6),infinity) of p1..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p1,tim6).zpet,rundy(p1,tim7)) of p1..cycle;
+penlabels(0,1,2,3,4,5,5',5'',6,7,8); labels(8',8'');
+endchar;
+
+iff known chars.greek_beta_curved:
+bskchar "The Greek letter beta (curved version)";
+beginchar(chars.greek_beta_curved,9u#,asc_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(curve,180); pos1(hair,180); pos2(hair,180);
+pos3(hair,90); pos4(stem,0); pos5(hair,180); pos5'(hair,120); pos5''(.5[hair,stem],-30);
+pos6(curve,-30); pos7(hair,-90); pos8(stem,180);
+lft x1r=lft x2r=u; y1=-d+curve; y2=.5[h,x_height]; y0=-d; x0l=x1r-o;
+x3=.5w-stem; top y3r=h+o; rt x4r=w-2.5u; rt x6r=w-u;
+y5=.25[x_height,bar_height]; y4=.5[x_height,h]; y6=.5[y5,0];
+x5=x3; x7=.5[x2l,x6]; bot y7r=-o;
+x5'=x5''=.5[x4,x5]; .5[y5',y5'']=y5; y5'-y5''=.5(x4-x5);
+x8r=x2l+stem; y8=.25bar_height;
+z8'=z8+.2stem*right+o*down; z8''=z8+.5(stem-currentbreadth)*dir135;
+p0=z1r---z2r..z3r..z4r..z5''r..z5r..z5'r..z6r..{left}z7r..z8r..z8''..z8l{down}..z8';
+p1=z8'..z7l{right}..z6l..z5'l..z5l..z5''l..z4l..z3l..z2l---z1l;
+(tim0,tim1-5)=subpath (0,4) of p0 intersectiontimes subpath (5,infinity) of p0;
+(tim2,tim3-4)=subpath(0,3) of p1 intersectiontimes subpath(4,infinity) of p1;
+tim4-3=xpart(subpath(3,5) of p0 intersectiontimes p1);
+(tim5-6,tim6-5)=subpath(6,infinity) of p0 intersectiontimes subpath (5,infinity) of p1;
+tim7=xpart(subpath(0,3) of p1 intersectiontimes subpath (4,infinity) of p1);
+filldraw z0r..subpath(0,rundy(p0,(tim0,hair)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,hair)),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim4),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(p1,tim6),infinity) of p1..z0l..z0r&cycle;
+oblu:=f_obl;
+infill subpath(rundy(p1,tim6).zpet,rundy(p1,tim7)) of p1..cycle;
+penlabels(0,1,2,3,4,5,5',5'',6,7,8); labels(8',8'');
+math_fit(desc_depth#*slant,ic#);
+endchar;
+
+iff known chars.greek_varbeta:
+bskchar "The Greek letter beta---alternative";
+beginchar(chars.greek_varbeta,9.5u#,asc_height#,0); uni "0x03D0";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,180); pos2(hair,90); pos3(hair,0); pos4(hair,180);
+pos4'(hair,120); pos4''(.5[hair,stem],-30);
+pos5(curve,-30); pos6(hair,-90);
+lft x1r=u; y1=.5h;
+x2=x4=.5w-.5stem; top y2r=h+o; rt x3r=w-2.5u; rt x5r=w-u;
+y4=.25[x_height,bar_height]; y3=.5[x_height,h]; y5=.5[y4,0];
+x6=.5[x1l,x5]; bot y6r=-o;
+x4'=x4''=.5[x3,x4]; .5[y4',y4'']=y4; y4'-y4''=.5(x3-x4);
+p0=z1r..z2r..z3r..z4''r..z4r..z4'r..z5r..{left}z6r..cycle;
+p1=z1l..z6l{right}..z5l..z4'l..z4l..z4''l..z3l..z2l..cycle;
+(tim0,tim1-5)=subpath (0,4) of p0 intersectiontimes subpath (5,length p0) of p0;
+(tim2,tim3-4)=subpath(0,3) of p1 intersectiontimes subpath(4,length p1) of p1;
+tim4-2=xpart(subpath(2,4) of p0 intersectiontimes p1);
+(tim5-5,tim6-4)=subpath(5,length p0) of p0 intersectiontimes subpath (4,length p1) of p1;
+tim7=xpart(subpath(0,3) of p1 intersectiontimes subpath (4,length p1) of p1);
+filldraw subpath(0,rundy(p0,(tim0,hair)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,hair)),length p0) of p0&cycle;
+infill subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim4),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(p1,tim6),length p1) of p1..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p1,tim6).zpet,rundy(p1,tim7)) of p1..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6);
+math_fit(-.5asc_height#*slant,ic#);
+endchar;
+
+iff known chars.greek_varbeta_BB:
+bskchar "The blackboard-bold Greek letter beta---alternative";
+beginchar(chars.greek_varbeta_BB,10u#,asc_height#,0); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(cap_stem,180); pos2(hair,90); pos3(hair,0); pos4(hair,180);
+pos4'(hair,120); pos4''(.5[hair,stem],-30);
+pos5(cap_stem,-30); pos6(hair,-90);
+lft x1r=u; y1=.5h;
+x2=x4=.5w; top y2r=h+o; rt x3r=w-2.5u; rt x5r=w-u;
+y4=.25[x_height,bar_height]; y3=.5[x_height,h]; y5=.5[y4,0];
+x6=.5[x1l,x5]; bot y6r=-o;
+x4'=x4''=.5[x3,x4]; .5[y4',y4'']=y4; y4'-y4''=.5(x3-x4);
+p0=z1r..z2r..z3r..z4''r..z4r..z4'r..z5r..{left}z6r..cycle;
+p1=z1l..z6l{right}..z5l..z4'l..z4l..z4''l..z3l..z2l..cycle;
+(tim0,tim1-5)=subpath (0,4) of p0 intersectiontimes subpath (5,length p0) of p0;
+(tim2,tim3-4)=subpath(0,3) of p1 intersectiontimes subpath(4,length p1) of p1;
+tim4-2=xpart(subpath(2,4) of p0 intersectiontimes p1);
+(tim5-5,tim6-4)=subpath(5,length p0) of p0 intersectiontimes subpath (4,length p1) of p1;
+tim7=xpart(subpath(0,3) of p1 intersectiontimes subpath (4,length p1) of p1);
+filldraw subpath(0,rundy(p0,(tim0,hair)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,hair)),length p0) of p0&cycle;
+infill subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim4),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(p1,tim6),length p1) of p1..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p1,tim6).zpet,rundy(p1,tim7)) of p1..cycle;
+p100=subpath(-1,1) of p0;
+p101=subpath(-1,1) of p1;
+p102=subpath(5,infinity) of p0;
+p103=subpath(0,3) of p1;
+z100=bsktouch(p100,down,p101,up);
+z101=bsktouch(p100,up,p101,down);
+z102=bsktouch(p102,up,p103,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,2h)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y1)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y6r-u-5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y1)));
+tim104=xpart(p102 intersectiontimes (z102--(x102,-d)));
+tim105=xpart(p103 intersectiontimes (z102--(x102,y5)));
+oblu:=.8bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+infill subpath(rundy(p0,tim1),rundy(p0,tim104+5).zpet) of p0
+ ..subpath(rundy(p103,tim105),rundy(p103,tim2).zpet) of p103..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6); labels(100,101,102);
+endchar;
+
+iff known chars.greek_varbeta_SS:
+bskchar "The sans-serif Greek letter beta---alternative";
+beginchar(chars.greek_varbeta_SS,9.5u#,asc_height#,0); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,180); pos2(hair,90); pos3(hair,0); pos4(hair,180);
+pos4'(hair,120); pos4''(.5[hair,stem],-30);
+pos5(curve,-30); pos6(hair,-90);
+lft x1r=u; y1=.5h;
+x2=x4=.5w-.5stem; top y2r=h+o; rt x3r=w-2.5u; rt x5r=w-u;
+y4=.25[x_height,bar_height]; y3=.5[x_height,h]; y5=.5[y4,0];
+x6=.5[x1l,x5]; bot y6r=-o;
+x4'=x4''=.5[x3,x4]; .5[y4',y4'']=y4; y4'-y4''=.5(x3-x4);
+p0=z1r..z2r..z3r..z4''r..z4r..z4'r..z5r..{left}z6r..cycle;
+p1=z1l..z6l{right}..z5l..z4'l..z4l..z4''l..z3l..z2l..cycle;
+(tim0,tim1-5)=subpath (0,4) of p0 intersectiontimes subpath (5,length p0) of p0;
+(tim2,tim3-4)=subpath(0,3) of p1 intersectiontimes subpath(4,length p1) of p1;
+tim4-2=xpart(subpath(2,4) of p0 intersectiontimes p1);
+(tim5-5,tim6-4)=subpath(5,length p0) of p0 intersectiontimes subpath (4,length p1) of p1;
+tim7=xpart(subpath(0,3) of p1 intersectiontimes subpath (4,length p1) of p1);
+filldraw subpath(0,rundy(p0,(tim0,hair)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,hair)),length p0) of p0&cycle;
+infill subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim4),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(p1,tim6),length p1) of p1..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p1,tim6).zpet,rundy(p1,tim7)) of p1..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6);
+endchar;
+
+iff known chars.greek_gamma:
+bskchar "The Greek letter gamma";
+beginchar(chars.greek_gamma,11u#,x_height#,desc_depth#); uni "0x03B3";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(hair,150);
+pos1(stem,90); pos2(hair,0); pos3(hair,0); pos4(hair,-90); pos5(hair,180);
+pos6(hair,180); pos7(hair,135);
+x1=.5[u,x2]; top y1r=h+o; lft x0r=u; y0=bar_height; z0'=(x0r,y0l);
+x2=.75w; x3=w-2.5u; y3=-3/4d; y2=.5bar_height; bot y4r=-d; y3-y4=2(x3-x4);
+.3[x5,x3]=x4; y5=y3;
+x6r=x2r; y6=y2;
+top y7r=h; rt x7=w-u;
+p0=z0r..z1r..z2r...z3r..z4r..z5r..z6r..{dir45}z7r;
+p1=z7l{dir-135}..z6l..z5l..z4l..z3l...z2l..z1l..z0l;
+(tim0,tim1-5)=subpath(0,3) of p0 intersectiontimes subpath(5,infinity) of p0;
+(tim2,tim3-1)=subpath(0,2) of p1 intersectiontimes subpath (1,3) of p0;
+(tim4-4,tim5-4)=subpath(4,infinity) of p0 intersectiontimes subpath(4,infinity) of p1;
+filldraw subpath(0,rundy(p0,(tim0,.7(y7r-y2))).zpet) of p0
+ ..subpath(rundy(p0,(tim1,.7(y7r-y2))),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,tim4).zpet) of p0
+ ..subpath(rundy(p1,tim5),infinity) of p1
+ &z0l..z0'..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(0');
+math_fit(-bar_height#*slant-.5u#,0);
+endchar;
+
+iff known chars.greek_gamma_BB:
+bskchar "The blackboard-bold Greek letter gamma";
+beginchar(chars.greek_gamma_BB,11u#,x_height#,desc_depth#); uni "0x213D";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(hair,150);
+pos1(stem,90); pos2(hair,0); pos3(hair,0); pos4(hair,-90); pos5(hair,180);
+pos6(hair,180); pos7(hair,135);
+x1=.5[u,x2]; top y1r=h+o; lft x0r=u; y0=bar_height; z0'=(x0r,y0l);
+x2=.75w; x3=w-2.5u; y3=-3/4d; y2=.5bar_height; bot y4r=-d; y3-y4=2(x3-x4);
+.3[x5,x3]=x4; y5=y3;
+x6r=x2r; y6=y2;
+top y7r=h; rt x7=w-u;
+p0=z0r..z1r..z2r...z3r..z4r..z5r..z6r..{dir45}z7r;
+p1=z7l{dir-135}..z6l..z5l..z4l..z3l...z2l..z1l..z0l;
+(tim0,tim1-5)=subpath(0,3) of p0 intersectiontimes subpath(5,infinity) of p0;
+(tim2,tim3-1)=subpath(0,2) of p1 intersectiontimes subpath (1,3) of p0;
+(tim4-4,tim5-4)=subpath(4,infinity) of p0 intersectiontimes subpath(4,infinity) of p1;
+filldraw subpath(0,rundy(p0,(tim0,.7(y7r-y2))).zpet) of p0
+ ..subpath(rundy(p0,(tim1,.7(y7r-y2))),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(4,rundy(p0,tim4).zpet) of p0 shifted ((cap_stem-hair-currentbreadth)*left)
+ ..z1l..z0l&z0l..z0'..cycle;
+infill subpath(rundy(p1,1),rundy(p1,tim2).zpet) of p1..subpath(rundy(p0,tim3),4) of p0..subpath(4,rundy(p0,6).zpet) of p0 shifted ((cap_stem-hair-currentbreadth)*left)..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(0');
+endchar;
+
+iff known chars.greek_gamma_SS:
+bskchar "The sans-serif Greek letter gamma";
+beginchar(chars.greek_gamma_SS,11u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(hair,150);
+pos1(stem,90); pos2(hair,0); pos3(hair,0); pos4(hair,-90); pos5(hair,180);
+pos6(hair,180); pos7(hair,135);
+x1=.5[u,x2]; top y1r=h+o; lft x0r=u; y0=bar_height; z0'=(x0r,y0l);
+x2=.75w; x3r=x6l; y3=-3/4d; y2=.5bar_height; bot y4r=-d; y3-y4=2(x3-x4);
+.3[x5,x3]=x4; y5=y3;
+x6r=x2r; y6=y2;
+top y7r=h; rt x7=w-u;
+p0=z0r..z1r..z2r...z3r..z4r..z5r..z6r..{dir45}z7r;
+p1=z7l{dir-135}..z6l..z5l..z4l..z3l...z2l..z1l..z0l;
+(tim0,tim1-5)=subpath(0,3) of p0 intersectiontimes subpath(5,infinity) of p0;
+(tim2,tim3-1)=subpath(0,2) of p1 intersectiontimes subpath (1,3) of p0;
+(tim4-4,tim5-4)=subpath(4,infinity) of p0 intersectiontimes subpath(4,infinity) of p1;
+filldraw subpath(0,rundy(p0,(tim0,.7(y7r-y2))).zpet) of p0
+ ..subpath(rundy(p0,(tim1,.7(y7r-y2))),infinity) of p0
+ ..subpath(0,rundy(p1,1).zpet) of p1---z3r..z4r...z5r---z2l
+ ..subpath(rundy(p1,5),infinity) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(0');
+endchar;
+
+iff known chars.greek_gamma_curved:
+bskchar "The Greek letter gamma (curved version)";
+beginchar(chars.greek_gamma_curved,11u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(stem,150);
+pos1(hair,90); pos2(stem,0); pos3(.9stem,0); pos4(hair,-90); pos5(hair,180);
+pos6(hair,180); pos7(hair,90); pos8(stem,0);
+x1=.5[u,x2]; top y1r=h+o; lft x0r=u; y0=y1-stem; z0'=(x0r,y0l);
+x3=x2=.5w-.5stem; y3=-2/3d; y2=bar_height; bot y4r=-d; y3-y4=4/3(x3-x4);
+.3[x5,x3]=x4; y5=-1/2d; x6=.35[x2l,x8]; y6=y2;
+x7=x8-stem; top y7r=.25[h,bar_height]; rt x8r=w-u; y8=y7-stem;
+z8'=z8+.2stem*down+o*left; z8''=z8+.5(stem-currentbreadth)*dir45;
+p0=z0r..z1r..z2r---z3r..z4r..z5r..z6r..{right}z7r..{down}z8r..z8'..{up}z8l;
+p1=z8l{up}..{left}z7l..z6l..z5l..z4l..z3l---z2l..z1l..z0l;
+(tim0,tim1-5)=subpath(0,3) of p0 intersectiontimes subpath(5,infinity) of p0;
+(tim2,tim3-1)=p1 intersectiontimes subpath(1,3) of p0;
+(tim4-4,tim5-5)=subpath(4,infinity) of p0 intersectiontimes subpath(5,infinity) of p1;
+(tim6,tim7-5)=subpath(0,4) of p1 intersectiontimes subpath(5,infinity) of p1;
+filldraw subpath(0,rundy(p0,(tim0,y7r-y2)).zpet) of p0
+ ..subpath(rundy(p0,(tim1,y7r-y2)),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,tim4).zpet) of p0
+ ..subpath(rundy(p1,tim5),infinity) of p1
+ &z0l..z0'..cycle;
+oblu:=x3l-x5;
+infill subpath(rundy(p1,tim6),rundy(p1,tim7).zpet) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(0',8',8'');
+math_fit(-.5u#,ic#-3u#);
+endchar;
+
+iff known chars.greek_digamma:
+bskchar "The Greek letter digamma";
+beginchar(chars.greek_digamma,9u#,x_height#,desc_depth#); uni "0x03DD";
+italcorr x_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+pos1(hair,0); pos2(hair,0); pos3(curve,100);
+pos3'(stem,90); pos4(stem,90); pos5(curve,90); pos5'(stem,80);
+lft x1l=lft x2l=u; bot y1=-d; top y2=h-hair; top y3r=top y3'r=h; rt x3l=w-1.25u;
+x3'=1/3[x2,x3]; x4=x1r; y4=.25bar_height; y5'r=y4r; y5=y5';
+x5-x4=.85(x3-x2); x5'=1/3[x4,x5];
+y2r:=y2r-stem+currentbreadth;
+bskpoints(1,2,0,hair);
+filldraw z1l---obl(2l,1l,3'r)---z3'r..{dir-10}z3r..{dir200}z3l..z3'l
+ ---obl(2r,3'l,1r)---obl(4r,2r,5'r)---z5'r..{right}z5r..z5l{dir190}
+ ..z5'l---obl(4l,5'l,1r)---z1rr..cycle;
+penlabels(1,2,3,3',4,5,5'); labels(1rr);
+math_fit(0,-.5u#);
+endchar;
+
+iff known chars.greek_digamma_BB:
+bskchar "The blackboard-bold Greek letter digamma";
+beginchar(chars.greek_digamma_BB,9.5u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+pos1(.8cap_stem,0); pos2(.8cap_stem,0); pos3(curve,100);
+pos3'(stem,90); pos4(stem,90); pos5(curve,90); pos5'(stem,80);
+lft x1l=lft x2l=u; bot y1=-d; top y2=h-hair; top y3r=top y3'r=h; rt x3l=w-1.25u;
+x3'=1/3[x2,x3]; x4=x1r; y4=.25bar_height; y5'r=y4r; y5=y5';
+x5-x4=.85(x3-x2); x5'=1/3[x4,x5];
+y2r:=y2r-stem+currentbreadth;
+bskpoints(1,2,0,hair);
+filldraw z1l---obl(2l,1l,3'r)---z3'r..{dir-10}z3r..{dir200}z3l..z3'l
+ ---obl(2r,3'l,1r)---obl(4r,2r,5'r)---z5'r..{right}z5r..z5l{dir190}
+ ..z5'l---obl(4l,5'l,1r)---z1rr..cycle;
+penlabels(1,2,3,3',4,5,5'); labels(1rr);
+z100=(x2r,y2);
+infill ifobl(2l,2r,1l,1r,,)---z1rr..z1l---cycle;
+endchar;
+
+iff known chars.greek_digamma_SS:
+bskchar "The sans-serif Greek letter digamma";
+beginchar(chars.greek_digamma_SS,9u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib;
+pos1(hair,0); pos2(hair,0); pos3(curve,100);
+pos3'(stem,90); pos4(stem,90); pos5(curve,90); pos5'(stem,80);
+lft x1l=lft x2l=u; bot y1=-d; top y2=h-.2hair; top y3r=top y3'r=h; rt x3l=w-1.25u;
+x3'=1/3[x2,x3]; x4=x1r; y4=.25bar_height; y5'r=y4r; y5=y5';
+x5-x4=.85(x3-x2); x5'=1/3[x4,x5];
+y2r:=y2r-stem+currentbreadth;
+bskpoints(1,2,0,hair);
+filldraw z1l---obl(2l,1l,3'r)---z3'r..{dir-10}z3r..{dir200}z3l..z3'l
+ ---obl(2r,3'l,1r)---obl(4r,2r,5'r)---z5'r..{right}z5r..z5l{dir190}
+ ..z5'l---obl(4l,5'l,1r)---z1rr..cycle;
+penlabels(1,2,3,3',4,5,5'); labels(1rr);
+endchar;
+
+iff known chars.greek_delta:
+bskchar "The Greek letter delta";
+beginchar(chars.greek_delta,9u#,asc_height#,0); uni "0x03B4";
+italcorr .5[x_height#,asc_height#]*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270); pos5(hair,180);
+pos6(stem,180); pos7(hair,180); pos8(hair,90); pos9(stem,0);
+lft x1l=u; rt x3l=w-u; y1=y3=.5y4; .5[x1,x3]=x2; x4=x2-stem;
+bot y2l=-o; y4l=.9x_height; z5l=z3r; y6=x_height; x6=.25[x3,x4];
+y7=h-curve; x7=x4; top y8r=h+o; x8=.5[x4,x6];
+rt x9r=w-u; y9''-y8r=2/3(x8-x9);
+z9'=z9+.2stem*down+o*left; z9''=z9+.5(stem-currentbreadth)*dir45;
+p0=z3r..z6r..z7r..{right}z8r..z9''..z9r{down}..z9'..z9l..{left}z8l;
+p1=z8l{left}....z7l..z6l..z3l..z2l..{up}z1l..z4l..z5l;
+z0=bsktouch(subpath(0,2) of p0,left,subpath(5,infinity) of p1,right);
+tim0=xpart(subpath(0,2) of p0 intersectiontimes (z0--(w,y0)));
+tim1-5=xpart(subpath(5,infinity) of p1 intersectiontimes (z0--(x4,y0)));
+filldraw subpath(0,rundy(p1,tim1).zpet) of p1..subpath(rundy(p0,tim0),infinity) of p0..cycle;
+infill z1r{up}..z4r..z5l..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(9',9'');
+math_fit(mft,u#);
+endchar;
+
+iff known chars.greek_delta_BB:
+bskchar "The blackboard-bold Greek letter delta";
+beginchar(chars.greek_delta_BB,9.5u#,asc_height#,0); uni "non";
+italcorr .5[x_height#,asc_height#]*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(hair,90); pos3(cap_stem,180); pos4(hair,270); pos5(hair,180);
+pos6(.8cap_stem,180); pos7(hair,180); pos8(hair,90); pos9(stem,0);
+lft x1l=u; rt x3l=w-u; y1=y3=.5y4; .5[x1,x3]=lft x2; x4=x2-stem;
+bot y2l=-o; y4l=.9x_height; z5l=z3r; y6=x_height; x6=.25[x3,x4];
+y7=h-curve; x7=x4; top y8r=h+o; x8=.5[x4,x6];
+rt x9r=w-u; y9''-y8r=2/3(x8-x9);
+z9'=z9+.2stem*down+o*left; z9''=z9+.5(stem-currentbreadth)*dir45;
+p0=z3r..z6r..z7r..{right}z8r..z9''..z9r{down}..z9'..z9l..{left}z8l;
+p1=z8l{left}....z7l..z6l..z3l..z2l..{up}z1l..z4l..z5l;
+z0=bsktouch(subpath(0,2) of p0,left,subpath(5,infinity) of p1,right);
+tim0=xpart(subpath(0,2) of p0 intersectiontimes (z0--(w,y0)));
+tim1-5=xpart(subpath(5,infinity) of p1 intersectiontimes (z0--(x4,y0)));
+filldraw subpath(0,rundy(p1,tim1).zpet) of p1..subpath(rundy(p0,tim0),infinity) of p0..cycle;
+infill z1r{up}..z4r..z5l..z2r..{up}cycle;
+p100=subpath(4,6) of p1;
+p101=subpath(0,3) of (z4r..{down}z1r..z2r..z5l..cycle);
+p102=subpath(1,4) of p1;
+p103=subpath(0,2) of p0;
+z100=bsktouch(p100,up,p101,down);
+z101=bsktouch(p100,down,p101,up);
+z102=bsktouch(p102,up,p101,down);
+z103=bsktouch(p102,left,p103,right);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y2l-5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y1)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y4l+5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y1)));
+tim104=xpart(p102 intersectiontimes (z102--(if boldmath:x2 else:x102 fi,y2l-5)));
+tim105=xpart(p101 intersectiontimes (z102--(if boldmath:x2 else:x102 fi,y1)));
+tim106=xpart(p102 intersectiontimes (z103--(w,y103)));
+tim107=xpart(p103 intersectiontimes (z103--(0,y103)));
+tim108=xpart(p103 intersectiontimes ((x2,y3)--(w,y3)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+infill subpath(rundy(p102,tim106),rundy(p102,tim104).zpet) of p102
+ ..subpath(rundy(p101,tim105),rundy(p101,3).zpet) of p101
+ ..subpath(rundy(p103,tim108),rundy(p103,tim107).zpet) of p103..cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(9',9'',100,101,102,103);
+endchar;
+
+iff known chars.greek_delta_SS:
+bskchar "The sans-serif Greek letter delta";
+beginchar(chars.greek_delta_SS,9u#,asc_height#,0); uni "non";
+italcorr .5[x_height#,asc_height#]*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270); pos5(hair,180);
+pos6(stem,180); pos7(hair,180); pos8(hair,90); pos9(hair,90);
+lft x1l=u; rt x3l=w-u; y1=y3=.5y4; .5[x1,x3]=x2; x4=x2-stem;
+bot y2l=-o; y4l=.9x_height; z5l=z3r; y6=x_height; x6=.25[x3,x4];
+y7=h-curve; x7=x4; top y8r=h+o; x8=.5[x4,x6];
+rt x9r=w-u; top y9r=bot y8r;
+p0=z3r..z6r..z7r..{right}z8r---z9r..z9l---z8l;
+p1=z8l{left}....z7l..z6l..z3l..z2l..{up}z1l..z4l..z5l;
+z0=bsktouch(subpath(0,2) of p0,left,subpath(5,infinity) of p1,right);
+tim0=xpart(subpath(0,2) of p0 intersectiontimes (z0--(w,y0)));
+tim1-5=xpart(subpath(5,infinity) of p1 intersectiontimes (z0--(x4,y0)));
+filldraw subpath(0,rundy(p1,tim1).zpet) of p1..subpath(rundy(p0,tim0),infinity) of p0..cycle;
+infill z1r{up}..z4r..z5l..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+iff known chars.greek_epsilon:
+bskchar "The Greek letter epsilon";
+beginchar(chars.greek_epsilon,7.2u#,x_height#,0); uni "0x03F5";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(hair,90); pos3(stem,180);
+pos4(hair,-90); pos5(vair,-45);
+pos6(hair,90); pos7(hair,90);
+rt x1=w-u; top y2r=h+o; x2=.5w+u; lft x3r=u;
+y3=bar_height-.5stem; y1=.35[x_height,bar_height];
+x4=x2+o; bot y4r=-o;
+rt x5=w-u; y5=.15bar_height;
+y6=y7=y3; x6=x3; x7=x1l;
+z1'=z1+.2stem*down+o*left; z1''=z1+.5(stem-currentbreadth)*dir45;
+bskpoints(6,7,hair,hair);
+p0=z5l..z4l..z3l{up}..z2l..{down}z1l..z1'..z1r..z1''..z2r..{down}z3r..z4r..z5r;
+p1=z6l---z7ll..z7r---z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2-1,tim3)=subpath(1,infinity) of p1 intersectiontimes p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(1',1'',7ll);
+math_fit(mft,ic#-u#);
+endchar;
+
+iff known chars.greek_epsilon_BB:
+bskchar "The blackboard-bold Greek letter epsilon";
+beginchar(chars.greek_epsilon_BB,7.2u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(hair,90); pos3(cap_stem,180);
+pos4(hair,-90); pos5(vair,-45);
+pos6(hair,90); pos7(hair,90);
+rt x1=w-u; top y2r=h+o; x2=.5w+u; lft x3r=u;
+y3=bar_height-.5stem; y1=.35[x_height,bar_height];
+x4=x2+o; bot y4r=-o;
+rt x5=w-u; y5=.15bar_height;
+y6=y7=y3; x6=x3; x7=x1l;
+z1'=z1+.2stem*down+o*left; z1''=z1+.5(stem-currentbreadth)*dir45;
+bskpoints(6,7,hair,hair);
+p0=z5l..z4l..z3l{up}..z2l..{down}z1l..z1'..z1r..z1''..z2r..{down}z3r..z4r..z5r;
+p1=z6l---z7ll..z7r---z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2-1,tim3)=subpath(1,infinity) of p1 intersectiontimes p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0..cycle;
+p100=subpath(8,10) of p0;
+p101=subpath(1,3) of p0;
+z100=bsktouch(p100,up,p101,down);
+z101=bsktouch(p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y4r-u-5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y3)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y2r+u+5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y3)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(1',1'',7ll,100,101);
+endchar;
+
+iff known chars.greek_epsilon_SS:
+bskchar "The sans-serif Greek letter epsilon";
+beginchar(chars.greek_epsilon_SS,7.2u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,90); pos2(hair,90); pos3(stem,180);
+pos4(hair,-90); pos5(vair,-45);
+pos6(hair,90); pos7(hair,90);
+rt x1=w-u; top y2r=h+o; x2=.5w+u; lft x3r=u; top y1r=y2r;
+y3=bar_height-.5stem;
+x4=x2+o; bot y4r=-o;
+rt x5=w-u; y5=.15bar_height;
+y6=y7=y3; x6=x3; x7=x1l;
+bskpoints(6,7,hair,hair);
+p0=z5l..z4l..z3l{up}..z2l...{right}z1l..z1r{left}...z2r..{down}z3r..z4r..z5r;
+p1=z6l---z7ll..z7r---z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2-1,tim3)=subpath(1,infinity) of p1 intersectiontimes p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(7ll);
+endchar;
+
+iff known chars.greek_epsilon_turned:
+bskchar "The turned Greek letter epsilon";
+beginchar(chars.greek_epsilon_turned,7.2u#,x_height#,0); uni "non";
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,180); pos2(hair,-90); pos3(stem,0);
+pos4(hair,90); pos5(vair,135);
+pos6(hair,-90); pos7(hair,-90);
+lft x1=u; bot y2r=-o; x2=.5w-u; rt x3r=w-u;
+y3=x_height-bar_height+.5stem; y1=x_height-.35[x_height,bar_height];
+x4=x2-o; top y4r=h+o;
+lft x5=u; y5=x_height-.15bar_height;
+y6=y7=y3; x6=x3; x7=x1l;
+z1'=z1+.2stem*up+o*right; z1''=z1+.5(stem-currentbreadth)*dir225;
+bskpoints(6,7,hair,hair);
+p0=z5l..z4l..z3l{down}..z2l..{up}z1l..z1'..z1r..z1''..z2r..{up}z3r..z4r..z5r;
+p1=z6l---z7ll..z7r---z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2-1,tim3)=subpath(1,infinity) of p1 intersectiontimes p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(1',1'',7ll);
+math_fit(-.5u#,.5u#);
+endchar;
+
+iff known chars.greek_epsilon_turned_BB:
+bskchar "The blackboard-bold turned Greek letter epsilon";
+beginchar(chars.greek_epsilon_turned_BB,7.2u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,180); pos2(hair,-90); pos3(cap_stem,0);
+pos4(hair,90); pos5(vair,135);
+pos6(hair,-90); pos7(hair,-90);
+lft x1=u; bot y2r=-o; x2=.5w-u; rt x3r=w-u;
+y3=x_height-bar_height+.5stem; y1=x_height-.35[x_height,bar_height];
+x4=x2-o; top y4r=h+o;
+lft x5=u; y5=x_height-.15bar_height;
+y6=y7=y3; x6=x3; x7=x1l;
+z1'=z1+.2stem*up+o*right; z1''=z1+.5(stem-currentbreadth)*dir225;
+bskpoints(6,7,hair,hair);
+p0=z5l..z4l..z3l{down}..z2l..{up}z1l..z1'..z1r..z1''..z2r..{up}z3r..z4r..z5r;
+p1=z6l---z7ll..z7r---z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2-1,tim3)=subpath(1,infinity) of p1 intersectiontimes p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0..cycle;
+p100=subpath(8,10) of p0;
+p101=subpath(1,3) of p0;
+z100=bsktouch(p100,down,p101,up);
+z101=bsktouch(p100,up,p101,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y4r+u+5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y3)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y2r-u-5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y3)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(1',1'',7ll,100,101);
+endchar;
+
+iff known chars.greek_epsilon_turned_SS:
+bskchar "The sans-serif turned Greek letter epsilon";
+beginchar(chars.greek_epsilon_turned_SS,7.2u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,-90); pos2(hair,-90); pos3(stem,0);
+pos4(hair,90); pos5(vair,135);
+pos6(hair,-90); pos7(hair,-90);
+lft x1=u; bot y2r=-o; x2=.5w-u; rt x3r=w-u; bot y1r=y2r;
+y3=x_height-bar_height+.5stem;
+x4=x2-o; top y4r=h+o;
+lft x5=u; y5=x_height-.15bar_height;
+y6=y7=y3; x6=x3; x7=x1l;
+bskpoints(6,7,hair,hair);
+p0=z5l..z4l..z3l{down}..z2l...{left}z1l..z1r{right}...z2r..{up}z3r..z4r..z5r;
+p1=z6l---z7ll..z7r---z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2-1,tim3)=subpath(1,infinity) of p1 intersectiontimes p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7); labels(7ll);
+endchar;
+
+iff known chars.greek_varepsilon:
+bskchar "The Greek letter epsilon---alternative";
+beginchar(chars.greek_varepsilon,8u#,x_height#,0); uni "0x03B5";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(hair,90); pos3(.5[hair,stem],180);
+pos4(hair,0); pos4'(hair,60); pos4''(.5[hair,stem],-150);
+pos5(curve,180); pos6(hair,-90); pos7(vair,-45);
+rt x1=w-u; top y2r=h+o; x2=.5w+u; lft x3r=1.75u;
+y3=.65[x_height,bar_height]; y1=.5[x_height,bar_height];
+1/3[y4,y3]=bar_height; x4=x2-hair; y5=.5bar_height;
+lft x5r=u; x6=x2+o; bot y6r=-o;
+rt x7=w-u; y7=.25bar_height;
+x4'=x4''=.5[x3,x4]; .5[y4',y4'']=y4; y4'-y4''=.5(x4-x3);
+z1'=z1+.2curve*down+o*left; z1''=z1+.5(curve-currentbreadth)*dir45;
+p0=z7l..z6l..z5l..z4'l..z4l{down}..z4''l..z3l{up}..z2l..{down}z1l;
+p1=z1l{down}..z1'..z1r..z1''..z2r..{down}z3r..z4''r..{up}z4r..z4'r..{down}z5r..z6r..z7r;
+(tim0,tim1-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+(tim2,tim3-5)=p0 intersectiontimes subpath(5,7) of p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,infinity) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+filldraw subpath(0,rundy(p1,(tim0,hair)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,hair)),infinity) of p1
+ ..{direction infinity of p1}z7r..{direction 0 of p0}z7l
+ ..subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2hair)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=.5f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7); labels(1',1'');
+math_fit(mft,ic#-u#);
+endchar;
+
+iff known chars.greek_varepsilon_BB:
+bskchar "The blackboard-bold Greek letter epsilon---alternative";
+beginchar(chars.greek_varepsilon_BB,8u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(hair,90); pos3(.5[hair,cap_stem],180);
+pos4(hair,0); pos4'(hair,60); pos4''(.5[hair,stem],-150);
+pos5(cap_stem,180); pos6(hair,-90); pos7(vair,-45);
+rt x1=w-u; top y2r=h+o; x2=.5w+u; lft x3r=1.75u;
+y3=.65[x_height,bar_height]; y1=.5[x_height,bar_height];
+1/3[y4,y3]=bar_height; x4=x2; y5=.5bar_height;
+lft x5r=u; x6=x2+o; bot y6r=-o;
+rt x7=w-u; y7=.25bar_height;
+x4'=x4''=.5[x3,x4]; .5[y4',y4'']=y4; y4'-y4''=.5(x4-x3);
+z1'=z1+.2curve*down+o*left; z1''=z1+if boldmath: .75 else: .5\\fi(curve-currentbreadth)*dir45;
+p0=z7l..z6l..z5l..z4'l..z4l{down}..z4''l..z3l{up}..z2l..{down}z1l;
+p1=z1l{down}..z1'..z1r..z1''..z2r..{down}z3r..z4''r..{up}z4r..z4'r..{down}z5r..z6r..z7r;
+(tim0,tim1-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+(tim2,tim3-5)=p0 intersectiontimes subpath(5,7) of p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,infinity) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+filldraw subpath(0,rundy(p1,(tim0,hair)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,hair)),infinity) of p1
+ ..{direction infinity of p1}z7r..{direction 0 of p0}z7l
+ ..subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2hair)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=.5f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+p100=subpath(8,10) of p1;
+p101=subpath(1,4) of p0;
+p102=subpath(4,6) of p1;
+p103=subpath(5,7) of p0;
+z100=bsktouch(p100,up,p101,down);
+z101=bsktouch(p102,down,p103,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y6r-u-5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y5)));
+tim102=xpart(p100 intersectiontimes ((0,y4)--(x4',y4)));
+tim103=xpart(p101 intersectiontimes ((0,y4)--(x4',y4)));
+tim104=xpart(p102 intersectiontimes (z101--(x101,y2r+u+5)));
+tim105=xpart(p103 intersectiontimes (z101--(x101,y3)));
+tim106=xpart(p102 intersectiontimes ((0,y4)--(x4',y4)));
+tim107=xpart(p103 intersectiontimes ((0,y4)--(x4',y4)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+oblu:=.5bbw;
+infill subpath(rundy(p102,tim104),rundy(p102,tim106).zpet) of p102
+ ..subpath(rundy(p103,tim107),rundy(p103,tim105).zpet) of p103..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7); labels(1',1'',100,101);
+endchar;
+
+iff known chars.greek_varepsilon_SS:
+bskchar "The sans-serif Greek letter epsilon---alternative";
+beginchar(chars.greek_varepsilon_SS,8u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(hair,90); pos3(.5[hair,stem],180);
+pos4(hair,0); pos4'(hair,60); pos4''(.5[hair,stem],-150);
+pos5(curve,180); pos6(hair,-90); pos7(vair,-45);
+rt x1=w-u; top y2r=h+o; x2=.5w+u; lft x3r=1.75u;
+y3=.65[x_height,bar_height]; y1=.5[x_height,bar_height];
+1/3[y4,y3]=bar_height; x4=x2-hair; y5=.5bar_height;
+lft x5r=u; x6=x2+o; bot y6r=-o;
+rt x7=w-u; y7=.25bar_height;
+x4'=x4''=.5[x3,x4]; .5[y4',y4'']=y4; y4'-y4''=.5(x4-x3);
+z1'=z1+.2curve*down+o*left; z1''=z1+.5(curve-currentbreadth)*dir45;
+p0=z7l..z6l..z5l..z4'l..z4l{down}..z4''l..z3l{up}..z2l..{down}z1l;
+p1=z1l{down}..z1r{up}..z2r..{down}z3r..z4''r..{up}z4r..z4'r..{down}z5r..z6r..z7r;
+(tim0,tim1-5)=subpath(0,6) of p1 intersectiontimes subpath (5,infinity) of p1;
+(tim2,tim3-3)=p0 intersectiontimes subpath(3,5) of p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,infinity) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+filldraw subpath(0,rundy(p1,(tim0,hair)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,hair)),infinity) of p1
+ ..{direction infinity of p1}z7r..{direction 0 of p0}z7l
+ ..subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2hair)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=.5f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7); labels(1',1'');
+endchar;
+
+iff known chars.greek_zeta:
+bskchar "The Greek letter zeta";
+beginchar(chars.greek_zeta,9u#,asc_height#,.5desc_depth#); uni "0x03B6";
+italcorr asc_height#*slant-1.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,90); pos2(stem,180); pos0(hair,0); pos7(hair,180);
+pos3(curve,240); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+pos8(hair,-90);
+lft x2r=u; top y1r=h-stem; y2=x_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-2u; y0=y1-.5stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5+.5stem; x7=x1-stem; top y7=h;
+x8=.5[x1,x0]; .5[y8,y1]=y0;
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+p0=z7r{down}..z8r..z0r..z1r..z2r..z3r..z4r..z5r..z6''..z6'..z6l;
+p1=z6l..z5l..z4l..z3l..z2l..z1l..z0l..z8l..{up}z7l;
+(tim0,tim1-1)=p0 intersectiontimes subpath(1,infinity) of p0;
+(tim2,tim3)=p1 intersectiontimes subpath (0,1) of p0;
+(tim4-1,tim5-7)=subpath(1,infinity) of p0 intersectiontimes subpath(7,infinity) of p1;
+(tim6-7,tim7)=subpath(7,infinity) of p1 intersectiontimes subpath(0,6) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,hair)),infinity) of p1..cycle;
+infill subpath(rundy(p1,tim7),rundy(p1,tim6).zpet) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(0',0'',6',6'');
+math_fit(mft-.5u#,0);
+endchar;
+
+iff known chars.greek_zeta_BB:
+bskchar "The blackboard-bold Greek letter zeta";
+beginchar(chars.greek_zeta_BB,9u#,asc_height#,.5desc_depth#); uni "non";
+italcorr asc_height#*slant-1.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,90); pos2(.8cap_stem,180); pos0(hair,0); pos7(hair,180);
+pos3(cap_stem,240); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+pos8(hair,-90);
+lft x2r=u; top y1r=h-stem; y2=x_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-2u; y0=y1-.5stem; x3=.5w; top y3=.5bar_height-.5d+.25cap_stem;
+x6=x5-stem; y6=y5+.5stem; x7=x1-stem; top y7=h;
+x8=.5[x1,x0]; .5[y8,y1]=y0;
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+p0=z7r{down}..z8r..z0r..z1r..z2r..z3r..z4r..z5r..z6''..z6'..z6l;
+p1=z6l..z5l..z4l..z3l..z2l..z1l..z0l..z8l..{up}z7l;
+(tim0,tim1-1)=p0 intersectiontimes subpath(1,infinity) of p0;
+(tim2,tim3)=p1 intersectiontimes subpath (0,1) of p0;
+(tim4-1,tim5-7)=subpath(1,infinity) of p0 intersectiontimes subpath(7,infinity) of p1;
+(tim6-7,tim7)=subpath(7,infinity) of p1 intersectiontimes subpath(0,6) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,hair)),infinity) of p1..cycle;
+infill subpath(rundy(p1,tim7),rundy(p1,tim6).zpet) of p1..cycle;
+p100=subpath(3,6) of p0;
+p101=subpath(2,5) of p1;
+z100=bsktouch(p100,dir15,p101,dir-135);
+z101=bsktouch(p100,dir-45,p101,dir135);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y4)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y2)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y7)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(0',0'',6',6'',100,101);
+endchar;
+
+iff known chars.greek_zeta_SS:
+bskchar "The sans-serif Greek letter zeta";
+beginchar(chars.greek_zeta_SS,9u#,asc_height#,.5desc_depth#); uni "non";
+italcorr asc_height#*slant-1.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,90); pos2(stem,180); pos0(hair,0); pos7(hair,180);
+pos3(curve,240); pos4(hair,180); pos5(hair,100); pos6(hair,90);
+pos8(hair,-90);
+lft x2r=u; top y1r=h-stem; y2=x_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-2u; y0=y1-.5stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5; x7=x1-stem; top y7=h;
+x8=.5[x1,x0]; .5[y8,y1]=y0;
+p0=z7r{down}..z8r..z0r..z1r..z2r..z3r..z4r..z5r---z6r;
+p1=z6l---z5l..z4l..z3l..z2l..z1l..z0l..z8l..{up}z7l;
+(tim0,tim1-1)=p0 intersectiontimes subpath(1,infinity) of p0;
+(tim2,tim3)=p1 intersectiontimes subpath (0,1) of p0;
+(tim4-1,tim5-7)=subpath(1,infinity) of p0 intersectiontimes subpath(7,infinity) of p1;
+(tim6-7,tim7)=subpath(7,infinity) of p1 intersectiontimes subpath(0,6) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,hair)),infinity) of p1..cycle;
+infill subpath(rundy(p1,tim7),rundy(p1,tim6).zpet) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(0',0'');
+endchar;
+
+iff known chars.greek_eta:
+bskchar "The Greek letter eta";
+beginchar(chars.greek_eta,9.5u#,x_height#,desc_depth#); uni "0x03B7";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0);
+pos5(stem,180); pos6(stem,180); pos7(hair,-90);
+top y2r=x_height+o;
+x3=x4; lft x1l=.5u; lft x3=1/3w;
+y3=y1-hair=bar_height;
+z2=z1+whatever*dir70; y4=hair; z4'=(x4r,y4r-hair);
+y5=y3; y6=-d; rt x5l=w-u; x6=x5; x7=.55[x5l,x3r]; top y7r=h+o;
+bskpoints(5,6,hair,hair);
+p0=z1l{z1-z4}..z2l..z3l---z4l...z4'...z4r---z3r..z7r..z5r
+ ---z6r..z6ll---z5l..z7l..z3l;
+p1=z4r---z3r..z2r..{z4-z1}z1r;
+(tim0-7,tim1)=subpath (7,infinity) of p0 intersectiontimes p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,8',9,10); labels(6ll);
+math_fit(-u#,.5u#);
+endchar;
+
+iff known chars.greek_eta_BB:
+bskchar "The blackboard-bold Greek letter eta";
+beginchar(chars.greek_eta_BB,9.5u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+pos1(vair,180); pos2(hair,90); pos3(.8cap_stem,0); pos4(.8cap_stem,0);
+pos5(.8cap_stem,180); pos6(.8cap_stem,180); pos7(hair,-90);
+top y2r=x_height+o;
+x3=x4; lft x1l=.5u; lft x3=1/3w;
+y3=y1-hair=bar_height;
+z2=z1+whatever*dir70; y4=hair; z4'=(x4r,y4r-hair);
+y5=y3; y6=-d; rt x5l=w-u; x6=x5; x7=.55[x5l,x3r]; top y7r=h+o;
+bskpoints(5,6,hair,hair);
+p0=z1l{z1-z4}..z2l..z3l---z4l...z4'...z4r---z3r..z7r..z5r
+ ---z6r..z6ll---z5l..z7l..z3l;
+p1=z4r---z3r..z2r..{z4-z1}z1r;
+(tim0-7,tim1)=subpath (7,infinity) of p0 intersectiontimes p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+p100=subpath(1,3) of p0;
+p101=subpath(0,2) of p1;
+p102=subpath(7,9) of p0;
+p103=subpath(10,12) of p0;
+z100=bsktouch(p100,dir45,p101,dir-135);
+z101=bsktouch(p102,dir45,p103,dir-135);
+tim100=xpart(p100 intersectiontimes (z100--z1));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y2r+u+5)));
+tim102=xpart(p102 intersectiontimes (z101--(x101-1,y5)));
+tim103=xpart(p103 intersectiontimes (z101--(x101-1,y2r+u+5)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),infinity) of p100..z4'
+ ..subpath(0,rundy(p101,tim101).zpet) of p101..cycle;
+infill subpath(rundy(p102,tim102),infinity) of p102
+ ..subpath(0,rundy(p103,tim103).zpet) of p103..cycle;
+penlabels(1,2,3,4,5,6,7,8,8',9,10); labels(6ll,100,101);
+endchar;
+
+iff known chars.greek_eta_SS:
+bskchar "The sans-serif Greek letter eta";
+beginchar(chars.greek_eta_SS,9.5u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0);
+pos5(stem,180); pos6(stem,180); pos7(hair,-90);
+top y2r=x_height+o;
+x3=x4; lft x1l=.5u; lft x3=1/3w;
+y3=y1-hair=bar_height;
+z2=z1+whatever*dir70; y4=hair; z4'=(x4r,y4r-hair);
+y5=y3; y6=-d; rt x5l=w-u; x6=x5; x7=.55[x5l,x3r]; top y7r=h+o;
+bskpoints(5,6,hair,hair);
+p0=z2l{right}..z3l---z4l...z4'...z4r---z3r..z7r..z5r
+ ---z6r..z6ll---z5l..z7l..z3l;
+p1=z4r---z3r..{left}z2r;
+(tim0-7,tim1)=subpath (7,infinity) of p0 intersectiontimes p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,8',9,10); labels(6ll);
+endchar;
+
+iff known chars.greek_heta:
+bskchar "The Greek letter heta";
+beginchar(chars.greek_heta,8u#,x_height#,0); uni "0x0371";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0);
+pos5(bar,90); pos6(bar,90);
+top y2r=x_height+o;
+x3=x4; lft x1l=.5u; lft x3=3u;
+y3=y1-hair=y5=y6=bar_height;
+z2=z1+whatever*dir70; y4=hair; z4'=(x4r,y4r-hair);
+x5=x3r; rt x6=w-u;
+p0=z1l{z1-z4}..z2l..z3l---z4l...z4'...z4r---obl(5l,4r,6l)---z6l..z6r---z5r+oblu*right;
+p1=z4r---z3r..z2r..{z4-z1}z1r;
+filldraw p0..subpath(rundy(p1,1),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6); labels(4');
+math_fit(-u#,.5u#);
+endchar;
+
+iff known chars.greek_heta_BB:
+bskchar "The blackboard-bold Greek letter heta";
+beginchar(chars.greek_heta_BB,8u#,x_height#,0); uni "non";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+pos1(vair,180); pos2(hair,90); pos3(.8cap_stem,0); pos4(.8cap_stem,0);
+pos5(bar,90); pos6(bar,90);
+top y2r=x_height+o;
+x3=x4; lft x1l=.5u; lft x3=3u;
+y3=y1-hair=y5=y6=bar_height;
+z2=z1+whatever*dir70; y4=cap_hair; z4'=(x4r,y4r-hair);
+x5=x3r; rt x6=w-u;
+p0=z1l{z1-z4}..z2l..z3l---z4l...z4'...z4r---obl(5l,4r,6l)---z6l..z6r---z5r+oblu*right;
+p1=z4r---z3r..z2r..{z4-z1}z1r;
+filldraw p0..subpath(rundy(p1,1),infinity) of p1..cycle;
+p100=subpath(1,3) of p0;
+p101=subpath(0,2) of p1;
+z100=bsktouch(p100,dir45,p101,dir-135);
+tim100=xpart(p100 intersectiontimes (z100--z1));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y2r+u+5)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),infinity) of p100..z4'
+ ..subpath(0,rundy(p101,tim101).zpet) of p101..cycle;
+penlabels(1,2,3,4,5,6); labels(4',100);
+endchar;
+
+iff known chars.greek_heta_SS:
+bskchar "The sans-serif Greek letter heta";
+beginchar(chars.greek_heta_SS,8u#,x_height#,0); uni "non";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0);
+pos5(bar,90); pos6(bar,90);
+top y2r=x_height+o;
+x3=x4; lft x1l=.5u; lft x3=3u;
+y3=y1-hair=y5=y6=bar_height;
+z2=z1+whatever*dir70; y4=hair; z4'=(x4r,y4r-hair);
+x5=x3r; rt x6=w-u;
+p0=z2l{right}..z3l---z4l...z4'...z4r---obl(5l,4r,6l)---z6l..z6r---z5r+oblu*right;
+p1=z4r---z3r..{left}z2r;
+filldraw p0..subpath(rundy(p1,1),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6); labels(4');
+endchar;
+
+iff known chars.greek_eta_curved:
+bskchar "The Greek letter eta (curved version)";
+beginchar(chars.greek_eta_curved,9.5u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0);
+pos5(stem,180); pos6(stem,180); pos7(hair,-90); pos8(hair,-90);
+pos8'(.5[hair,stem],-90);
+top y2r=x_height+o;
+x3=x4; lft x1l=.5u; lft x3=1/3w;
+y3=y1-hair=bar_height;
+z2=z1+whatever*dir70; y4=hair; z4'=(x4r,y4r-hair);
+y5=y3; y6=-d+4/3(x8-x6); rt x5l=w-u; x6l=x5r; x7=.55[x5l,x3r]; top y7r=h+o;
+x8=w; bot y8r=bot bot y8'r=-d; x8'=w+u;
+p0=z1l{z1-z4}..z2l..z3l---z4l..z4'..z4r---z3r..z7r..{down}z5r
+ ...z6r..{right}z8r..z8'r..z8'l..z8l{left}..z6l...{up}z5l..z7l..z3l;
+p1=z4r---z3r..z2r..{z4-z1}z1r;
+(tim0-7,tim1)=subpath (7,infinity) of p0 intersectiontimes p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,8',9,10);
+math_fit(-u#,.5u#);
+endchar;
+
+charscription(9.5u,asc_height,0)(
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(hair,90); pos6(.5[hair,stem],90); pos7(hair,90);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o;
+z5=z1+.25stem*down; z7=z3+.25stem*up; z6=.5[z5,z7];
+p0=z5l..z6l..z7l;
+p1=z5r..z6r..z7r;
+p2=z1r{up}..z4r..{down}z3r..z2r..{up}z1r;
+p3=z2r..{up}z1r..z4r..{down}z3r..z2r;
+(tim0,tim1)=subpath(0,1) of p0 intersectiontimes p2;
+(tim2-1,tim3)=subpath(1,2) of p0 intersectiontimes p2;
+(tim4,tim5)=subpath(0,1) of p1 intersectiontimes p3;
+(tim6-1,tim7)=subpath(1,2) of p1 intersectiontimes p3;
+filldraw z1l{down}..z2l..{up}z3l..z4l..{down}cycle;
+infill subpath(rundy(p0,tim0),rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p2,tim3),rundy(p2,tim1).zpet) of p2..cycle;
+infill subpath(rundy(p1,tim4),rundy(p1,tim6).zpet) of p1
+ .. reverse subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3
+ ..cycle;
+penlabels(1,2,3,4,5,6,7);
+);
+
+iff known chars.greek_theta:
+bskchar "The Greek letter theta";
+beginchar(chars.greek_theta,9.5u#,asc_height#,0); uni "0x03B8";
+italcorr .75asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(-.5asc_height#*slant,ic#-1.5u#);
+endchar;
+
+iff known chars.greek_theta_SS:
+bskchar "The sans-serif Greek letter theta";
+beginchar(chars.greek_theta_SS,9.5u#,asc_height#,0); uni "non";
+italcorr .75asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_theta_BB:
+bskchar "The blackboard-bold Greek letter theta";
+beginchar(chars.greek_theta_BB,9.75u#,asc_height#,0); uni "non";
+italcorr .75asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(hair,90); pos3(.8cap_stem,180); pos4(hair,270);
+pos5(hair,90); pos6(.5[hair,stem],90); pos7(hair,90);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o;
+z5=z1+.25stem*down; z7=z3+.25stem*up; z6=.5[z5,z7];
+p0=z5l..z6l..z7l;
+p1=z5r..z6r..z7r;
+p2=z1r{up}..z4r..{down}z3r..z2r..{up}z1r;
+p3=z2r..{up}z1r..z4r..{down}z3r..z2r;
+(tim0,tim1)=subpath(0,1) of p0 intersectiontimes p2;
+(tim2-1,tim3)=subpath(1,2) of p0 intersectiontimes p2;
+(tim4,tim5)=subpath(0,1) of p1 intersectiontimes p3;
+(tim6-1,tim7)=subpath(1,2) of p1 intersectiontimes p3;
+filldraw z1l{down}..z2l..{up}z3l..z4l..{down}cycle;
+infill subpath(rundy(p0,tim0),rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p2,tim3),rundy(p2,tim1).zpet) of p2..cycle;
+infill subpath(rundy(p1,tim4),rundy(p1,tim6).zpet) of p1
+ .. reverse subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3
+ ..cycle;
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z4l..z1l{down}..z2l..z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,up,p101,down);
+z103=bsktouch(subpath(2,3) of p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,y1)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p101 intersectiontimes (z103--(x103,y2l-5)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+penlabels(1,2,3,4,5,6,7); labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_vartheta:
+bskchar "The Greek letter theta---alternative";
+beginchar(chars.greek_vartheta,9u#,asc_height#,0); uni "0x03D1";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(curve,180); pos7(hair,-90);
+pos8(hair,-30); pos8'(hair,30); pos9(hair,90);
+top y2r=x_height; bot y5l=-o; x5=.5[x4l,x6];
+x3=x4l; lft x1l=.5u; x3l-x1r=max(curve,1.5u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+z2=z1+whatever*dir60;
+y4-y5=y2-y3; rt x6l=w-1.75u; y6=bar_height;
+top y7=h+o; x7=x5;
+y8=2/3[x_height,h]; 1/4[x8,x6]=x7;
+y9=.35[x_height,bar_height]; x9=w-u;
+p0=z1r{up}..z2r..z3r..z4r..z5r..{up}z6r..{left}z7r..z8r..{z9-z3}z9r;
+p1=z9l{z3-z9}..z8l..{right}z7l..{down}z6l..z5l..z4l..z3l..z2l..{down}z1l;
+(tim0,tim1)=subpath(0,6) of p0 intersectiontimes subpath(0,1) of p1;
+(tim2-2,tim3-7)=subpath(2,infinity) of p1 intersectiontimes subpath(7,infinity) of p0;
+(tim4-2,tim5)=subpath (2,infinity) of p1 intersectiontimes subpath(0,1) of p1;
+tim6=xpart(p0 intersectiontimes subpath (0,1) of p1);
+tim7-7=ypart(subpath (0,6) of p0 intersectiontimes subpath(7,infinity) of p0);
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..{z9-z4}z9r..z9l{z4-z9}
+ ..subpath(rundy(p1,(tim4,hair)),infinity) of p1..cycle;
+infill subpath (rundy(p0,tim6),rundy(p0,tim7).zpet) of p0..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+math_fit(-bar_height#*slant+.25u#,ic#-u#);
+endchar;
+
+iff known chars.greek_vartheta_BB:
+bskchar "The blackboard-bold Greek letter theta---alternative";
+beginchar(chars.greek_vartheta_BB,10u#,asc_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(cap_stem,180); pos7(hair,-90);
+pos8(hair,-30); pos8'(hair,30); pos9(hair,90);
+top y2r=x_height; bot y5l=-o; rt x5=.5[x4l,x6];
+x3=x4l; lft x1l=.5u; x3l-x1r=max(curve,1.5u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+z2=z1+whatever*dir60;
+y4-y5=y2-y3; rt x6l=w-1.75u; y6=bar_height;
+top y7=h+o; x7=x5;
+y8=2/3[x_height,h]; 1/4[x8,x6]=x7;
+y9=.35[x_height,bar_height]; x9=w-u;
+p0=z1r{up}..z2r..z3r..z4r..z5r..{up}z6r..{left}z7r..z8r..{z9-z3}z9r;
+p1=z9l{z3-z9}..z8l..{right}z7l..{down}z6l..z5l..z4l..z3l..z2l..{down}z1l;
+(tim0,tim1)=subpath(0,6) of p0 intersectiontimes subpath(0,1) of p1;
+(tim2-2,tim3-7)=subpath(2,infinity) of p1 intersectiontimes subpath(7,infinity) of p0;
+(tim4-2,tim5)=subpath (2,infinity) of p1 intersectiontimes subpath(0,1) of p1;
+tim6=xpart(p0 intersectiontimes subpath (0,1) of p1);
+tim7-7=ypart(subpath (0,6) of p0 intersectiontimes subpath(7,infinity) of p0);
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..{z9-z4}z9r..z9l{z4-z9}
+ ..subpath(rundy(p1,(tim4,hair)),infinity) of p1..cycle;
+infill subpath (rundy(p0,tim6),rundy(p0,tim7).zpet) of p0..cycle;
+p100=subpath(4,6) of p0;
+p101=subpath(2,4) of p1;
+z100=bsktouch(p100,up,p101,down);
+z101=bsktouch(p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--z8));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y7l+u+5)));
+tim102=xpart(p100 intersectiontimes (z101--z3));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y5l-u-5)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..reverse subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(100,101);
+endchar;
+
+iff known chars.greek_vartheta_SS:
+bskchar "The sans-serif Greek letter theta---alternative";
+beginchar(chars.greek_vartheta_SS,9u#,asc_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(vair,180); pos2(hair,0); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(curve,180); pos7(hair,-90);
+pos8(hair,-30); pos8'(hair,30); pos9(hair,90);
+top y2=x_height; bot y5l=-o; x5=.5[x3,x6];
+if boldmath:lft x4l=x3l; else: x4l=x3; fi;
+lft x1l=.5u; x3l-x1r=max(curve,1.5u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+x2l=x3l;
+y4-y5=y2-y3; rt x6l=w-1.75u; y6=bar_height;
+top y7=h+o; x7=x5;
+y8=2/3[x_height,h]; 1/4[x8,x6]=x7;
+y9=.35[x_height,bar_height]; x9=w-u;
+p0=z2r---z3r..z4r..z5r..{up}z6r..{left}z7r..z8r..{z9-z3}z9r;
+p1=z9l{z3-z9}..z8l..{right}z7l..{down}z6l..z5l..z4l..z3l---z2l;
+(tim0,tim1)=subpath(0,5) of p0 intersectiontimes subpath(0,1) of p1;
+(tim2-2,tim3-6)=subpath(2,infinity) of p1 intersectiontimes subpath(6,infinity) of p0;
+(tim4-2,tim5)=subpath (2,infinity) of p1 intersectiontimes subpath(0,1) of p1;
+tim6=xpart(p0 intersectiontimes subpath (0,1) of p1);
+tim7-6=ypart(subpath (0,5) of p0 intersectiontimes subpath(6,infinity) of p0);
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..{z9-z4}z9r..z9l{z4-z9}
+ ..subpath(rundy(p1,(tim4,hair)),infinity) of p1..cycle;
+infill subpath (rundy(p0,tim6),rundy(p0,tim7).zpet) of p0..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+iff known chars.greek_iota:
+bskchar "The Greek letter iota";
+beginchar(chars.greek_iota,6u#,x_height#,0); uni "0x03B9";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+path p[];
+pos1(stem,0); pos2(stem,0); pos2'(1.1stem,0);
+pos3(hair,90); pos4(hair,0);
+lft x1l=x2l=1.5u; top y1=h; y2=.5y4; y2'=bar_height; x2'l=.25[x1,x1l];
+rt x4r=w-u; top y4=.5bar_height; bot y3l=0; x3=.5[x4,x2];
+drop_serif(1,jut); x1b:=.5[x1a,x1l];
+p0=z2r..z2'r..z1r;
+filldraw z1r..{x1l-x1r,-.25serif_drop}z1.a&z1.a{z1b-z1a}..z1.b
+ ..z2'l..{-direction 0 of p0}z2l..z3l..{up}z4r..{down}z4l
+ ..z3r..p0&cycle;
+penlabels(1,2,2',3,4);
+math_fit(-x_height#*slant+u#,0);
+endchar;
+
+iff known chars.greek_iota_BB:
+bskchar "The blackboard-bold Greek letter iota";
+beginchar(chars.greek_iota_BB,6.5u#,x_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+path p[];
+pos1(.8cap_stem,0); pos2(.8cap_stem,0); pos2'(.9cap_stem,0);
+pos3(hair,90); pos4(hair,0);
+lft x1l=x2l=1.5u; top y1=h; y2=.5y4; y2'=bar_height; x2'l=.25[x1,x1l];
+rt x4r=w-u; top y4=.5bar_height; bot y3l=0; lft x3=.5[x4,x2];
+drop_serif(1,jut); x1b:=.5[x1a,x1l];
+p0=z2r..z2'r..z1r;
+filldraw z1r..{x1l-x1r,-.25serif_drop}z1.a&z1.a{z1b-z1a}..z1.b
+ ..z2'l..{-direction 0 of p0}z2l..z3l..{up}z4r..{down}z4l
+ ..z3r..p0&cycle;
+numeric tim[];
+p100=subpath(0,4) of (z1.a{z1b-z1a}..z1.b..z2'l..{-direction 0 of p0}z2l..z3l..{up}z4r);
+p101=subpath(1,infinity) of (z4l{down}..z3r..p0);
+z100=bsktouch(p100,up,p101,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y3l-2u-5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4)));
+oblu:=bbw;
+infill subpath(rundy(p100,0),rundy(p100,(tim100,.8bbw)).zpet) of p100
+ ..subpath(rundy(p101,(tim101,.8bbw)),rundy(p101,length(p101)).zpet) of p101
+ ..z1l+tiny*down..cycle;
+penlabels(1,2,2',3,4); labels(100);
+endchar;
+
+iff known chars.greek_iota_SS:
+bskchar "The sans-serif Greek letter iota";
+beginchar(chars.greek_iota_SS,6u#,x_height#,0); uni "non";
+adjust_fit(-.5u#,0);
+pickup tiny.nib;
+path p[];
+pos1(stem,0); pos2(stem,0); pos2'(1.1stem,0);
+pos3(hair,90); pos4(hair,0);
+lft x1l=x2l=1.5u; top y1=h; y2=.5y4; y2'=bar_height; x2'l=.25[x1,x1l];
+rt x4r=w-u; top y4=.5bar_height; bot y3l=0; x3=.5[x4,x2];
+drop_serif(1,jut);
+p0=z2r..z2'r..z1r;
+filldraw z1r{left}..{down}z1.b
+ ..z2'l..{-direction 0 of p0}z2l..z3l..{up}z4r..{down}z4l
+ ..z3r..p0&cycle;
+penlabels(1,2,2',3,4);
+endchar;
+
+iff known chars.greek_iota_turned:
+bskchar "The turned Greek letter iota";
+beginchar(chars.greek_iota_turned,6u#,x_height#,0); uni "0x2129";
+adjust_fit(serif_fit#,0);
+italcorr x_height#*slant;
+pickup tiny.nib;
+path p[];
+pos1(stem,180); pos2(stem,180); pos2'(1.1stem,180);
+pos3(hair,-90); pos4(hair,180);
+rt x1l=x2l=w-1.5u; bot y1=0; y2=.5(x_height+y4); y2'=x_height-bar_height; x2'l=.25[x1,x1l];
+lft x4r=u; bot y4=x_height-.5bar_height; top y3l=h; x3=.5[x4,x2];
+z1a=z1l+(jut,.5serif_drop); z1b=(x1l,y1a+.25serif_drop); x1b:=.5[x1a,x1l];
+p0=z2r..z2'r..z1r;
+filldraw z1r..{x1l-x1r,.25serif_drop}z1.a&z1.a{z1b-z1a}..z1.b..z2'l
+ ..{-direction 0 of p0}z2l..z3l..{down}z4r..{up}z4l..z3r..p0&cycle;
+penlabels(1,2,2',3,4); labels(1a,1b);
+math_fit(-bar_height#*slant,ic#-.75u#);
+endchar;
+
+iff known chars.greek_iota_turned_BB:
+bskchar "The blackboard-bold turned Greek letter iota";
+beginchar(chars.greek_iota_turned_BB,6u#,x_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+italcorr x_height#*slant;
+pickup tiny.nib;
+path p[];
+pos1(.8cap_stem,180); pos2(.8cap_stem,180); pos2'(.9cap_stem,180);
+pos3(hair,-90); pos4(hair,180);
+rt x1l=x2l=w-1.5u; bot y1=0; y2=.5(x_height+y4); y2'=x_height-bar_height; x2'l=.25[x1,x1l];
+lft x4r=u; bot y4=x_height-.5bar_height; top y3l=h; x3=.5[x4,x2];
+z1a=z1l+(jut,.5serif_drop); z1b=(x1l,y1a+.25serif_drop); x1b:=.5[x1a,x1l];
+p0=z2r..z2'r..z1r;
+filldraw z1r..{x1l-x1r,.25serif_drop}z1.a&z1.a{z1b-z1a}..z1.b..z2'l
+ ..{-direction 0 of p0}z2l..z3l..{down}z4r..{up}z4l..z3r..p0&cycle;
+numeric tim[];
+p100=subpath(0,4) of (z1.a{z1b-z1a}..z1.b..z2'l..{-direction 0 of p0}z2l..z3l..{down}z4r);
+p101=subpath(1,infinity) of (z4l{up}..z3r..p0);
+z100=bsktouch(p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y3l+2u+5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4)));
+oblu:=bbw;
+infill subpath(rundy(p100,0),rundy(p100,(tim100,.8bbw)).zpet) of p100
+ ..subpath(rundy(p101,(tim101,.8bbw)),rundy(p101,length(p101)).zpet) of p101
+ ..z1l+tiny*up..cycle;
+penlabels(1,2,2',3,4); labels(1a,1b,100);
+endchar;
+
+iff known chars.greek_iota_turned_SS:
+bskchar "The sans-serif turned Greek letter iota";
+beginchar(chars.greek_iota_turned_SS,6u#,x_height#,0); uni "non";
+adjust_fit(0,-.5u#);
+italcorr x_height#*slant;
+pickup tiny.nib;
+path p[];
+pos1(stem,180); pos2(stem,180); pos2'(1.1stem,180);
+pos3(hair,-90); pos4(hair,180);
+rt x1l=x2l=w-1.5u; bot y1=0; y2=.5(x_height+y4); y2'=x_height-bar_height; x2'l=.25[x1,x1l];
+lft x4r=u; bot y4=x_height-.5bar_height; top y3l=h; x3=.5[x4,x2];
+z1a=z1l+(jut,.5serif_drop); z1b=(x1l,y1a+.25serif_drop);
+p0=z2r..z2'r..z1r;
+filldraw z1r{right}..z1.b{up}..z2'l
+ ..{-direction 0 of p0}z2l..z3l..{down}z4r..{up}z4l..z3r..p0&cycle;
+penlabels(1,2,2',3,4); labels(1a,1b);
+endchar;
+
+iff known chars.greek_kappa:
+bskchar "The Greek letter kappa";
+beginchar(chars.greek_kappa,8.5u#,x_height#,0); uni "0x03BA";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(stem,0); pos2'(1.1stem,0);
+pos3(hair,-90); pos4(hair,-90); pos5(stem,0);
+lft x1l=lft x2l=1.5u; top y1=h; y2=.25bar_height; y2'=bar_height; x2'l=.25[x1,x1l];
+x4l=.5u; y4r=y3; bot y3l=0; x3=.5[x4,x2];
+bot y5=0; rt x5r=w-2u; serifs_br(5r); z5'b=z5r.b+(hair-currentbreadth)*right;
+drop_serif(1,jut); x1b:=.5[x1a,x1l];
+pos6(hair,90); top y6r=h+o; x7-x6=y6-y7;
+pos7(curve,0); z7'=z7+.2curve*down+o*left; z7''=z7+.5(curve-currentbreadth)*dir45;
+y7=h-stem; rt x7r=w-.75u;
+pos2''(.5[hair,stem],angle(z6l-z2'r)+90); z2''r=z2'r;
+pos6'(hair,180); y6'=y7; z6'=whatever[z6,z2''];
+p0=z2r..z2'r..z1r;
+p1=z2''l{right}..{up}z6'l..z6l{right}..z7l..z7'..z7r{up}..z7''..{left}z6r..{down}z6'r..{left}z2''r;
+p2=z2'l---diag_serif(5r,2'l)..z5r---z5r.a..{left}z5r.c
+ ..z5r.bb+(stem-currentbreadth)*right---z2'l+(stem-currentbreadth)*right;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw z1r..{x1l-x1r,-.25serif_drop}z1.a&z1.a{z1b-z1a}..z1.b
+ ..z2'l..{-direction 0 of p0}z2l..z3l..{z4-z3}z4l..{z3-z4}z4r..z3r
+ ..subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),rundy(p2,(length p2,curve)).zpet) of p2
+ ..subpath(rundy(p1,(0,curve)),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+penlabels(1,2,2',2'',3,4,5,6,6',7); labels(7',7'');
+endchar;
+
+iff known chars.greek_kappa_BB:
+bskchar "The blackboard-bold Greek letter kappa";
+beginchar(chars.greek_kappa_BB,9u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(.8cap_stem,0); pos2(.8cap_stem,0); pos2'(.9cap_stem,0);
+pos3(hair,-90); pos4(hair,-90); pos5(.8cap_stem,0);
+lft x1l=lft x2l=1.5u; top y1=h; y2=.25bar_height; y2'=bar_height; x2'l=.25[x1,x1l];
+x4l=.5u; y4r=y3; bot y3l=0; rt x3=.4[x4,x2];
+bot y5=0; rt x5r=w-2u; serifs_br(5r); z5'b=z5r.b+(hair-currentbreadth)*right;
+drop_serif(1,jut); x1b:=.5[x1a,x1l];
+pos6(hair,90); top y6r=h+o; x7-x6=y6-y7;
+pos7(curve,0); z7'=z7+.2curve*down+o*left; z7''=z7+.5(curve-currentbreadth)*dir45;
+y7=h-stem; rt x7r=w-.75u;
+pos2''(.5[hair,stem],angle(z6l-z2'r)+90); z2''r=z2'r;
+pos6'(hair,180); y6'=y7; z6'=whatever[z6,z2''];
+p0=z2r..z2'r..z1r;
+p1=z2''l{right}..{up}z6'l..z6l{right}..z7l..z7'..z7r{up}..z7''..{left}z6r..{down}z6'r..{left}z2''r;
+p2=z2'l---diag_serif(5r,2'l)..z5r---z5r.a..{left}z5r.c
+ ..z5r.bb+(.8cap_stem-currentbreadth)*right---z2'l+(.8cap_stem-currentbreadth)*right;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw z1r..{x1l-x1r,-.25serif_drop}z1.a&z1.a{z1b-z1a}..z1.b
+ ..z2'l..{-direction 0 of p0}z2l..z3l..{z4-z3}z4l..{z3-z4}z4r..z3r
+ ..subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),rundy(p2,(length p2,curve)).zpet) of p2
+ ..subpath(rundy(p1,(0,curve)),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+p100=subpath(0,4) of (z1.a{z1b-z1a}..z1.b..z2'l..{-direction 0 of p0}z2l..z3l..{z4-z3}z4l);
+p101=subpath(1,infinity) of (z4r{z3-z4}..z3r..p0);
+z100=bsktouch(p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y2')));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y3r-u-5)));
+oblu:=bbw;
+infill subpath(rundy(p100,0),rundy(p100,(tim100,.8bbw)).zpet) of p100
+ ..subpath(rundy(p101,(tim101,.8bbw)),rundy(p101,length(p101)).zpet) of p101
+ ..z1l+tiny*down..cycle;
+penlabels(1,2,2',2'',3,4,5,6,6',7); labels(7',7'',100);
+endchar;
+
+iff known chars.greek_kappa_SS:
+bskchar "The sans-serif Greek letter kappa";
+beginchar(chars.greek_kappa_SS,8u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(-.5u#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(stem,0); pos2'(1.1stem,0);
+pos3(stem,0); pos4(hair,-90); pos5(stem,0);
+lft x1l=lft x2l=1.5u; top y1=h; y2=.25bar_height; y2'=bar_height; x2'l=.25[x1,x1l];
+x4l=.5u; y4r=y3; bot y3l=0; x3r=x2;
+bot y5=0; rt x5r=w-u; serifs_br(5r); z5'b=z5r.b+(hair-currentbreadth)*right;
+drop_serif(1,jut);
+pos6(hair,120); top y7r=h+o; x6=.5[x7,x2];
+pos7(hair,120);
+rt x7r=w-.75u; z7=z6+whatever*dir30;
+pos2''(.5[hair,stem],angle(z6l-z2'r)+90); z2''r=z2'r;
+p0=z2r..z2'r..z1r;
+p1=z2''l{right}...z6l...z7l&z7l{dir30}..z7r&z7r...z6r...{left}z2''r;
+p3:=diag_serif(5r,2'l);
+p2=z2'l---z5r
+ ..z5r.bb+(stem-currentbreadth)*right---z2'l+(stem-currentbreadth)*right;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw z1r{left}..{down}z1.b
+ ..z2'l..{-direction 0 of p0}z2l...z3l..z3r
+ ...subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),rundy(p2,(length p2,curve)).zpet) of p2
+ ..subpath(rundy(p1,(0,curve)),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+penlabels(1,2,2',2'',3,4,5,6,7);
+endchar;
+
+iff known chars.greek_varkappa:
+bskchar "The Greek letter kappa---alternative";
+beginchar(chars.greek_varkappa,12u#,x_height#,0); uni "0x03F0";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], theta; path p[]; oblu:=2oblu;
+x1=2u+.5stem; x2=w-2u-.5stem; bot y1=.4stem; top y2=h+o-.5stem;
+lft bot z1'r=(u,0); rt top z2'l=(w-u,h);
+theta:=angle(z2-z1);
+pos1(.8stem,theta-90); pos2(stem,theta-90);
+pos1'(stem,-90); pos2'(stem,-90);
+pos3(hair,theta-90); pos4(curve,75); pos5(hair,theta+90);
+pos6(hair,theta-90); pos7(curve,105); pos8(hair,theta+90);
+z3r=z1l; top y4r=h+o; x4=2u; lft x5r=u; y4-y5=1.2(x4-x5);
+z6l=z2r; bot y7l=-o; x7=w-x4; rt x8l=w-u; y8-y7=1.2(x8-x7);
+p0:=z1'l..z1l{dir(theta+10)}..{dir(theta-10)}z2l..z2'l..z2'r..z2r{dir(theta+170)}..{dir(theta+190)}z1r..z1'r..cycle;
+p1:=z3l{dir(theta+10)}..z4l{left}..{down}z5l--z5r{up}..z4r{right}..{dir(theta+180)}z3r;
+p2:=z6r{dir(theta+190)}..{right}z7r..{up}z8r..{down}z8l..z7l{left}..{dir(theta)}z6l;
+z10=bsktouch(subpath(3,infinity) of p1,right,p0,up);
+z11=bsktouch(subpath(5,infinity) of p0,right,subpath(1,infinity) of p2,up);
+tim0=xpart(subpath(0,2) of p0 intersectiontimes (z10--(x10,0)));
+tim1-1=xpart(subpath(1,infinity) of p1 intersectiontimes (z10--(0,y10)));
+tim2-1=xpart(subpath(1,infinity) of p2 intersectiontimes (z11--(w,bar_height)));
+tim3-5=xpart(subpath(5,infinity) of p0 intersectiontimes (z11--(x11,h)));
+filldraw subpath(rundy(p1,0),rundy(p1,tim1).zpet) of p1
+ ..subpath(rundy(p0,tim0),rundy(p0,5).zpet) of p0
+ ..subpath(rundy(p2,0),rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p0,tim3),length p0) of p0..cycle;
+penlabels(1,1',2,2',3,4,5,6,7,8); labels(10,11,12,13);
+math_fit(-.5u#,0);
+endchar;
+
+iff known chars.greek_varkappa_BB:
+bskchar "The blackboard-bold Greek letter kappa---alternative";
+beginchar(chars.greek_varkappa_BB,12u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], theta; path p[]; oblu:=2oblu;
+x1=2u+.4cap_stem; x2=w-2u-.4cap_stem; bot y1=.4cap_stem; top y2=h+o-.4cap_stem;
+lft bot z1'r=(u,0); rt top z2'l=(w-u,h);
+theta:=angle(z2-z1);
+pos1(.8cap_stem,theta-90); pos2(.8cap_stem,theta-90);
+pos1'(.8cap_stem,-90); pos2'(.8cap_stem,-90);
+pos3(hair,theta-90); pos4(curve,75); pos5(hair,theta+90);
+pos6(hair,theta-90); pos7(curve,105); pos8(hair,theta+90);
+z3r=z1l; top y4r=h+o; x4=2u; lft x5r=u; y4-y5=1.2(x4-x5);
+z6l=z2r; bot y7l=-o; x7=w-x4; rt x8l=w-u; y8-y7=1.2(x8-x7);
+p0:=z1'l..z1l{dir(theta+10)}..{dir(theta-10)}z2l..z2'l..z2'r..z2r{dir(theta+170)}..{dir(theta+190)}z1r..z1'r..cycle;
+p1:=z3l{dir(theta+10)}..z4l{left}..{down}z5l--z5r{up}..z4r{right}..{dir(theta+180)}z3r;
+p2:=z6r{dir(theta+190)}..{right}z7r..{up}z8r..{down}z8l..z7l{left}..{dir(theta)}z6l;
+z10=bsktouch(subpath(3,infinity) of p1,right,p0,up);
+z11=bsktouch(subpath(5,infinity) of p0,right,subpath(1,infinity) of p2,up);
+tim0=xpart(subpath(0,2) of p0 intersectiontimes (z10--(x10,0)));
+tim1-1=xpart(subpath(1,infinity) of p1 intersectiontimes (z10--(0,y10)));
+tim2-1=xpart(subpath(1,infinity) of p2 intersectiontimes (z11--(w,bar_height)));
+tim3-5=xpart(subpath(5,infinity) of p0 intersectiontimes (z11--(x11,h)));
+filldraw subpath(rundy(p1,0),rundy(p1,tim1).zpet) of p1
+ ..subpath(rundy(p0,tim0),rundy(p0,5).zpet) of p0
+ ..subpath(rundy(p2,0),rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p0,tim3),length p0) of p0..cycle;
+penlabels(1,1',2,2',3,4,5,6,7,8); labels(10,11,12,13);
+infill subpath(rundy(p0,0),rundy(p0,4).zpet) of p0
+ ..subpath(rundy(p0,5),rundy(p0,length p0).zpet) of p0..cycle;
+endchar;
+
+iff known chars.greek_varkappa_SS:
+bskchar "The sans-serif Greek letter kappa---alternative";
+beginchar(chars.greek_varkappa_SS,11u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[], theta; path p[]; oblu:=2oblu;
+x1=2u+.5stem; x2=w-2u-.5stem; bot y1=.4stem; top y2=h+o-.5stem;
+lft bot z1'r=(u,0); rt top z2'l=(w-u,h);
+theta:=angle(z2-z1);
+pos1(.8stem,theta-90); pos2(stem,theta-90);
+pos1'(stem,-90); pos2'(stem,-90);
+pos3(hair,theta-90); pos4(curve,0); pos5(hair,theta+90);
+pos6(hair,theta-90); pos7(curve,0); pos8(hair,theta+90);
+z3r=z1l; top y4r=h; x4=2u; lft x5r=u; y4-y5=1.2(x4-x5);
+z6l=z2r; bot y7l=0; x7=w-x4; rt x8l=w-u; y8-y7=1.2(x8-x7);
+p0:=z1'l..z1l{dir(theta+10)}..{dir(theta-10)}z2l..z2'l..z2'r..z2r{dir(theta+170)}..{dir(theta+190)}z1r..z1'r..cycle;
+p1:=z3l{dir(theta+10)}..{up}z4l..z4r{down}..{dir(theta+180)}z3r;
+p2:=z6r{dir(theta+190)}..{down}z7r..{up}z7l..{dir(theta)}z6l;
+z10=bsktouch(subpath(2,infinity) of p1,right,p0,up);
+z11=bsktouch(subpath(5,infinity) of p0,right,subpath(1,infinity) of p2,up);
+tim0=xpart(subpath(0,2) of p0 intersectiontimes (z10--(x10,0)));
+tim1-1=xpart(subpath(1,infinity) of p1 intersectiontimes (z10--(0,y10)));
+tim2-1=xpart(subpath(1,infinity) of p2 intersectiontimes (z11--(w,bar_height)));
+tim3-5=xpart(subpath(5,infinity) of p0 intersectiontimes (z11--(x11,h)));
+filldraw subpath(rundy(p1,0),rundy(p1,tim1).zpet) of p1
+ ..subpath(rundy(p0,tim0),rundy(p0,5).zpet) of p0
+ ..subpath(rundy(p2,0),rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p0,tim3),length p0) of p0..cycle;
+penlabels(1,1',2,2',3,4,5,6,7,8); labels(10,11,12,13);
+endchar;
+
+iff known chars.greek_lambda:
+bskchar "The Greek letter lambda";
+beginchar(chars.greek_lambda,10u#,asc_height#,0); uni "0x03BB";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], thstem; path p[]; oblu:=2oblu;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(hair,90); pos5(hair+o,90);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+bot y1'=0; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h+o;
+lft x5=o; y5r=y4r; x4=.5x2l;
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+p0=z2l---z1l..z1'..{right}z3l..{left}z3r..z1r---z2r..z4r---z5r..z5l---z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(1',5',5'');
+endchar;
+
+iff known chars.greek_lambda_BB:
+bskchar "The blackboard-bold Greek letter lambda";
+beginchar(chars.greek_lambda_BB,10u#,asc_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], thstem; path p[]; oblu:=2oblu;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=.8cap_stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(hair,90); pos5(hair+o,90);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+bot y1'=0; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h+o;
+lft x5=o; y5r=y4r; x4=.5x2l;
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+p0=z2l---z1l..z1'..{right}z3l..{left}z3r..z1r---z2r..z4r---z5r..z5l---z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0..cycle;
+p100=z3r{left}..z1r---z2r..z4r---z5r;
+p101=z5l---z4l..z2l---z1l..z1'..{right}z3l;
+z100=bsktouch(subpath(0,2) of p100,down,p101,up);
+z101=bsktouch(p100,down,subpath(1,2) of p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y3l-5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y4r+5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(1',5',5'',100,101);
+endchar;
+
+iff known chars.greek_lambda_SS:
+bskchar "The sans-serif Greek letter lambda";
+beginchar(chars.greek_lambda_SS,10u#,asc_height#,0); uni "non";
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[], thstem; path p[]; oblu:=2oblu;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(thstem,0); pos5(hair+o,90);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+bot y1'=-o; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h;
+lft x5=o; y5r=y4r; z4r=whatever[z2r,z1r];
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+p0=z2l---z1l...z1'...z1r---z4r..z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0---cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(1',5',5'');
+endchar;
+
+iff known chars.greek_lambda_bar:
+bskchar "The Greek letter lambda with bar";
+beginchar(chars.greek_lambda_bar,10u#,asc_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], thstem; path p[]; oblu:=2oblu; oblu.light:=f_obl;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(hair,90); pos5(hair+o,90);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+pos9(bar,90); pos10(bar,90);
+bot y1'=0; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h+o;
+lft x5=o; y5r=y4r; x4=.5x2l;
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+x10-x9=5u; y10=y9=.5[x_height,y2]; .5[z9,z10]=whatever[z1,z2];
+y9'r=y10'r=y9r; y9'l=y10'l=y9l;
+z9'l=whatever[z2l,z1l]; z9'r=whatever[z2l,z1l];
+z10'l=whatever[z2r,z1r]; z10'r=whatever[z2r,z1r];
+bskpoints(9,10,hair,hair);
+p0=z2l---obl(9'r,2l,9r)---z9rr..z9l---obl(9'l,9l,1l)---z1l..z1'..{right}z3l..{left}z3r
+ ..z1r---obl(10'l,1r,10l)---z10ll..z10r---obl(10'r,10r,2r).light
+ ---z2r..z4r---z5r..z5l---z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,9',10,10'); labels(1',5',5'',9rr,10ll);
+endchar;
+
+iff known chars.greek_lambda_slash:
+bskchar "The Greek letter lambda with slash";
+beginchar(chars.greek_lambda_slash,10u#,asc_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], thstem, theta; path p[]; oblu:=2oblu; oblu.light:=f_obl;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(hair,90); pos5(hair+o,90);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+bot y1'=0; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h+o;
+lft x5=o; y5r=y4r; x4=.5x2l;
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+x10-x9=4.5u; y10-y9=stem; y9=.5[x_height,y2]; .5[z9,z10]=whatever[z1,z2];
+theta:=angle(z10-z9)+90;
+pos9(bar,theta); pos10(bar,theta);
+z9'l=whatever[z9l,z10l]=whatever[z2l,z1l]; z9'r=whatever[z9r,z10r]=whatever[z2l,z1l];
+z10'l=whatever[z9l,z10l]=whatever[z2r,z1r]; z10'r=whatever[z9r,z10r]=whatever[z2r,z1r];
+bskpoints(9,10,hair,hair);
+p0=z2l---obl(9'r,2l,9r)---z9rr..z9l---obl(9'l,9l,1l)---z1l..z1'..{right}z3l..{left}z3r
+ ..z1r---obl(10'l,1r,10l)---z10ll..z10r---obl(10'r,10r,2r).light
+ ---z2r..z4r---z5r..z5l---z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,9',10,10'); labels(1',5',5'',9rr,10ll);
+endchar;
+
+iff known chars.greek_lambda_curved:
+bskchar "The Greek letter lambda (curved version)";
+beginchar(chars.greek_lambda_curved,10u#,asc_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], thstem; path p[]; oblu:=2oblu;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(hair,90); pos5(stem,180);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+bot y1'=0; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h+o;
+lft x5r=0; y5=y4-curve; x4=.5[x2l,x5r];
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+z5'=z5+.2curve*up+o*right; z5''=z5+.5(curve-currentbreadth)*dir225;
+p0=z2l---z1l..z1'..{right}z3l..{left}z3r..z1r---z2r..{left}z4r..z5r..z5''..z5l..z5'..{right}z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(1',5',5'');
+endchar;
+
+iff known chars.greek_lambda_curved_bar:
+bskchar "The Greek letter lambda with bar (curved version)";
+beginchar(chars.greek_lambda_curved_bar,10u#,asc_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], thstem; path p[]; oblu:=2oblu; oblu.light:=f_obl;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(hair,90); pos5(stem,180);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+pos9(bar,90); pos10(bar,90);
+bot y1'=0; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h+o;
+lft x5r=0; y5=y4-curve; x4=.5[x2l,x5r];
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+z5'=z5+.2curve*up+o*right; z5''=z5+.5(curve-currentbreadth)*dir225;
+x10-x9=5u; y10=y9=.5[x_height,y2]; .5[z9,z10]=whatever[z1,z2];
+y9'r=y10'r=y9r; y9'l=y10'l=y9l;
+z9'l=whatever[z2l,z1l]; z9'r=whatever[z2l,z1l];
+z10'l=whatever[z2r,z1r]; z10'r=whatever[z2r,z1r];
+bskpoints(9,10,hair,hair);
+p0=z2l---obl(9'r,2l,9r)---z9rr..z9l---obl(9'l,9l,1l)---z1l..z1'..{right}z3l..{left}z3r
+ ..z1r---obl(10'l,1r,10l)---z10ll..z10r---obl(10'r,10r,2r).light
+ ---z2r..{left}z4r..z5r..z5''..z5l..z5'..{right}z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(1',5',5'');
+endchar;
+
+iff known chars.greek_lambda_curved_slash:
+bskchar "The Greek letter lambda with slash (curved version)";
+beginchar(chars.greek_lambda_curved_slash,10u#,asc_height#,0); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[], thstem; path p[]; oblu:=2oblu; oblu.light:=f_obl;
+x1r=w-1.5u; y1r=curve; x2l=2.5u; top y2l=h-curve;
+thstem:=stem/sind(angle(z2l-z1r));
+pos1(thstem,0); pos2(thstem,0);
+pos3(hair,90); pos4(hair,90); pos5(stem,180);
+pos6(hair,0); pos7(stem,0); pos8(curve,-10);
+bot y1'=0; z1'=whatever[z2l,z1l]+.5(x1-x1l)*right;
+bot y3l=-o; x3=w; top y4r=h+o;
+lft x5r=0; y5=y4-curve; x4=.5[x2l,x5r];
+y6=x_height; z6r=whatever[z1r,z2r];
+y7=curve; bot y8r=0; lft x7l=u; lft x8l=u;
+x10-x9=4.5u; y10-y9=stem; y9=.5[x_height,y2]; .5[z9,z10]=whatever[z1,z2];
+theta:=angle(z10-z9)+90;
+pos9(bar,theta); pos10(bar,theta);
+z9'l=whatever[z9l,z10l]=whatever[z2l,z1l]; z9'r=whatever[z9r,z10r]=whatever[z2l,z1l];
+z10'l=whatever[z9l,z10l]=whatever[z2r,z1r]; z10'r=whatever[z9r,z10r]=whatever[z2r,z1r];
+bskpoints(9,10,hair,hair);
+z5'=z5+.2curve*up+o*right; z5''=z5+.5(curve-currentbreadth)*dir225;
+p0=z2l---obl(9'r,2l,9r)---z9rr..z9l---obl(9'l,9l,1l)---z1l..z1'..{right}z3l..{left}z3r
+ ..z1r---obl(10'l,1r,10l)---z10ll..z10r---obl(10'r,10r,2r).light
+ ---z2r..{left}z4r..z5r..z5''..z5l..z5'..{right}z4l;
+p1=z6l{dir225}..{down}z7l---z8l..z8r---z7r{up}..{dir45}z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath(1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0..cycle;
+penlabels(0,1,2,3,4,5,6,7,8); labels(1',5',5'');
+endchar;
+
+iff known chars.greek_mu:
+bskchar "The Greek letter mu";
+beginchar(chars.greek_mu,10.5u#,x_height#,desc_depth#); uni "0x03BC";
+italcorr x_height#*slant-.75u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2hair;
+pos1(stem,0); pos2(stem,0); pos2'(stem,0);
+pos3(stem,0);
+pos6(hair,0); pos7(hair,90); pos8(hair,180); pos9(stem,180);
+pos10(stem,0); pos11(stem,0); pos12(hair,90); pos13(.5[stem,hair],90);
+lft x1l=lft x2l=1.5u; top y1=h; y2=0;
+x3l=if slant=0: x2l else: x2 fi; bot y3=-d+o;
+rt x10r=w-2u; y6=y8=bar_height; bot y7l=-o; x7=.5w;
+x6=x2; top y9=h; x9=x10;
+z8r=z10l; x11=x10; y11=curve; rt x13=w-.5u; bot y12l=bot bot y13l=-o; x12=.5[x13,x10];
+bskpoints(9,10,hair,hair); bskpoints(3,1,hair,hair);
+p0=z1r..z1l---z3l..z3rr---z1r;
+p1=z12l{right}..z13l..z13r..{left}z12r..z11r---z9l..{down}z9rr---z10l..z7r..{up}z6r;
+p2=z6l{down}..z7l..{up}z8l;
+p3=z10l{down}..z11l..{right}z12l;
+z0=bsktouch(subpath(2,infinity) of p0,right,p2,down);
+tim0-2=xpart(subpath(2,infinity) of p0 intersectiontimes (z0--(0,x0)));
+tim1=xpart(p2 intersectiontimes (z0--(x0,h)));
+z14=bsktouch(p2,down,p3,left);
+tim2=xpart(p2 intersectiontimes (z14--(x14,h)));
+tim3=xpart(p3 intersectiontimes (z14--(w,y14)));
+(tim4,tim5-2)=p1 intersectiontimes subpath(2,infinity) of p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p3,tim3),infinity) of p3
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+penlabels(1,2,3,6,7,8,9,10,11,12,13); labels(0,9rr,3rr,14);
+endchar;
+
+iff known chars.greek_mu_BB:
+bskchar "The blackboard-bold Greek letter mu";
+beginchar(chars.greek_mu_BB,10.75u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant-.75u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2hair;
+pos1(.8cap_stem,0); pos2(.8cap_stem,0); pos2'(.8cap_stem,0);
+pos3(.8cap_stem,0);
+pos6(hair,0); pos7(hair,90); pos8(hair,180); pos9(.8cap_stem,180);
+pos10(.8cap_stem,0); pos11(.8cap_stem,0); pos12(hair,90); pos13(.5[stem,hair],90);
+lft x1l=lft x2l=1.5u; top y1=h; y2=0;
+x3l=if slant=0: x2l else: x2 fi; bot y3=-d+o;
+rt x10r=w-2u; y6=y8=bar_height; bot y7l=-o; x7=.5w;
+x6=x2; top y9=h; x9=x10;
+z8r=z10l; x11=x10; y11=curve; rt x13=w-.5u; bot y12l=bot bot y13l=-o; x12=.5[x13,x10];
+bskpoints(9,10,hair,hair); bskpoints(3,1,hair,hair);
+p0=z1r..z1l---z3l..z3rr---z1r;
+p1=z12l{right}..z13l..z13r..{left}z12r..z11r---z9l..{down}z9rr---z10l..z7r..{up}z6r;
+p2=z6l{down}..z7l..{up}z8l;
+p3=z10l{down}..z11l..{right}z12l;
+z0=bsktouch(subpath(2,infinity) of p0,right,p2,down);
+tim0-2=xpart(subpath(2,infinity) of p0 intersectiontimes (z0--(0,x0)));
+tim1=xpart(p2 intersectiontimes (z0--(x0,h)));
+z14=bsktouch(p2,down,p3,left);
+tim2=xpart(p2 intersectiontimes (z14--(x14,h)));
+tim3=xpart(p3 intersectiontimes (z14--(w,y14)));
+(tim4,tim5-2)=p1 intersectiontimes subpath(2,infinity) of p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p3,tim3),infinity) of p3
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+p100=subpath(3,5) of p1;
+p101=z9rr---z10l---z11l..{right}z12l;
+z100=bsktouch(p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(w,y100)));
+tim101=xpart(p101 intersectiontimes (z100--(0,y100)));
+oblu:=f_obl;
+infill subpath(rundy(p101,0),rundy(p101,tim101).zpet) of p101
+ ..subpath(rundy(p100,tim100),rundy(p100, length p100).zpet) of p100..cycle;
+infill subpath(rundy(p0,1),rundy(p0,2).zpet) of p0
+ ..subpath(rundy(p0,3),rundy(p0,4).zpet) of p0..cycle;
+penlabels(1,2,3,6,7,8,9,10,11,12,13); labels(0,9rr,3rr,14,100);
+endchar;
+
+iff known chars.greek_mu_SS:
+bskchar "The sans-serif Greek letter mu";
+beginchar(chars.greek_mu_SS,10.5u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant-.75u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2hair;
+pos1(stem,0); pos2(stem,0); pos2'(stem,0);
+pos3(stem,0);
+pos6(hair,0); pos7(hair,90); pos8(hair,180); pos9(stem,180);
+pos10(stem,0); pos11(stem,0); pos12(hair,90); pos13(.5[stem,hair],90);
+lft x1l=lft x2l=1.5u; top y1=h; y2=0;
+x3l=if slant=0: x2l else: x2 fi; bot y3=-d+o;
+rt x10r=w-2u; y6=y8=bar_height; bot y7l=-o; x7=.5w;
+x6=x2; top y9=h; x9=x10;
+z8r=z10l; x11=x10; y11=curve; rt x13=w-.5u; bot y12l=bot bot y13l=-o; x12=.5[x13,x10];
+bskpoints(9,10,hair,hair); bskpoints(3,1,hair,hair);
+p0=z1r..z1l---z3l..z3rr---z1r;
+p1=z12l{right}..z13l..z13r..{left}z12r..z11r---z9l..{down}z9rr---z10l..z7r..{up}z6r;
+p2=z6l{down}..z7l..{up}z8l;
+p3=z10l{down}..z11l..{right}z12l;
+z0=bsktouch(subpath(2,infinity) of p0,right,p2,down);
+tim0-2=xpart(subpath(2,infinity) of p0 intersectiontimes (z0--(0,x0)));
+tim1=xpart(p2 intersectiontimes (z0--(x0,h)));
+z14=bsktouch(p2,down,p3,left);
+tim2=xpart(p2 intersectiontimes (z14--(x14,h)));
+tim3=xpart(p3 intersectiontimes (z14--(w,y14)));
+(tim4,tim5-2)=p1 intersectiontimes subpath(2,infinity) of p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),1) of p2
+ ..subpath(rundy(p1,4),rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+penlabels(1,2,3,6,7,8,9,10,11,12,13); labels(0,9rr,3rr,14);
+endchar;
+
+iff known chars.greek_mu_curved:
+bskchar "The Greek letter mu (curved version)";
+beginchar(chars.greek_mu_curved,11u#,x_height#,desc_depth#); uni "non";
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2hair;
+pos1(stem,0); pos2(stem,0); pos2'(1.1stem,0);
+pos3(stem,0); pos4(hair,90); pos5(stem,70);
+pos6(hair,0); pos7(hair,90); pos8(hair,180); pos9(curve,180);
+pos10(stem,0); pos11(stem,0); pos12(hair,90); pos13(.5[stem,hair],90);
+lft x1l=x2l=1.5u; top y1=h; y2=0; y2'=bar_height; x2'l=.25[x1,x1l];
+x3=x2; y3=-d+1.5curve; bot y4l=-d; x4-x3r=y3-y4; y5l=y4; x5-x4=stem;
+drop_serif(1,jut); x1b:=.5[x1a,x1l];
+rt x10r=w-2u; y6=y8=bar_height; bot y7l=-o; x7=.5w;
+x6=x2; top y9''=x_height+o; x9-x8=.35(y8-y9);
+z9'=z9+.2curve*down+o*left; z9''=z9+.5(curve-currentbreadth)*dir135;
+z8l=z10l; x11r=x10; y11=curve; rt x13=w-.5u; bot y12l=bot bot y13l=-o; x12=.5[x13,x10];
+p0=z1r..{x1l-x1r,-.25serif_drop}z1.a&z1.a{z1b-z1a}..z1.b..z2'l
+ ..z2l..z3l..{right}z4l..z5l..z5r..z4r{left}..z3r..z2r..z2'r..z1r;
+p1=z12l{right}..z13l..z13r..{left}z12r..z11r..z10r..z9l..{down}z9r..z9'..{down}z8r..z7r..{up}z6r;
+p2=z6l{down}..z7l..{up}z8l;
+p3=z10l{down}..z11l..{right}z12l;
+z0=bsktouch(subpath(5,infinity) of p0,right,p2,down);
+tim0-5=xpart(subpath(5,infinity) of p0 intersectiontimes (z0--(0,x0)));
+tim1=xpart(p2 intersectiontimes (z0--(x0,h)));
+z14=bsktouch(p2,down,p3,left);
+tim2=xpart(p2 intersectiontimes (z14--(x14,h)));
+tim3=xpart(p3 intersectiontimes (z14--(w,y14)));
+(tim4,tim5-5)=p1 intersectiontimes subpath(5,infinity) of p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p3,tim3),infinity) of p3
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+penlabels(1,2,2',3,4,5,6,7,8,9,10,11,12,13); labels(0,9',9'',14);
+endchar;
+
+iff known chars.greek_nu:
+bskchar "The Greek letter nu";
+beginchar(chars.greek_nu,8.5u#,x_height#,0); uni "0x03BD";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(stem,0); pos2'(1.1stem,0);
+pos3(stem,-10);
+lft x1l=lft x2l=1.5u; top y1=h; bot y2=0; y2'=bar_height; x2'l=.25[x1,x1l];
+rt x3r=w-u; top y3l=h;
+drop_serif(1,jut); x1b:=.5[x1a,x1l];
+p0=z2r..z2'r..z1r;
+tim0=xpart(p0 intersectiontimes ((0,y2r+hair-currentbreadth)--(w,y2r+hair-currentbreadth)));
+p1=z3l{down}..point tim0 of p0;
+filldraw z2r..{up}z3r..subpath(0,rundy(p1,1).zpet) of p1
+ ..subpath(rundy(p0,tim0),infinity) of p0&z1r..{x1l-x1r,-.25serif_drop}z1.a
+ &z1.a{z1b-z1a}..z1.b..z2'l..{-direction 0 of p0}z2l--cycle;
+penlabels(1,2,2',3);
+math_fit(-x_height#*slant+u#,-u#);
+endchar;
+
+iff known chars.greek_nu_BB:
+bskchar "The blackboard-bold Greek letter nu";
+beginchar(chars.greek_nu_BB,9u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(.8cap_stem,0); pos2(.8cap_stem,0); pos2'(.9cap_stem,0);
+pos3(stem,-10);
+lft x1l=lft x2l=1.5u; top y1=h; bot y2=0; y2'=bar_height; x2'l=.25[x1,x1l];
+rt x3r=w-u; top y3l=h;
+drop_serif(1,jut); x1b:=.5[x1a,x1l];
+p0=z2r..z2'r..z1r;
+tim0=xpart(p0 intersectiontimes ((0,y2r+hair-currentbreadth)--(w,y2r+hair-currentbreadth)));
+p1=z3l{down}..point tim0 of p0;
+filldraw z2r..{up}z3r..subpath(0,rundy(p1,1).zpet) of p1
+ ..subpath(rundy(p0,tim0),infinity) of p0&z1r..{x1l-x1r,-.25serif_drop}z1.a
+ &z1.a{z1b-z1a}..z1.b..z2'l..{-direction 0 of p0}z2l--cycle;
+p100=z1.a{z1b-z1a}..z1.b..z2'l..{-direction 0 of p0}z2l;
+p101=p0;
+oblu:=bbw;
+infill subpath(rundy(p100,0),rundy(p100,(infinity,.8bbw)).zpet) of p100
+ ..subpath(rundy(p101,(0,.8bbw)),rundy(p101,length(p101)).zpet) of p101
+ ..z1l+tiny*down..cycle;
+penlabels(1,2,2',3);
+endchar;
+
+iff known chars.greek_nu_SS:
+bskchar "The sans-serif Greek letter nu";
+beginchar(chars.greek_nu_SS,8.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(-.5u#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,0); pos2(stem,0); pos2'(1.1stem,0);
+pos3(stem,-10);
+lft x1l=lft x2l=1.5u; top y1=h; bot y2=0; y2'=bar_height; x2'l=.25[x1,x1l];
+rt x3r=w-u; top y3l=h;
+drop_serif(1,jut);
+p0=z2r..z2'r..z1r;
+tim0=xpart(p0 intersectiontimes ((0,y2r+hair-currentbreadth)--(w,y2r+hair-currentbreadth)));
+p1=z3l{down}..point tim0 of p0;
+filldraw z2r..{up}z3r..subpath(0,rundy(p1,1).zpet) of p1
+ ..subpath(rundy(p0,tim0),infinity) of p0&z1r{left}..{down}z1.b..z2'l..{-direction 0 of p0}z2l--cycle;
+penlabels(1,2,2',3);
+endchar;
+
+iff known chars.greek_xi:
+bskchar "The Greek letter xi";
+beginchar(chars.greek_xi,9u#,asc_height#,.5desc_depth#); uni "0x03BE";
+italcorr asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,90); pos2(stem,180); pos0(hair,0); pos7(stem,180);
+pos3(curve,240); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+pos8(hair,-90); pos9(hair,90); pos10(hair,0); pos11(hair,-90);
+pos12(hair,180);
+lft x2r=u; top y1r=.35[x_height,bar_height]; y2=.5x_height; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-2u; y0=y1-stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5+.5stem; lft x7r=1.5u; y7=.35[y1,y9];
+x8=.25[x1,x0]; .25[y8,y1]=y0; top y9r=h-.75stem; x10-x9=x0-x1;
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+rt x10r=w-u; y10=y9-.5stem; y10=.5[y11,y9]; x11=.5[x9,x10];
+top y12=h; x12=x9-stem;
+p0=z12r..z11r..z10r..z9r..z7r{down}..z8r..{up}z0r..z1r..z2r..z3r..z4r..z5r..z6''..z6'..z6l;
+p1=z6l..z5l..z4l..z3l..z2l..z1l..{down}z0l..z8l..{up}z7l..z9l..z10l..z11l..z12l;
+(tim0,tim1-5)=p0 intersectiontimes subpath(5,infinity) of p0;
+(tim2,tim3-4)=p1 intersectiontimes subpath (4,5) of p0;
+(tim4-5,tim5-7)=subpath(5,infinity) of p0 intersectiontimes subpath(7,infinity) of p1;
+(tim6-7,tim7)=subpath(7,infinity) of p1 intersectiontimes subpath(0,6) of p1;
+(tim8,tim9-1)=p0 intersectiontimes subpath(1,infinity) of p0;
+(tim10,tim11)=p1 intersectiontimes subpath(0,1) of p0;
+(tim12-2,tim13)=subpath(2,4) of p0 intersectiontimes p1;
+(tim14-8,tim15-11)=subpath(8,10) of p1 intersectiontimes subpath(11,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim8).zpet) of p0..subpath(rundy(p0,tim9),rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,hair)),rundy(p1,tim10).zpet) of p1
+ ..subpath(rundy(p0,tim11),rundy(p0,(tim12,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim13,hair)),infinity) of p1..cycle;
+infill subpath(rundy(p1,tim7),rundy(p1,tim6).zpet) of p1..cycle;
+infill subpath(rundy(p1,tim14),rundy(p1,tim15).zpet) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); labels(0',0'',6',6'');
+math_fit(mft,0);
+endchar;
+
+iff known chars.greek_xi_BB:
+bskchar "The blackboard-bold Greek letter xi";
+beginchar(chars.greek_xi_BB,9u#,asc_height#,.5desc_depth#); uni "non";
+italcorr asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,90); pos2(.8cap_stem,180); pos0(hair,0); pos7(.8cap_stem,180);
+pos3(cap_stem,240); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+pos8(hair,-90); pos9(hair,90); pos10(hair,0); pos11(hair,-90);
+pos12(hair,180);
+lft x2r=u; top y1r=.35[x_height,bar_height]; y2=.5x_height; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-2u; y0=y1-stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5+.5stem; lft x7r=1.5u; y7=.35[y1,y9];
+x8=.25[x1,x0]; .25[y8,y1]=y0; top y9r=h-.75stem; x10-x9=x0-x1;
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+rt x10r=w-u; y10=y9-.5stem; y10=.5[y11,y9]; x11=.5[x9,x10];
+top y12=h; x12=x9-stem;
+p0=z12r..z11r..z10r..z9r..z7r{down}..z8r..{up}z0r..z1r..z2r..z3r..z4r..z5r..z6''..z6'..z6l;
+p1=z6l..z5l..z4l..z3l..z2l..z1l..{down}z0l..z8l..{up}z7l..z9l..z10l..z11l..z12l;
+(tim0,tim1-5)=p0 intersectiontimes subpath(5,infinity) of p0;
+(tim2,tim3-4)=p1 intersectiontimes subpath (4,5) of p0;
+(tim4-5,tim5-7)=subpath(5,infinity) of p0 intersectiontimes subpath(7,infinity) of p1;
+(tim6-7,tim7)=subpath(7,infinity) of p1 intersectiontimes subpath(0,6) of p1;
+(tim8,tim9-1)=p0 intersectiontimes subpath(1,infinity) of p0;
+(tim10,tim11)=p1 intersectiontimes subpath(0,1) of p0;
+(tim12-2,tim13-11)=subpath(2,4) of p0 intersectiontimes subpath(11,infinity) of p1;
+(tim14-8,tim15-11)=subpath(8,10) of p1 intersectiontimes subpath(11,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim8).zpet) of p0
+ ..subpath(rundy(p0,tim9),rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,hair)),rundy(p1,tim10).zpet) of p1
+ ..subpath(rundy(p0,tim11),rundy(p0,(tim12,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim13,hair)),infinity) of p1..cycle;
+infill subpath(rundy(p1,tim7),rundy(p1,tim6).zpet) of p1..cycle;
+infill subpath(rundy(p1,tim14),rundy(p1,tim15).zpet) of p1..cycle;
+p100=subpath(7,10) of p0;
+p101=subpath(2,5) of p1;
+p102=subpath(3,5) of p0;
+p103=subpath(7,10) of p1;
+z100=bsktouch(p100,down,p101,up);
+z101=bsktouch(p100,right,subpath(0,1) of p101,left);
+z102=bsktouch(p102,down,p103,up);
+tim100=xpart(p100 intersectiontimes (z100--(0,y100)));
+tim101=xpart(p101 intersectiontimes (z100--(w,y100)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y4)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2)));
+tim104=xpart(p102 intersectiontimes (z102--(0,y102)));
+tim105=xpart(p103 intersectiontimes (z102--(x11,y102)));
+tim106=xpart(p102 intersectiontimes ((0,.5[y1,y0])--(x8,.5[y1,y0])));
+tim107=xpart(p103 intersectiontimes ((0,.5[y1,y0])--(x8,.5[y1,y0])));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+infill subpath(rundy(p102,tim104),rundy(p102,tim106).zpet) of p102
+ ..subpath(rundy(p103,tim107),rundy(p103,tim105).zpet) of p103..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); labels(0',0'',6',6'',100,101,102);
+endchar;
+
+iff known chars.greek_xi_SS:
+bskchar "The sans-serif Greek letter xi";
+beginchar(chars.greek_xi_SS,9u#,asc_height#,.5desc_depth#); uni "non";
+italcorr asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(hair,90); pos2(stem,180); pos0(hair,0); pos7(stem,180);
+pos3(curve,240); pos4(hair,180); pos5(hair,100); pos6(hair,90);
+pos8(hair,-90); pos9(hair,90); pos10(hair,0); pos11(hair,-90);
+pos12(hair,180);
+lft x2r=u; top y1r=.35[x_height,bar_height]; y2=.5x_height; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-2u; y0=y1-stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5; lft x7r=1.5u; y7=.35[y1,y9];
+x8=.25[x1,x0]; .25[y8,y1]=y0; top y9r=h-.75stem; x10-x9=x0-x1;
+rt x10r=w-u; y10=y9-.5stem; y10=.5[y11,y9]; x11=.5[x9,x10];
+top y12=h; x12=x9-stem;
+p0=z12r..z11r..z10r..z9r..z7r{down}..z8r..{up}z0r..z1r..z2r..z3r..z4r..z5r---z6r;
+p1=z6l---z5l..z4l..z3l..z2l..z1l..{down}z0l..z8l..{up}z7l..z9l..z10l..z11l..z12l;
+(tim0,tim1-5)=p0 intersectiontimes subpath(5,infinity) of p0;
+(tim2,tim3-4)=p1 intersectiontimes subpath (4,5) of p0;
+(tim4-5,tim5-7)=subpath(5,infinity) of p0 intersectiontimes subpath(7,infinity) of p1;
+(tim6-7,tim7)=subpath(7,infinity) of p1 intersectiontimes subpath(0,6) of p1;
+(tim8,tim9-1)=p0 intersectiontimes subpath(1,infinity) of p0;
+(tim10,tim11)=p1 intersectiontimes subpath(0,1) of p0;
+(tim12-2,tim13)=subpath(2,4) of p0 intersectiontimes p1;
+(tim14-8,tim15-11)=subpath(8,10) of p1 intersectiontimes subpath(11,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim8).zpet) of p0..subpath(rundy(p0,tim9),rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p0,tim1),infinity) of p0
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),rundy(p0,(tim4,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim5,hair)),rundy(p1,tim10).zpet) of p1
+ ..subpath(rundy(p0,tim11),rundy(p0,(tim12,hair)).zpet) of p0
+ ..subpath(rundy(p1,(tim13,hair)),infinity) of p1..cycle;
+infill subpath(rundy(p1,tim7),rundy(p1,tim6).zpet) of p1..cycle;
+infill subpath(rundy(p1,tim14),rundy(p1,tim15).zpet) of p1..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); labels(0',0'',6',6'');
+endchar;
+
+charscription(9u,x_height,0)(
+pos1(curve,0); pos2(hair,90); pos3(curve,180); pos4(hair,270);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o;
+filldraw z1l{down}..z2l..{up}z3l..z4l..{down}cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4);
+);
+
+iff known chars.greek_omicron:
+bskchar "The Greek letter omicron";
+beginchar(chars.greek_omicron,9u#,x_height#,0); uni "0x03BF";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_omicron_SS:
+bskchar "The sans-serif Greek letter omicron";
+beginchar(chars.greek_omicron_SS,9u#,x_height#,0); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_omicron_BB:
+bskchar "The blackboard-bold Greek letter omicron";
+beginchar(chars.greek_omicron_BB,9u#,x_height#,0); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(hair,90); pos3(cap_stem,180); pos4(hair,270);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o;
+filldraw z1l{down}..z2l..{up}z3l..z4l..{down}cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+path p[]; numeric tim[];
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z4l..z1l{down}..z2l..{up}z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,up,p101,down);
+z103=bsktouch(subpath(2,3) of p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,y1)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p101 intersectiontimes (z103--(x103,y2l-5)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+penlabels(1,2,3,4); labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_pi:
+bskchar "The Greek letter pi";
+beginchar(chars.greek_pi,11u#,x_height#,0); uni "0x03C0";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,90); pos5(curve,10); pos6(.5[hair,stem],0);
+pos7(.5[hair,stem],0); pos8(curve,-10); pos8'(.5[curve,stem],0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; y4r=y3r; x2l:=x2l+.5stem;
+x5=x6r; bot y5l=0; y5r:=y5r+o;
+z6r=z3; y7=y6; x7l=x2+stem; bot y8=0; x8r=x7l;
+y8'=.5bar_height; z8'l=whatever[z8l,z7l]+.5hair*right;
+y6l:=y6l-o;
+p0=z1r..z2r---z4r..z4l{down}..z3l..{left}z2l..{dir-60}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{dir-70}z5l..(x5r,0)..z5r{dir130}..{up}z6r);
+p2=reverse(z7l---z8'l..z8l&z8l..z8r..z8'r---z7r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+(tim4,tim5)=p0 intersectiontimes p2;
+(tim6,tim7-1)=p0 intersectiontimes subpath(1,infinity) of p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,(tim2,2hair)),rundy(p0,(tim4,2hair)).zpet) of p0
+ ..subpath(rundy(p2,tim5),rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p0,tim6),infinity) of p0&cycle;
+penlabels(1,2,3,4,5,6,7,8,8');
+math_fit(-.5[x_height#,bar_height#]*slant,-.5u#);
+endchar;
+
+iff known chars.greek_pi_BB:
+bskchar "The blackboard-bold Greek letter pi";
+beginchar(chars.greek_pi_BB,11u#,x_height#,0); uni "0x213C";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,90); pos5(cap_stem,10); pos6(.5[hair,cap_stem],0);
+pos7(.5[hair,cap_stem],0); pos8(cap_stem,-10); pos8'(.5[curve,cap_stem],0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; y4r=y3r; x2l:=x2l+.5stem;
+x5=x6r; bot y5l=1.5o; y5r:=y5r+o;
+z6r=z3; y7=y6; x7l=x2+stem; bot y8=0; x8r=x7l;
+y8'=.5bar_height; z8'l=whatever[z8l,z7l]+.5hair*right;
+y6l:=y6l-o;
+p0=z1r..z2r---z4r..z4l{down}..z3l..{left}z2l..{dir-60}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{dir-70}z5l..(x5r,0)..z5r{dir130}..{up}z6r);
+p2=reverse(z7l---z8'l..z8l&z8l..z8r..z8'r---z7r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+if tim2=-1: tim2:=4; tim3:=length(p1); fi
+(tim4,tim5)=p0 intersectiontimes p2;
+(tim6,tim7-1)=p0 intersectiontimes subpath(1,infinity) of p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ if not boldmath:..subpath(rundy(p0,(tim2,2hair)),rundy(p0,(tim4,2hair)).zpet) of p0 fi
+ ..subpath(rundy(p2,tim5),rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p0,tim6),infinity) of p0&cycle;
+p100=subpath(0,rundy(p2,3).zpet) of p2..subpath(rundy(p2,3),infinity) of p2;
+oblu:=1.25bbw;
+tim100=ypart(p0 intersectiontimes p100);
+tim101-1=ypart(p0 intersectiontimes subpath(1,infinity) of p100);
+infill subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1..cycle;
+infill subpath(rundy(p100,tim100),rundy(p100,tim101).zpet) of p100..cycle;
+penlabels(1,2,3,4,5,6,7,8,8');
+endchar;
+
+iff known chars.greek_pi_SS:
+bskchar "The sans-serif Greek letter pi";
+beginchar(chars.greek_pi_SS,11u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,90); pos5(curve,10); pos6(.5[hair,stem],0);
+pos7(.5[hair,stem],0); pos8(curve,0); pos8'(curve,0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; y4r=y3r; x2l:=x2l+.5stem;
+x5=x6; bot y5l=o;
+z6r=z3; y7=y6; x7l=x2+stem; bot y8=0; x8=x7;
+y8'=.5bar_height; z8'l=whatever[z8l,z7l];
+y6l:=y6l-o;
+p0=z1r..z2r---z4r..z4l{down}..z3l---z2l..{dir-60}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{down}z5l..z5r{up}..{up}z6r);
+p2=reverse(z7l---z8'l..z8l&z8l..z8r...z8'r---z7r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+(tim4,tim5)=p0 intersectiontimes p2;
+(tim6,tim7-1)=p0 intersectiontimes subpath(1,infinity) of p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,(tim2,hair)),rundy(p0,(tim4,hair)).zpet) of p0
+ ..subpath(rundy(p2,tim5),rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p0,tim6),infinity) of p0&cycle;
+penlabels(1,2,3,4,5,6,7,8,8');
+endchar;
+
+iff known chars.greek_pi_curved:
+bskchar "The Greek letter pi (curved version)";
+beginchar(chars.greek_pi_curved,11u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,180); pos5(curve,10); pos6(.5[hair,stem],0);
+pos7(.5[hair,stem],0); pos8(curve,-10); pos8'(.5[curve,stem],0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; top y4=h+hair; x2l:=x2l+.5stem; y3r:=y3r-o;
+x5=x6r; bot y5l=0; y5r:=y5r+o;
+z6r=z3; y7=y6; x7l=x2+stem; bot y8=0; x8r=x7l;
+y8'=.5bar_height; z8'l=whatever[z8l,z7l]+.5hair*right;
+y6l:=y6l-o;
+p0=z1r..z2r{right}..z3r..{z4-z3}z4r..z4l{down}..z3l..{left}z2l..{dir-60}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{dir-70}z5l..(x5r,0)..z5r{dir130}..{up}z6r);
+p2=reverse(z7l---z8'l..z8l&z8l..z8r..z8'r---z7r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+(tim4,tim5)=p0 intersectiontimes p2;
+(tim6,tim7-1)=p0 intersectiontimes subpath(1,infinity) of p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,(tim2,2hair)),rundy(p0,(tim4,2hair)).zpet) of p0
+ ..subpath(rundy(p2,tim5),rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p0,tim6),infinity) of p0&cycle;
+penlabels(1,2,3,4,5,6,7,8,8');
+math_fit(-.5[x_height#,bar_height#]*slant,-.5u#);
+endchar;
+
+charscription(13.5u,x_height,0)(
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,90); pos2(hair,180); pos3(stem,270);
+pos4(hair,90); pos4'(hair,240); pos4''(.5[hair,stem],-60);
+pos5(hair,270); pos6(curve,0); pos7(stem,90);
+pos8(hair,90); pos9(stem,90); pos10(stem,90); pos11(hair,90);
+top y1r=h; lft x2r=1.5u; y2=.5h; bot y3r=-o;
+rt x1=x3; .5[x3,x5]=.5w; x5-x3=1/3w;
+1/3[x4,x3]=.45w; y4l=bar_height;
+bot y5r=-o; y6=y2; rt x6r=w-u;
+x7-x6=(x2-x1); top y7r=h;
+y4'=y4''=.6bar_height; .5[x4',x4'']=x4; x4'-x4''=.35(y3-y4);
+z1'=z1+.2curve*right+o*up; z1''=z1+.5(curve-currentbreadth)*dir135;
+z7'=z7+.2curve*right+o*down; z7''=z7+.5(curve-currentbreadth)*dir45;
+lft x8=.5u; y8r=y9r; top y9r=top y10r=h; x9=.5[x8,x1];
+rt x11=w-.5u; x10=.5[x11,x7]; y11r=y10r;
+p0=z7'{right}..z6l..z5l..z4'l..z4l{right}..z4''l..z3l{left}..z2l..{right}z1l;
+p1=z1l{right}..z1'..z1r..z1''..z2r..{right}z3r..z4''r..{left}z4r..z4'r..{right}z5r..z6r..z7''..z7r;
+p2=z8l{right}..z9l...z10l..{right}z11l..{left}z11r..z10r...z9r..{left}z8r;
+(tim0,tim1-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+(tim2-1,tim3)=subpath(1,infinity) of p0 intersectiontimes p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,6) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+(tim8,tim9-2)=p2 intersectiontimes subpath(2,infinity) of p1;
+(tim10-10,tim11)=subpath (10,infinity) of p1 intersectiontimes p2;
+filldraw subpath(0,rundy(p2,tim8).zpet) of p2
+ ..subpath(rundy(p1,tim9),rundy(p1,(tim0,f_obl)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,f_obl)),rundy(p1,tim10).zpet) of p1
+ ..subpath(rundy(p2,tim11),infinity) of p2..cycle;
+infill subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2f_obl)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7,8,9,10,11); labels(1',1'',7',7'');
+);
+
+iff known chars.greek_varpi:
+bskchar "The Greek letter pi---alternative";
+beginchar(chars.greek_varpi,13.5u#,x_height#,0); uni "0x03D6";
+italcorr x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(mft-.5u#,u#);
+endchar;
+
+iff known chars.greek_varpi_SS:
+bskchar "The sans-serif Greek letter pi---alternative";
+beginchar(chars.greek_varpi_SS,13.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_varpi_BB:
+bskchar "The blackboard-bold Greek letter pi---alternative";
+beginchar(chars.greek_varpi_BB,13.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,90); pos2(hair,180); pos3(stem,270);
+pos4(hair,90); pos4'(hair,240); pos4''(.5[hair,stem],-60);
+pos5(hair,270); pos6(cap_stem,0); pos7(stem,90);
+pos8(hair,90); pos9(stem,90); pos10(stem,90); pos11(hair,90);
+top y1r=h; lft x2r=1.5u; y2=.5h; bot y3r=-o;
+rt x1=x3; .5[x3,x5]=.5w; x5-x3=1/3w;
+1/3[x4,x3]=.45w; y4l=bar_height;
+bot y5r=-o; y6=y2; rt x6r=w-u;
+x7-x6=(x2-x1); top y7r=h;
+y4'=y4''=.6bar_height; .5[x4',x4'']=x4; x4'-x4''=.35(y3-y4);
+z1'=z1+.2curve*right+o*up; z1''=z1+.5(curve-currentbreadth)*dir135;
+z7'=z7+.2curve*right+o*down; z7''=z7+.5(curve-currentbreadth)*dir45;
+lft x8=.5u; y8r=y9r; top y9r=top y10r=h; x9=.5[x8,x1];
+rt x11=w-.5u; x10=.5[x11,x7]; y11r=y10r;
+p0=z7'{right}..z6l..z5l..z4'l..z4l{right}..z4''l..z3l{left}..z2l..{right}z1l;
+p1=z1l{right}..z1'..z1r..z1''..z2r..{right}z3r..z4''r..{left}z4r..z4'r..{right}z5r..z6r..z7''..z7r;
+p2=z8l{right}..z9l...z10l..{right}z11l..{left}z11r..z10r...z9r..{left}z8r;
+(tim0,tim1-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+(tim2-1,tim3)=subpath(1,infinity) of p0 intersectiontimes p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,6) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+(tim8,tim9-2)=p2 intersectiontimes subpath(2,infinity) of p1;
+(tim10-10,tim11)=subpath (10,infinity) of p1 intersectiontimes p2;
+filldraw subpath(0,rundy(p2,tim8).zpet) of p2
+ ..subpath(rundy(p1,tim9),rundy(p1,(tim0,f_obl)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,f_obl)),rundy(p1,tim10).zpet) of p1
+ ..subpath(rundy(p2,tim11),infinity) of p2..cycle;
+infill subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2f_obl)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+p100=subpath(0,2) of p0;
+p101=subpath(9,11) of p1;
+z100=bsktouch(subpath(0,1) of p100,1.5up,p101,1.5down);
+z101=bsktouch(p100,down,subpath(0,1) of p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y6)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y7r+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y6)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y5r-u-5)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7,8,9,10,11); labels(1',1'',7',7'',100,101);
+endchar;
+
+iff known chars.greek_varpi_curved:
+bskchar "The Greek letter pi---alternative (curved version)";
+beginchar(chars.greek_varpi_curved,13.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,90); pos2(hair,180); pos3(stem,270);
+pos4(hair,90); pos4'(hair,240); pos4''(.5[hair,stem],-60);
+pos5(hair,270); pos6(curve,0); pos7(stem,90);
+pos8(hair,90); pos9(stem,90); pos10(stem,90); pos11(hair,90);
+top y1r=h; lft x2r=1.5u; y2=.5h; bot y3r=-o;
+rt x1=x3; .5[x3,x5]=.5w; x5-x3=1/3w;
+1/3[x4,x3]=.45w; y4l=bar_height;
+bot y5r=-o; y6=y2; rt x6r=w-u;
+x7-x6=(x2-x1); top y7r=h;
+y4'=y4''=.6bar_height; .5[x4',x4'']=x4; x4'-x4''=.35(y3-y4);
+z1'=z1+.2curve*right+o*up; z1''=z1+.5(curve-currentbreadth)*dir135;
+z7'=z7+.2curve*right+o*down; z7''=z7+.5(curve-currentbreadth)*dir45;
+lft x8=.5u; y8l=.5[bar_height,x_height]; top y9r=top y10r=h; x9=.5[x8,x1];
+rt x11=w-.5u; x10=.5[x11,x7]; y11r=h;
+p0=z7'{right}..z6l..z5l..z4'l..z4l{right}..z4''l..z3l{left}..z2l..{right}z1l;
+p1=z1l{right}..z1'..z1r..z1''..z2r..{right}z3r..z4''r..{left}z4r..z4'r..{right}z5r..z6r..z7''..z7r;
+p2=z8l{up}..z9l...z10l..{right}z11l..{left}z11r..z10r...z9r..{down}z8r;
+(tim0,tim1-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+(tim2-1,tim3)=subpath(1,infinity) of p0 intersectiontimes p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,6) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+(tim8,tim9-2)=p2 intersectiontimes subpath(2,infinity) of p1;
+(tim10-10,tim11)=subpath (10,infinity) of p1 intersectiontimes p2;
+filldraw subpath(0,rundy(p2,tim8).zpet) of p2
+ ..subpath(rundy(p1,tim9),rundy(p1,(tim0,hair)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,hair)),rundy(p1,tim10).zpet) of p1
+ ..subpath(rundy(p2,tim11),infinity) of p2..cycle;
+infill subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2hair)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7,8,9,10,11); labels(1',1'',7',7'');
+math_fit(mft-.5u#,u#);
+endchar;
+
+iff known chars.greek_rho:
+bskchar "The Greek letter rho";
+beginchar(chars.greek_rho,8.5u#,x_height#,desc_depth#); uni "0x03C1";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(curve,20); pos6(.5[stem,hair],0);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+bot y5l=-d; y6=-.5d; x6=x1r; x6r=lft x5l; x5'=x5r; y5'=y5l;
+p0=z5l{up}..z6l..{up}z1l..z4l..{down}z3l..z2l..{up}z1l;
+p1=z1r{down}..z6r..z5r..z5'..{up}z5l;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(0, rundy(p0,tim0).zpet) of p0..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6); labels(5');
+endchar;
+
+iff known chars.greek_rho_BB:
+bskchar "The blackboard-bold Greek letter rho";
+beginchar(chars.greek_rho_BB,9u#,x_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(hair,90); pos3(.8cap_stem,180); pos4(hair,270);
+pos5(cap_stem,20); pos6(.5[cap_stem,hair],0);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+bot y5l=-d; y6=-.5d; x6=x1r; x6r=lft x5l; x5'=x5r; y5'=y5l;
+p0=z5l{up}..z6l..{up}z1l..z4l..{down}z3l..z2l..{up}z1l;
+p1=z1r{down}..z6r..z5r..z5'..{up}z5l;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(0, rundy(p0,tim0).zpet) of p0..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+p100=subpath(0,3) of p0;
+p101=subpath(1,5) of (z3r{up}..z4r..{down}p1);
+p102=subpath(3,5) of p0;
+p103=subpath(1,3) of z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+z100=bsktouch(p100,down,p101,up);
+z101=bsktouch(p102,down,p103,up);
+z102=bsktouch(p102,up,p103,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y4l+u+5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y1)));
+tim102=xpart(p102 intersectiontimes (z101--(x101,y4l+5)));
+tim103=xpart(p103 intersectiontimes (z101--(x101,y3)));
+tim104=xpart(p102 intersectiontimes (z102--(x102,y2l-u-5)));
+tim105=xpart(p103 intersectiontimes (z102--(x102,y3)));
+oblu:=bbw;
+infill subpath(rundy(p100,0),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,infinity).zpet) of p101..cycle;
+infill subpath(rundy(p102,tim102),rundy(p102,tim104).zpet) of p102
+ ..reverse subpath(rundy(p103,tim103),rundy(p103,tim105).zpet) of p103..cycle;
+penlabels(1,2,3,4,5,6); labels(5',100,101,102);
+endchar;
+
+iff known chars.greek_rho_SS:
+bskchar "The sans-serif Greek letter rho";
+beginchar(chars.greek_rho_SS,8.5u#,x_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(curve,0);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+bot y5=-d; x1=x5;
+p0=z5l---z1l..z4l..{down}z3l..z2l..{up}z1l;
+p1=z1r---z5r..{up}z5l;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(0, rundy(p0,tim0).zpet) of p0..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known chars.greek_varrho:
+bskchar "The Greek letter rho---alternative";
+beginchar(chars.greek_varrho,8.5u#,x_height#,desc_depth#); uni "0x03F1";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(stem,0); pos6(stem,0); pos7(hair,90); pos8(hair,0); pos9(stem,-60);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+y5=.5[y6,y1]; rt x5r=x6r=x1r;
+y7=.5[y6,y9]; x7=x2; rt x8r=w-u; y8=.5[y7,y9]; y8-y9=3/4stem;
+bot y9r=-d; x9r=x8-stem; .5[x9',x9r]=x9l; y9'=y9l;
+p0=z1l{up}..z4l..{down}z3l..z2l..{up}z1l;
+p1=z1r---z5r..z6r..{z8-z9}z7r..{down}z8r..z9r..z9'..z9l..{up}z8l..{z9-z8}z7l..z6l..z5l---z1l;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(0, rundy(p0,tim0).zpet) of p0..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(9');
+endchar;
+
+iff known chars.greek_varrho_BB:
+bskchar "The blackboard-bold Greek letter rho---alternative";
+beginchar(chars.greek_varrho_BB,9u#,x_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(hair,90); pos3(.8cap_stem,180); pos4(hair,270);
+pos5(cap_stem,0); pos6(.8cap_stem,0); pos7(hair,90); pos8(hair,0); pos9(stem,-60);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+y5=.5[y6,y1]; x5r=x6r=x1r;
+y7=.5[y6,y9]; x7=x2; rt x8r=w-u; y8=.5[y7,y9]; y8-y9=3/4stem;
+bot y9r=-d; x9r=x8-stem; .5[x9',x9r]=x9l; y9'=y9l;
+p0=z1l{up}..z4l..{down}z3l..z2l..{up}z1l;
+p1=z1r---z5r..z6r..{z8-z9}z7r..{down}z8r..z9r..z9'..z9l..{up}z8l..{z9-z8}z7l..z6l..z5l---z1l;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(0, rundy(p0,tim0).zpet) of p0..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+p100=subpath(9,infinity) of p1..subpath(0,1) of p0;
+p101=subpath(1,5) of (z3r{up}..z4r..{down}subpath(0,3) of p1);
+p102=subpath(1,3) of p0;
+p103=subpath(1,3) of z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+z100=bsktouch(p100,down,p101,up);
+z101=bsktouch(p100,up,p101,down);
+z102=bsktouch(p102,down,p103,up);
+z103=bsktouch(p102,up,p103,down);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y4l+u+5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y1)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y9)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y6)));
+tim104=xpart(p102 intersectiontimes (z102--(x102,y4l+5)));
+tim105=xpart(p103 intersectiontimes (z102--(x102,y3)));
+tim106=xpart(p102 intersectiontimes (z103--(x103,y2l-u-5)));
+tim107=xpart(p103 intersectiontimes (z103--(x103,y3)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+infill subpath(rundy(p102,tim104),rundy(p102,tim106).zpet) of p102
+ ..reverse subpath(rundy(p103,tim105),rundy(p103,tim107).zpet) of p103..cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(9',100,101,102,103);
+endchar;
+
+iff known chars.greek_varrho_SS:
+bskchar "The sans-serif Greek letter rho---alternative";
+beginchar(chars.greek_varrho_SS,8.5u#,x_height#,.75desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(stem,0); pos6(stem,0); pos7(hair,90); pos8(hair,90);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+y5=.5[y6,y1]; rt x5r=x6r=x1r;
+y7l=y8l=-d; x7=x2; rt x8r=w-2u; y6=.5y7;
+p0=z1l{up}..z4l..{down}z3l..z2l..{up}z1l;
+p1=z1r---z5r..z6r..z7r---z8r..z8l---z7l..z6l..z5l---z1l;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(0, rundy(p0,tim0).zpet) of p0..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(9');
+endchar;
+
+iff known chars.greek_sigma:
+bskchar "The Greek letter sigma";
+beginchar(chars.greek_sigma,9.5u#,x_height#,0); uni "0x03C3";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(.35[stem,hair],-90); pos6(hair,-90);
+lft x1l=u; rt x3l=w-u-stem; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+top y5l=h+o; y6l=y5l; rt x6r=w-u; x5=w-3u;
+p0=z6l{right}..{down}z6r..z5r..z4r;
+p1=z1l{up}..z4l..{down}z3l..z2l..{up}z1l;
+z0=bsktouch(subpath(1.98,infinity) of p0,down,p1,right);
+tim0=xpart(p0 intersectiontimes (z0--(x0,h)));
+tim1=xpart(p1 intersectiontimes (z0--(.5w,y0)));
+filldraw z1l{up}..z4l--subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1&cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6);
+math_fit(mft-.5u#,0);
+endchar;
+
+iff known chars.greek_sigma_BB:
+bskchar "The blackboard-bold Greek letter sigma";
+beginchar(chars.greek_sigma_BB,9.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(cap_stem,0); pos2(hair,90); pos3(.8cap_stem,180); pos4(hair,270);
+pos5(.35[stem,hair],-90); pos6(hair,-90);
+lft x1l=u; rt x3l=w-u-stem; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+top y5l=h+o; y6l=y5l; rt x6r=w-u; x5=w-3u;
+p0=z6l{right}..{down}z6r..z5r..z4r;
+p1=z1l{up}..z4l..{down}z3l..z2l..{up}z1l;
+z0=bsktouch(subpath(2,infinity) of p0,down,p1,right);
+tim0=xpart(p0 intersectiontimes (z0--(x0,h)));
+tim1=xpart(p1 intersectiontimes (z0--(.5w,y0)));
+filldraw z1l{up}..z4l--subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1&cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z6l--z4l..z1l{down}..z2l..{up}z3l..cycle;
+p102:=reverse z4l..z1l{down}..z2l..{up}z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,up,p102,down);
+z103=bsktouch(subpath(2,3) of p100,down,p102,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(if boldmath:x2 else:x102 fi,y1)));
+tim105=xpart(p102 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p102 intersectiontimes (z103--(x103,y2l-5)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100 ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p102,tim107),rundy(p102,tim105).zpet) of p102..cycle;
+penlabels(1,2,3,4,5,6); labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_sigma_SS:
+bskchar "The sans-serif Greek letter sigma";
+beginchar(chars.greek_sigma_SS,9.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(.35[stem,hair],-90); pos6(hair,-90);
+lft x1l=u; rt x3l=w-u-stem; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+top y5l=h+o; y6l=y5l; rt x6r=w-u; x5=w-3u;
+p0=z6l{right}..z6r---z5r..z4r;
+p1=z1l{up}..z4l..{down}z3l..z2l..{up}z1l;
+z0=bsktouch(subpath(2,infinity) of p0,down,p1,right);
+tim0=xpart(p0 intersectiontimes (z0--(x0,h)));
+tim1=xpart(p1 intersectiontimes (z0--(.5w,y0)));
+filldraw z1l{up}..z4l--subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1&cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known chars.greek_sigma_curved:
+bskchar "The Greek letter sigma (curved version)";
+beginchar(chars.greek_sigma_curved,9.5u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,0); pos2(hair,90); pos3(stem,180); pos4(hair,270);
+pos5(.35[stem,hair],-90); pos5'(stem,-90); pos6(hair,0);
+lft x1l=u; rt x3l=w-u-stem; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+top y5l=h; top y6=h+hair; rt x6r=w-u; x5=w-3u; .5[x5,x5']=.5w; y5'l=y5l;
+p0=z5'{right}..z4l..z5l..{z6-z5}z6l..{down}z6r..z5r..z4r;
+p1=z1l{up}..z4l..{down}z3l..z2l..{up}z1l;
+z0=bsktouch(subpath(2,infinity) of p0,down,p1,right);
+tim0-4=xpart(subpath(4,infinity) of p0 intersectiontimes (z0--(x0,h)));
+tim1=xpart(p1 intersectiontimes (z0--(.5w,y0)));
+filldraw z1l{up}..z4l..subpath(1,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),infinity) of p1&cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,5',6);
+labels(0);
+math_fit(mft-.5u#,0);
+endchar;
+
+iff known chars.greek_varsigma:
+bskchar "The Greek letter sigma---alternative";
+beginchar(chars.greek_varsigma,8u#,x_height#,.5desc_depth#); uni "0x03C2";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(hair,90); pos2(stem,180); pos0(stem,0);
+pos3(curve,240); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+lft x2r=u; top y1r=h+o; y2=bar_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-u; y0=y1-stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5+.5stem;
+z0'=z0+.2stem*down+o*left; z0''=z0+.5(stem-currentbreadth)*dir45;
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+filldraw z0r..z0''..z1r..z2r..z3r..z4r..z5r..z6''..z6'..z6l
+ ..z5l..z4l..z3l..z2l..z1l..{down}z0l..z0'..cycle;
+penlabels(0,1,2,3,4,5,6); labels(0',0'',6',6'');
+math_fit(mft-.5u#,0);
+endchar;
+
+iff known chars.greek_varsigma_BB:
+bskchar "The blackboard-bold Greek letter sigma---alternative";
+beginchar(chars.greek_varsigma_BB,8u#,x_height#,.5desc_depth#); uni "non";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[];
+pos1(hair,90); pos2(.8cap_stem,180); pos0(stem,0);
+pos3(cap_stem,240); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+lft x2r=u; top y1r=h+o; y2=bar_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-u; y0=y1-stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5+.5stem;
+z0'=z0+.2stem*down+o*left; z0''=z0+.5(stem-currentbreadth)*dir45;
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+p0:=z0r..z0''..z1r..z2r..z3r..z4r..z5r..z6''..z6'..z6l..z5l..z4l..z3l..z2l..z1l..{down}z0l..z0'..cycle;
+filldraw p0;
+p100=subpath(2,5) of p0;
+p101=subpath(11,14) of p0;
+z100=bsktouch(p100,bbs*dir45,subpath(0,2) of p101,dir-135);
+z101=bsktouch(p100,dir-45,p101,dir135);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y5)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y2)));
+tim102=xpart(p100 intersectiontimes (z101--(0,y101)));
+tim103=xpart(p101 intersectiontimes (z101--(w,y101)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,tim103).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6); labels(0',0'',6',6'',100,101);
+endchar;
+
+iff known chars.greek_varsigma_SS:
+bskchar "The sans-serif Greek letter sigma---alternative";
+beginchar(chars.greek_varsigma_SS,8u#,x_height#,.5desc_depth#); uni "non";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(hair,90); pos2(stem,180); pos0(stem,0);
+pos3(curve,240); pos4(hair,180); pos5(hair,100); pos6(hair,90);
+lft x2r=u; top y1r=h+o; y2=bar_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0r=w-u; y0=y1-stem; x3=.5w; y3=.5bar_height-.5d;
+x6=x5-stem; y6=y5;
+z0'=z0+.2stem*down+o*left; z0''=z0+.5(stem-currentbreadth)*dir45;
+filldraw z0r{up}..{left}z1r..z2r..z3r..z4r..z5r---z6r
+ ..z6l---z5l..z4l..z3l..z2l..{right}z1l..{down}z0l..cycle;
+penlabels(0,1,2,3,4,5,6); labels(0',0'');
+endchar;
+
+iff known chars.greek_tau:
+bskchar "The Greek letter tau";
+beginchar(chars.greek_tau,9u#,x_height#,0); uni "0x03C4";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,90); pos5(curve,10); pos6(.5[hair,stem],0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; y4r=y3r; x2l:=x2l+.5stem;
+z6=.5[z2,z3]+o*left; x5=x6-o; bot y5l=0; y5r:=y5r+o;
+p0=z1r..z2r---z4r..z4l{down}..z3l..{left}z2l..{dir-60}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{dir-60}z5l..(x5r,0)..z5r{dir130}..{up}z6r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+penlabels(1,2,3,4,5,6);
+math_fit(-.5[x_height#,bar_height#]*slant,ic#-3u#);
+endchar;
+
+iff known chars.greek_tau_BB:
+bskchar "The blackboard-bold Greek letter tau";
+beginchar(chars.greek_tau_BB,9u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,90); pos5(cap_stem,10); pos6(.5[hair,cap_stem],0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; y4r=y3r; x2l:=x2l+.5stem;
+z6=.5[z2,z3]+o*left; x5=x6-o; bot y5l=0; y5r:=y5r+o;
+p0=z1r..z2r---z4r..z4l{down}..z3l..{left}z2l..{dir-60}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{dir-60}z5l..(x5r,0)..z5r{dir130}..{up}z6r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+oblu:=1.25bbw;
+infill subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known chars.greek_tau_SS:
+bskchar "The sans-serif Greek letter tau";
+beginchar(chars.greek_tau_SS,9u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,90); pos5(curve,0); pos6(.5[hair,stem],0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; y4r=y3r; x2l:=x2l+.5stem;
+z6=.5[z2,z3]+o*left; x5=x6-o; bot y5l=0; y5r:=y5r+o;
+p0=z1r..z2r---z4r..z4l{left}...z3l..{left}z2l..{dir-90}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{down}z5l..z5r{up}..{up}z6r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known chars.greek_tau_curved:
+bskchar "The Greek letter tau (curved version)";
+beginchar(chars.greek_tau_curved,9u#,x_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(curve,180); pos2(stem,90); pos3(stem,90);
+pos4(hair,180); pos5(curve,10); pos6(.5[hair,stem],0);
+lft x1r=u; y1=y2l-stem;
+rt x4l=w-u; .5[x2,x3]=.5w; x3-x2=.5(w-u);
+top y2r=top y3r=h; top y4=h+hair; x2l:=x2l+.5stem;
+z6=.5[z2,z3]+o*left; x5=x6-o; bot y5l=0; y5r:=y5r+o;
+p0=z1r..z2r{right}..z3r..{z4-z3}z4r..z4l{down}..z3l..{left}z2l..{dir-60}z1l..{dir150}z1r;
+p1=reverse(z6l{down}..{dir-60}z5l..(x5r,0)..z5r{dir130}..{up}z6r);
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3-1)=p0 intersectiontimes subpath (1,infinity) of p1;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim3).zpet) of p1
+ ..subpath(rundy(p0,tim2),infinity) of p0&cycle;
+penlabels(1,2,3,4,5,6);
+math_fit(-.5[x_height#,bar_height#]*slant,ic#-3u#);
+endchar;
+
+iff known chars.greek_upsilon:
+bskchar "The Greek letter upsilon";
+beginchar(chars.greek_upsilon,8.5u#,x_height#,0); uni "0x03C5";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); pos3(hair,90);
+pos4(hair,180); pos5(curve,180);
+top y1=h; bot y3l=-o; x3=.5[x2,x4];
+lft x2l=u; x1=x2;
+y2=.5h;
+rt x4l=w-u; y4=bar_height;
+top y5''=h+o;
+x5-x4=.45(y4-y5);
+z5'=z5+.2curve*down+o*left; z5''=z5+.5(curve-currentbreadth)*dir135;
+filldraw z1r---z2r..z3r..{up}z4r..z5'..{up}z5r..z5''
+ ..z5l..{down}z4l..z3l..z2l---z1l..cycle;
+penlabels(1,2,3,4,5); labels(5',5'');
+math_fit(mft,0);
+endchar;
+
+iff known chars.greek_upsilon_BB:
+bskchar "The blackboard-bold Greek letter upsilon";
+beginchar(chars.greek_upsilon_BB,8.5u#,x_height#,0); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+pos1(.8cap_stem,0); pos2(.8cap_stem,0); pos3(hair,90);
+pos4(hair,180); pos5(curve,180);
+top y1=h-o; bot y3l=-o; x3=.5[x2,x4];
+lft x2l=u; x1=x2;
+y2=.5h;
+rt x4l=w-u; y4=bar_height;
+top y5''=h+o;
+x5-x4=.45(y4-y5);
+z5'=z5+.2curve*down+o*left; z5''=z5+.5(curve-currentbreadth)*dir135;
+filldraw z1r---z2r..z3r..{up}z4r..z5'..{up}z5r..z5''
+ ..z5l..{down}z4l..z3l..z2l---z1l..cycle;
+path p[]; numeric tim[];
+p100=z1r---z2r..z3r..{up}z4r;
+p101=z4l{down}..z3l..z2l---z1l;
+z100=bsktouch(p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y2)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y3l-u-5)));
+infill subpath(rundy(p100,0),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,infinity)) of p101..cycle;
+penlabels(1,2,3,4,5); labels(5',5'',100);
+endchar;
+
+iff known chars.greek_upsilon_SS:
+bskchar "The sans-serif Greek letter upsilon";
+beginchar(chars.greek_upsilon_SS,8.5u#,x_height#,0); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); pos3(hair,90);
+pos4(hair,180); pos5(hair,180);
+top y1=h; bot y3l=-o; x3=.5[x2,x4];
+lft x2l=u; x1=x2;
+y2=.5h;
+rt x4l=w-u; y4=bar_height;
+x5=x4; y5=h;
+filldraw z1r---z2r..z3r..{up}z4r..{up}z5r
+ ..{down}z5l..{down}z4l..z3l..z2l---z1l..cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known chars.greek_upsilon_curved:
+bskchar "The Greek letter upsilon (curved version)";
+beginchar(chars.greek_upsilon_curved,9.5u#,x_height#,0); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(hair,180); pos7(curve,180);
+top y2r=h; bot y5l=-o; x5=.5[x4l,x6];
+x3=x4l; lft x1l=.5u; x3l-x1r=max(curve,1.5u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+z2=z1+whatever*dir60;
+y4-y5=y2-y3; rt x6l=w-u; y6=bar_height;
+top y7''=h+o;
+x7-x6=.45(y6-y7);
+z7'=z7+.2curve*down+o*left; z7''=z7+.5(curve-currentbreadth)*dir135;
+filldraw z1r{up}..z2r..z3r..z4r..z5r..{up}z6r..z7'..{up}z7r..z7''
+ ..z7l..{down}z6l..z5l..z4l..z3l..z2l..{down}z1l..cycle;
+penlabels(1,2,3,4,5,6,7); labels(7',7'');
+math_fit(mft,.5u#);
+endchar;
+
+charscription(12u,asc_height,desc_depth)(
+numeric tim[]; path p[];
+oblu:=2oblu;
+pos1(.5[stem,curve],0); pos2(hair,90); pos3(.5[stem,curve],180); pos4(hair,270);
+lft x1l=u; rt x3l=w-u; y1=y3=.5x_height; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=x_height+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+y5=h; y6=-d; x5=x6=.5w; pos5(hair, 0); pos6(hair,0);
+z0r=.5[z5r,z6r]; z0l=.5[z5l,z6l];
+p0:=z1l{down}..z2l..z3l..z4l..{down}z1l;
+p1:=z1r{up}..z4r..z3r..z2r..{up}z1r;
+bskpoints(5,6,hair,hair);
+(tim1,tim2)=p0 intersectiontimes (z5l--z6l);
+(tim3,tim4)=p0 intersectiontimes (z6r--z5r);
+(tim5,tim6)=p0 intersectiontimes (z0r--z5r);
+(tim7,tim8)=p0 intersectiontimes (z5l--z0l);
+(tim11,tim12)=p1 intersectiontimes (z0r--z6r);
+(tim13,tim14)=p1 intersectiontimes (z5r--z0r);
+(tim15,tim16)=p1 intersectiontimes (z0l--z6l);
+(tim17,tim18)=p1 intersectiontimes (z5l--z0l);
+filldraw subpath (0,rundy(p0,tim1).zpet) of p0
+ ..subpath(rundy((z6l--z5l),tim2),infinity) of (z5l--z6l)
+ ..subpath(0,rundy(z6r--z5r,tim4).zpet) of (z6r--z5r)
+ ..subpath(rundy(p0,tim3),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(z0r--z5r,tim6),infinity) of (z0r--z5r)
+ ..subpath(0,rundy(z5l--z0l,tim8).zpet) of (z5l--z0l)
+ ..subpath(rundy(p0,tim7),infinity) of p0--cycle;
+infill subpath(0,rundy(z0r--z6r,tim12).zpet) of (z0r--z6r)
+ ..subpath(rundy(p1,tim11).zpet,rundy(p1,tim13)) of p1
+ ..subpath(rundy(z5r--z0r,tim14),infinity) of (z5r--z0r)--cycle;
+infill subpath (0, rundy(p1,tim17).zpet) of p1
+ ..subpath(rundy(z5l--z0l,tim18),infinity) of (z5l--z0l)
+ ..subpath(0,rundy(z0l--z6l,tim16).zpet) of (z0l--z6l)
+ ..subpath(rundy(p1,tim15),infinity) of p1--cycle;
+penlabels(0,1,2,3,4,5,6);
+);
+
+iff known chars.greek_phi:
+bskchar "The Greek letter phi";
+beginchar(chars.greek_phi,12u#,asc_height#,desc_depth#); uni "0x03C6";
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+math_fit(mft-.5u#,ic#-.5u#);
+endchar;
+
+iff known chars.greek_phi_SS:
+bskchar "The sans-serif Greek letter phi";
+beginchar(chars.greek_phi_SS,12u#,asc_height#,desc_depth#); uni "non";
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_phi_BB:
+bskchar "The blackboard-bold Greek letter phi";
+beginchar(chars.greek_phi_BB,12u#,asc_height#,desc_depth#); uni "non";
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+oblu:=2oblu;
+pos1(.9cap_stem,0); pos2(hair,90); pos3(.9cap_stem,180); pos4(hair,270);
+lft x1l=u; rt x3l=w-u; y1=y3=.5x_height; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=x_height+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+y5=h; y6=-d; x5=x6=.5w; pos5(hair, 0); pos6(hair,0);
+z0r=.5[z5r,z6r]; z0l=.5[z5l,z6l];
+p0:=z1l{down}..z2l..z3l..z4l..{down}z1l;
+p1:=z1r{up}..z4r..z3r..z2r..{up}z1r;
+bskpoints(5,6,hair,hair);
+(tim1,tim2)=p0 intersectiontimes (z5l--z6l);
+(tim3,tim4)=p0 intersectiontimes (z6r--z5r);
+(tim5,tim6)=p0 intersectiontimes (z0r--z5r);
+(tim7,tim8)=p0 intersectiontimes (z5l--z0l);
+(tim11,tim12)=p1 intersectiontimes (z0r--z6r);
+(tim13,tim14)=p1 intersectiontimes (z5r--z0r);
+(tim15,tim16)=p1 intersectiontimes (z0l--z6l);
+(tim17,tim18)=p1 intersectiontimes (z5l--z0l);
+filldraw subpath (0,rundy(p0,tim1).zpet) of p0
+ ..subpath(rundy((z6l--z5l),tim2),infinity) of (z5l--z6l)
+ ..subpath(0,rundy(z6r--z5r,tim4).zpet) of (z6r--z5r)
+ ..subpath(rundy(p0,tim3),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(z0r--z5r,tim6),infinity) of (z0r--z5r)
+ ..subpath(0,rundy(z5l--z0l,tim8).zpet) of (z5l--z0l)
+ ..subpath(rundy(p0,tim7),infinity) of p0--cycle;
+infill subpath(0,rundy(z0r--z6r,tim12).zpet) of (z0r--z6r)
+ ..subpath(rundy(p1,tim11).zpet,rundy(p1,tim13)) of p1
+ ..subpath(rundy(z5r--z0r,tim14),infinity) of (z5r--z0r)--cycle;
+infill subpath (0, rundy(p1,tim17).zpet) of p1
+ ..subpath(rundy(z5l--z0l,tim18),infinity) of (z5l--z0l)
+ ..subpath(0,rundy(z0l--z6l,tim16).zpet) of (z0l--z6l)
+ ..subpath(rundy(p1,tim15),infinity) of p1--cycle;
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z4l..z1l{down}..z2l..{up}z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,up,p101,down);
+z103=bsktouch(subpath(2,3) of p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,y1)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p101 intersectiontimes (z103--(x103,y2l-5)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6); labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_phi_curved:
+bskchar "The Greek letter phi (curved version)";
+beginchar(chars.greek_phi_curved,12u#,asc_height#,desc_depth#); uni "non";
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[];
+oblu:=2oblu;
+pos1(.5[stem,curve],0); pos2(hair,90); pos3(.5[stem,curve],180); pos4(hair,270);
+lft x1l=u; rt x3l=w-u; y1=y3=.5x_height; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=x_height+o; x4r:=x4r+.25u; x2r:=x2r-.25u;
+y5=h; y6=-d+curve; x5=x6=.5w; pos5(hair, 0); pos6(hair,0);
+pos7(curve,0); y7=-d; x7r=x6l-o;
+z0r=.5[z5r,z6r]; z0l=.5[z5l,z6l];
+p0:=z1l{down}..z2l..z3l..z4l..{down}z1l;
+p1:=z1r{up}..z4r..z3r..z2r..{up}z1r;
+bskpoints(5,6,hair,hair);
+(tim1,tim2)=p0 intersectiontimes (z5l--z6l);
+(tim3,tim4)=p0 intersectiontimes (z6r--z5r);
+(tim5,tim6)=p0 intersectiontimes (z0r--z5r);
+(tim7,tim8)=p0 intersectiontimes (z5l--z0l);
+(tim11,tim12)=p1 intersectiontimes (z0r--z6r);
+(tim13,tim14)=p1 intersectiontimes (z5r--z0r);
+(tim15,tim16)=p1 intersectiontimes (z0l--z6l);
+(tim17,tim18)=p1 intersectiontimes (z5l--z0l);
+filldraw subpath (0,rundy(p0,tim1).zpet) of p0
+ ..subpath(rundy((z6l--z5l),tim2),infinity) of (z5l--z6l)
+ ..z7l&z7l..z7r
+ ..subpath(0,rundy(z6r--z5r,tim4).zpet) of (z6r--z5r)
+ ..subpath(rundy(p0,tim3),rundy(p0,tim5).zpet) of p0
+ ..subpath(rundy(z0r--z5r,tim6),infinity) of (z0r--z5r)
+ ..subpath(0,rundy(z5l--z0l,tim8).zpet) of (z5l--z0l)
+ ..subpath(rundy(p0,tim7),infinity) of p0--cycle;
+infill subpath(0,rundy(z0r--z6r,tim12).zpet) of (z0r--z6r)
+ ..subpath(rundy(p1,tim11).zpet,rundy(p1,tim13)) of p1
+ ..subpath(rundy(z5r--z0r,tim14),infinity) of (z5r--z0r)--cycle;
+infill subpath (0, rundy(p1,tim17).zpet) of p1
+ ..subpath(rundy(z5l--z0l,tim18),infinity) of (z5l--z0l)
+ ..subpath(0,rundy(z0l--z6l,tim16).zpet) of (z0l--z6l)
+ ..subpath(rundy(p1,tim15),infinity) of p1--cycle;
+penlabels(0,1,2,3,4,5,6,7);
+math_fit(mft-.5u#,ic#-.5u#);
+endchar;
+
+charscription(12u,x_height,desc_depth)(
+numeric tim[]; path p[]; oblu:=2hair;
+pos2(hair,-45); pos3(.5[hair,stem],0); pos4(stem,0); pos5(hair,90);
+pos6(stem,180); pos7(hair,-90); pos8(hair,0); pos9(hair,0);
+top y2l=x_height; bot y5l=-o; x5=.5[x3,x6];
+lft x3l=u; y3=bar_height;
+z2=z3+whatever*dir60;
+rt x6l=w-u; y6=bar_height;
+top y7l=h+o; .5[x8,x6]=x7;
+y8=.5bar_height; y9=-d; x8=x9=.5[x3,x7];
+p0=z2r..z3r..z5r..{up}z6r..z7r..z8r---z9r;
+p1=z9l---z8l..z7l..{down}z6l..z5l..z3l..z2l;
+(tim0,tim1)=p0 intersectiontimes subpath(0,3) of p1;
+(tim2-3,tim3)=subpath (3,infinity) of p1 intersectiontimes p0;
+(tim4,tim5-4)= subpath(0,3) of p1 intersectiontimes subpath(4,infinity) of p1;
+(tim6,tim7-5)=subpath(0,4) of p0 intersectiontimes subpath(5,infinity) of p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p1,tim5),infinity) of p1..cycle;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0..cycle;
+penlabels(2,3,4,5,6,7,8,9); labels(7',7'');
+);
+
+iff known chars.greek_varphi:
+bskchar "The Greek letter phi---alternative";
+beginchar(chars.greek_varphi,12u#,x_height#,desc_depth#); uni "0x03D5";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+usechar;
+math_fit(mft-.5u#,0);
+endchar;
+
+iff known chars.greek_varphi_SS:
+bskchar "The sans-serif Greek letter phi---alternative";
+beginchar(chars.greek_varphi_SS,12u#,x_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+usechar;
+endchar;
+
+iff known chars.greek_varphi_BB:
+bskchar "The blackboard-bold Greek letter phi---alternative";
+beginchar(chars.greek_varphi_BB,12.5u#,x_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2hair;
+pos2(hair,-45); pos3(.75[hair,cap_stem],0); pos4(stem,0); pos5(hair,90);
+pos6(cap_stem,180); pos7(hair,-90); pos8(hair,0); pos9(hair,0);
+top y2l=x_height; bot y5l=-o; x5=.5[x3,x6];
+lft x3l=u; y3=bar_height;
+z2=z3+whatever*dir60;
+rt x6l=w-u; y6=bar_height;
+top y7l=h+o; .5[x8,x6]=x7;
+y8=.5bar_height; y9=-d; x8=x9=.5[x3,x7];
+p0=z2r..z3r..z5r..{up}z6r..z7r..z8r---z9r;
+p1=z9l---z8l..z7l..{down}z6l..z5l..z3l..z2l;
+(tim0,tim1)=p0 intersectiontimes subpath(0,3) of p1;
+(tim2-3,tim3)=subpath (3,infinity) of p1 intersectiontimes p0;
+(tim4,tim5-4)= subpath(0,3) of p1 intersectiontimes subpath(4,infinity) of p1;
+(tim6,tim7-5)=subpath(0,4) of p0 intersectiontimes subpath(5,infinity) of p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p1,tim5),infinity) of p1..cycle;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0..cycle;
+p100:=subpath(0,2) of p0;
+p101:=reverse subpath(4,infinity) of p1;
+p102:=subpath(2,4) of p0;
+p103:=reverse subpath(2,4) of p1;
+oblu:=1.25bbw;
+z100=bsktouch(p100,down,p101,up);
+z101=bsktouch(p100,up,p101,down);
+z102=bsktouch(p102,up,p103,down);
+z103=bsktouch(p102,down,p103,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y8)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y9)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y3)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l+u+5)));
+tim104=xpart(p102 intersectiontimes (z102--(x102,y6)));
+tim105=xpart(p103 intersectiontimes (z102--(x102,y7l+5)));
+tim106=xpart(p102 intersectiontimes (z103--(x103,y6)));
+tim107=xpart(p103 intersectiontimes (z103--(x103,y9)));
+infill subpath(rundy(p100,tim102),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101).zpet,rundy(p101,tim103)) of p101..cycle;
+infill subpath(rundy(p102,tim104).zpet,rundy(p102,tim106)) of p102
+ ..subpath(rundy(p103,tim107),rundy(p103,tim105).zpet) of p103..cycle;
+penlabels(2,3,4,5,6,7,8,9); labels(7',7'',100,101,102,103);
+endchar;
+
+iff known chars.greek_varphi_curved:
+bskchar "The Greek letter phi---alternative (curved version)";
+beginchar(chars.greek_varphi_curved,12u#,x_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2hair;
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(stem,180); pos7(hair,-90);
+pos8(hair,0); pos9(hair,0); pos10(curve,0);
+top y2r=x_height; bot y5l=-o; x5=.5[x4l,x6];
+x3=x4l; lft x1l=.5u; x3l-x1r=max(curve,1.5u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+z2=z1+whatever*dir60;
+y4-y5=y2-y3; rt x6l=w-u; y6=bar_height;
+top y7l=h+o;
+.5[x8,x6]=x7;
+y8=.5bar_height; y9=-d+curve; x8=x9=.5[x3,x7]; y10=-d; x10r=x9l-o;
+p0=z1r{up}..z2r..z3r..z4r..z5r..{up}z6r..z7r..z8r---z9r..z10r..z10l;
+p1=z10l..z9l---z8l..z7l..{down}z6l..z5l..z4l..z3l..z2l..{down}z1l;
+(tim0,tim1)=p0 intersectiontimes subpath(0,3) of p1;
+(tim2-3,tim3)=subpath (3,infinity) of p1 intersectiontimes p0;
+(tim4,tim5-4)= subpath(0,3) of p1 intersectiontimes subpath(4,infinity) of p1;
+(tim6,tim7-6)=subpath(0,5) of p0 intersectiontimes subpath(6,infinity) of p0;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p1,tim1),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p0,tim3),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p1,tim5),infinity) of p1..cycle;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10); labels(7',7'');
+math_fit(mft-.5u#,0);
+endchar;
+
+iff known chars.greek_chi:
+bskchar "The Greek letter chi";
+beginchar(chars.greek_chi,12u#,x_height#,desc_depth#); uni "0x03C7";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(stem,150); pos1(hair,90); pos4(hair,90); pos5(stem,150);
+pos6(hair,0); pos7(hair,0); pos8(curve,0); pos9(curve,0);
+top y1r=h+o; bot y4l=-d;
+.5[x1,x4-u]=.5[x2,x3-u]=.5w;
+x1=2u; x3-x2=1/4w+.5u; y2=bar_height; -d+h-y2=y3;
+pos2(stem,angle(z2-z3)-90); pos3(stem,angle(z2-z3)-90);
+lft x0r=u; y0=y1-stem; z0'=(x0r,y0l);
+rt x5l=w; y5=y4+stem; z5'=(x5l,y5r);
+top y6=h-curve; bot y7=-d+curve; rt x6r=w-2.5u-o; x7l=w-x6r;
+y8=-d; z8r=whatever[z7l,z6l]+o*left; y9=h; z9l=whatever[z6l,z7l]+o*right;
+p0=z0r{up}..z1r{right}..z2r---z3r..{right}z4r..z5r;
+p1=z5r..z5'..z5l..z4l{left}..z3l---z2l..{left}z1l..z0l;
+p2=z6l---z7l..z8l&z8l..z8r..z7r---z6r..z9r&z9r..z9l..cycle;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3-4)=p0 intersectiontimes subpath(4,length p2) of p2;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,length p2) of p2;
+(tim6,tim7)=p1 intersectiontimes subpath(0,1) of p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..reverse subpath(0,rundy(p2,tim1).zpet) of p2
+ ..reverse subpath(rundy(p2,tim3),length p2) of p2
+ ..subpath(rundy(p0,tim2),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..reverse subpath(rundy(p2,tim7),rundy(p2,tim5).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1
+ ..z0l..z0'..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9); labels(0',5');
+endchar;
+
+iff known chars.greek_chi_BB:
+bskchar "The blackboard-bold Greek letter chi";
+beginchar(chars.greek_chi_BB,12u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(stem,150); pos1(hair,90); pos4(hair,90); pos5(stem,150);
+pos6(hair,0); pos7(hair,0); pos8(curve,0); pos9(curve,0);
+top y1r=h+o; bot y4l=-d;
+.5[x1,x4-u]=.5[x2,x3-u]=.5w;
+x1=2u; x3-x2=1/4w+.5u; y2=bar_height; -d+h-y2=y3;
+pos2(.8cap_stem,angle(z2-z3)-90); pos3(.8cap_stem,angle(z2-z3)-90);
+lft x0r=u; y0=y1-stem; z0'=(x0r,y0l);
+rt x5l=w; y5=y4+stem; z5'=(x5l,y5r);
+top y6=h-curve; bot y7=-d+curve; rt x6r=w-2.5u-o; x7l=w-x6r;
+y8=-d; z8r=whatever[z7l,z6l]+o*left; y9=h; z9l=whatever[z6l,z7l]+o*right;
+p0=z0r{up}..z1r{right}..z2r---z3r..{right}z4r..z5r;
+p1=z5r..z5'..z5l..z4l{left}..z3l---z2l..{left}z1l..z0l;
+p2=z6l---z7l..z8l&z8l..z8r..z7r---z6r..z9r&z9r..z9l..cycle;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3-4)=p0 intersectiontimes subpath(4,length p2) of p2;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,length p2) of p2;
+(tim6,tim7)=p1 intersectiontimes subpath(0,1) of p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..reverse subpath(0,rundy(p2,tim1).zpet) of p2
+ ..reverse subpath(rundy(p2,tim3),length p2) of p2
+ ..subpath(rundy(p0,tim2),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..reverse subpath(rundy(p2,tim7),rundy(p2,tim5).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1
+ ..z0l..z0'..cycle;
+p100=reverse subpath(1,4) of p0;
+p101=reverse subpath(3,6) of p1;
+z100=bsktouch(subpath(0,2) of p100,down,p101,up);
+z101=bsktouch(p100,down,subpath(0,2) of p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y3)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l-5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1r+5)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9); labels(0',5',100,101);
+endchar;
+
+iff known chars.greek_chi_SS:
+bskchar "The sans-serif Greek letter chi";
+beginchar(chars.greek_chi_SS,12u#,x_height#,desc_depth#); uni "non";
+italcorr x_height#*slant;
+adjust_fit(-.5u#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos0(stem,150); pos1(hair,90); pos4(hair,90); pos5(stem,150);
+pos6(hair,0); pos7(hair,0); pos8(hair,0); pos9(hair,0);
+top y1r=h+o; bot y4l=-d;
+.5[x1,x4-u]=.5[x2,x3-u]=.5w;
+x1=2u; x3-x2=1/4w+.5u; y2=bar_height; -d+h-y2=y3;
+pos2(stem,angle(z2-z3)-90); pos3(stem,angle(z2-z3)-90);
+lft x0r=u; y0=y1-stem; z0'=(x0r,y0l);
+rt x5l=w; y5=y4+stem; z5'=(x5l,y5r);
+top y6=h-curve; bot y7=-d+curve; rt x6r=w-2.5u-o; x7l=w-x6r;
+y8=-d; z8r=whatever[z7l,z6l]; y9=h; z9l=whatever[z6l,z7l]+o*right;
+p0=z1r{right}..z2r---z3r..{right}z4r;
+p1=z4l{left}..z3l---z2l..{left}z1l;
+p2=z6l---z7l..z8l&z8l..z8r..z7r---z6r..z9r&z9r..z9l..cycle;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3-4)=p0 intersectiontimes subpath(4,length p2) of p2;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,length p2) of p2;
+(tim6,tim7)=p1 intersectiontimes subpath(0,1) of p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..reverse subpath(0,rundy(p2,tim1).zpet) of p2
+ ..reverse subpath(rundy(p2,tim3),length p2) of p2
+ ..subpath(rundy(p0,tim2),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..reverse subpath(rundy(p2,tim7),rundy(p2,tim5).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1
+ ..cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9); labels(0',5');
+endchar;
+
+iff known chars.greek_psi:
+bskchar "The Greek letter psi";
+beginchar(chars.greek_psi,12u#,asc_height#,desc_depth#); uni "0x03C8";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(hair,180); pos7(curve,180);
+pos8(hair,0); pos9(hair,0); pos10(curve,0);
+top y2r=x_height; bot y5l=-o; x5=.5[x4l,x6];
+x3=x4l; lft x1l=.5u; x3l-x1r=max(1.5curve,2u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+z2=z1+whatever*dir60;
+y4-y5=y2-y3; rt x6l=w-u; y6=bar_height;
+top y7''=x_height+o;
+x7-x6=.45(y6-y7);
+z7'=z7+.2curve*down+o*left; z7''=z7+.5(curve-currentbreadth)*dir135;
+y8=h; y9=-d; x8=x9=.5[x3r,x7l];
+p0=z1r{up}..z2r..z3r..z4r..z5r..{up}z6r..z7'..{up}z7r;
+p1=z7r{up}..z7l..{down}z6l..z5l..z4l..z3l..z2l..{down}z1l;
+p2=z9l--z8l;
+p3=z8r--z9r;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3)=p0 intersectiontimes p3;
+(tim4,tim5)=p1 intersectiontimes p3;
+(tim6,tim7)=p1 intersectiontimes p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),infinity) of p2
+ ..subpath(0,rundy(p3,tim3).zpet) of p3
+ ..subpath(rundy(p0,tim2),infinity) of p0
+ &subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p3,tim5),infinity) of p3
+ ..subpath(0,rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(7',7'');
+math_fit(mft-.5u#,ic#-.5u#);
+endchar;
+
+iff known chars.greek_psi_BB:
+bskchar "The blackboard-bold Greek letter psi";
+beginchar(chars.greek_psi_BB,12u#,asc_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(vair,180); pos2(hair,90); pos3(.8cap_stem,0); pos4(cap_stem,0); pos5(hair,90);
+pos6(hair,180); pos7(curve,180);
+pos8(hair,0); pos9(hair,0); pos10(curve,0);
+top y2r=x_height; bot y5l=-o; x5=.5[x4l,x6];
+x3=x4; lft x1l=.5u; x3l-x1r=max(1.5curve,2u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+z2=z1+whatever*dir60;
+y4-y5=y2-y3; rt x6l=w-u; y6=bar_height;
+top y7''=x_height+o;
+x7-x6=.45(y6-y7);
+z7'=z7+.2curve*down+o*left; z7''=z7+.5(curve-currentbreadth)*dir135;
+y8=h; y9=-d; x8=x9=.5[x3r,x7l];
+p0=z1r{up}..z2r..z3r..z4r..{right}z5r..{up}z6r..z7'..{up}z7r;
+p1=z7r{up}..z7l..{down}z6l..{left}z5l..z4l..z3l..z2l..{down}z1l;
+p2=z9l--z8l;
+p3=z8r--z9r;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3)=p0 intersectiontimes p3;
+(tim4,tim5)=p1 intersectiontimes p3;
+(tim6,tim7)=p1 intersectiontimes p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),infinity) of p2
+ ..subpath(0,rundy(p3,tim3).zpet) of p3
+ ..subpath(rundy(p0,tim2),infinity) of p0
+ &subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p3,tim5),infinity) of p3
+ ..subpath(0,rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1..cycle;
+p100:=subpath(1,4) of p0;
+p101:=subpath(3,6) of p1;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,down,p101,up);
+z101=bsktouch(p100,down,subpath(0,1) of p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y8)));
+tim101=xpart(p101 intersectiontimes (z100--z1));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y3)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y9)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(7',7'',100,101);
+endchar;
+
+iff known chars.greek_psi_SS:
+bskchar "The sans-serif Greek letter psi";
+beginchar(chars.greek_psi_SS,12u#,asc_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(-1.5u#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(vair,180); pos2(hair,0); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(hair,180); pos7(curve,180);
+pos8(hair,0); pos9(hair,0); pos10(curve,0);
+top y2r=x_height; bot y5l=-o; x5=.5[x4l,x6];
+if boldmath:lft x4l=x3l; else: x4l=x3; fi;
+lft x1l=.5u; x3l-x1r=max(1.5curve,2u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+x2l=x3l;
+y4-y5=y2-y3; rt x6l=w-u; y6=bar_height;
+top y7=x_height;
+x7-x6=.45(y6-y7);
+y8=h; y9=-d; x8=x9=.5[x3r,x7l];
+p0=z2r---z3r..z4r..z5r..{up}z6r..z7r;
+p1=z7l..{down}z6l..z5l..z4l..z3l---z2l;
+p2=z9l--z8l;
+p3=z8r--z9r;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3)=p0 intersectiontimes p3;
+(tim4,tim5)=p1 intersectiontimes p3;
+(tim6,tim7)=p1 intersectiontimes p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),infinity) of p2
+ ..subpath(0,rundy(p3,tim3).zpet) of p3
+ ..subpath(rundy(p0,tim2),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p3,tim5),infinity) of p3
+ ..subpath(0,rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+iff known chars.greek_psi_curved:
+bskchar "The Greek letter psi (curved version)";
+beginchar(chars.greek_psi_curved,12u#,asc_height#,desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(vair,180); pos2(hair,90); pos3(stem,0); pos4(stem,0); pos5(hair,90);
+pos6(hair,180); pos7(curve,180);
+pos8(hair,0); pos9(hair,0); pos10(curve,0);
+top y2r=x_height; bot y5l=-o; x5=.5[x4l,x6];
+x3=x4l; lft x1l=.5u; x3l-x1r=max(1.5curve,2u);
+y2l-y1=1.5(x3-x1); y3=.35[y1,y2];
+z2=z1+whatever*dir60;
+y4-y5=y2-y3; rt x6l=w-u; y6=bar_height;
+top y7''=x_height+o;
+x7-x6=.45(y6-y7);
+z7'=z7+.2curve*down+o*left; z7''=z7+.5(curve-currentbreadth)*dir135;
+y8=h; y9=-d+curve; x8=x9=.5[x3r,x7l]; y10=-d; x10r=x9l-o;
+p0=z1r{up}..z2r..z3r..z4r..z5r..{up}z6r..z7'..{up}z7r;
+p1=z7r{up}..z7l..{down}z6l..z5l..z4l..z3l..z2l..{down}z1l;
+p2=z10l..z9l---z8l;
+p3=z8r---z9r..z10r..z10l;
+(tim0,tim1)=p0 intersectiontimes p2;
+(tim2,tim3)=p0 intersectiontimes p3;
+(tim4,tim5)=p1 intersectiontimes p3;
+(tim6,tim7)=p1 intersectiontimes p2;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..subpath(rundy(p2,tim1),infinity) of p2
+ ..subpath(0,rundy(p3,tim3).zpet) of p3
+ ..subpath(rundy(p0,tim2),infinity) of p0
+ &subpath(0,rundy(p1,tim4).zpet) of p1
+ ..subpath(rundy(p3,tim5),infinity) of p3
+ ..subpath(0,rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10); labels(7',7'');
+math_fit(mft-.5u#,ic#-.5u#);
+endchar;
+
+iff known chars.greek_omega:
+bskchar "The Greek letter omega";
+beginchar(chars.greek_omega,13.5u#,x_height#,0); uni "0x03C9";
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,90); pos2(hair,180); pos3(stem,270);
+pos4(hair,90); pos4'(hair,240); pos4''(.5[hair,stem],-60);
+pos5(hair,270); pos6(curve,0); pos7(stem,90);
+top y1r=h; lft x2r=u; y2=.5h; bot y3r=-o;
+rt x1=x3; .5[x3,x5]=.5w; x5-x3=1/3w;
+1/3[x4,x3]=.45w; y4l=bar_height;
+bot y5r=-o; y6=y2; rt x6r=w-.5u;
+x7-x6=(x2-x1); top y7r=h;
+y4'=y4''=.6bar_height; .5[x4',x4'']=x4; x4'-x4''=.35(y3-y4);
+z1'=z1+.2curve*right+o*up; z1''=z1+.5(curve-currentbreadth)*dir135;
+z7'=z7+.2curve*right+o*down; z7''=z7+.5(curve-currentbreadth)*dir45;
+p0=z7'{right}..z6l..z5l..z4'l..z4l{right}..z4''l..z3l{left}..z2l..{right}z1l;
+p1=z1l{right}..z1'..z1r..z1''..z2r..{right}z3r..z4''r..{left}z4r..z4'r..{right}z5r..z6r..z7''..z7r;
+(tim0,tim1-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+(tim2-1,tim3)=subpath(1,infinity) of p0 intersectiontimes p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,6) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+filldraw subpath(0,rundy(p1,(tim0,hair)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,hair)),infinity) of p1..z7l
+ ..subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2hair)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7); labels(1',1'',7',7'');
+math_fit(mft-.5u#,ic#);
+endchar;
+
+iff known chars.greek_omega_BB:
+bskchar "The blackboard-bold Greek letter omega";
+beginchar(chars.greek_omega_BB,13.5u#,x_height#,0); uni "non";
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,90); pos2(hair,180); pos3(stem,270);
+pos4(hair,90); pos4'(hair,240); pos4''(.5[hair,stem],-60);
+pos5(hair,270); pos6(cap_stem,0); pos7(stem,90);
+top y1r=h; lft x2r=u; y2=.5h; bot y3r=-o;
+rt x1=x3; .5[x3,x5]=.5w; x5-x3=1/3w;
+1/3[x4,x3]=.45w; y4l=bar_height;
+bot y5r=-o; y6=y2; rt x6r=w-.5u;
+x7-x6=(x2-x1); top y7r=h;
+y4'=y4''=.6bar_height; .5[x4',x4'']=x4; x4'-x4''=.35(y3-y4);
+z1'=z1+.2curve*right+o*up; z1''=z1+if not boldmath:.5\\fi(curve-currentbreadth)*dir135;
+z7'=z7+if boldmath: .3 else: .2\\fi curve*right+o*down; z7''=z7+if not boldmath:.5\\fi(curve-currentbreadth)*dir45;
+p0=z7'{right}..z6l..z5l..z4'l..z4l{right}..z4''l..z3l{left}..z2l..{right}z1l;
+p1=z1l{right}..z1'..z1r..z1''..z2r..{right}z3r..z4''r..{left}z4r..z4'r..{right}z5r..z6r..z7''..z7r;
+(tim0,tim1-7)=subpath(0,6) of p1 intersectiontimes subpath (7,infinity) of p1;
+(tim2-1,tim3)=subpath(1,infinity) of p0 intersectiontimes p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,6) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+filldraw subpath(0,rundy(p1,(tim0,hair)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,hair)),infinity) of p1..z7l
+ ..subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2hair)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+p100=subpath(0,2) of p0;
+p101=subpath(9,11) of p1;
+z100=bsktouch(subpath(0,1) of p100,1.5up,p101,1.5down);
+z101=bsktouch(p100,down,subpath(0,1) of p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y6)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y7r+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y6)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y5r-u-5)));
+oblu:=bbw;
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103),rundy(p101,tim101).zpet) of p101..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7); labels(1',1'',7',7'',100,101);
+endchar;
+
+iff known chars.greek_omega_SS:
+bskchar "The sans-serif Greek letter omega";
+beginchar(chars.greek_omega_SS,13.5u#,x_height#,0); uni "non";
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric tim[]; path p[]; oblu:=2oblu;
+pos1(stem,90); pos2(hair,180); pos3(stem,270);
+pos4(hair,90); pos4'(hair,240); pos4''(.5[hair,stem],-60);
+pos5(hair,270); pos6(curve,0); pos7(stem,90);
+top y1r=h; lft x2r=u; y2=.5h; bot y3r=-o;
+rt x1=x3; .5[x3,x5]=.5w; x5-x3=1/3w;
+1/3[x4,x3]=.45w; y4l=bar_height;
+bot y5r=-o; y6=y2; rt x6r=w-.5u;
+x7-x6=(x2-x1); top y7r=h;
+y4'=y4''=.6bar_height; .5[x4',x4'']=x4; x4'-x4''=.35(y3-y4);
+p0=z7l{right}..z6l..z5l..z4'l..z4l{right}..z4''l..z3l{left}..z2l..{right}z1l;
+p1=z1l{right}..z1r{left}..z2r..{right}z3r..z4''r..{left}z4r..z4'r..{right}z5r..z6r..z7r;
+(tim0,tim1-5)=subpath(0,4) of p1 intersectiontimes subpath (5,infinity) of p1;
+(tim2-1,tim3)=subpath(1,infinity) of p0 intersectiontimes p1;
+(tim4,tim5-4)=p1 intersectiontimes subpath(4,6) of p0;
+(tim6,tim7-4)=subpath(0,4) of p0 intersectiontimes subpath(4,infinity) of p0;
+filldraw subpath(0,rundy(p1,(tim0,hair)).zpet) of p1
+ ..subpath(rundy(p1,(tim1,hair)),infinity) of p1..z7l
+ ..subpath(0,rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p1,tim3),rundy(p1,(tim4,1.2hair)).zpet) of p1
+ ..subpath(rundy(p0,tim5),infinity) of p0..cycle;
+oblu:=f_obl;
+infill subpath(rundy(p0,tim6),rundy(p0,tim7).zpet) of p0 ..cycle;
+penlabels(0,1,2,3,4,4',4'',5,6,7);
+endchar;
+
+iff known chars.greek_sampi:
+bskchar "The Greek letter sampi";
+beginchar(chars.greek_sampi,12u#,x_height#,desc_depth#); uni "0x03E1";
+adjust_fit(0,if slant<>0: -.75u# else: 0 fi);
+pickup tiny.nib;
+path p[]; numeric tim[], theta;
+oblu:=2oblu;
+pos1(hair,90); pos3(hair,0);
+top y1r=h+o; bot y3=-d; lft x1=2u; rt x3r=w-u;
+z2=1/3[.5[z1,z3],(x3,y1)];
+p0:=z1..z2..z3; theta=angle(direction 1 of p0)+90; pos2(curve,theta);
+p1:=z1r..z2r..z3r;
+p2:=z3l..z2l..z1l;
+pos4(hair,theta-90); pos5(hair,theta-90);
+z4=p0 intersectionpoint ((0,bar_height)--(w,bar_height));
+z5=p0 intersectionpoint ((0,0)--(w,0));
+pos6(curve,theta-100); pos7(curve,theta-80);
+pos6'(.5[curve,stem],theta-90); pos7'(.5[curve,stem],theta-90);
+lft x6l=u; z6r=z4l+whatever*dir(theta);
+z7l=z5r-abs(z6r-z4l)*dir(theta);
+z6'l=z6l+1/3(z4l-z6l)+.5hair*dir(theta-90);
+z7'r=z7r+1/3(z5r-z7r)+.5hair*dir(theta+90);
+p3:=reverse(z4l---z6'l..z6l&z6l..z6r..z6'r---z4r);
+p4:=z5r---z7'r..z7r&z7r..z7l..z7'l---z5l;
+(tim0,tim1)=p2 intersectiontimes p4;
+(tim2,tim3-1)=p2 intersectiontimes subpath(1,infinity) of p4;
+(tim4,tim5)=p2 intersectiontimes p3;
+(tim6,tim7-1)=p2 intersectiontimes subpath(1,infinity) of p3;
+filldraw subpath(0,rundy(p2,tim0).zpet) of p2
+ ..subpath(rundy(p4,tim1),rundy(p4,tim3).zpet) of p4
+ ..subpath(rundy(p2,tim2),rundy(p2,tim4).zpet) of p2
+ ..subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3
+ ..subpath(rundy(p2,tim6),infinity) of p2..p1..cycle;
+penlabels(1,2,3,4,5,6,6',7,7');
+math_fit(-.5[x_height#,bar_height#]*slant+.5u#,0);
+endchar;
+
+iff known chars.greek_sampi_BB:
+bskchar "The blackboard-bold Greek letter sampi";
+beginchar(chars.greek_sampi_BB,12u#,x_height#,desc_depth#); uni "non";
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[], theta;
+oblu:=2oblu;
+pos1(hair,90); pos3(hair,0);
+top y1r=h+o; bot y3=-d; lft x1=2u; rt x3r=w-u;
+z2=1/3[.5[z1,z3],(x3,y1)];
+p0:=z1..z2..z3; theta=angle(direction 1 of p0)+90; pos2(cap_stem,theta);
+p1:=z1r..z2r..z3r;
+p2:=z3l..z2l..z1l;
+pos4(hair,theta-90); pos5(hair,theta-90);
+z4=p0 intersectionpoint ((0,bar_height)--(w,bar_height));
+z5=p0 intersectionpoint ((0,0)--(w,0));
+pos6(curve,theta-100); pos7(curve,theta-80);
+pos6'(.5[curve,stem],theta-90); pos7'(.5[curve,stem],theta-90);
+lft x6l=u; z6r=z4l+whatever*dir(theta);
+z7l=z5r-abs(z6r-z4l)*dir(theta);
+z6'l=z6l+1/3(z4l-z6l)+.5hair*dir(theta-90);
+z7'r=z7r+1/3(z5r-z7r)+.5hair*dir(theta+90);
+p3:=reverse(z4l---z6'l..z6l&z6l..z6r..z6'r---z4r);
+p4:=z5r---z7'r..z7r&z7r..z7l..z7'l---z5l;
+(tim0,tim1)=p2 intersectiontimes p4;
+(tim2,tim3-1)=p2 intersectiontimes subpath(1,infinity) of p4;
+(tim4,tim5)=p2 intersectiontimes p3;
+(tim6,tim7-1)=p2 intersectiontimes subpath(1,infinity) of p3;
+filldraw subpath(0,rundy(p2,tim0).zpet) of p2
+ ..subpath(rundy(p4,tim1),rundy(p4,tim3).zpet) of p4
+ ..subpath(rundy(p2,tim2),rundy(p2,tim4).zpet) of p2
+ ..subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3
+ ..subpath(rundy(p2,tim6),infinity) of p2..p1..cycle;
+z100=bsktouch(subpath(0,1) of p1,dir210,p2,dir30);
+z101=bsktouch(p1,left,subpath(0,1) of p2,right);
+tim100=xpart(p1 intersectiontimes (z100--(w,y100)));
+tim101=xpart(p2 intersectiontimes (z100--(0,y100)));
+tim102=xpart(p1 intersectiontimes (z101--(w,y101)));
+tim103=xpart(p2 intersectiontimes (z101--(0,y101)));
+oblu:=bbw;
+infill subpath(rundy(p1,tim100),rundy(p1,tim102).zpet) of p1
+ ..subpath(rundy(p2,tim103),rundy(p2,tim101).zpet) of p2..cycle;
+penlabels(1,2,3,4,5,6,6',7,7'); labels(100,101);
+endchar;
+
+iff known chars.greek_sampi_SS:
+bskchar "The sans-serif Greek letter sampi";
+beginchar(chars.greek_sampi_SS,12u#,x_height#,desc_depth#); uni "non";
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[], theta;
+oblu:=2oblu;
+pos1(hair,90); pos3(hair,0);
+top y1r=h+o; bot y3=-d; lft x1=2u; rt x3r=w-u;
+z2=1/3[.5[z1,z3],(x3,y1)];
+p0:=z1..z2..z3; theta=angle(direction 1 of p0)+90; pos2(curve,theta);
+p1:=z1r..z2r..z3r;
+p2:=z3l..z2l..z1l;
+pos4(hair,theta-90); pos5(hair,theta-90);
+z4=p0 intersectionpoint ((0,bar_height)--(w,bar_height));
+z5=p0 intersectionpoint ((0,0)--(w,0));
+pos6(curve,theta-100); pos7(curve,theta-80);
+lft x6l=1.25u; z6r=z4r+whatever*dir(theta);
+z7l=z5r-abs(z6r-z4l)*dir(theta);
+p3:=reverse(z4l---z6l&z6l..z6r---z4r);
+p4:=z5r---z7r&z7r..z7l---z5l;
+(tim0,tim1)=p2 intersectiontimes p4;
+(tim2,tim3-1)=p2 intersectiontimes subpath(1,infinity) of p4;
+(tim4,tim5)=p2 intersectiontimes p3;
+(tim6,tim7-1)=p2 intersectiontimes subpath(1,infinity) of p3;
+filldraw subpath(0,rundy(p2,tim0).zpet) of p2
+ ..subpath(rundy(p4,tim1),rundy(p4,tim3).zpet) of p4
+ ..subpath(rundy(p2,tim2),rundy(p2,tim4).zpet) of p2
+ ..subpath(rundy(p3,tim5),rundy(p3,tim7).zpet) of p3
+ ..subpath(rundy(p2,tim6),infinity) of p2..p1..cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+iff known chars.greek_varsampi:
+bskchar "The Archaic Greek letter sampi";
+beginchar(chars.greek_varsampi,12u#,asc_height#,0); uni "0x0373";
+italcorr asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(curve,-10); pos2(.5[hair,stem],0); pos1'(.5[curve,stem],0);
+pos3(curve,10); pos4(.5[hair,stem],0); pos5(stem,0); pos6(stem,0);
+bot y1=bot y3=.5[x_height,bar_height]; top y2=top y4=h; bot y5=0;
+y2r:=y4l:=y6=y2-bar+tiny; y3r:=y3r+o;
+lft x1l=u; rt x4r=w-u; x5=x6=.5w; x2'=x2r; x4'=x4l; x3=x4r;
+x2l=x1r; y1'-y1=.5bar_height; z1'l=whatever[z2l,z1l]+.5hair*right;
+bskpoints(5,6,0,hair);
+filldraw z1'l..z1l&z1l..z1r..z1'r---obl(2r,1'r,6l)---obl(6l,2r,5l)---z5l..z5rr
+ ---obl(6r,5r,4l)---z4l+oblu*left..z4l+oblu*down{down}..{dir-70}z3l
+ ..(x3r,y1)..z3r{dir130}..{up}obl(4r,3r,2l)---obl(2l,4r,1l)---cycle;
+penlabels(1,1',2,3,4,5,6); labels(3ll,5rr);
+math_fit(-.5[x_height#,bar_height#]*slant,ic#-3u#);
+endchar;
+
+iff known chars.greek_varsampi_BB:
+bskchar "The blackboard-bold Archaic Greek letter sampi";
+beginchar(chars.greek_varsampi_BB,12u#,asc_height#,0); uni "non";
+italcorr asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(curve,-10); pos2(.5[hair,stem],0); pos1'(.5[curve,stem],0);
+pos3(curve,10); pos4(.5[hair,stem],0); pos5(.8cap_stem,0); pos6(.8cap_stem,0);
+bot y1=bot y3=.5[x_height,bar_height]; top y2=top y4=h; bot y5=0;
+y2r:=y4l:=y6=y2-bar+tiny; y3r:=y3r+o;
+lft x1l=u; rt x4r=w-u; x5=x6=.5w; x2'=x2r; x4'=x4l; x3=x4r;
+x2l=x1r; y1'-y1=.5bar_height; z1'l=whatever[z2l,z1l]+.5hair*right;
+bskpoints(5,6,0,hair);
+filldraw z1'l..z1l&z1l..z1r..z1'r---obl(2r,1'r,6l)---obl(6l,2r,5l)---z5l..z5rr
+ ---obl(6r,5r,4l)---z4l+oblu*left..z4l+oblu*down{down}..{dir-70}z3l
+ ..(x3r,y1)..z3r{dir130}..{up}obl(4r,3r,2l)---obl(2l,4r,1l)---cycle;
+penlabels(1,1',2,3,4,5,6); labels(3ll,5rr);
+infill ifobl(6r,6l,5r,5l,,)---ifobl(5l,5r,6l,6r,,)--cycle;
+endchar;
+
+iff known chars.greek_varsampi_SS:
+bskchar "The sans-serif Archaic Greek letter sampi";
+beginchar(chars.greek_varsampi_SS,12u#,asc_height#,0); uni "non";
+italcorr asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(curve,0); pos2(.5[hair,stem],0); pos1'(.5[curve,stem],0);
+pos3(curve,0); pos4(.5[hair,stem],0); pos5(stem,0); pos6(stem,0);
+bot y1=bot y3=.5[x_height,bar_height]; top y2=top y4=h; bot y5=0;
+y2r:=y4l:=y6=y2-bar+tiny;
+lft x1l=u; rt x4r=w-u; x5=x6=.5w; x2'=x2r; x4'=x4l; x3=x4;
+x2=x1; y1'-y1=.5bar_height; z1'l=whatever[z2l,z1l];
+bskpoints(5,6,0,hair);
+filldraw z1'l..z1l&z1l..z1r...z1'r---obl(2r,1'r,6l)---obl(6l,2r,5l)---z5l..z5rr
+ ---obl(6r,5r,4l)---z4l+oblu*left..z4l+oblu*down{down}..{down}z3l
+ ..z3r{up}..{up}obl(4r,3r,2l)---obl(2l,4r,1l)---cycle;
+penlabels(1,1',2,3,4,5,6); labels(3ll,5rr);
+endchar;
+
+iff known chars.greek_qoppa:
+bskchar "The Archaic Greek letter qoppa";
+beginchar(chars.greek_qoppa,9u#,x_height#,2/3desc_depth#); uni "0x03D9";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+oblu:=2oblu;
+path p[];
+pos1(curve,0); pos2(hair,90); pos3(curve,180); pos4(hair,270);
+pos5(.75[stem,hair],0); pos6(curve,-20);
+pos6'(.5[stem,hair],0); pos6''(.9curve,-20);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; z5=z2l; x6=x5r; bot y6r=-d;
+z6'=2/3[z6l,z5l];
+z6''=z6+.5stem*up;
+p0:=z1l{down}..z2l..{up}z3l..z4l..{down}z1l;
+p1:=z5l---z6'l---z6''l...z6l..z6r...z6''r---z6'r---z5r;
+filldraw subpath(0,rundy(p0,1).zpet) of p0
+ ..subpath(rundy(p1,0),rundy(p1,infinity).zpet) of p1
+ ..subpath(rundy(p0,1),infinity) of p0&cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6,6',6'');
+math_fit(mft-.5u#,ic#-.5u#);
+endchar;
+
+iff known chars.greek_qoppa_BB:
+bskchar "The blackboard-bold Archaic Greek letter qoppa";
+beginchar(chars.greek_qoppa_BB,9u#,x_height#,2/3desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+oblu:=2oblu;
+path p[];
+pos1(cap_stem,0); pos2(hair,90); pos3(cap_stem,180); pos4(hair,270);
+pos5(.75[stem,hair],0); pos6(curve,-20);
+pos6'(.5[stem,hair],0); pos6''(.9curve,-20);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; z5=z2l; x6=x5r; bot y6r=-d;
+z6'=2/3[z6l,z5l];
+z6''=z6+.5stem*up;
+p0:=z1l{down}..z2l..{up}z3l..z4l..{down}z1l;
+p1:=z5l---z6'l---z6''l...z6l..z6r...z6''r---z6'r---z5r;
+filldraw subpath(0,rundy(p0,1).zpet) of p0
+ ..subpath(rundy(p1,0),rundy(p1,infinity).zpet) of p1
+ ..subpath(rundy(p0,1),infinity) of p0&cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+numeric tim[];
+p100:=z4r..z1r{down}..z2r..z3r..cycle;
+p101:=reverse z4l..z1l{down}..z2l..{up}z3l..cycle;
+oblu:=1.25bbw;
+z100=bsktouch(subpath(0,1) of p100,up,p101,down);
+z101=bsktouch(subpath(1,2) of p100,down,p101,up);
+z102=bsktouch(subpath(3,4) of p100,up,p101,down);
+z103=bsktouch(subpath(2,3) of p100,down,p101,up);
+tim100=xpart(p100 intersectiontimes (z100--(x100,y1)));
+tim101=xpart(p101 intersectiontimes (z100--(x100,y4l+5)));
+tim102=xpart(p100 intersectiontimes (z101--(x101,y1)));
+tim103=xpart(p101 intersectiontimes (z101--(x101,y2l-5)));
+tim104=xpart(p100 intersectiontimes (z102--(x102,y1)));
+tim105=xpart(p101 intersectiontimes (z102--(x102,y4l+5)));
+tim106=xpart(p100 intersectiontimes (z103--(x103,y1)));
+tim107=xpart(p101 intersectiontimes (z103--(x103,y2l-5)));
+infill subpath(rundy(p100,tim100),rundy(p100,tim102).zpet) of p100
+ ..subpath(rundy(p101,tim103).zpet,rundy(p101,tim101)) of p101..cycle;
+infill subpath(rundy(p100,tim104).zpet,rundy(p100,tim106)) of p100
+ ..subpath(rundy(p101,tim107),rundy(p101,tim105).zpet) of p101..cycle;
+penlabels(1,2,3,4,5,6,6',6''); labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_qoppa_SS:
+bskchar "The sans-serif Archaic Greek letter qoppa";
+beginchar(chars.greek_qoppa_SS,9u#,x_height#,2/3desc_depth#); uni "non";
+italcorr bar_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+oblu:=2oblu;
+path p[];
+pos1(curve,0); pos2(hair,90); pos3(curve,180); pos4(hair,270);
+pos5(.75[stem,hair],0); pos6(curve,0);
+lft x1l=u; rt x3l=w-u; y1=y3=.5h; .5[x2,x4]=.5[x1,x3]; x2=x4;
+bot y2l=-o; top y4l=h+o; z5=z2l; x6=x5; bot y6=-d;
+p0:=z1l{down}..z2l..{up}z3l..z4l..{down}z1l;
+p1:=z5l---z6l..z6r---z5r;
+filldraw subpath(0,rundy(p0,1).zpet) of p0
+ ..subpath(rundy(p1,0),rundy(p1,infinity).zpet) of p1
+ ..subpath(rundy(p0,1),infinity) of p0&cycle;
+infill z1r{up}..z4r..{down}z3r..z2r..{up}cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known chars.greek_stigma:
+bskchar "The Greek letter stigma";
+beginchar(chars.greek_stigma,9u#,x_height#,.5desc_depth#); uni "0x03DB";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(stem,90); pos2(hair,180); pos0(stem,90); pos0'(hair,90);
+pos3(stem,270); pos3'(stem,270); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+lft x2r=u; top y1r=h+o; y2=bar_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0'=w-u; x0=w-2.5u; y0=y1; y0'r=y0r; x3=.5w; bot y3r=bot y3'r=-o;
+x6=x5-stem; y6=y5+.5stem; x4-x3'=.75(y3'-y4);
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+filldraw z0r---z1r..z2r..z3r---z3'r..z4r..z5r..z6''..z6'..z6l
+ ..z5l{right}..z4l..z3'l---z3l..z2l..z1l---z0l..{up}z0'l..z0'r---cycle;
+penlabels(0,0',1,2,3,3',4,5,6); labels(6',6'');
+math_fit(mft-.5u#,0);
+endchar;
+
+iff known chars.greek_stigma_BB:
+bskchar "The blackboard-bold Greek letter stigma";
+beginchar(chars.greek_stigma_BB,9u#,x_height#,.5desc_depth#); uni "non";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(.8cap_stem,90); pos2(hair,180); pos0(.8cap_stem,90); pos0'(hair,90);
+pos3(.8cap_stem,270); pos3'(.8cap_stem,270); pos4(hair,180); pos5(hair,100); pos6(stem,0);
+lft x2r=u; top y1r=h+o; y2=bar_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0'=w-u; x0=w-2.5u; y0=y1; y0'r=y0r; x3=.5w; bot y3r=bot y3'r=-o;
+x6=x5-stem; y6=y5+.5stem; x4-x3'=.75(y3'-y4);
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+filldraw z0r---z1r..z2r..z3r---z3'r..z4r..z5r..z6''..z6'..z6l
+ ..z5l{right}..z4l..z3'l---z3l..z2l..z1l---z0l..{up}z0'l..z0'r---cycle;
+penlabels(0,0',1,2,3,3',4,5,6); labels(6',6'');
+path p[]; numeric tim[];
+p100:=subpath(0,6) of (z0'r---z0r---z1r..z2r..z3r---z3'r..z4r..z5r..z6''..z6'..z6l..{right}z5l);
+p101:=subpath(1,infinity) of (z5l{right}..z4l..z3'l---z3l..z2l..z1l---z0l..{up}z0'l);
+z100=bsktouch(subpath(0,3) of p100,right,p101,left);
+z101=bsktouch(subpath(3,4) of p100,right,p101,left);
+z102=bsktouch(subpath(5,infinity) of p100,right,p101,left);
+tim100=xpart(p100 intersectiontimes (z100--(0,y100)));
+tim101=xpart(p101 intersectiontimes (z100--(w,y100)));
+tim102=xpart(p100 intersectiontimes (z101--(0,y101)));
+tim103=xpart(p101 intersectiontimes (z101--(w,y101)));
+tim104=xpart(p100 intersectiontimes (z102--(0,y102)));
+tim105=xpart(p101 intersectiontimes (z102--(w,y102)));
+oblu:=bbw;
+infill subpath(rundy(p100,0),rundy(p100,tim100).zpet) of p100
+ ..subpath(rundy(p101,tim101),rundy(p101,infinity).zpet) of p101..cycle;
+infill subpath(rundy(p100,tim102),rundy(p100,tim104).zpet) of p100
+ ..subpath(rundy(p101,tim105),rundy(p101,tim103).zpet) of p101..cycle;
+labels(100,101,102,103);
+endchar;
+
+iff known chars.greek_stigma_SS:
+bskchar "The sans-serif Greek letter stigma";
+beginchar(chars.greek_stigma_SS,9u#,x_height#,.5desc_depth#); uni "non";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(stem,90); pos2(hair,180); pos0(stem,90); pos0'(hair,90);
+pos3(stem,270); pos3'(stem,270); pos4(hair,180); pos5(hair,100); pos6(hair,90);
+lft x2r=u; top y1r=h+o; y2=bar_height-.5d; x1=.5w;
+rt x4r=w-u; y4=-.5d; x5=.5[x3,x4]; bot y5l=-d;
+rt x0'=w-u; x0=w-2.5u; y0=y1; y0'r=y0r; x3=.5w; bot y3r=bot y3'r=-o;
+x6=x5-stem; y6=y5; x4-x3'=.75(y3'-y4);
+z6'=z6+.2stem*up+o*left; z6''=z6+.5(stem-currentbreadth)*dir-45;
+filldraw z0r---z1r..z2r..z3r---z3'r..z4r..z5r---z6r
+ ..z6l---z5l..z4l..z3'l---z3l..z2l..z1l---z0l..{up}z0'l..z0'r---cycle;
+penlabels(0,0',1,2,3,3',4,5,6); labels(6',6'');
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% One cyrilic letter
+iff known chars.cyrilic_Sha:
+bskchar "The Cyrilic letter Sha";
+beginchar(chars.cyrilic_Sha,17.5u#,cap_height#,0); uni "0x0428";
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+pos5(cap_stem,0); pos6(cap_stem,0);
+bot y1=bot y3=0; top y2=top y4=top y6=h; y5=y1+.5[cap_hair,cap_stem]-currentbreadth;
+lft x1l=lft x2l=2u; rt x3r=rt x4r=w-2u; x5=x6=.5w;
+cap_serifs_tl(2l); cap_serifs_tr(2r); cap_serifs_bl(1l);
+cap_serifs_tl(4l); cap_serifs_tr(4r); cap_serifs_br(3r);
+{{ numeric old_jut; old_jut:=cap_jut; save cap_jut; cap_jut:=.75old_jut;
+ cap_serifs_tl(6l); cap_serifs_tr(6r);
+}};
+y1r:=y3l:=y5;
+oblu:=2oblu;
+filldraw z1l.b{down}..{left}z1l.c..z1l.a---z3r.a..z3r.c{left}..z3r.b---z4r.b
+ ..{right}z4r.c..z4r.a---z4l.a..{right}z4l.c..z4l.b---obl(3l,4l,5r)
+ ---obl(5r,3l,6r)---z6r.b..{right}z6r.c..z6r.a---z6l.a..{right}z6l.c
+ ..z6l.b---obl(5l,6l,1r)---obl(1r,5l,2r)---z2r.b..{right}z2r.c..z2r.a
+ ---z2l.a..{right}z2l.c..z2l.b---cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Next letters are named ``calligraphic'' but they are only ``decorative''
+numeric cal_stem, cal_hair, cal_curve;
+cal_curve=cap_curve+.25cap_hair; cal_stem=cap_stem+.25cap_hair; cal_hair:=.5[cap_hair,cap_stem];
+
+iff known chars.cal_A:
+bskchar "The calligraphic letter A";
+beginchar(chars.cal_A,13.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant+.5u#;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(cal_hair,0); pos2(cal_hair,90); pos3(cal_hair,180); pos4(cal_hair,180);
+pos5(cal_hair,90); pos6(cal_hair,0);
+pos7(.65[cal_stem,cal_hair],-10); pos8(cal_stem,10); pos9(cal_hair,90);
+pos11(cal_hair,-10); pos12(.5[cal_stem,cal_hair],60); pos13(.5[cal_stem,cal_hair],60);
+rt x1l=u; y1=cal_stem; bot y2l=-d-o; .5[x1,x3]=x2=x1+cal_stem; y3=.5bar_height;
+y4=.5[bar_height,x_height]; z4=z3+whatever*dir75; top y5r=h+o; x5=w-u-cal_hair;
+rt x6r=w; y6=y5-cal_hair; y8=cal_curve; y7=y5l-cal_curve; x8r=x7r=x5-.5cal_hair;
+bot y9l=0; x9=.5[x8r,w];
+z10=(w,y8r); z11r=z5r; z12r=z4; y13=y4; x13=x7r;
+p1:=z1r{down}..z2r..z3r..z4r..{right}z5r..{down}z6r;
+p2:=z6l{up}..{left}z5l..z4l..z3l..z2l..{up}z1l;
+p3:=z11l---z7l..z8l..z9l..{dir100}z10;
+p4:=z10+left{dir-80}..z9r..z8r..z7r---z11r;
+p5:=z12r{right}..{dir30}z13r;
+p6:=z13l{dir-120}..{left}z12l;
+(tim1,tim2)=p2 intersectiontimes p4;
+(tim3,tim4)=p3 intersectiontimes p6;
+(tim5,tim6)=p6 intersectiontimes p2;
+(tim7,tim8)=p2 intersectiontimes p3;
+(tim9,tim10)=p2 intersectiontimes p5;
+(tim11,tim12)=p5 intersectiontimes p3;
+filldraw p1..subpath(0,rundy(p2,tim1).zpet) of p2
+ ..reverse subpath(0,rundy(p4,tim2).zpet) of p4
+ ..reverse subpath(rundy(p3,tim3),infinity) of p3
+ ..subpath(rundy(p6,tim4),rundy(p6,tim5).zpet) of p6
+ ..subpath(rundy(p2,tim6),infinity) of p2..cycle;
+oblu:=2oblu;
+infill subpath(rundy(p2,tim7),rundy(p2,tim9).zpet) of p2
+ ..subpath(rundy(p5,tim10),rundy(p5,tim11).zpet) of p5
+ ..reverse subpath(rundy(p3,tim8),rundy(p3,tim12).zpet) of p3..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13); labels(10);
+math_fit(-u#,u#);
+endchar;
+
+iff known chars.cal_B:
+bskchar "The calligraphic letter B";
+beginchar(chars.cal_B,11u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant+.5u#;
+adjust_fit(0,0);
+path p[]; numeric tim[], bpos;
+bpos=.5[x_height,bar_height];
+pickup tiny.nib;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20); pos4(hair,150);
+pos5(.9cal_hair,80); pos6(.65[cal_stem,cal_hair],10); pos7(cal_stem,-10);
+pos8(cal_hair,-90); pos9(cal_hair,180);
+pos10(.65[cal_stem,cal_hair],10); pos11(cal_stem,-10);
+pos12(cal_hair,-90); pos13(cal_hair,180);
+y1=h-cap_stem-cap_hair; bot y3r=0; lft x3l=0; lft x1l=u;
+x2l=x3r+.5hair; y2=1/3x_height;
+lft x9r=x2r+cal_hair; y9=bpos+cal_stem; bot y8r=bpos-o; x8=x9+cal_stem;
+x4l=0; top y4=h-cap_stem; top y5r=h; .75[x5,x4]=x1;
+y6-y7=.5(h-bpos); .5[y6,y7]=.5[h,bpos]; x6=x7; rt x6r=w-3.5u;
+y10-y11=1/3bpos; .5[y10,y11]=.5bpos; x10=x11; rt x10r=w-u;
+lft x13r=x2r+cal_stem; y13=cal_stem; bot y12r=-d-o; x12=x13+cal_stem;
+p0:=z4l..z5l..z6l..z7l..z8l..{up}z9l;
+p1:=z9r{down}..z8r..z7r..z6r..z5r..z4r;
+p2:=z8r{right}..z10l..z11l..z12l..{up}z13l;
+p3:=z13r{down}..z12r..z11r..z10r..{left}z8l;
+z100=bsktouch(p3,up,p1,down);
+tim0=xpart(p3 intersectiontimes (z100--(x100,y11)));
+tim1=xpart(p1 intersectiontimes (z100--(x100,y6)));
+filldraw z1l{z2l-z1l}..z2l..z3l&z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r..cycle;
+filldraw subpath(0,4) of p0..p2
+ ..subpath(0,rundy(p3,tim0).zpet) of p3
+ ..subpath(rundy(p1,tim1),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); labels(100);
+math_fit(0,.5u#);
+endchar;
+
+iff known chars.cal_C:
+bskchar "The calligraphic letter C";
+beginchar(chars.cal_C,9u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(cal_hair,-90); pos2(cal_hair,180);
+pos3(.65[cal_stem,cal_hair],-10); pos4(cal_stem,10); pos5(cal_hair,90);
+top y1l=h+o; x1=w-u-cal_hair; rt x2l=w; y2=y1-cal_hair;
+x3=x4; lft x3l=u; .5[y3,y4]=.5h; y3-y4=1/3h;
+bot y5l=-o; x5=.5[x4r,w]; z6=(w,cal_curve+cal_stem);
+filldraw z2l{up}..z1l..z3l..z4l..z5l..{dir90}z6
+ ..z6+left{dir-100}..z5r..z4r..z3r..z1r..{down}z2r..cycle;
+penlabels(1,2,3,4,5,6);
+math_fit(-u#,1.5u#);
+endchar;
+
+iff known chars.cal_D:
+bskchar "The calligraphic letter D";
+beginchar(chars.cal_D,12u#,cap_height#,0); uni "non";
+italcorr x_height#*slant;
+adjust_fit(0,0);
+path p[];
+pickup tiny.nib;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20); pos4(hair,150);
+pos5(.9cal_hair,80); pos6(.65[cal_stem,cal_hair],10); pos7(cal_stem,-10);
+pos8(cal_hair,-90); pos9(cal_hair,180);
+y1=h-cap_stem-cap_hair; bot y3r=0; lft x3l=0; lft x1l=u;
+x2l=x3r+.5hair; y2=1/3x_height;
+lft x9r=x2r+cal_stem; y9=cal_stem; bot y8r=-d-o; x8=x9+cal_stem;
+x4l=0; top y4=h-cap_stem; top y5r=h; .75[x5,x4]=x1;
+y6-y7=1/3h; .5[y6,y7]=.5h; x6=x7; rt x6r=w-u;
+p0:=z4l..z5l..z6l..z7l..z8l..{up}z9l;
+p1:=z9r{down}..z8r..z7r..z6r..z5r..z4r;
+filldraw z1l{z2l-z1l}..z2l..z3l&z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r..cycle;
+filldraw p0..p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_E:
+bskchar "The calligraphic letter E";
+beginchar(chars.cal_E,13.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_stem,-30); pos3(cal_hair,-20);
+pos4(cap_hair,60); pos5(cap_hair,90); pos6(cal_hair,180);
+pos7(cal_hair,180); pos8(.5[cal_stem,cal_hair],90);
+pos10(cal_hair,0); pos11(.5[cal_hair,hair],0); pos12(cal_hair,90);
+pos13(cal_hair,60); pos14(cal_hair,60); pos15(cal_stem,75); pos16(cal_stem,75);
+y1=h; bot y3l=0; x1l-x3l=u; rt x1r=4u;
+top y4r=h+o; lft x4=u;
+x2l=x3r+.5hair; y2=1/3x_height; z5r=z1r;
+rt x7l=w-u; lft x6l=x7; bot y7=0; top y6=.5bar_height;
+bot y8l=0; x8=x2l; y7r:=y8r-currentbreadth; top y9=bot y8l; x8l-x9=2(y8r-y8l);
+top y10=h; rt x10r=w-1.5u; z11=z10+cap_stem*dir(-100); z12r=z1l;
+y10r:=bot bot y10r; y10l:=bot bot y10r;
+x10'-x10l=x10-x10r; y10'=y10r;
+y13=y14=.25[y15,y15l]=.52[y1r,y8r]; x13=x2l; x14=.5[x2r,x6l]; x15=x14+cal_hair;
+z16=z15+hair*right;
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z4l{dir-20}..{right}z5l;
+p2:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z4r;
+p3:=z9{dir10}..z8l{dir10}..z7l{dir-10}..{dir130}z6l;
+p4:=z6r{dir-40}..z7r{dir160}..{dir190}z8r..{dir190}z9;
+p5:=z11r---z10r..z10..z12r..z4r;
+p6:=z4l..z12l..z10'..z10l---z11l;
+p7:=z13l{dir10}..{dir-10}z14l..z15l..z16l---z16r..z15r..z14r{dir170}..{dir190}z13r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3)=p0 intersectiontimes p4;
+(tim4,tim5)=p2 intersectiontimes p4;
+(tim6,tim7)=p2 intersectiontimes p6;
+(tim8,tim9)=p2 intersectiontimes p7;
+(tim10,tim11-2)=p2 intersectiontimes subpath(2,infinity) of p7;
+filldraw subpath(rundy(p0,tim0),rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p4,tim3),infinity) of p4..p3
+ ..subpath(0,rundy(p4,tim5).zpet) of p4
+ ..subpath(rundy(p2,tim4),rundy(p2,tim8).zpet) of p2
+ ..subpath(rundy(p7,tim9),rundy(p7,tim11).zpet) of p7
+ ..subpath(rundy(p2,tim10),rundy(p2,tim6).zpet) of p2
+ ..subpath(rundy(p6,tim7),infinity) of p6
+ ..p5
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); labels(10');
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_F:
+bskchar "The calligraphic letter F";
+beginchar(chars.cal_F,13.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(cap_hair,60); pos5(cap_hair,90);
+pos6(cal_hair,0); pos7(.5[cal_hair,hair],0); pos8(cal_hair,90);
+pos9(cal_hair,60); pos10(cal_hair,60); pos11(cal_stem,75); pos12(cal_stem,75);
+y1=h; bot y3r=0; x1l-x3l=u; rt x1r=4u;
+top y4r=h+o; lft x4=u;
+x2l=x3r+.5hair; y2=1/3x_height; z5r=z1r;
+top y6=h; rt x6r=w-1.5u; z7=z6+cap_stem*dir(-100); z8r=z1l;
+y6r:=bot bot y6r; y6l:=bot bot y6r;
+x6'-x6l=x6-x6r; y6'=y6r;
+y9=y10=y11=.52y1r; x9=x2l; x10=.5[x2r,x6]; x11=x10+cal_hair;
+z12=z11+hair*right;
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z4l{dir-20}..{right}z5l;
+p2:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z4r;
+p3:=z7r---z6r..z6..z8r..z4r;
+p4:=z4l..z8l..z6'..z6l---z7l;
+p5:=z9l{dir10}..{dir-10}z10l..z11l..z12l---z12r..z11r..z10r{dir170}..{dir190}z9r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3)=p2 intersectiontimes p4;
+(tim4,tim5)=p2 intersectiontimes p5;
+(tim6,tim7-2)=p2 intersectiontimes subpath(2,infinity) of p5;
+filldraw subpath(rundy(p0,tim0),infinity) of p0
+ ..subpath(0,rundy(p2,tim4).zpet) of p2
+ ..subpath(rundy(p5,tim5),rundy(p5,tim7).zpet) of p5
+ ..subpath(rundy(p2,tim6),rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p4,tim3),infinity) of p4
+ ..p3
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); labels(6');
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_G:
+bskchar "The calligraphic letter G";
+beginchar(chars.cal_G,9.5u#,cap_height#,.75desc_depth#); uni "non";
+italcorr cap_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cal_curve;
+pos1(cal_hair,-90); pos2(cal_hair,180);
+pos3(.65[cal_stem,cal_hair],-10); pos4(cal_stem,10); pos5(cal_hair,90);
+pos6(cal_hair,180); pos7(cal_hair,0); pos8(cal_hair,90); pos9(cal_hair,180);
+top y1l=h+o; x1=w-u-cal_hair; rt x2l=w; y2=y1-cal_hair;
+x3=x4; lft x3l=u; .5[y3,y4]=.5h; y3-y4=1/3h;
+bot y5l=-o; x5=.5[x4r,w]; z6=(w,y4);
+x7r=x5; y7=-d+cal_stem; bot y8l=-d-o; .5[x7,x9]=x8=x7+cal_stem; y9=-.35d;
+p0:=z2l{up}..z1l..z3l..z4l..z5l..{dir90}z6;
+p1:=z6+left{dir-100}..z5r..z4r..z3r..z1r..{down}z2r;
+p2=z6l{down}..z9l..z8l..{up}z7l..z7r{down}..z8r..z9r..{up}z6r;
+(tim0,tim1)=p0 intersectiontimes p2;
+filldraw reverse p1
+ ..subpath(0,rundy(p2,tim1).zpet) of p2
+ ..reverse subpath(0,rundy(p0,tim0).zpet) of p0..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+math_fit(-u#,u#);
+endchar;
+
+iff known chars.cal_H:
+bskchar "The calligraphic letter H";
+beginchar(chars.cal_H,14.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(cap_hair,60); pos5(cap_hair,90); pos6(cal_hair,-10);
+pos7(.65[cal_stem,cal_hair],-10); pos8(.45[cal_stem,cal_hair],10); pos9(cal_hair,90);
+pos11(cal_hair,60); pos12(cal_hair,60);
+y1=h; bot y3r=0; x1l-x3l=u; rt x1r=4u;
+top y4r=h+o; lft x4=u;
+x2l=x3r+.5hair; y2=1/3x_height; z5r=z1r; top y6l=h; x6r=w-u-cal_hair;
+y8=cal_curve; y7=h-cal_curve-cal_hair; x8r=x7r=w-u-1.5cal_hair;
+bot y9l=0; x9=.5[x8r,w]; z10=(w,y8r);
+y11r=y12=.75[bar_height,x_height]; x11r=x2l; x12=x7r;
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z4l{dir-20}..{right}z5l;
+p2:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z4r;
+p3:=z11l{right}..{dir50}z12l;
+p4:=z12r{dir-150}..{left}z11r;
+p5:=z6l---z7l..z8l..z9l..{dir100}z10;
+p6:=z10+left{dir-80}..z9r..z8r..z7r---z6r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3)=p2 intersectiontimes p3;
+(tim4,tim5)=p5 intersectiontimes p3;
+(tim6,tim7)=p5 intersectiontimes p4;
+(tim8,tim9)=p2 intersectiontimes p4;
+filldraw subpath(rundy(p0,tim0),infinity) of p0
+ ..subpath(0,rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p3,tim3),rundy(p3,tim5).zpet) of p3
+ ..subpath(rundy(p5,tim4),infinity) of p5..p6
+ ..subpath(0,rundy(p5,tim6).zpet) of p5
+ ..subpath(rundy(p4,tim7),rundy(p4,tim9).zpet) of p4
+ ..subpath(rundy(p2,tim8),infinity) of p2
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+math_fit(-u#,u#);
+endchar;
+
+iff known chars.cal_I:
+bskchar "The calligraphic letter I";
+beginchar(chars.cal_I,9u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(cal_hair,60); pos5(cal_hair,60); pos6(cal_hair,90);
+pos7(cal_hair,90); pos8(cal_hair,60); pos9(cal_hair,60);
+y1=h; bot y3r=0; x1l-x3l=u; x1=.5w;
+x2l=x3r+.5hair; y2=1/3x_height;
+top y5=h; rt x5=rt x8=w-u; lft x4=lft x7=u; z4=whatever[z5r,z1l];
+bot y8=0; z7=whatever[z8l,z3r];
+z6r=z1l; z9l=z3r;
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r;
+p2:=z5r{dir200}..z6r..{left}z4r;
+p3:=z4l{right}..z6l..{dir20}z5l;
+p4:=z7l{dir20}..z9l..{right}z8l;
+p5:=z8r{left}..z9r..{dir200}z7r;
+(tim0,tim1)=p0 intersectiontimes p3;
+(tim2,tim3)=p1 intersectiontimes p3;
+(tim4,tim5)=p0 intersectiontimes p5;
+(tim6,tim7)=p1 intersectiontimes p5;
+filldraw subpath(rundy(p0,tim0),rundy(p0,tim4).zpet) of p0
+ ..subpath(rundy(p5,tim5),infinity) of p5
+ ..p4
+ ..subpath(0,rundy(p5,tim7).zpet) of p5
+ ..subpath(rundy(p1,tim6),rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p3,tim3),infinity) of p3
+ ..p2..subpath(0,rundy(p3,tim1).zpet) of p3
+ ..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_J:
+bskchar "The calligraphic letter J";
+beginchar(chars.cal_J,8u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_hair,-30);
+pos3(cap_hair,60); pos4(cap_hair,90); pos5(cal_hair,260);
+pos6(cal_stem,210);
+y1=h; rt x1r=w-u;
+top y3r=h+o; rt x1r-lft x3=4u;
+x2l=x1-u; y2=1/3x_height; z4r=z1r;
+y6=.7bar_height; lft x6r=u; x5=1/3[x6,x2]; y5=0;
+p0:=z1l{z2l-z1l}..z2l..z5l..{up}z6l;
+p1:=z3l{dir-20}..{right}z4l;
+p2:=z6+o*up..z6r{down}..z5r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z3r;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(rundy(p0,tim0),infinity) of p0..p2
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6);
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_K:
+bskchar "The calligraphic letter K";
+beginchar(chars.cal_K,12u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(cap_hair,60); pos5(cap_hair,90); pos6(cal_stem,-10);
+pos7(cal_stem,10); pos8(cal_hair,90);
+pos10(cal_stem,20); pos11(cal_hair,-10); pos12(cal_stem,0);
+y1=h; bot y3r=0; x1l-x3l=u; rt x1r=4u;
+top y4r=h+o; lft x4=u;
+x2l=x3r+.5hair; y2=1/3x_height; z5r=z1r;
+bot y8l=0; y7=cal_curve; x7r=w-u-1.5cal_hair;
+x8=.5[x7r,w]; z9=(w,y7r);
+x6=x2l; y6=.5[x_height,bar_height]; z11l=z6l; x10r=w-2u; y10=h;
+z12=z10+(u,-cal_stem);;
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z4l{dir-20}..{right}z5l;
+p2:=z9+left{dir-80}..z8r..z7r..z6r;
+p3:=z6l..{dir-60}z7l..z8l..{dir100}z9;
+p4:=z10l{dir-40}..z12l{(z11-z12) rotated 20}..{(z11-z12) rotated -10}z11l;
+p5:=z11r{(z12-z11) rotated -10}..{(z12-z11) rotated 20}z12r..{dir130}z10r;
+p6:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z4r;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3)=p0 intersectiontimes p4;
+(tim4,tim5)=p0 intersectiontimes p3;
+(tim6,tim7)=p6 intersectiontimes p3;
+(tim8,tim9)=p6 intersectiontimes p4;
+filldraw subpath(rundy(p0,tim0),rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p4,(tim3,.5oblu)),infinity) of p4
+ ..subpath(0,rundy(p3,(tim5,.5oblu)).zpet) of p3
+ ..subpath(rundy(p0,tim4),infinity) of p0
+ ..subpath(0,rundy(p6,tim6).zpet) of p6
+ ..subpath(rundy(p3,tim7),infinity) of p3
+ ..subpath(0,rundy(p2,infinity).zpet) of p2
+ ..subpath(rundy(p5,0),infinity) of p5..z10
+ ..subpath(0,rundy(p4,tim9).zpet) of p4
+ ..subpath(rundy(p6,tim8),infinity) of p6
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+math_fit(0,u#);
+endchar;
+
+iff known chars.cal_L:
+bskchar "The calligraphic letter L";
+beginchar(chars.cal_L,13.5u#,cap_height#,0); uni "non";
+italcorr 0;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_stem,-30); pos3(cal_hair,-20);
+pos4(cap_hair,60); pos5(cap_hair,90); pos6(cal_hair,180);
+pos7(cal_hair,180); pos8(.5[cal_stem,cal_hair],90);
+y1=h; bot y3l=0; x1l-x3l=u; rt x1r=4u;
+top y4r=h+o; lft x4=u;
+x2l=x3r+.5hair; y2=1/3x_height; z5r=z1r;
+rt x7l=w-u; lft x6l=x7; bot y7=0; top y6=.5bar_height;
+bot y8l=0; x8=x2l; y7r:=y8r-currentbreadth; top y9=bot y8l; x8l-x9=2(y8r-y8l);
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z4l{dir-20}..{right}z5l;
+p2:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z4r;
+p3:=z9{dir10}..z8l{dir10}..z7l{dir-10}..{dir130}z6l;
+p4:=z6r{dir-40}..z7r{dir160}..{dir190}z8r..{dir190}z9;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3)=p0 intersectiontimes p4;
+(tim4,tim5)=p2 intersectiontimes p4;
+filldraw subpath(rundy(p0,tim0),rundy(p0,tim2).zpet) of p0
+ ..subpath(rundy(p4,tim3),infinity) of p4..p3
+ ..subpath(0,rundy(p4,tim5).zpet) of p4
+ ..subpath(rundy(p2,tim4),infinity) of p2
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8); labels(9);
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_M:
+bskchar "The calligraphic letter M";
+beginchar(chars.cal_M,16u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(hair,-30); pos5(hair,-30); pos6(cal_hair,210); pos7(cal_stem,200);
+pos8(hair,180); pos9(hair,90); pos10(cal_hair,-10);
+pos11(.65[cal_stem,cal_hair],-10); pos12(cal_stem,10); pos13(cal_hair,90);
+y1=h-cap_stem-cap_hair; bot y3r=0; lft x3l=u; lft x1l=2u;
+x2l=x3r+.5hair; y2=1/3x_height;
+lft x4l=0; y4=y1-cal_hair; y5=y6r; z5=z4+whatever*dir60; z6r=z1r+cal_hair*dir60;
+x7=.5w ;y7r=0;
+top y9r=top y10l=h; y8=0; x8l=x7r; x9=w-2u;
+x10r=w-u-cal_hair;
+y12=cal_curve; y11=h-cal_curve-cal_hair; x12r=x11r=w-u-1.5cal_hair;
+bot y13l=0; x13=.5[x12r,w]; z14=(w,y12r);
+p1:=z4r---z5r..z6r..{down}z7r;
+p2:=z7l{up}..z6l..z5l---z4l;
+p3:=z8l{up}..z9l;
+p4:=z9r..{down}z8r;
+p5:=z10l---z11l..z12l..z13l..{dir100}z14;
+p6:=z14+left{dir-80}..z13r..z12r..z11r---z10r;
+(tim0,tim1)=p1 intersectiontimes p4;
+(tim2,tim3)=p3 intersectiontimes p5;
+z100=bsktouch(p4,left,p2,right);
+tim4=xpart(p4 intersectiontimes(z100--(w,y100)));
+tim5=xpart(p2 intersectiontimes(z100--(0,y100)));
+filldraw z1l{z2l-z1l}..z2l..z3l&z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r..cycle;
+filldraw subpath(0,rundy(p1,tim0).zpet) of p1
+ ..subpath(rundy(p4,tim1),infinity) of p4
+ ..subpath(0,rundy(p3,tim2).zpet) of p3
+ ..subpath(rundy(p5,tim3),infinity) of p5
+ ..subpath(0,rundy(p6,infinity).zpet) of p6
+ ..subpath(rundy(p4,0),rundy(p4,tim4).zpet) of p4
+ ..subpath(rundy(p2,tim5),infinity) of p2..cycle;
+math_fit(0,ic#);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+iff known chars.cal_N:
+bskchar "The calligraphic letter N";
+beginchar(chars.cal_N,13u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(hair,-30); pos5(hair,-30); pos6(cal_hair,210); pos7(cal_stem,200);
+pos8(hair,180); pos9(cal_stem,90); pos10(cal_stem,60);
+y1=h-cap_stem-cap_hair; bot y3r=0; lft x3l=u; lft x1l=2u;
+x2l=x3r+.5hair; y2=1/3x_height;
+lft x4l=0; y4=y1-cal_hair; y5=y6r; z5=z4+whatever*dir60; z6r=z1r+cal_hair*dir60;
+x7=w-3u; y7r=0;
+top y10r=h; y9=h-cal_stem; y8=0; x8l=x7r; x9=w-2.5u; rt x10=w-u;
+p1:=z4r---z5r..z6r..{down}z7r;
+p2:=z7l{up}..z6l..z5l---z4l;
+p3:=z8l{(z9-z8)rotated 10}..{(z9-z8)rotated -10}z9l..{right}z10l;
+p4:=z10r{left}..z9r{(z8-z9)rotated -10}..{(z8-z9) rotated 10}z8r;
+filldraw z1l{z2l-z1l}..z2l..z3l&z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r..cycle;
+(tim0,tim1)=p1 intersectiontimes p4;
+z100=bsktouch(p4,left,p2,right);
+tim2=xpart(p4 intersectiontimes(z100--(w,y100)));
+tim3=xpart(p2 intersectiontimes(z100--(0,y100)));
+filldraw subpath(0,rundy(p1,tim0).zpet) of p1
+ ..subpath(rundy(p4,tim1),infinity) of p4
+ ..p3
+ ..subpath(0,rundy(p4,tim2).zpet) of p4
+ ..subpath(rundy(p2,tim3),infinity) of p2..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_O:
+bskchar "The calligraphic letter O";
+beginchar(chars.cal_O,10u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(cal_hair,-90); pos2(cal_hair,180);
+pos3(.65[cal_stem,cal_hair],-10); pos4(cal_stem,10); pos5(cal_hair,90);
+pos6(.65[cal_stem,cal_hair],170);
+top y1l=h+o; x1=w-2u-cal_hair; rt x2l=w-u; y2=y1-cal_hair;
+x3=x4; lft x3l=u; .5[y3,y4]=.5h; y3-y4=1/3h;
+bot y5l=-o; x5=.5[x4r,w];
+y6=.55[y4,y3]; rt x6l=w; y7=y2-cal_hair; lft x7=rt x5;
+filldraw z2l{up}..z1l..z3l..z4l..z5l..z6l..{dir160}z7..{dir-20}z7+down
+ ..z6r..z5r..z4r..z3r..z1r..{down}z2r..cycle;
+penlabels(1,2,3,4,5,6,7);
+math_fit(-u#,u#);
+endchar;
+
+iff known chars.cal_P:
+bskchar "The calligraphic letter P";
+beginchar(chars.cal_P,10u#,cap_height#,0); uni "non";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+path p[];
+pickup tiny.nib;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20); pos4(hair,150);
+pos5(.9cal_hair,80); pos6(.65[cal_stem,cal_hair],10); pos7(cal_stem,-10);
+pos8(cal_hair,-90); pos9(cal_hair,180);
+y1=h-cap_stem-cap_hair; bot y3r=0; lft x3l=0; lft x1l=u;
+x2l=x3r+.5hair; y2=1/3x_height;
+lft x9r=x2r+cal_hair; y9=bar_height+cal_stem; bot y8r=bar_height-o; x8=x9+cal_stem;
+x4l=0; top y4=h-cap_stem; top y5r=h; .75[x5,x4]=x1;
+y6-y7=.5(h-bar_height); .5[y6,y7]=.5[h,bar_height]; x6=x7; rt x6r=w-2u;
+p0:=z4l..z5l..z6l..z7l..z8l..{up}z9l;
+p1:=z9r{down}..z8r..z7r..z6r..z5r..z4r;
+filldraw z1l{z2l-z1l}..z2l..z3l&z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r..cycle;
+filldraw p0..p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+math_fit(0,-2u#);
+endchar;
+
+iff known chars.cal_Q:
+bskchar "The calligraphic letter Q";
+beginchar(chars.cal_Q,11u#,cap_height#,.75desc_depth#); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[];
+pos1(cal_hair,-90); pos2(cal_hair,180);
+pos3(.65[cal_stem,cal_hair],-10); pos4(cal_stem,10); pos5(cal_hair,90);
+pos6(.65[cal_stem,cal_hair],170); pos8(cal_hair,160); pos9(cal_hair,60);
+pos10(cal_hair,90);
+top y1l=h+o; x1=w-3u-cal_hair; rt x2l=w-2u; y2=y1-cal_hair;
+x3=x4; lft x3l=u; .5[y3,y4]=.5h; y3-y4=1/6h;
+bot y5l=1/12h; x5=.5[x4r,x6r]; y8=.5y5; x8r=x2;
+y6=.55[y4,y3]; rt x6l=w-3u; y7=y2-cal_hair; lft x7=rt x5;
+x9=x5; y9l=-.7d; rt x10=w; bot y10l=-d;
+p0:=z9l{z8-z9}..z8l..z2l..z1l..z3l..z4l..z5l..z6l..{dir160}z7..{dir-20}z7+down
+ ..z6r..z5r..z4r..z3r..z1r..z2r..z8r..{z9-z8}z9r;
+p1:=z10r{dir200}..{left}z9;
+p2:=z9l{right}..{dir20}z10l;
+(tim0,tim1)=subpath(0,1) of p0 intersectiontimes p1;
+filldraw subpath(rundy(p2,0),infinity) of p2
+ ..subpath(0,rundy(p1,(tim1,2oblu)).zpet) of p1
+ ..subpath(rundy(p0,(tim0,2oblu)),rundy(p0,infinity).zpet) of p0..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+math_fit(-u#,u#);
+endchar;
+
+iff known chars.cal_R:
+bskchar "The calligraphic letter R";
+beginchar(chars.cal_R,10.5u#,cap_height#,0); uni "non";
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20); pos4(hair,150);
+pos5(.9cal_hair,80); pos6(.65[cal_stem,cal_hair],10); pos7(cal_stem,-10);
+pos8(cal_hair,-90); pos9(cal_hair,180);
+pos10(.5[cal_stem,cal_hair],0); pos11(cal_stem,10); pos12(cal_hair,90);
+y1=h-cap_stem-cap_hair; bot y3r=0; lft x3l=0; lft x1l=u;
+x2l=x3r+.5hair; y2=1/3x_height;
+lft x9r=x2r+cal_hair; y9=bar_height+cal_stem; bot y8r=bar_height-o; x8=x9+cal_stem;
+x4l=0; top y4=h-cap_stem; top y5r=h; .75[x5,x4]=x1;
+y6-y7=.5(h-bar_height); .5[y6,y7]=.5[h,bar_height]; x6=x7; rt x6r=w-2.5u;
+bot y12l=0; y11=cal_curve; x11r=w-u-1.5cal_hair;
+x12=.5[x11r,w]; z13=(w,y11r);
+x10r=x2l; y10=.5[x_height,bar_height];
+p0:=z4l..z5l..z6l..z7l..z8l..{up}z9l;
+p1:=z9r{down}..z8r..z7r..z6r..z5r..z4r;
+p2:=z13+left{dir-80}..z12r..z11r..z10r..z10l;
+p3:=z10l..{dir-60}z11l..z12l..{dir100}z13;
+p4:=z1l{z2l-z1l}..z2l..z3l;
+p5:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r;
+(tim0,tim1)=p4 intersectiontimes p2;
+(tim2,tim3)=p4 intersectiontimes p3;
+(tim4,tim5)=p5 intersectiontimes p3;
+z100=bsktouch(subpath(1,infinity) of p1,down,p2,up);
+tim6=xpart(p1 intersectiontimes (z100--(x100,h)));
+tim7=xpart(p2 intersectiontimes (z100--(x100,0)));
+(tim8,tim9)=p5 intersectiontimes p2;
+tim10=xpart(p2 intersectiontimes (z8l---(x8,0)));
+filldraw subpath(0,rundy(p4,tim0).zpet) of p4
+ ..subpath(rundy(p2,tim1),infinity) of p2
+ ..subpath(0,rundy(p3,tim3).zpet) of p3
+ ..subpath(rundy(p4,tim2),infinity) of p4
+ ..subpath(0,rundy(p5,tim4).zpet) of p5
+ ..subpath(rundy(p3,tim5),infinity) of p3
+ ..subpath(0,rundy(p2,tim7).zpet) of p2
+ ..subpath(rundy(p1,tim6),infinity) of p1
+ ..subpath(0,rundy(p0,4).zpet) of p0
+ ..subpath(rundy(p2,tim10),rundy(p2,tim9).zpet) of p2
+ ..subpath(rundy(p5,tim8),infinity) of p5..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); labels(100);
+math_fit(0,ic#);
+endchar;
+
+iff known chars.cal_S:
+bskchar "The calligraphic letter S";
+beginchar(chars.cal_S,9u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos2(cal_hair,30); pos3(cal_stem,225); pos4(cal_hair,30);
+pos5(cal_stem,180); pos6(cal_stem,180);
+y5=.5[y2l,y3]+.5like_cap_hair;
+y6=.5[y4r,y3]-.5like_cap_hair; rt x6l=w-u;
+x3=x4=.5w; top y2r=h+o; bot y4l=-o; x2=.5[x1,x5l];
+y3=.5[y2l,y4r]+.5cap_hair;
+x5l=3u; x1r=w-x5r+.5u;
+pos1(cal_stem,-10); y1=.5[y5,y2l];
+pos7(cap_stem,30); x7l=w-x6l; y7=y6;
+filldraw z1r{dir110}..z2r{left}..z5r..z3r..z6r..{left}z4r..{up}z7r..z7l{down}..z4l{right}
+ ..z6l..z3l..z5l..{right}z2l..{dir-70}z1l..cycle;
+math_fit(0,0);
+penlabels(0,1,2,3,4,5,6,7);
+endchar;
+
+iff known chars.cal_T:
+bskchar "The calligraphic letter T";
+beginchar(chars.cal_T,13u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(cap_hair,60); pos5(cap_hair,90);
+pos6(cal_hair,0); pos7(.5[cal_hair,hair],0); pos8(cal_hair,90);
+pos9(cal_hair,180); pos10(.5[cal_hair,hair],180);
+y1=h; bot y3r=0; x1l-x3l=u; rt x1r=.5w;
+top y4r=h+o; lft x4=u;
+x2l=x3r+.5hair; y2=1/3x_height; z5r=z1r;
+top y6=h; rt x6r=w-1.5u; z7=z6+cap_stem*dir(-100); z8r=z1l;
+y6r:=bot bot y6r; y6l:=bot bot y6r;
+x6'-x6l=x6r-x6; y6'=y6r;
+top y9=h; lft x9r=.5u; z10=z9+cap_stem*dir(-70);
+y9r:=y6r; y9l:=y6l;
+x9'-x9l=x9-x9r; y9'=y9r;
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z8l..z9'..z9l---z10l;
+p2:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r{dir180}..z9..z9r---z10r;
+p3:=z7r---z6r..z6..z8r..z4r;
+p4:=z8l{dir20}..{dir-20}z6'..z6l---z7l;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3)=p2 intersectiontimes p4;
+tim4=xpart(p3 intersectiontimes (z8r--(x8r,h+stem)));
+filldraw subpath(rundy(p0,tim0),infinity) of p0
+ ..subpath(0,rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p4,tim3),infinity) of p4
+ ..subpath(0,rundy(p3,tim4)) of p3
+ ..subpath(rundy(p2,4),infinity) of p2
+ ..reverse subpath(rundy(p1,tim1),infinity) of p1
+ ..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10); labels(6',9');
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_U:
+bskchar "The calligraphic letter U";
+beginchar(chars.cal_U,12u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_hair,-30);
+pos3(cap_hair,60); pos4(cap_hair,90); pos5(cal_hair,260);
+pos6(cal_stem,150); pos7(cal_stem,160); pos8(hair,-90);
+y1=h; rt x1r=w-u; x7r=1.5u; y7=.5[x_height,h]; y8l=h+o; x8=x7r-u;
+top y3r=h+o; rt x1r-lft x3=3u;
+x2l=x1-u; z4r=z1r;
+y2=y6=.5bar_height; lft x6r=u; x5=1/3[x6,x2]; y5=0;
+p0:=z1l{z2l-z1l}..z2l..z5l..z6l..{dir80}z7l..{dir200}z8l;
+p1:=z3l{dir-20}..{right}z4l;
+p2:=z8r{dir20}..z7r{dir-100}..z6r..z5r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z3r;
+(tim0,tim1)=p0 intersectiontimes p1;
+filldraw subpath(rundy(p0,tim0),infinity) of p0..p2
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8);
+math_fit(0,0);
+endchar;
+
+iff known chars.cal_V:
+bskchar "The calligraphic letter V";
+beginchar(chars.cal_V,13u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(hair,-30); pos2(hair,-30); pos3(cal_hair,210); pos4(cal_stem,200);
+pos5(hair,180); pos6(cal_stem,90); pos7(cal_stem,60);
+y3r=h-cap_hair; lft x3r=2u+cal_hair;
+lft x1l=0; y1=.9h; y2=y3r; z2=z1+whatever*dir60;
+x4=.5w; y4r=0;
+top y7r=h; y6=h-cal_stem; y5=0; x5l=x4r; x6=w-2.5u; rt x7=w-u;
+p1:=z1r---z2r..z3r..{down}z4r;
+p2:=z4l{up}..z3l..z2l---z1l;
+p3:=z5l{(z6-z5)rotated -10}..{(z6-z5)rotated 10}z6l..{right}z7l;
+p4:=z7r{left}..z6r{(z5-z6)rotated 10}..{(z5-z6) rotated -10}z5r;
+(tim0,tim1)=p1 intersectiontimes p4;
+z100=bsktouch(p4,left,p2,right);
+tim2=xpart(p4 intersectiontimes(z100--(w,y100)));
+tim3=xpart(p2 intersectiontimes(z100--(0,y100)));
+filldraw subpath(0,rundy(p1,tim0).zpet) of p1
+ ..subpath(rundy(p4,tim1),infinity) of p4
+ ..p3
+ ..subpath(0,rundy(p4,tim2).zpet) of p4
+ ..subpath(rundy(p2,tim3),infinity) of p2..cycle;
+penlabels(1,2,3,4,5,6,7);
+math_fit(0,-2u#);
+endchar;
+
+iff known chars.cal_W:
+bskchar "The calligraphic letter W";
+beginchar(chars.cal_W,16.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant+u#;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(hair,-30); pos2(hair,-30); pos3(cal_hair,210); pos4(cal_stem,200);
+pos5(hair,180); pos6(cal_stem,90); pos7(cal_stem,60);
+pos8(hair,-30); pos9(hair,-30); pos10(cal_hair,210); pos11(cal_stem,200);
+pos12(hair,180); pos13(cal_stem,90); pos14(cal_stem,60);
+y3r=y10r=h-cap_hair; lft x3r=lft x10r-5u=u+cal_hair;
+lft x1l=lft x8l-5u=0; y1=y8=.9h; y2=y9=y3r; z2=z1+whatever*dir60; z9=z8+whatever*dir60;
+x4=.375w; x11=.7w; y4r=y11r=0;
+top y7r=top y14r=h; y6=y13=h-cal_stem; y5=y12=0; x5l=x4r; x12l=x11r; x6=w-6u; x13=w-1.5u;
+rt x7=w-5u; rt x14=w;
+p1:=z1r---z2r..z3r..{down}z4r;
+p2:=z4l{up}..z3l..z2l---z1l;
+p3:=z5l{(z6-z5)rotated -10}..{(z6-z5)rotated 10}z6l..{right}z7l;
+p4:=z7r{left}..z6r{(z5-z6)rotated 10}..{(z5-z6) rotated -10}z5r;
+p5:=z8r---z9r..z10r..{down}z11r;
+p6:=z11l{up}..z10l..z9l---z8l;
+p7:=z12l{(z13-z12)rotated -10}..{(z13-z12)rotated 10}z13l..{right}z14l;
+p8:=z14r{left}..z13r{(z12-z13)rotated 10}..{(z12-z13) rotated -10}z12r;
+(tim0,tim1)=p1 intersectiontimes p4;
+z100=bsktouch(p4,left,p2,right);
+tim2=xpart(p4 intersectiontimes(z100--(w,y100)));
+tim3=xpart(p2 intersectiontimes(z100--(0,y100)));
+(tim4,tim5)=p3 intersectiontimes p5;
+z101=bsktouch(p8,left,p6,right);
+tim6=xpart(p8 intersectiontimes(z101--(w,y101)));
+tim7=xpart(p6 intersectiontimes(z101--(0,y101)));
+(tim8,tim9)=p5 intersectiontimes p4;
+filldraw subpath(0,rundy(p1,tim0).zpet) of p1
+ ..subpath(rundy(p4,tim1),infinity) of p4
+ ..subpath(0,rundy(p3,tim4).zpet) of p3
+ ..subpath(rundy(p5,tim5),infinity) of p5
+ ..p7
+ ..subpath(0,rundy(p8,tim6).zpet) of p8
+ ..subpath(rundy(p6,tim7),2) of p6
+ ..subpath(1,rundy(p5,tim8).zpet) of p5
+ ..subpath(rundy(p4,tim9),rundy(p4,tim2).zpet) of p4
+ ..subpath(rundy(p2,tim3),infinity) of p2
+ ..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); labels(100,101);
+math_fit(0,-u#);
+endchar;
+
+iff known chars.cal_X:
+bskchar "The calligraphic letter X";
+beginchar(chars.cal_X,12u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant+.5u#;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(cal_hair,0); pos2(cal_hair,90); pos3(cal_hair,180); pos4(cal_hair,180);
+pos5(cal_hair,90); pos6(cal_hair,0); pos7(cal_stem,-10);
+pos8(cal_stem,10); pos9(cal_hair,90);
+rt x1l=u; y1=cal_stem; bot y2l=-d-o; .45[x1,x3]=x2=x1+cal_stem; y3=.45bar_height;
+y4=1[bar_height,x_height]; z4=z3+whatever*dir75; top y5r=h+o; x5=w-u-cal_hair;
+rt x6r=w; y6=y5-cal_hair; bot y9l=0; y8=cal_curve; x8r=w-u-1.5cal_hair;
+x9=.5[x8r,w]; z10=(w,y8r);
+lft x7l=u; y7=h;
+p0:=z1r{down}..z2r..z3r..z4r..{right}z5r..{down}z6r;
+p1:=z6l{up}..{left}z5l..z4l..z3l..z2l..{up}z1l;
+p2:=z10+left{dir-80}..z9r..z8r..z7r;
+p3:=z7l..{dir-60}z8l..z9l..{dir100}z10;
+(tim0,tim1)=p0 intersectiontimes p3;
+(tim2,tim3)=p0 intersectiontimes p2;
+(tim4,tim5)=p1 intersectiontimes p2;
+(tim6,tim7)=p1 intersectiontimes p3;
+filldraw subpath(0,rundy(p0,tim0).zpet) of p0
+ ..(reverse subpath(0,rundy(p3,tim1).zpet) of p3)
+ ..(reverse subpath(rundy(p2,(tim3,2oblu)),infinity) of p2)
+ ..subpath(rundy(p0,(tim2,2oblu)),infinity) of p0
+ ..subpath(0,rundy(p1,tim4).zpet) of p1
+ ..(reverse subpath(0,rundy(p2,tim5).zpet) of p2)
+ ..(reverse subpath(rundy(p3,(tim7,2oblu)),infinity) of p3)
+ ..subpath(rundy(p1,(tim6,2oblu)),infinity) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8,9); labels(10);
+math_fit(-.5u#,u#);
+endchar;
+
+iff known chars.cal_Y:
+bskchar "The calligraphic letter Y";
+beginchar(chars.cal_Y,12u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant+.5u#;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(cal_hair,0); pos2(cal_hair,90); pos3(cal_hair,180); pos4(cal_hair,180);
+pos5(cal_hair,90); pos6(cal_hair,0);
+pos7(hair,-30); pos8(hair,-30); pos9(cal_hair,210); pos10(cal_stem,200);
+y1=cal_stem; bot y2l=-d-o; .5[x1,x3]=x2=4.5u=x1+cal_stem; y3=.5bar_height;
+y4=.5[bar_height,x_height]; z4=z3+whatever*dir80; top y5r=h+o; x5=w-u-cal_hair;
+rt x6r=w; y6=y5-cal_hair;
+y9r=h-cap_hair; lft x9r=2u+cal_hair;
+lft x7l=u; y7=.9h; y8=y9r; z8=z7+whatever*dir60;
+x10l=x4; y10r=0;
+p1:=z6r{up}..{left}z5r..z4r..z3r..z2r..{up}z1r;
+p2:=z1l{down}..z2l..z3l..z4l..z5l{right}..{down}z6l;
+p3:=z7r---z8r..z9r..{down}z10r;
+p4:=z10l{up}..z9l..z8l---z7l;
+(tim0,tim1)=p3 intersectiontimes p1;
+z100=bsktouch(p1,left,p4,right);
+tim2=xpart(p1 intersectiontimes(z100--(w,y100)));
+tim3=xpart(p4 intersectiontimes(z100--(0,y100)));
+filldraw subpath(0,rundy(p3,tim0).zpet) of p3
+ ..subpath(rundy(p1,tim1),infinity) of p1..p2
+ ..subpath(0,rundy(p1,tim2).zpet) of p1
+ ..subpath(rundy(p4,tim3),infinity) of p4..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10); labels(10);
+math_fit(-u#,-2u#);
+endchar;
+
+iff known chars.cal_Z:
+bskchar "The calligraphic letter Z";
+beginchar(chars.cal_Z,11u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,90); pos2(cal_hair,180); pos3(.5[cal_hair,hair],180);
+pos4(cal_stem,-10); pos5(cal_stem,0); pos6(cal_hair,0);
+pos7(cal_hair,90); pos8(cal_stem,70); pos9(hair,90);
+top y2=top y1r=h; lft x2r=0; z3=z2+cap_stem*dir(-70);
+y2r:=bot bot y2r; y2l:=bot bot y2r; rt x1r=w-u;
+x2'-x2l=x2-x2r; y2'=y2r;
+z4r=z1r; y5=bar_height; x5=.5w; top y7l=0; z7r=z6l; lft x6l=u;
+x9=w; bot y9=-cal_hair; y8l=y6; x8=2/3[x7,x9];
+p1:=z1l..z2'..z2l---z3l;
+p2:=z3r---z2r..z2..z1r;
+p3:=z4r..z5r..z6r;
+p4:=z6l..z5l..z4l;
+p5:=z7r..z8r..z9r;
+p6:=z9l..z8l..z7l;
+(tim0,tim1)=p1 intersectiontimes p4;
+(tim2,tim3)=p3 intersectiontimes p5;
+filldraw subpath(rundy(p1,tim0),infinity) of p1
+ ..subpath(0,rundy(p2,infinity).zpet) of p2
+ ..subpath(rundy(p3,0),rundy(p3,tim2).zpet) of p3
+ ..subpath(rundy(p5,tim3),infinity) of p5
+ ..subpath(0,rundy(p6,infinity).zpet) of p6
+ ..subpath(0,rundy(p4,tim1).zpet) of p4..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10); labels(6',9');
+math_fit(0,.5u#);
+endchar;
+
+iff known chars.cal_Gamma:
+bskchar "The calligraphic Greek letter Gamma";
+beginchar(chars.cal_Gamma,13.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+path p[]; numeric tim[]; oblu:=cap_curve;
+pos1(cal_hair,-30); pos2(cal_hair,-30); pos3(cal_hair,-20);
+pos4(cap_hair,60); pos5(cap_hair,90);
+pos6(cal_hair,0); pos7(.5[cal_hair,hair],0); pos8(cal_hair,90);
+y1=h; bot y3r=0; x1l-x3l=u; rt x1r=4u;
+top y4r=h+o; lft x4=u;
+x2l=x3r+.5hair; y2=1/3x_height; z5r=z1r;
+top y6=h; rt x6r=w-1.5u; z7=z6+cap_stem*dir(-100); z8r=z1l;
+y6r:=bot bot y6r; y6l:=bot bot y6r;
+x6'-x6l=x6-x6r; y6'=y6r;
+p0:=z1l{z2l-z1l}..z2l..z3l;
+p1:=z4l{dir-20}..{right}z5l;
+p2:=z3l..(x3l,y3r)..z3r..z2r..{z1r-z2r}z1r{dir180}..{dir160}z4r;
+p3:=z7r---z6r..z6..z8r..z4r;
+p4:=z4l..z8l..z6'..z6l---z7l;
+(tim0,tim1)=p0 intersectiontimes p1;
+(tim2,tim3)=p2 intersectiontimes p4;
+filldraw subpath(rundy(p0,tim0),infinity) of p0
+ ..subpath(0,rundy(p2,tim2).zpet) of p2
+ ..subpath(rundy(p4,tim3),infinity) of p4
+ ..p3
+ ..subpath(0,rundy(p1,tim1).zpet) of p1..cycle;
+penlabels(1,2,3,4,5,6,7,8); labels(6');
+math_fit(0,-5u#);
+endchar;
+
+iff known chars.cal_Lambda:
+bskchar "The calligraphic Greek letter Lambda";
+beginchar(chars.cal_Lambda,13.5u#,cap_height#,0); uni "non";
+italcorr cap_height#*slant+.5u#;
+adjust_fit(0,0);
+path p[]; numeric tim[];
+pickup tiny.nib;
+pos1(cal_hair,0); pos2(cal_hair,90); pos3(cal_hair,180); pos4(cal_hair,180);
+pos5(cal_hair,90); pos6(cal_hair,0);
+pos7(.65[cal_stem,cal_hair],-10); pos8(cal_stem,10); pos9(cal_hair,90);
+pos11(cal_hair,-10);
+rt x1l=u; y1=cal_stem; bot y2l=-d-o; .5[x1,x3]=x2=x1+cal_stem; y3=.5bar_height;
+y4=.5[bar_height,x_height]; z4=z3+whatever*dir75; top y5r=h+o; x5=w-u-cal_hair;
+rt x6r=w; y6=y5-cal_hair; y8=cal_curve; y7=y5l-cal_curve; x8r=x7r=x5-.5cal_hair;
+bot y9l=0; x9=.5[x8r,w];
+z10=(w,y8r); z11r=z5r;
+p1:=z1r{down}..z2r..z3r..z4r..{right}z5r..{down}z6r;
+p2:=z6l{up}..{left}z5l..z4l..z3l..z2l..{up}z1l;
+p3:=z11l---z7l..z8l..z9l..{dir100}z10;
+p4:=z10+left{dir-80}..z9r..z8r..z7r---z11r;
+(tim1,tim2)=p2 intersectiontimes p4;
+(tim3,tim4)=p3 intersectiontimes p2;
+filldraw p1..subpath(0,rundy(p2,tim1).zpet) of p2
+ ..reverse subpath(0,rundy(p4,tim2).zpet) of p4
+ ..reverse subpath(rundy(p3,(tim3,2oblu)),infinity) of p3
+ ..subpath(rundy(p2,(tim4,2oblu)),infinity) of p2..cycle;
+penlabels(1,2,3,4,5,6,7,8,9,11); labels(10);
+math_fit(-u#,u#);
+endchar;
+