summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-01-30 00:25:16 +0000
committerKarl Berry <karl@freefriends.org>2018-01-30 00:25:16 +0000
commit72ab3cc654a8685d0994636572a5e7dd133c3c1d (patch)
treec88501ed58804aafb4413edf0b21e8a44038a2a3 /Master/texmf-dist/fonts/source
parentb58f8f909aeec6d28a8d78be1ea126744934c852 (diff)
bookhands for new tgothic (29jan18)
git-svn-id: svn://tug.org/texlive/trunk@46480 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source')
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf243
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf695
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf125
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf842
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf1234
12 files changed, 3829 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf
new file mode 100644
index 00000000000..9c3bf6027a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTHB10.MF Gothic Textura Quadrata Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf
new file mode 100644
index 00000000000..ec9bf3fce4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTHB17.MF Gothic Textura Quadrata Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf
new file mode 100644
index 00000000000..8643db5a04e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTHB7.MF Gothic Textura Quadrata Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf
new file mode 100644
index 00000000000..74565d5117d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf
@@ -0,0 +1,243 @@
+%%
+%% This is file `tgothdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "TGOTH digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "TGOTH digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric st; st := stem_width;
+numeric n[];
+n1 := 1/2st;
+pickup quill;
+lft x1=pcshiftx+n1; top y1=h-2n1;
+rt x3=w-pcshiftx-n1; y3=3/4h;
+x2=1/2[x1,x3]; top y2= h;
+x5= lft x1; bot y5=0;
+x6= rt x3; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1--z2--z3--z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "TGOTH digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pcshiftx := u;
+pickup quill;
+%% top
+lft x1 = pcshiftx + n1; rt x3 = w - pcshiftx - n1;
+x2 = 1/2[x1,x3]; x4 = 1/2[x1,x2];
+top y2 = h; y3 = 12/16h;
+(z2-z1) = whatever*pdir;
+(z3-z4) = whatever*pdir;
+%% bottom
+x5 = 12/16[x4, rt x4]; x6 = x3; x7 = x2;
+x18 = x1-n1; x17 = x7;
+bot y7 = thin;
+y5 = 12/16[y4, top y4];
+(z5-z6) = whatever*(z2-z3);
+bot y18 = 0; bot y17 = 0;
+
+draw z1--z2--z3--z4; % top
+draw_wave(18,17,thin);
+draw z5--z6--z18wr; % bottom
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,17,18,100);
+endchar; % end "3"
+
+cmchar "TGOTH digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+numeric n[];
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-(wided+widedmin)*st;
+y1=h; y2=0;
+lft x3=pcshiftx; y3=7/16h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang); % stem
+draw z3--z4; % horizontal
+draw z1--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "TGOTH digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx+n1; y2=y1;
+x3=x2; y3=0.5h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=1/2[thick,y3];
+x6=w/2; bot y6=0;
+%%x16 = 12/16[x3,x5];
+x16 = lft x5;
+bot y16 = 0;
+lft x17=pcshiftx; bot y17=0;
+z167 = 1/2[z16,z17];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z2wl--z3; % vertical
+%%draw_wave(17,16,thin); % foot
+draw z17{pdir}..{pdir}z16; % foot
+draw z3{pdir}..z5{down}..z16; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "TGOTH digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h - thick; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% head
+x11 = x5; top y11 = h;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x16 = x11; y16 = y11-thin;
+draw z6--z16;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "6"
+
+cmchar "TGOTH digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "TGOTH digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1= pcshiftx; rt x3=w-pcshiftx; top y1 = y3 = 3/4h;
+rt x2 = lft x4 = w/2; top y2=h; bot y4=0;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11 = bot y13 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+draw z1--z2--z3--z11--z4--z13--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "TGOTH digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = thick;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% foot
+x11 = x5; bot y11 = 0;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x13 = x12; y13 = y12+thin;
+draw z3--z13;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "9"
+
+cmchar "TGOTH digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4h;
+y3 = y5 = 1/4h;
+
+draw z1--z2--z3--z4--z5--z6--cycle;
+
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf
new file mode 100644
index 00000000000..957415d8f04
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf
@@ -0,0 +1,695 @@
+%%
+%% This is file `tgothl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "TGOTH letter a";
+beginchar("a", 2sb#+hstretch*((3+widedmin+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+%% left hand
+lft x1 = pcshiftx + widedmin*stem_width; y1 = 1/2h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% right stem
+rt x3 = w - pcshiftx - wided*stem_width; y3=h;
+x4=x3; y4=0;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,1.0,0.1,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+%% swirl
+x11=rt x1; y11 = top y1;
+pickup stylus;
+draw z3d--z3c..{-ppdir}z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "TGOTH letter b";
+beginchar("b", 2sb#+hstretch*((3 + widedmin + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx + widedmin*st; y1=h;
+x2 = x1; y2=0;
+z3=1/2[z1,z2];
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+lft x6 = x2c; bot y6 = y2c;
+x4 = x6; y4=n2;
+draw_updiamondstem(4,6,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z4d,z4c];
+pickup stylus;
+draw z4d--z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "TGOTH letter c";
+beginchar("c", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st;
+st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+z11-z2c = z2c - z2d;
+pickup stylus;
+draw z2d--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "TGOTH letter d";
+beginchar("d", 2sb#+hstretch*((3+widedmin+narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+%% left
+n2 := st*(cosd diang);
+lft x1 = pcshiftx + widedmin*st; top y1 = 12/16n1;
+x2=x1; y2=0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd,diang);
+%% right
+rt x3 = w-pcshiftx-narrowdmin*st; y3=h;
+x4 = x3; bot y4 = y2c;
+draw_updiamondstem(3,4, 2.0, narrowdmin, diawd,diang);
+x31 = lft x1; y31 = bot y1;
+x32 = rt x1; y32 = top y1;
+z33 = whatever[z31,z32] = whatever[z3e,z3c];
+pickup stylus;
+draw z31--z33;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "TGOTH letter e";
+beginchar("e", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st;
+st := stem_width;
+path pth[];
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+x5 = x1;
+z4-z5 = whatever*pdir;
+pickup stylus;
+draw z4--z5;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
+endchar; % end "e"
+
+cmchar "TGOTH letter f";
+beginchar("f", 2sb#+hstretch*((3+widedmin)*stem_width#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+widedmin*st; y2=0; top y1 = h - (top y2 - bot y2);
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top bar
+lft x3 = rt x1; rt x5 = w-pcshiftx; bot y3 = top y1; y5=y3;
+draw z3--z5;
+%% middle bar
+lft x7 = pcshiftx; rt x9 = x5;
+y7 = y9 = 10/16h;
+draw z7--z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,15,16,100);
+endchar; % end "f"
+
+cmchar "TGOTH letter g";
+beginchar("g", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx;
+x2 = x1; bot y2 = 0; top y1 = h - (top y2 - bot y2);
+draw z1--z2;
+x3 = x4 = x1 + 2st; y4 = y2;
+lft x13 = rt x1; bot y13 = top y1;
+(z3-z13) = whatever*(dir -diang);
+draw z13--z3--z4;
+z34 = 1/2[z13,z3]; rt x37 = w-pcshiftx; top y37 = h;
+draw z34{right}..{pdir}z37;
+pickup stylus;
+bot y5 = -d;
+(z4-z5) = whatever*pdir;
+draw z4--z5;
+pickup quill;
+%% bottom loop
+z21 = z2;
+lft x25 = x5; bot y25=-d;
+x29 = 1/2[x3,x37];
+(z29-z21) = whatever*(dir -diang);
+x23 = x29; y23 = 1/2[y29,y25];
+draw z21{dir - diang}..z23{down}..{left}z25;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+cmchar "TGOTH letter h";
+beginchar("h", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+n1 = h/ascratio;
+%% stem
+lft x1=lft x2=pcshiftx + narrowdmin*stem_width;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% bowl
+x3 = x1 + 2stem_width; x4 = x3;
+y3 = n1; y4=0;
+z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z3d,z3c];
+pickup stylus;
+draw z3d--z7;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "TGOTH letter i";
+beginchar("i", 2sb#+hstretch*(2stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+x3= x1-thin; bot y3 = h + 1/2stem_width;
+z4 = (x3+3thin,y3);
+pickup halfquill;
+draw z3--z4;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "TGOTH letter j";
+beginchar("j", sb#+hstretch*(5/2stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx - 1/2stem_width; y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_updiamondstem(1,2,narrowd,narrowdmin,diawd,diang);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "TGOTH letter k";
+beginchar("k", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx + narrowdmin*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2, narrowd, narrowdmin, diawd,diang);
+%% right leg
+x3 = x1 + 2st; y3 = 8/16n1;
+x4 = x3; y4 = 0;
+z34 = 1/2[z3,z4];
+draw_downdiamondstem(34,4, narrowd, narrowdmin, diawd,diang);
+draw z3--z34;
+lft x5 = rt x1;
+(z3-z5) = whatever*(dir -diang);
+draw z5--z3;
+
+%% top arm
+x6 = 1/2[x3, rt x3];
+(z6-z5) = whatever*(pdir);
+rt x8 = lft x5; top y8 = bot y5+thick;
+(z7-z8) = whatever*(z6-z5);
+(z7-z6)=whatver*(z5-z3);
+draw z6--z7;
+pickup stylus;
+draw z5--z6--z7--z8;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "TGOTH letter l";
+beginchar("l", 2sb#+hstretch*((2 + widedmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx + widedmin*st; y1=h;
+x2=x1; y2 =0;
+z3 = 1/2[z1,z2];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "TGOTH letter m";
+beginchar("m", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+wided*stem_width; y1 = y3 = y5 = h;
+x2=x1; y2=y4=y6=0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x5 = rt x6 = w-pcshiftx-narrowd*stem_width;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56,wided,widedmin,diawd,diang);
+draw_downdiamondstem(56,6,narrowd,narrowdmin,diawd,diang);
+%% middle stem
+z3=1/2[z1,z5]; z4 = 1/2[z2,z6]; z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "TGOTH letter n";
+beginchar("n", 2sb#+hstretch*((3+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + wided*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x3 = w-pcshiftx - narrowd*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "TGOTH letter o";
+beginchar("o", 2sb#+hstretch*((3 + narrowdmin + narrowdmin)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bottom left
+lft x12 = pcshiftx + narrowdmin*st; y12 = 1/2h;
+x2 = x12; y2 = 0;
+draw_downdiamondstem(12,2, 1.0, narrowdmin, diawd,diang);
+%% right
+rt x3 = w - pcshiftx - narrowdmin*st; x4=x3;
+y3 = h; bot y4 = y2c;
+draw_updiamondstem(3,4, 1.0, narrowdmin, diawd,diang);
+%% top left
+x1 = x12; top y1 = y3c;
+draw z1--z12;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "TGOTH letter p";
+beginchar("p", 2sb#+hstretch*((3 + wided + widedmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+wided*st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downforkstem(12,2);
+%% bowl
+x3 = x4 = x1 + 2st;
+y3 = y1; bot y4 = 0;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+lft x5 = pcshiftx; y5 = y4;
+draw z5--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "TGOTH letter q";
+beginchar("q", 2sb#+hstretch*((3 + widedmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% left/bottom of bowl
+y99 = 0;
+lft x1 = pcshiftx +widedmin*st; top y1 = h - (top y99 - bot y99);
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin,diawd,diang);
+%% rest
+x3 = x1 + 2st; x4 = x3; y3 = y1; y4 = -d;
+lft x5 = rt x1; bot y5 = top y1;
+draw_downforkstem(3,4);
+draw z5--z3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "TGOTH letter r";
+beginchar("r", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx + wided*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% bar
+lft x3 = rt x1; rt x4 = w-pcshiftx; top y3 = top y4 = h;
+draw z3--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "TGOTH letter s";
+beginchar("s", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup stylus;
+%% the diagonal
+lft x2 = pcshiftx; bot y2 = 0;
+rt x1 = w-pcshiftx; top y1 = h;
+draw z1--z2;
+pickup quill;
+z211 = 13/32[z2,z1]; %% 10/32 too small, 16/32 too large
+z213 = 24/32[z2,z1]; %% 26/32 too large
+z212 = 1/2[z211,z213];
+%% bottom bowl
+lft x21 = x2; bot y21 = 0;
+rt x22 = w - pcshiftx; bot y22 = 0;
+x23 = x22; z24 = z212;
+(z24-z23) = whatever*(dir (180-diang));
+draw z21{pdir}..z22--z23--z24;
+%% top bowl
+z14 = z211; z11 = z213;
+lft x12 = lft x13 = pcshiftx;
+(z13-z14) = whatever*(dir (180-diang));
+(z12-z11) = whatever*(dir (180-diang));
+draw z11--z12--z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,100);
+endchar; % end "s"
+
+cmchar "TGOTH letter t";
+beginchar("t", 2sb#+hstretch*((2+1.0)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "TGOTH letter u";
+beginchar("u", 2sb#+hstretch*((3+narrowd+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+rt x3 = w - pcshiftx - wided*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "TGOTH letter v";
+beginchar("v", 2sb#+hstretch*((4 + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[]; numeric st;
+pcshiftx := sb;
+st := stem_width;
+n1 := h/ascratio; % x-height
+pickup quill;
+%% bottom left stem
+%% right and bottom left stems
+rt x23 = w - pcshiftx - narrowdmin*st; y23 = n1; x24=x23;
+x1 = x23 - 2st; y1 = 1/2n1;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd, diang);
+bot y24 = y2c;
+draw_updiamondstem(23, 24, narrowd, narrowdmin, diawd, diang);
+%% curly bit
+x11=x1; top y11 = h;
+lft x12 = pcshiftx; y12 = 1/2[y11,y1];
+draw z11{down}..z12{down}..{down}z1;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "TGOTH letter w";
+beginchar("w", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = y3 = y5 = h;
+x2 = x1; y2 = y4 = y6 = 0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2, wided, widedmin, diawd, diang);
+%% right stem
+rt x5 = w -pcshiftx-wided*stem_width; x6 = x5;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(56,6, wided, widedmin, diawd, diang);
+%% middle stem
+z3 = 1/2[z1,z5]; z4 = 1/2[z2,z6]; z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(34,4, wided, widedmin, diawd, diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "TGOTH letter x";
+beginchar("x", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% upright
+x1 = 1/2w; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12, 1.5, widedmin,diawd,2/3diang);
+draw_downdiamondstem(12,2, 1.5, widedmin,diawd,2/3diang);
+%% top right bar
+lft x3 = rt x1; top y3 = h;
+rt x4 = w - pcshiftx; y4=y3;
+draw z3--z4;
+%% middle bar
+n1 := h-y3;
+lft x5 = pcshiftx; rt x6 = w - pcshiftx;
+y5 = 1/2h - n1; y6 = 1/2h;
+z56 = 1/2[z5,z6];
+draw z5{pdir}..z56..{pdir}z6;
+%% bottom left
+pickup stylus;
+lft x11 = pcshiftx; bot y11 = 0;
+draw z2e--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "TGOTH letter y";
+beginchar("y", 2sb#+hstretch*((3 + narrowd+ narrowdmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st = stem_width;
+pickup quill;
+%% right side
+rt x3 = w - pcshiftx - narrowdmin*st; y3 = h;
+x33 = x3; y33 = 0;
+%%draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+%% left side
+x1 = x3 - 2st; y1 = y3;
+x2 = x1; y2 = 0;
+n1 := top y2 - y2;
+draw_updiamondstem(1,2,narrowd,narrowdmin, diawd,diang);
+%% tail
+x11 = rt x2; y11 = top y2;
+x12 = lft x2; y12 = bot y2;
+pickup stylus;
+lft x14 = x1 - 2st; y14 = -d + n1;
+x15 = x14+n1; bot y15 = -d;
+z4 = whatever[z11,z12] = whatever[z3,z33];
+x10=x4; bot y10 = y4;
+draw z10--z11--z12..{down}z14..{-ppdir}z15;
+pickup quill;
+draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,33,100);
+endchar; % end "y"
+
+cmchar "TGOTH letter z";
+beginchar("z", 2sb#+hstretch*(3stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% centre bar
+z5 = 1/2[z1,z3]; z6 = 1/2[z2,z4]; z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; draw pth3; % bars
+draw z2--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf
new file mode 100644
index 00000000000..e377d6db054
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf
@@ -0,0 +1,150 @@
+%%
+%% This is file `tgothlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+
+cmchar "TGOTH st ligature";
+beginchar(oct"015", 2sb#+hstretch*((1 + narrowd + 3)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := h/ascratio; % x-height
+pickup quill;
+%% the S (long)
+lft x1 = pcshiftx + narrowd*st;
+x2 = x1; y2 = 0; y1 = h - (top y2 - bot y2);
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd, 1/4narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2,narrowd, narrowdmin, diawd, diang);
+%% the T
+%% bar
+lft x23 = rt x1 + pcshiftx; top y23 = n1;
+rt x24 = w-pcshiftx; y24=y23;
+draw z23--z24;
+%% stem
+lft x21 = rt x23; top y21 = h;
+x22 = x21; y22 = 0;
+draw_downdiamondstem(21,22,narrowd,narrowdmin,diawd,diang);
+%% the ligature
+x11=x1; top y11=h;
+draw z12--z11--z21;
+ductus:=false;
+penlabels(1,2,3,4,5,11,21,22,23,24,100);
+%% end "t"
+endchar; %% end st ligature
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*((2)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*((3)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*((6)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "TGOTH ampersand";
+beginchar("&", 2sb#+hstretch*((7/2)*stem_width#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% E bars
+n1 = 1/2[y3,y2a] + 1/2angdec;
+pickup halfquill;
+lft x11 = pcshiftx; rt x12 = w-pcshiftx;
+y11 = y12 = 1/2h;
+x13 = x11; x14=x12; y13 = y14 = n1-angdec;
+draw z11--z12;
+%%draw z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,13,14,100);
+endchar; % end "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf
new file mode 100644
index 00000000000..631c999abfc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf
@@ -0,0 +1,125 @@
+%%
+%% This is file `tgothpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*((3+wided+widedmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x45 = x5; y45=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 11/16h;
+
+x4 = x45;
+(z3-z4) = whatever*pdir;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1..z2{right}..z3{down}..z4{down};
+draw z1--z2--z3--z4--z45;
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,45,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=3/4h; y2=1/4h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf
new file mode 100644
index 00000000000..8bf610c10a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothr10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTH10.MF Gothic Textura Quadrata at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf
new file mode 100644
index 00000000000..84f41b4c54b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothr17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTH17.MF Gothic Textura Quadrata at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf
new file mode 100644
index 00000000000..9c4b47891d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothr7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTH7.MF Gothic Textura Quadrata at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf
new file mode 100644
index 00000000000..1aa2c111689
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf
@@ -0,0 +1,842 @@
+%%
+%% This is file `tgothtitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def tgothic_font_setup= % contains special stuff for tgothic fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb,cap_sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ define_pixels(stem_width);
+ define_pixels(perpdec,angdec);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of tgothic_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_upforkstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ x$a=x$; top y$a = bot y$; % top of straight stem
+ draw z$a--z$$; % straight part
+ z$b = (rt x$, y$); z$c = (x$b, top y$a);
+ z$d = (lft x$, bot y$a); z$e = (x$d, y$);
+ pickup stylus;
+ rt x$cc = x$c; y$cc = y$c;
+ lft x$bb = x$b; y$bb = y$b;
+ lft x$dd = x$d; y$dd = y$d;
+ rt x$ee = x$e; y$ee = y$e;
+ filldraw z$a--z$bb..z$cc--cycle; % fork
+ filldraw z$a--z$dd..z$ee--cycle;
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e);
+enddef; % end of draw_upforkstem
+
+
+def draw_downforkstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ x$$a=x$$; bot y$$a = top y$$; % bottom of straight stem
+ draw z$--z$$a; % straight part
+ z$$b = (rt x$$, y$$); z$$c = (x$$b, top y$$a);
+ z$$d = (lft x$$, bot y$$a); z$$e = (x$$d, y$$);
+ pickup stylus;
+ rt x$$cc = x$$c; y$$cc = y$$c;
+ lft x$$bb = x$$b; y$$bb = y$$b;
+ lft x$$dd = x$$d; y$$dd = y$$d;
+ rt x$$ee = x$$e; y$$ee = y$$e;
+ filldraw z$$a--z$$bb..z$$cc--cycle; % fork
+ filldraw z$$a--z$$dd..z$$ee--cycle;
+ pickup oldpen;
+ labels($$a,$$b,$$c,$$d,$$e);
+enddef; % end of draw_downforkstem
+
+
+def draw_upcurlstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ path curlp[]; numeric curln[];
+ x$a=x$; top y$a = y$; % top of straight stem
+ draw z$a--z$$; % straight part
+ curln1 := rt x$a - lft x$a; % stem width
+ x$b = x$a - 4/2curln1; y$b = y$a; % left jut
+ curlp1 := z$a{-pdir}..{left}z$b;
+ draw curlp1;
+
+ x$c = x$a-3curln1; top y$c = bot y$a-1/2curln1;
+ x$f = x$b; y$f = 1/3[y$c,y$b];
+ x$tb = rt x$b; y$tb = top y$b;
+ x$bb = lft x$b; y$bb = bot y$b;
+ curlp2 := z$tb--z$bb..{down}z$c..{ppdir}z$f;
+ pickup stylus;
+ draw curlp2;
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_upcurlstem
+
+
+def draw_updiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+ pen oldpen; oldpen:=currentpen;
+ numeric sj; sj := fr*stem_width; % jut distance
+ numeric sjr; sjr := minfr*stem_width; % right jut distance
+ numeric jw; jw := wd*stem_width; % jut width
+ %% $b is bottom left of jut, on LHS of stem
+ %% $c is leftmost point on jut
+ %% $d is topmost point on jut
+ %% $g is topmost point on stem
+ %% $e is on exprapolation of line from $d through $g
+ %% i.e., the rightmost point on jut
+ %% $f is on RHS of stem
+ pickup quill;
+ x$b = lft x$;
+ x$c = x$b - sj; y$c = y$ - jw*(cosd phi); % $c done
+ y$b = y$c - sj*(sind phi); % $b done
+ x$d = x$c + jw*(sind phi); y$d = y$; % $d done
+ x$g = x$f = rt x$;
+ y$g = y$ - (x$g-x$d)*(sind phi)/(cosd phi); % $g done
+ x$a = x$; top y$a = y$g; % $a done
+ x$e = x$g + sjr; z$e = whatever[z$d,z$g]; % $e done
+ z$f-z$e = whatever*(z$c-z$d); % $f done
+ x$h = x$b; y$h = bot y$a;
+ draw z$a--z$$; % straight part
+ pickup stylus;
+ lft x$cc = x$c; y$cc = y$c;
+ x$dd = x$d; top y$dd = y$d;
+ rt x$ee = x$e; bot y$ee=y$e;
+ filldraw z$b--z$cc--z$dd--z$ee--z$f--cycle; % diamond
+ if y$b > y$h:
+ lft x$hh = x$h; y$hh=y$h;
+ filldraw z$b--z$hh--z$g--cycle;
+ fi
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_updiamondstem
+
+
+def draw_downdiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+ pen oldpen; oldpen:=currentpen;
+ numeric sj; sj := fr*stem_width; % (left) jut distance
+ numeric sjr; sjr := minfr*stem_width;; % right jut distance
+ numeric jw; jw := wd*stem_width; % jut width
+ %% $$b is top right of jut, on RHS of stem
+ %% $$c is rightmost point on jut
+ %% $$d is bottommost point on jut
+ %% $$g is bottommost point on stem
+ %% $$e is on exprapolation of line from $d through $g
+ %% i.e., the leftmost point on jut
+ %% $$f is on LHS of stem
+ pickup quill;
+ x$$b = rt x$$;
+ x$$c = x$$b + sj; y$$c = y$$ + jw*(cosd phi); % $$c done
+ y$$b = y$$c + sj*(sind phi); % $$b done
+ x$$d = x$$c - jw*(sind phi); y$$d = y$$; % $$d done
+ x$$g = x$$f = lft x$$;
+ y$$g = y$$ + (x$$d-x$$g)*(sind phi)/(cosd phi); % $$g done
+ x$$a = x$$; bot y$$a = y$$g; % $$a done
+ x$$e = x$$g - sjr; z$$e = whatever[z$$d,z$$g]; % $$e done
+ z$$f-z$$e = whatever*(z$$c-z$$d); % $$f done
+ x$$h = x$$b; y$$h = top y$$a;
+ draw z$--z$$a; % straight part
+ pickup stylus;
+ rt x$$cc = x$$c; y$$cc=y$$c;
+ x$$dd = x$$d; bot y$$dd = y$$d;
+ lft x$$ee = x$$e; top y$$ee = y$$e;
+ filldraw z$$b--z$$cc--z$$dd--z$$ee--z$$f--cycle; % diamond
+ if y$$b < y$$h:
+ rt x$$hh = x$$h; y$$hh=y$$h;
+ filldraw z$$b--z$$hh--z$$g--cycle;
+ fi
+ pickup oldpen;
+ labels($$a,$$b,$$c,$$d,$$e,$$f);
+enddef; % end of draw_downdiamondstem
+
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+tgothic_font_setup;
+
+
+input tgothl; % lower case
+input tgothu; % capitals
+input tgothpunct; % punctuation
+input tgothlig; % the several dashes
+input tgothdig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space 2vstretch*stem_width#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space 2vstretch*stem_width#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf
new file mode 100644
index 00000000000..3b86c999073
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf
@@ -0,0 +1,1234 @@
+%%
+%% This is file `tgothu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "TGOTH letter A";
+beginchar("A", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pair pr[];
+pickup quill;
+%% stem
+rt x1 = w - pcshiftx - wided*st; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% leg
+x21 = x1; top y21 = h;
+lft x22 = pcshiftx + widedmin*st; bot y22 = 0;
+draw z21--z22;
+draw (x22-widedmin*st, y22)--(x22+wided*st, y22);
+%% bar
+z13 = z12;
+y16 = y13; z16 = whatever[z21,z22];
+x14 = 1/2[x13,x16]; (z13-z14) = whatever*pdir;
+pickup threequarterquill;
+draw z13--z14;
+draw z14{ppdir}..{left}z16;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "TGOTH letter B";
+beginchar("B", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem
+lft x1 = pcshiftx; bot y1 = 0;
+n1 := top y1;
+lft x99 = 2/5w; bot y99 = 12/16h;
+rt x12 = lft x99; top y12 = bot y99;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,(h-n1/2)];
+pth1 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% stem decoration
+z101=z99;
+z181 = (x99,-h);
+z102 = (x101,y1);
+z112 = 1/2[z101,z102];
+lft x8 = x112; y8 = y112;
+%% lower bowl
+x113 = w-pcshiftx;
+(z113-z112) = whatever*(pdir);
+rt x5 = w-pcshiftx; y5 = 6/16y113;
+x3 = 10/16[x1,x5]; y3 = y1;
+z7 = 2/16[z8,z113];
+pth2 := z1{pdir}..{right}z3..{up}z5..{-pdir}z7--z8;
+
+%% upper bowl
+x10 = 1/2[x7,x5]; y10 = 1/2[y12,y99];
+x19 = 1/2[x99,x10]; top y19 = h;
+pth3 := z8--z7{pdir}..{up}z10..{left}z19..{-pdir}z99;
+%% angled decoration
+
+z105 = 1/4[z102,z112];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+
+z107 = 1/4[z112,z101];
+x187 = 2w;
+(z187-z107) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth3;
+
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+draw pth3;
+pickup stylus;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,99,100);
+endchar; % end "B"
+
+cmchar "TGOTH letter C";
+beginchar("C", 2cap_sb#+hstretch*((5)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bowl
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,101,102,103,104,105,106,107,108,185);
+endchar; % end "C"
+
+cmchar "TGOTH letter D";
+beginchar("D", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+lft x1 = pcshiftx; bot y1 = 0;
+rt x5 = w-pcshiftx; y5 = 1/2h;
+x3 = 10/16[x1,x5]; y3 = y1;
+x7 = x3; top y7 = h;
+lft x9 = 2/5w; bot y9 = 12/16h;
+pth1 := z1{pdir}..{right}z3..{up}z5..{left}z7..{-pdir}z9;
+%% stem
+rt x12 = lft x9; top y12 = bot y9;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,y7];
+pth2 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% vertical decoration
+z101=z9;
+z181 = (x9,-h);
+z102 = ((x101,h/2)--z181) intersectionpoint pth1;
+z103a=(x101+perpdec,h); z103b=(x103a,h/2); z103c=(x103a,-h);
+z103 = (z103a--z103b) intersectionpoint pth1;
+z104 = (z103b--z103c) intersectionpoint pth1;
+%% angled decoration
+z106 = (lft x5, y5);
+x105 = x103; (z106-z105) = whatever*(pdir);
+z107 = (x105, y105+angdec);
+x108a = 2w; (z108a-z107) = whatever*(pdir);
+z108 = (z108a--z107) intersectionpoint pth1;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,100);
+endchar; % end "D"
+
+cmchar "TGOTH letter E";
+beginchar("E", 2cap_sb#+hstretch*((6)*stem_width#), %% (5) too small
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%% bar
+lft x31 = x103; top y31 = y105;
+rt x32 = w-pcshiftx; y32=y31;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bowl
+draw z31--z32; %% bar
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,105,185,106);
+endchar; % end "E"
+
+cmchar "TGOTH letter F";
+beginchar("F", 2cap_sb#+hstretch*((5)*stem_width#),
+ 5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem (1--2) and top bar (21--22)
+lft x1=lft x2=pcshiftx+widedmin*st; y2 = 0;
+top y21 = top y22 = h - (top y2 - bot y2); x22 = w-pcshiftx-st;
+lft x21 = rt x1; top y1 = bot y21;
+z12 = 1/3[z1,z2];
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+draw z1--z12;
+draw z21--z22;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+x101 = x102; y101 = y21;
+%% bar
+lft x14 = x101; y14 = y12;
+rt x16 = w-pcshiftx; y16 = y14;
+draw z14--z16;
+z16tr = (rt x16, top y16);
+pickup stylus;
+draw z101--z102;
+%% Other decoration
+%% bottom bar
+rt x201 = x16tr; top y201 = y16tr;
+y202 = y201 - 2st; (z201-z202) = whatever*pdir;
+draw z201--z202;
+%% top bar
+pickup quill;
+z22tb = (rt x22, top y22);
+x22bb - x22 = x22 - x22tb; y22bb - y22 = y22 - y22tb;
+x22c = x22 + st; bot y22c = top y22 + 1/2st;
+x22f = x22; y22f = 1/3[y22c, y22];
+pickup stylus;
+x22br = x22bb; bot y22br = y22bb;
+pth3 := z22br--z22tb..{up}z22c..{-ppdir}z22f;
+draw pth3;
+
+penlabels(1,2,3,4,5,6,7,14,15,16,21,22,100);
+endchar; % end "F"
+
+cmchar "TGOTH letter G";
+beginchar("G", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+%%pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+%%pth2 := z2{-pdir}..z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+pth2 := z2--z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+%% fork
+z2tr = (rt x2, top y2);
+x2a = x2tr; y2a = y2tr + thin;
+x2b = x2a; y2b - y2 = y2 - y2a;
+x2d = x2 - thick; y2d = y2;
+pickup stylus;
+x2c = x2d = x2e;
+top y2e = y2tr; y2c - y2d = y2d - y2e;
+%%filldraw z2d--z2c{right}..z2b--cycle;
+%%filldraw z2d--z2a..{left}z2e--cycle;
+filldraw z2e--z2c{right}..z2b--cycle;
+filldraw z2c--z2a..{left}z2e--cycle;
+pth9 := (rt x2a,y2a)--(rt x2b,y2b)--(rt x2d,y2d)--cycle;
+unfill pth9;
+unfill pth9;
+unfill pth9;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw pth1; %% bar
+draw pth2; %% bowl
+ductus:=false;
+penlabels(1,2,2a,2b,2c,2d,2e,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "G"
+
+cmchar "TGOTH letter H";
+beginchar("H", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+n1 := 12/16h; %% take this as the top of the bowl
+x13=x1; y13=3/4n1;
+rt x3 = w-pcshiftx; y3 = 8/16n1;
+x14 = 8/16[x13,x3]; top y14 = n1;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "H"
+
+cmchar "TGOTH letter I";
+beginchar("I", 2cap_sb#+hstretch*((4+wided)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided, widedmin,diawd,diang);
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101=x102; top y101 = h;
+draw z101--z102;
+ductus:=false;
+penlabels(1,2,101,102,100);
+endchar; % end "I"
+
+cmchar "TGOTH letter J";
+beginchar("J", cap_sb#+hstretch*((4+wided)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1 = pcshiftx+3st; y1 = h;
+x2=x1; y2=-d + (top y1 - bot y1);
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_upcurlstem(1,2);
+draw z2{ppdir}..{-pdir}z3;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201 + 2/3wided*st;
+pickup stylus;
+top y101 = h; y201=y101;
+z102=(x101,0);
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,101,102,100);
+endchar; % end "J"
+
+cmchar "TGOTH letter K";
+beginchar("K", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+ 5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = 4/5h; % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5+st,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % upper bowl
+draw pth2; % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "K"
+
+cmchar "TGOTH letter L";
+beginchar("L", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; bot y2 =0;
+draw_upcurlstem(1,2);
+rt x4 = w-pcshiftx; bot y4 = 0;
+draw z2{right}..{pdir}z4;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201+2/3wided*st;
+pickup stylus;
+top y101 = h; y201 = y101;
+x102 = x101; bot y102=0;
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,4,101,102,201,100);
+endchar; % end "L"
+
+cmchar "TGOTH letter M";
+beginchar("M", 2cap_sb#+hstretch*((11)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%%% left part
+lft x301 = pcshiftx+3st; y301 = h;
+x302 = x301; y302 = 0;
+z312 = 1/2[z301,z302];
+draw_upcurlstem(301,312);
+draw_downdiamondstem(312,302,wided,widedmin,diawd,diang);
+
+%% left N stem (and N part)
+%%%lft x1=pcshiftx+3st; y1=h;
+x1 = x301 + 3st; y1 = h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+%%draw_upcurlstem(1,12);
+%%draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+pickup quill;
+%% finish off the left part
+x3011 = 1/2[x301,x1]; top y3011 = h;
+z3123 = (x301,3/4h); z123 = (x1,y3123);
+draw z3123--z3011--z123--z12;
+%% vertical decorations
+ %% left part
+z402 = 2/3[z302b,z302c];
+x401 = x402; z401 = whatever[z3123,z3011];
+ %% right part
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+%% angled decorations
+ %% left part
+z406 = z13;
+x405 = x402; (z406-z405) = whatever*pdir;
+z407 = (x405, y405-angdec); z408 = (x406, y406-angdec);
+ %% right part
+z105 = (x102,y405);
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z401--z402;
+draw z405--z406; draw z407--z408;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,101,102,105,106,107,108,301,302,100);
+endchar; % end "M"
+
+cmchar "TGOTH letter N";
+beginchar("N", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+cmchar "TGOTH letter O";
+beginchar("O", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "TGOTH letter P";
+beginchar("P", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% vertical decoration
+z1tr = (rt x1, top y1);
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+pickup quill;
+%% bowl
+lft x22 = x101; top y22 = h;
+x21 = x1; (z22-z21) = whatever*pdir;
+rt x24 = w - pcshiftx; y24 = 1/2h;
+x25 = 1/2[x22,x24]; bot y25 = 0;
+pth1 := z21--z22{down}..{down}z24..{-pdir}z25;
+z31 = z25;
+lft x33 = pcshiftx; bot y33 = 0;
+pth2 := z33{pdir}..{right}z31;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2;
+%% angled decoration
+x105 = x101; y105 = 1/3h;
+x185 = 2w;
+(z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105,y105-angdec);
+x187 = x185; y107 - y105 = y187 - y185;
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "TGOTH letter Q";
+beginchar("Q", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-stem_width; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% tail
+pth2 := z1..z4..z3;
+z11 = directionpoint pdir of pth2;
+rt x13 = w-pcshiftx; bot y13 = 0;
+pth3 := z11{pdir}..{pdir}z13;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth3;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "Q"
+
+cmchar "TGOTH letter R";
+beginchar("R", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h; % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % upper bowl
+draw pth2; % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "R"
+
+cmchar "TGOTH letter S";
+beginchar("S", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+pickup threequarterquill;
+%% top
+n1 := 1;
+lft x1 = pcshiftx + n1*st; top y1 = h;
+rt x3 = w - pcshiftx; y3 = y1;
+x2 = 1/2[x1,x3]; top y2 = y1;
+pth1 := z1..z2..{pdir}z3;
+draw pth1;
+%% bottom
+lft x4 = pcshiftx; bot y4 = 0;
+rt x6 = w -pcshiftx - n1*st; y6 = y4;
+x5 = 1/2[x4,x6]; bot y5 = y4;
+pth2 := z4{pdir}..z5..z6;
+draw pth2;
+%% top path
+z100 = (1/2w, 1/2h);
+z11 = z1; z15 = z6;
+x13 = x100; y13 = y100 + st;
+pth3 := z11..{right}z13{right}..z15;
+draw pth3;
+%% bottom path
+z21 = z11; z25 = z6;
+x23 = x100; y100 - y23 = y13 - y100;
+pth4 := z21..{right}z23{right}..z25;
+draw pth4;
+%% decorations
+ %% top
+z101 = (x2+angdec,y2); y181 = 0; (z101-z181) = whatever*pdir;
+z102 = (z101--z181) intersectionpoint pth3;
+z103 = (x101-angdec, y101); x183-x181 = x103-x101; y183 = 0;
+z104 = (z103--z183) intersectionpoint pth3;
+ %% bottom
+z201 = (x5,y5); y281 = h; (z201-z281) = whatever*pdir;
+z202 = (z201--z281) intersectionpoint pth4;
+z203 = (x201-angdec, y201); x283-x281 = x203-x201; y283 = h;
+z204 = (z203--z283) intersectionpoint pth4;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z201--z202; draw z203--z204;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100,101,102,103,104,201,202,203,204);
+endchar; % end "S"
+
+cmchar "TGOTH letter T";
+beginchar("T", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%%pth2 := z3..z4{down}..z5{right}..z6{pdir};
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+%%z102 = z191--z181 intersectionpoint pth2; %%% ???? NO INTERSECTION!!!!!!
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bar
+draw pth2; %% bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "T"
+
+cmchar "TGOTH letter U";
+beginchar("U", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+rt x9 = lft x3; bot y9 = 0;
+pth1 := z7{pdir}..{pdir}z9;
+draw pth1;
+%% stem bottoms
+z2 = (z1 -- (x1,-h)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y9;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "TGOTH letter V";
+beginchar("V", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + 3st; y1 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = w/2; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+z6 = z9;
+rt x5 = w - pcshiftx; top y5 = 3/4h;
+x3 = 1/2[rt x1, lft x5];
+x4 = 1/2[x3,x5]; top y4 = h;
+y3 = 1/2[y4,y5];
+pth2 := z6{pdir}..{up}z5..{left}z4..{-pdir}z3;
+draw pth2;
+pth3 := pth1 & pth2;
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth3;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "TGOTH letter W";
+beginchar("W", 2cap_sb#+hstretch*((12)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top of stems
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x999 = w - pcshiftx;
+x3 = 1/2[x1,x999]; y3 = h;
+%% bowl bottoms
+x21 = x1 - 3/2st; bot y21 = 0;
+rt x23 = lft x3; bot y23 = 0;
+pth1 := z21{pdir}..z23;
+draw pth1;
+lft x31 = rt x23; bot y31 = top y23;
+x33 = 1/2[x31,x999]; bot y33 = 0;
+pth2 := z31{pdir}..z33;
+draw pth2;
+%% bottom of stems
+z2 = (z1--(x1,0)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y23;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% right V stem
+z16 = z33;
+x15 = x999; top y15 = 3/4h;
+x13 = 1/2[rt x3, lft x15];
+x14 = 1/2[x13,x15]; top y14 = h;
+y13 = 1/2[y14,y15];
+pth3 = z16{pdir}..{up}z15..{left}z14..{-pdir}z13;
+draw pth3;
+%% decorations
+z1tr = (rt x1, top y1);
+z3tr = (rt x3, top y3);
+pickup stylus;
+%% for U
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%% for V
+
+x301 = x3tr+2/3wided*st; top y301 = y3e;
+z381 = (x301,-w);
+z302 = (z301--z381) intersectionpoint pth2;
+draw z3e--z301--z302;
+x305 = x301; y305 = 1/3[y302,y301];
+x385 = 2w; (z385-z305) = whatever*pdir;
+z306 = (z305--z385) intersectionpoint pth3;
+z307 = (x305, y305-angdec);
+x387 = x385; y387-y385 = y307-y305;
+z308 = (z307--z387) intersectionpoint pth3;
+draw z305--z306; draw z307--z308;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "TGOTH letter X";
+beginchar("X", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := cap_sb;
+pickup quill;
+%% center stem
+lft x1 = lft x2 = pcshiftx + 3st;
+y1 = 3/4h; y2 = 1/4h;
+draw z1--z2;
+%% top right
+z21 = z1; top y22 = h; (z22-z21) = whatever*pdir;
+rt x24 = w-pcshiftx; y24 = y21;
+pth1 := z21--z22{-ppdir}..{pdir}z24;
+draw pth1;
+%% bottom right
+z31 = z2;
+rt x33 = w-pcshiftx; bot y33 = 0;
+pth2 := z31{-ppdir}..{pdir}z33;
+draw pth2;
+%% bottom left
+z41 = z2;
+bot y43 = -1/4h; (z41-z43) = whatever*pdir;
+x45 = x43 + st; y45=y43;
+pth3 := z41--z43{-pdir}..{pdir}z45;
+pickup stylus;
+draw pth3;
+pickup quill;
+%% top left
+x11 = x1; y11 = h;
+draw_upcurlstem(11,1);
+%% decoration
+x81 = rt x1;
+pickup stylus;
+x101 = x102 = x81 + 2/3wided*st;
+z101 = whatever[z1,z22];
+z102 = (z101--(x101,0)) intersectionpoint pth2;
+draw z101--z102;
+pickup quill;
+%% middle arms
+z120 = 1/2[z1,z2];
+z51 = z120;
+lft x53 = pcshiftx; top y53 = y51;
+x52 = 1/2[x51,x53]; y52 = y51;
+pth5 := z51--z52{left}..{-pdir}z53;
+draw pth5;
+lft x61 = x101; y61 = y120;
+rt x63 = w-pcshiftx; bot y63 = y61;
+x62 = 1/2[x61,x63]; y62 = y61;
+pth6 := z61--z62{right}..{pdir}z63;
+draw pth6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,51,52,53,61,62,63,101,102,150,60,160,100);
+endchar; % end "X"
+
+cmchar "TGOTH letter Y";
+beginchar("Y", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = 1/2[x1,x3]; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+x4 = x3; y4 = 0;
+x5 = x4; y5 = -1/4d;
+lft x6 = x9; bot y6 = -d;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+draw z6{pdir}..{up}z5--z4;
+z3cd = 1/2[z3c,z3d];
+pth2 = z5--z3a--z3cd;
+%% fill bowl bottom
+x91 = x3; (z91-z9) = whatever*pdir;
+draw z9--z91;
+
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth1;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100,101,102,181);
+endchar; % end "Y"
+
+cmchar "TGOTH letter Z";
+beginchar("Z", 2cap_sb#+hstretch*((5)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx-perpdec;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+x102 = rt x2; y102 = top y2; x202 = x102+perpdec; y202=y102;
+%% bottom bar ends
+bot y34 = 0;
+x3=x1+perpdec; rt x4= w-pcshiftx;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+x203 = lft x3; y203 = bot y3; x103 = x203-perpdec; y103=y203;
+%% centre bar
+z5 = (x1,1/2[y1,y3]); z6 = (x4,1/2[y2,y4]); z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; % bars
+draw pth3;
+%% decorations
+pickup stylus;
+draw z102--z103; draw z202--z203;
+unfill z102--z103--z203--z202--cycle;
+draw z102--z103; draw z202--z203;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+