diff options
author | Karl Berry <karl@freefriends.org> | 2018-01-30 00:25:16 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-01-30 00:25:16 +0000 |
commit | 72ab3cc654a8685d0994636572a5e7dd133c3c1d (patch) | |
tree | c88501ed58804aafb4413edf0b21e8a44038a2a3 /Master/texmf-dist/fonts/source | |
parent | b58f8f909aeec6d28a8d78be1ea126744934c852 (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')
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" + |