.cmchar "The Fraktur ligature ch";
.beginchar(ch_ligature,3.639lower_u#+4.772lower_u#,x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot);
z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l];
x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h);
penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68);
z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l];
x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w;
z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw
z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw
z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r &
z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0); w:=5.472u;
h:=1.376x_height; d:=2.556u; w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1l=z102l;
z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h);
penstroke z1e--z2e; filldraw z2l---z3''...z4l--z4r-- z3{dir45}..z5l{right}--z5r{left}
...z3'---z2r--z2l & cycle; penpos5'(hair,-40);  penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o;
x6r=x1r; z7-z6=whatever*dir48; x7=0.6w+x0; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
penpos8(1.292stem,39); z5'=whatever[z101,z102]; z8r=(w,0.478x_height)+z0; penpos11(hair,-50);
penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*((w,0.559x_height)); x11=x1;
penpos9(1.229stem,angle((w,0.559x_height))); z9=whatever[z11,z10]; y9r=y10r-apex_o;
z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30;  z5'r-z6'=whatever*(z1r-z15); penstroke z11e--z10e;
penstroke z6e---z7e; penpos7'(1.2hair,-40); z7'r=(0.426w,-d)+z0; penstroke z7'e{dir50}...z8e{up}..
z9e; filldraw z5'l--z1l--z1r-- z15--z7l--
z6'--z5'r--z5'l & cycle; .endchar;

.cmchar "The Fraktur ligature ck";
.beginchar(ck_ligature,3.639lower_u#+3.161lower_u#,x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot);
z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l];
x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h);
penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68);
z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l];
x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w;
z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw
z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw
z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r &
z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0);
w:=3.861u; h:=1.366x_height; w':=1.223w; penpos1(stem,0); penpos2(stem,0); z1l=z102l;
z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h);
penstroke z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); filldraw z2l---z3''...z4l--z4r--
z3{dir45}..z5l{right}..z5''l--z5''r..z5r{left} ...z3'---z2r--z2l & cycle; penpos5'(hair,-40); 
penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.8w+x0;
z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
z6e---z7e;  z5'r-z6'=whatever*(z1r-z15); z5'=whatever[z101,z102]; filldraw z5'l..z1l{up}--z1r--
z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; penpos1.4(3/4stem,-90); z1.4=(x0+0.928w,.859x_height);
z1.3=(x0,y1.4r); z1.35=(x2l,y1.4l); filldraw z1.3--z1.35--z1.4l--z1.4r-- z1.3 & cycle;
penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43);
z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60);
z1.8r=(x0+w,0.579[y1.4l,y5l]); penstroke z1.6e--z1.6'e; penstroke
z1.5e{dir72}..z1.8e{up}..z1.7e{left}; filldraw z1.6r--z1.7l--z1.7r--z1.6l --z1.6r & cycle; 
.endchar;

.cmchar "The Fraktur ligature st";
.beginchar(st_ligature,6.5lower_u#,1.366x_height#,3.167lower_u#);
.adjust_fit(0,0.05alpha*w#+usual_right#);
w':=0.698w;  penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
w':=0.726w; z100=(x0.14,0); penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot)+z100;
z2=(x1,0.828x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke
z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height)+z100;
penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=x100+0.53w;
z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
penpos1.4(3/4stem,-90); z1.4=(0.928x100+0.4916w,.859x_height); z1.3=(x100,y1.4r);
z1.35=(x2l,y1.4l); filldraw z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0);
z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]);
penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43);
z1.6'l=z1.7r; penpos1.8(stem,60);
z1.8r=(x100+0.529w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,1.186x_height); filldraw
z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; penpos30'(hair,180); z30'=z30;
penpos30''(hair,-90); z30''r=(x30l,h); penstroke z0.11e{z0.11-z0.9}.. z30''e..z30'e{z1.3-z30l};
.endchar;

.cmchar "The Fraktur ligature ss";
.beginchar(ss_ligature,6.928lower_u#,1.366x_height#,3.167lower_u#);
.adjust_fit(0,0.05alpha*w#+usual_right#-1.932u#);
w':=0.655w; 
penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); z0.2=(x0.1,0.795x_height);
penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l];
z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0);
z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; penpos0.5(0.917stem,0);
z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72;
penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22);
z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; penpos0.8(whatever,68);
z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r...
z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw
z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e;
.endchar;

.cmchar "The Fraktur ligature sf";
.beginchar(sf_ligature,6.928lower_u#,1.366x_height#,3.167lower_u#);
.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
w':=0.655w;  penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle;
.endchar;

.cmchar "The Fraktur ligature ff";
.beginchar(ff_ligature,6.928lower_u#,1.366x_height#,3.167lower_u#);
.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
w':=0.655w;  penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle; filldraw z0.5--z0.4l--z0.4r--z0.2--z0.5 & cycle;
.endchar;

.cmchar "The Fraktur ligature sz";
.beginchar(eszet,5.444lower_u#,1.366x_height#,3.167lower_u#);
.adjust_fit(0,0.05alpha*w#+usual_right#+0.5u#); w':=0.834w; 
penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2);
z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r];
y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0);
z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68);
z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0);
z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22);
z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r;
z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r... z0.5r---z0.6l &
z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw
z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw
z0.6l{dir72}..z0.14{right}.. z0.8r{dir-22}--z0.8l{dir158}..
z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
z100=(x0.2r-hair,hair); w':=0.633w; d':=0.679w; penpos1(hair,122);
penpos2(hair,180); penpos3(0.625stem,-42); penpos4(1.313stem,37);
z1l=(w',0.524h)+z100; z2r=(x0.2,-0.1d'+y100); z3r=(0.548w',-0.8d')+z100;
z4r=(w'+u,0.103x_height)+z100; penstroke z2e{down}..z3e{right} ..z4e{up};
penpos5(hair,-90); z5=(0,0.414x_height)+z100; z6-z5=whatever*dir38;
x6=0.484w'+x100; filldraw z5r{right}..z4l{down}-- z4r{up}..z6--z5r &
cycle; penpos7(4/3stem,43); z7=(0.629w',0.734x_height)+z100;
z8=(0.532w',x_height+apex_o)+z100; z9=(0.081w',0.793x_height)+z100;
penpos9'(hair,-90); z9'l=z9; penstroke z5e{z6-z5r}..z7e{up}; filldraw
z7l{up}..z9'r{z9-z8}--z9--z8.. z7r{down}--z7l & cycle;
last_char:=currentpicture;
.endchar;



.cmchar "The Fraktur ligature sz";        
if (dc_layout>0): xchar_code:=oct"377";
        else: xchar_code:=oct"337";
  beginchar(xchar_code,5.444lower_u#,1.366x_height#,3.167lower_u#);
  currentpicture:=last_char;
  endchar;
fi;       

.cmchar "The Fraktur ligature tz";
.beginchar(tz_ligature,4.75lower_u#,1.186x_height#,3.167lower_u#);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#+u#);
w':=0.994w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,0.828x_height);
z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74);
z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e;
penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height);
penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.632w;
z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
penpos1.4(3/4stem,-90); z1.4=(x1r,.859x_height); z1.3=(0,y1.4r); z1.35=(x2l,y1.4l); filldraw
z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)];
penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r;
penpos1.8(stem,60); z1.8r=(w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,h); filldraw
z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; z100=(x1r-hair,hair); w':=0.725w;
d':=0.679d; penpos0.1(hair,122); penpos0.2(hair,180); penpos0.3(0.625stem,-42);
penpos0.4(1.313stem,37); z0.1l=(w',0.524h)+z100; z0.2r=(0,-0.1d')+z100; z0.3r=(0.548w',-d')+z100;
z0.4r=(w'+u,0.103x_height)+z100; penstroke z0.2e{down}..z0.3e{right} ..z0.4e{up};
penpos0.5(hair,-90); z0.5=(0,0.414x_height)+z100; z0.6-z0.5=whatever*dir38; x0.6=0.484w'+x100;
filldraw z0.5r{right}..z0.4l{down}-- z0.4r{up}..z0.6--z0.5r & cycle; penpos0.7(4/3stem,43);
z0.7=(0.629w',0.734x_height)+z100; z0.8=(0.532w',x_height+apex_o)+z100;
z0.9=(0.081w',0.793x_height)+z100; penpos0.9'(hair,-90); z0.9'l=z0.9; penstroke
z0.5e{z0.6-z0.5r}..z0.7e{up}; filldraw z0.7l{up}..z0.9'r{z0.9-z0.8}--z0.9--z0.8..
z0.7r{down}--z0.7l & cycle; filldraw (x1r,y1.4l){right}.. z0.8{z0.8-z0.9}--z0.9--(x1r,y1.4l) &
cycle;
.endchar;

numeric nombre; nombre:= 5gencoef[1,1.155556];

.cmchar "The Fraktur letter a with little-e Umlaut";
.beginchar(oct"211",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51); 
penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
penpos12(whatever,-90); penpos11''(hair,-30);
z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
z10=whatever[z8l,z9l]; y10=0.228h;
z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
z11''r=(gencoef[0.78w,0.814w],-apex_o); 
z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l);  z11'=whatever[z11l,z12l];
y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
..z7..z10{z9-z8} & z10--z8' & cycle; z100=(x9l,1.214x_height);
e_umlaut(100);.endchar;

nombre:= 3.65gencoef[1,1.230769];

.cmchar "The Fraktur letter e with little-e Umlaut";
.beginchar(oct"220",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#);
penpos1(stem,0); z1l=(0,0.486h);
penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69);  z6r=(x1r,0.5h);
z3l-z2=whatever*((w,gencoef[0.3h,0.25h]));    x4r=w-gencoef[apex_o,0];
z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
filldraw z7'{dir135}..z1l{up}..z2 &
z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; z100=(0.569w,1.214x_height);
e_umlaut(100);
.endchar;

nombre:=4.75gencoef[1,1.140351];

.cmchar "The Fraktur letter o with little-e Umlaut";
.beginchar(oct"231",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#);
penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
z2-z1=whatever*((w,0.786h));  x8'=x8r;
y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
z7l--z7'--z7r--z7l & cycle; z100=(x4,1.214x_height);
e_umlaut(100);
.endchar;

nombre:=6.15gencoef[1,1.107527];

.cmchar "The Fraktur letter u with little-e Umlaut";
.beginchar(oct"236",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#);
penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o); 
z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
..z15--z14r--z14l--z13 & cycle; z100=(x2l-hair,1.214x_height);
e_umlaut(100);
.endchar;

numeric nombre; nombre:= 5gencoef[1,1.155556];

.cmchar "The Fraktur letter a with Umlaut";
.beginchar(oct"344",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51); 
penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
penpos12(whatever,-90); penpos11''(hair,-30);
z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
z10=whatever[z8l,z9l]; y10=0.228h;
z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
z11''r=(gencoef[0.78w,0.814w],-apex_o); 
z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l);  z11'=whatever[z11l,z12l];
y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
..z7..z10{z9-z8} & z10--z8' & cycle;
  % z100=(x9l,1.214x_height);
last_char:=currentpicture;
z100=(0.5w,x_height);
umlaut(100);.endchar;


.cmchar "The Fraktur letter a with acute";
.beginchar(oct"341",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); acute(100);
endchar;

.cmchar "The Fraktur letter a with breve";
.beginchar(oct"240",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); breve(100);
endchar;

.cmchar "The Fraktur letter a with ogonek";
.beginchar(oct"241",nombre*lower_u#,x_height#,0.2x_height#);
currentpicture:=last_char;
z100=(0.8w,0); ogonek(100);
endchar;

.cmchar "The Fraktur letter a with tilde";
.beginchar(oct"343",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); tilde(100);
endchar;

.cmchar "The Fraktur letter a with scandinavian circle";
.beginchar(oct"345",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); o_umlaut(100);
endchar;

.cmchar "The Fraktur letter a with grave";
.beginchar(oct"340",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); grave(100);
endchar;

.cmchar "The Fraktur letter a with hat";
.beginchar(oct"342",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hat(100);
endchar;

nombre:= 3.65gencoef[1,1.230769];

.cmchar "The Fraktur letter e with Umlaut";
.beginchar(oct"353",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#);
penpos1(stem,0); z1l=(0,0.486h);
penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69);  z6r=(x1r,0.5h);
z3l-z2=whatever*((w,gencoef[0.3h,0.25h]));    x4r=w-gencoef[apex_o,0];
z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
filldraw z7'{dir135}..z1l{up}..z2 &
z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e;
z100=(0.6w,x_height);
last_char:=currentpicture;
umlaut(100);
.endchar;

.cmchar "The Fraktur letter e with acute";
.beginchar(oct"351",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); acute(100);
endchar;

.cmchar "The Fraktur letter e with grave";
.beginchar(oct"350",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); grave(100);
endchar;

.cmchar "The Fraktur letter e with hacek";
.beginchar(oct"245",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hacek(100);
endchar;

.cmchar "The Fraktur letter e with hat";
.beginchar(oct"352",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hat(100);
endchar;

.cmchar "The Fraktur letter e with ogonek";
.beginchar(oct"246",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.6w,0); ogonek(100);
endchar;

nombre:=4.75gencoef[1,1.140351];

.cmchar "The Fraktur letter o with Umlaut";
.beginchar(oct"366",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#);
penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
z2-z1=whatever*((w,0.786h));  x8'=x8r;
y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
z7l--z7'--z7r--z7l & cycle; z100=(x4,x_height);
last_char:=currentpicture;
umlaut(100);
.endchar;

.cmchar "The Fraktur letter o with acute";
.beginchar(oct"363",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); acute(100);
endchar;

.cmchar "The Fraktur letter o with Hungarian umlaut";
.beginchar(oct"256",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hungarum(100);
endchar;

.cmchar "The Fraktur letter o with tilde";
.beginchar(oct"365",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); tilde(100);
endchar;

.cmchar "The Fraktur letter o with slash";
.beginchar(oct"370",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
pickup penrazor xscaled 0.5stem yscaled hair rotated 30;
draw (0,0)--(w,x_height);
endchar;

.cmchar "The Fraktur letter o with slash";
if (dc_layout>0): xchar_code:=oct"370";
        else: xchar_code:=oct"034";
        fi;
.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
pickup penrazor xscaled 0.5stem yscaled hair rotated 30;
draw (0,0)--(w,x_height);
endchar;

.cmchar "The Fraktur letter o with grave";
.beginchar(oct"362",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); grave(100);
endchar;

.cmchar "The Fraktur letter o with hat";
.beginchar(oct"364",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hat(100);
endchar;

nombre:=6.15gencoef[1,1.107527];

.cmchar "The Fraktur letter u with Umlaut";
.beginchar(oct"374",nombre*lower_u#,x_height#,0);
.adjust_fit(usual_left#,usual_right#);
penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o); 
z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
..z15--z14r--z14l--z13 & cycle; % z100=(x2l-hair,1.214x_height);
last_char:=currentpicture;
z100=(0.5w,x_height);
umlaut(100);
.endchar;

.cmchar "The Fraktur letter u with acute";
.beginchar(oct"372",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); acute(100);
endchar;

.cmchar "The Fraktur letter u with Hungarian umlaut";
.beginchar(oct"266",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hungarum(100);
endchar;

.cmchar "The Fraktur letter u with grave";
.beginchar(oct"371",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); grave(100);
endchar;

.cmchar "The Fraktur letter u with hat";
.beginchar(oct"373",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hat(100);
endchar;


.cmchar "The Fraktur letter u with scandinavian circle";
.beginchar(oct"267",nombre*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); o_umlaut(100);
endchar;

.cmchar "The Fraktur hyphen";
.beginchar(oct"055",4u#,x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(0.5stem,-90);
penpos2(0.5stem,-90);
penpos3(0.5stem,-90);
penpos4(0.5stem,-90); penpos5(stem,-90);
z2-z1=whatever*dir35;
z4-z3=whatever*dir35;
z3r=z5l; z5r=z1l; x1=0;
x2=x4=w;
y1r=foot; 
penstroke z1e--z2e;
penstroke z3e--z4e;
.endchar;

def par_s(suffix $) =
h':=cap_height; w':=0.379h';
z$.1=z$+(0.5w',0.5h');
penpos$.1(stem,30);
penpos$.2(2hair,0);
penpos$.3(hair,-90);
penpos$.4(hair,180);
penpos$.5(hair,90);
z$.2l=z$+(0,0.8h'); z$.3l=(x$.1,y$+h');
z$.4=z$+(0.84w',0.886h');
z$.5=(x$.4r,y$+0.826h');
penstroke z$.2e{up}..z$.3e
{right} if panw: ..z$.4e{down}..z$.5e{left} fi;
penpos$.6(2hair,90); z$.6l=z$.5l;
if panw:
filldraw z$.6r..z$.6l..z$.6r & cycle;
fi
penpos$.1'(stem,-150);
penpos$.2'(2hair,180);
penpos$.3'(hair,90);
penpos$.4'(hair,0);
penpos$.5'(hair,-90);
z$.1=z$.1';
z$.2'r=z$+(w',0.2h'); z$.3'r=(x$.1,y$);
z$.4'=z$+(0.16w',0.114h');
z$.5'=(x$.4'r,y$+0.174h');
penpos$.2''(2hair,0); z$.2''=z$.2';
z$.25=(z$.2''{up}..z$.2{up})
intersectionpoint (z$+(0,0.5h')--
z$+(w',0.5h'));
penpos$.25(stem,30);
penstroke z$.2''e{up}..z$.25e..
z$.2e{up};
penstroke z$.2'e{down}..z$.3'e
{left} if katw: ..z$.4'e{up}..z$.5'e{right} fi;
penpos$.6'(2hair,-90); z$.6'l=z$.5'l;
if katw:
filldraw z$.6'r..z$.6'l..z$.6'r & cycle;
fi
enddef;

.cmchar "The Fraktur paragraph sign";
.beginchar(oct"237",7.4u#,cap_height#,3.167u#);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
boolean panw, katw;
panw:=true; katw:=false;
z0=(0.17h,0); par_s(0);
panw:=false; katw:=true;
z1=(0,-0.3h); par_s(1);
.endchar;

.cmchar "The Fraktur Mitlaut J proposed by Sanders in 1879";
.beginchar("$",8.541u#,cap_height#,2.497u#);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(cap_hair,28); penpos2(cap_hair,-17.5); penpos3(0.889cap_stem,-116); penpos4(cap_stem,-126);
penpos5(cap_hair,-44); penpos6(1.056cap_stem,53); penpos7(1.056cap_stem,21); penpos8(cap_hair,-90);
penpos9(cap_hair,180); z1=(0.115w,-0.886d); z2r=(x1,-0.519d); z3=(0.234w,-0.1d); z4r=(0.517w,-d);
z5=(0.795w,-0.329d); z6r=(0.966w,0.196h); z7=(0.636w,0.56h); z8=(0.808w,0.683h); z9l=(x6r,0.554h); 
penstroke z1e..z2e{up}..z3e{right} ..z4e{right}..z5e..z6e{up}..z7e{up} ..z8e{right}..z9e{down};
penpos10(1.037cap_stem,50); penpos11(cap_hair,-45); penpos12(0.889cap_stem,43);
penpos13(1.185cap_stem,-146); penpos14(0.741cap_stem,-119); penpos15(cap_hair,0);
penpos16(cap_hair,28); z10l=z11r=(0.1w,0.515h); z12l=(0,0.69h); z13l=(0.506w,h+apex_o);
z14r=z8l+(0,0.035h); z15r=(w,0.875h); z16=(x15l,0.924h); filldraw z11l{z12r-z11l}..z12l{up}--
z12r{down}..z10r--z10l--z11l & cycle; penstroke z12e{up}..z13e{right}..
z14e{right}..z15e{up}..z16e{dir118}; penpos20(hair,-41); penpos21(hair,-41);
penpos22(2/3cap_stem,-90); penpos23(0.593cap_stem,-113); z20l=(0,0.235h); z21=(x8,0.48y8);
z22=(0.261w,0.328h); z23=(0.586w,0.251h); penstroke z20e..z22e{right}..z23e{right} ..z21e;
.endchar;

% 311 --> 100 by D. Taupin
.cmchar "The Fraktur symbol for etc"; .beginchar(oct"100",8.194lower_u#,x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); penpos1(hair,-52);
penpos2(hair,-52); penpos3(stem,48); penpos4(stem,48); penpos5(hair,-42); penpos6(1.2stem,34);
penpos8(hair,-49); z1r=(0.22w,-apex_o); z2-z1=whatever*dir38; x2=0.458w; z3l=z1r;
z4l-z1r=whatever*dir140; x4l=0; z5l=z4; y6=0.707h; x6r=x2r; z7=(0.231w,h+apex_o);
z9=(0.163w,0.841h); z8l=(0,0.793h); penstroke z1e--z2e; penstroke z3e--z4e; penstroke
z5e{z4r-z4l}..z6e{up}; filldraw z6r{up}..z7{dir160} & z7-- z8l--z8r{z7-z8l}..z9{right}..z6l{down}
--z6r & cycle; penpos10(hair,-59); penpos11(hair,-59); penpos12(whatever,50); penpos13(1.2stem,30);
penpos14(stem,11.5); penpos15(hair,-75); penpos16(0.857stem,14); penpos17(0.857stem,14);
z11r=(0.695w,-apex_o); z10-z11=whatever*dir31; x10r=w; z12l=z11r; z12r=whatever[z11l,z10l];
z13=(0.631w,0.49h); z14=(0.678w,0.859h); z16r=(w,y8l); z15-z16r=whatever*dir105; y15l=h+apex_o;
z17r=z15; penstroke z11e--z10e; penstroke z12e..z13e{up}..z14e.. z15e{z16r-z16l}; penstroke
z16e--z17e;
.endchar;

.cmchar "Scandinavian circle accent";
if (dc_layout>0): xchar_code:=oct"006";
        else: xchar_code:=oct"027";
        fi;
.beginchar(xchar_code,9u#,cap_height#,0);
z100=(0.5w,x_height); o_umlaut(100);
.endchar;

.cmchar "The Fraktur letter dotless j";
if (dc_layout>0): xchar_code:=oct"032";
        else: xchar_code:=oct"021";
        fi;
.beginchar(xchar_code,2.944lower_u#,x_height#,1.611lower_u#);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(hair,47);  penpos2(1.3hair,-90); z2r=(0.16w,-d); penpos5(stem,0);
z5=(0.523w,0.124h); penpos3(2/3stem,0); z3l=(x5l,0.048h); penpos6(stem,0);
z6=(x5,0.824h); penpos7(hair,-90); z7=(0.906w,0.91h); penpos8(hair,-48);
penpos9(hair,-48); z8l=(0.481w,h+apex_o); z8-z9=whatever*((w,0.3448h)); x9l=0;
z9'=whatever[z9r,z8r]; y9'=y9l+apex_o;  z1r=(x5r+0.5stem,-0.207d);penstroke
z2e..z3e{up}; penstroke z5e--z6e; filldraw z1r{dir137}..z5r{up}--z5l
--z3l--z3r..z1l{dir-43}--z1r & cycle; filldraw z6r{up}..z7r{right}--z7l...
z8r---z8l--z9l--z9r--z9'.. z6l{down}--z6r & cycle; penpos11(hair,0);
z11r=(x8l,1.076h); z12=(0.571w,1.279h); z13=(0.744w,1.238h); 
.endchar;

.cmchar "The Fraktur letter dotless i";
if (dc_layout>0): xchar_code:=oct"031";
        else: xchar_code:=oct"020";
        fi;
.beginchar(xchar_code,2.889lower_u#,x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(hair,-44); penpos2(hair,-44); penpos3(hair,-44); z1l=(0,0.834h);
z2-z1=whatever*((w,0.37h)); y2l=h+apex_o; z3=whatever[z2l,z2r]; x3r=x5r+0.5stem;
z4=(0.606w,0.931h); penpos5(stem,0); z5=(0.433w,0.759h); z6=(x5,0.238h);
penpos6(stem,0); z7=(x6l,0.079h); z8-z7=whatever*dir-40; y8=-apex_o;
penpos9(hair,-38); z9r-z8=whatever*dir52; x9r=w; z10=(0.788w,0.152h);
z5'=whatever[z1,z2]; x5'=x5l; penstroke z5e--z6e; penstroke z1e--z2e; filldraw
z5r{up}..z3r--z2--z5'--z5l{down} --z5r & cycle; filldraw z8--z9r--z9l{z8-z9r}
..z6r{up}--z6l{down}..{z8-z7}z8 & cycle; penpos11(hair,0); z11r=(x2l,1.076h);
z12=(0.56w,1.279h); z13=(0.73w,1.238h); 
last_char:=currentpicture;
.endchar;



.cmchar "The Fraktur letter i with Umlaut";
.beginchar(oct"357",2.889*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); umlaut(100);
endchar;
 
.cmchar "The Fraktur letter i with acute";
.beginchar(oct"355",2.889*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); acute(100);
endchar;
 
.cmchar "The Fraktur letter i with grave";
.beginchar(oct"354",2.889*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); grave(100);
endchar;

.cmchar "The Fraktur letter i with hat";
.beginchar(oct"356",2.889*lower_u#,x_height#,0);
currentpicture:=last_char;
z100=(0.5w,x_height); hat(100);
endchar;


