diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 23:38:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 23:38:21 +0000 |
commit | 215012a8d684889983ec2c0629e1c704e6853d9c (patch) | |
tree | ebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/bookhands | |
parent | 1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff) |
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/bookhands')
156 files changed, 40764 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncl10.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncl10.mf new file mode 100644 index 00000000000..da34949c6c6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/auncl10.mf @@ -0,0 +1,71 @@ +%% +%% This is file `auncl10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 +%% +%%% AUNCL10.MF Artificial Uncial at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="AUNCL"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.25; % 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.4; + + 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 + + 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:=10; % pen angle + asc_height#:=4/3x_height#; + desc_depth#:=2/3x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate auncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncl17.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncl17.mf new file mode 100644 index 00000000000..3f31075350e --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/auncl17.mf @@ -0,0 +1,71 @@ +%% +%% This is file `auncl17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 +%% +%%% AUNCL17.MF Artificial Uncial at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="AUNCL"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.25; % 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.4; + + 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 + + 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:=10; % pen angle + asc_height#:=4/3x_height#; + desc_depth#:=2/3x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate auncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncl7.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncl7.mf new file mode 100644 index 00000000000..100fe9bf7f6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/auncl7.mf @@ -0,0 +1,71 @@ +%% +%% This is file `auncl7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 +%% +%%% AUNCL7.MF Artificial Uncial at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="AUNCL"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.25; % 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.4; + + 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 + + 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:=10; % pen angle + asc_height#:=4/3x_height#; + desc_depth#:=2/3x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate auncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclb10.mf new file mode 100644 index 00000000000..fcc1c307bb4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclb10.mf @@ -0,0 +1,71 @@ +%% +%% This is file `aunclb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 +%% +%%% AUNCLB10.MF Artificial Uncial Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="AUNCLB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.4; + + 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 + + cap_height#:=246/36pt#; % height of caps + thickfudge:=1/3.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=10; % pen angle + asc_height#:=4/3x_height#; + desc_depth#:=2/3x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate auncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclb17.mf new file mode 100644 index 00000000000..ffefdbcdff9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclb17.mf @@ -0,0 +1,71 @@ +%% +%% This is file `aunclb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 +%% +%%% AUNCLB17.MF Artificial Uncial Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="AUNCLB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.4; + + 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 + + cap_height#:=425/36pt#; % height of caps + thickfudge:=1/3.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=10; % pen angle + asc_height#:=4/3x_height#; + desc_depth#:=2/3x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate auncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclb7.mf new file mode 100644 index 00000000000..51b47a74464 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclb7.mf @@ -0,0 +1,71 @@ +%% +%% This is file `aunclb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 +%% +%%% AUNCLB7.MF Artificial Uncial Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="AUNCLB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.4; + + 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 + + cap_height#:=172.2/36pt#; % height of caps + thickfudge:=1/3.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=10; % pen angle + asc_height#:=4/3x_height#; + desc_depth#:=2/3x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate auncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncldig.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncldig.mf new file mode 100644 index 00000000000..fa85d203d38 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/auncldig.mf @@ -0,0 +1,224 @@ +%% +%% This is file `auncldig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 "AUncial digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tlserif(1,2,srad); +draw_tail(2,jut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "1" + +cmchar "AUncial digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; y1=3/4h; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_fork(5,6,jut); % foot +draw z1{up}..z2{right}..z3{down}..{down}z5; % curve +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "AUncial digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +lft x6=pcshiftx; x7=x6; +y3=1/4h; y10=3/4h; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y4,y6]; +y8=0.5[y7,y9]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z3{down}..z4{right}..z5{up}...{left}z6; % bottom bowl +draw z7{right}...z8{up}..z9{left}..{down}z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "AUncial digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw_wave(3,4,thin); % crossbar +draw z3wl--z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "AUncial digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +x8=w-pcshiftx; y8=h-0.5thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw_wave(2,1,thin); % top squiggle +draw z2--z1; % top bar +draw_rtriangle(8,3/4jut); +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +draw z2--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "AUncial digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +x8=w-pcshiftx; y8=h-0.5thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +draw_rtriangle(8,3/4jut); +ductus:=false; +penlabels(1,2,3,4,5,6,8,100); +endchar; % end "6" + +cmchar "AUncial 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; +x8=pcshiftx+3/8jut; y8=h-0.5thin; +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 z1--z2; % top bar +draw_triangle(8,3/4jut); +draw z2..z3..z4; % leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "7" + +cmchar "AUncial digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "AUncial digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Uncial digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncll.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncll.mf new file mode 100644 index 00000000000..132d2973fa0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/auncll.mf @@ -0,0 +1,640 @@ +%% +%% This is file `auncll.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 "AUncial letter a"; +beginchar("a", 2u#+hstretch*(x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+2jut; rt x2=w-u-jut; +top y1=h; bot y2=0; +z3=3/4[z2,z1]; +x5=lft x3; y5=bot y3; +z13=1/2[z2,z1]; +x15=lft x13; y15=bot y13; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % the stem +pickup thickstylus; % for the bowl +lft x4=pcshiftx; bot y4=0; +z14=0.2[z4,z5]; +draw z14{pdir}...{z5-z4}z15; % bowl bottom +draw z5--z4; % bowl top +ductus:=false; +penlabels(1,2,3,4,5,6,14,15,100); +endchar; % end "a" + +cmchar "AUncial letter b"; +beginchar("b", 2u#+hstretch*(x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +rt x4=w-pcshiftx; y4=1/3h; +lft x5=rt x1+2thin; y5=2/3h; +z6=z1; +rt x7=0.67[x1,x4]; y7=y6; +x9=rt x7-thin; y9=h-thin; +x8=lft x5+thin; y8=bot y5+thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % the stem +draw z2{right}..z4{up}..{left}z5; % bottom bowl +draw z6--z7; % top bowl +pickup stylus; +draw z9--z8; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "AUncial letter c"; +beginchar("c", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.1h; +top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6; +pickup stylus; +rt x16=w-pcshiftx; top y16=y6'; +x17=x6; y17=y16-jut; +lft x18=x6''; bot y18=y6''; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +pickup stylus; +filldraw z17..z18--z16--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,16,17,18,100); +endchar; % end "c" + +cmchar "AUncial letter d"; +beginchar("d", 2u#+hstretch*(4/3x_height#), 4/3x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; +x2=x4=w/2; top y2=3/4h; bot y4=0; +y1=y3=0.5[y4,y2]; +lft x5=pcshiftx; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z2{-pdir}..z1{down}..z4{right}..z3{up}..z5; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "AUncial letter e"; +beginchar("e", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.1h; +top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6; +pickup stylus; +rt x16=w-pcshiftx; top y16=y6'; +x17=x6; y17=y16-jut; +lft x18=x6''; bot y18=y6''; +pickup quill; +x7=x1; y7=y1; +x8=w-pcshiftx; y8=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +pickup stylus; +filldraw z17..z18--z16--cycle; % the serif +draw_fork(7,8,jut); % the bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,100); +endchar; % end "e" + +cmchar "AUncial letter f"; +beginchar("f", 2u#+hstretch*(x_height#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-d/2; +x3=x4=x1; y3=y1; bot y4=0; +rt x5= rt x6=w-pcshiftx; y5=y3; y6=y4; +x15=x16=rt x5-1/2thin; +y15=y5; y16=y6; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw z3--z5; % top bar +draw_rtriangle(15,jut); +draw z4--z6; % bottom bar +draw_rtriangle(16,jut); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "f" + +cmchar "AUncial letter g"; +beginchar("g", 2u#+hstretch*(x_height#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.1h; +top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6; +pickup stylus; +rt x16=w-pcshiftx; top y16=y6'; +x17=x6; y17=y16-jut; +lft x18=x6''; bot y18=y6''; +pickup quill; +x7=rt x5-1/2thin; y7=top y5-1/2thin; +pickup stylus; +lft x8=w/2; bot y8=-d; +pickup quill; +pair vec[]; vec1:=z7-z8; vec2:=z8-z7; +y21=y8+3/2thick; z21=whatever[z8,z7]; +y22=y8+ thick; z22=whatever[z8,z7]; +x23=x8-thick; y23=y8; +x24=x23+1/2thick; y24=y23+1/2thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +pickup stylus; +filldraw z17..z18--z16--cycle; % the serif +draw z7--z22; % the stem +filldraw z22{vec2}..{left}z23--z24{right}..{vec1}z21--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,16,17,18,21,22,23,24,100); +endchar; % end "g" + +cmchar "AUncial letter h"; +beginchar("h", 2u#+hstretch*(x_height#+jut#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +rt x5=w-pcshiftx; y5=3/8h; +lft x6=2/3w; bot y6=0; +x4=0.5[x1,x5]; top y4=3/4h; +x4'=0.5[x4,x1]; y4'=y4; +z4''=z4' shifted (-w*pdir); +z3'=whatever[z4',z4'']=whatever[z1,z2]; +x3=rt x3'; y3=y3'; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % stem +draw z3{pdir}..z4{right}..z5{down}..z6; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "AUncial letter i"; +beginchar("i", 2u#+hstretch*(thick#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tlserif(1,2,srad); +draw_tail(2,jut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "AUncial letter j"; +beginchar("j", 2u#+hstretch*(thick#+jut#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-1/2d; +%%ductus:=true; +draw_tlserif(1,2,srad); +draw_tail(2,jut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "j" + +cmchar "AUncial letter k"; +beginchar("k", 2u#+hstretch*(4/3x_height#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +numeric rise,fall,fjut; +x3=rt x1; y3=5/8h; +rise:=1/6h; fall:=-rise/2; fjut:=1/2w; +%%x4=x1; y4=y3; +z4=z3; +x5=w-pcshiftx-jut; y5=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw_flick(3,rise,fall,fjut); % upper diag +draw_tstem(4,5,srad); % lower diag +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "k" + +cmchar "AUncial letter l"; +beginchar("l", 2u#+hstretch*(x_height#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +z3=z2; +x4=w-u; y4=0; +%%ductus:=true; +draw_tlserif(1,2,srad); % the stem +draw_fork(3,4,jut); % the foot +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "AUncial letter m"; +beginchar("m", 2u#+hstretch*(2x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=1/4w; bot y1=0; +lft x2= pcshiftx; y2=h/2; +x4=w/2; y4=2/3h; +x3=0.5[x2,x4]; top y3=h; +x5=x4; y5=y1; +z6=z4; +x7=3/4w; top y7=h; +rt x8=w-pcshiftx; y8=y2; +lft x9=3/4w; y9=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{up}..z3{right}..{down}z4; % left half +draw_tstem(4,5,srad); % middle stem +draw z6..z7{right}..z8{down}..{-pdir}z9; % right half +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "m" + +cmchar "AUncial letter n"; +beginchar("n", 2u#+hstretch*(2jut#+x_height#), x_height#, 0.5desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +rt x4=w-pcshiftx-jut; y4=y1; +x3=x4; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % left stem +draw_tail(2,jut); +draw_istem(4,3,srad); % right stem +draw z1--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "n" + +cmchar "AUncial letter o"; +beginchar("o", 2u#+hstretch*(7/6x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "o" + +cmchar "AUncial letter p"; +beginchar("p", 2u#+hstretch*(7/6x_height#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=-1/2d; +z3=z1; +rt x5=w-pcshiftx; y5=1/2h; +lft x7=rt x1; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw z3{pdir}..z5{down}..{-pdir}z7; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "p" + +cmchar "AUncial letter q"; +beginchar("q", 2u#+hstretch*(7/6x_height#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=rt x2=w-pcshiftx; top y1=h; bot y2=-1/2d; +z3=z1; +lft x5=pcshiftx; y5=1/2h; +rt x7=lft x1; y7=0.1h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % right stem +draw_tail(2,jut); +draw z3{left}..z5{down}..{pdir}z7; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "q" + +cmchar "AUncial letter r"; +beginchar("r", 2u#+hstretch*(4/3x_height#), x_height#, 1/2desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=0; +lft x3=rt x1-thin; y3=y1; +rt x5=3/4w; y5=3/4h; +lft x7=rt x1; bot y7=1/3h; +z8=z7; +rt x9=w-pcshiftx; bot y9=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw z3{pdir}..z5{down}..{-pdir}z7; % bowl +draw z8{-ppdir}..{right}z9; % leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "AUncial letter s"; +beginchar("s", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-thin; +x2=w/2; top y2=h; +lft x3=pcshiftx; y3=0.75h; +x4=w/2; y4=h/2; +rt x5=w-pcshiftx; y5=0.25h; +x6=w/2; bot y6=0; +lft x7= pcshiftx; bot y7 = thin; +path p[]; +p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7; +pair vec[]; +vec1= direction 0 of p1; +vec2= direction (length p1) of p1; +z11=z1 shifted vec1; +z17=z7 shifted -vec2; +y6'=top y1; y6''=bot y1; x6''=lft x1; +pickup stylus; +rt x26=w-pcshiftx; top y26=y6'; +x27=x1; y27=y26-0.75jut; +lft x28=x6''; bot y28=y6''; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw_serif(1,11,srad); +%%draw_serif(7,17,srad); +%%draw z1a..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7a; +draw p1; % the curve +pickup stylus; +filldraw z27..z28--z26--cycle; % the serif +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100); +endchar; % end "s" + +cmchar "AUncial letter t"; +beginchar("t", 2u#+hstretch*(4/3x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=0.5jut; +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +lft x3=pcshiftx; rt x4=w-pcshiftx; y3=y4=y1; +x5=pcshiftx+alpha; y5=h-1/2thin; +x6=w-pcshiftx-1/2thin; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z3--z4; % top bar +draw_triangle(5,2alpha); draw_rtriangle(6,2alpha); +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "t" + +cmchar "AUncial letter u"; +beginchar("u", 2u#+hstretch*(4/3x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x6=pcshiftx+jut; +top y6=h-2thin; +lft x7=pcshiftx; y7=h/2; +x8=0.5[x6,x1]; bot y8=0; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=0; +x5=0.5[x8,x1]; y5=y8; +z5'=z5 shifted (w*pdir); +path p[]; +p1=z5--z5'; +p2=z1--z2; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..{pdir}z9; +draw_istem(1,2,srad); % right stem +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "u" + +cmchar "AUncial letter v"; +beginchar("v", 2u#+hstretch*(7/6x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+jut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); +draw z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +penlabels(1,2,3,4,5,11,100); +endchar; % end "v" + +cmchar "AUncial letter w"; +beginchar("w", 2u#+hstretch*(2x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= w/2-jut; +lft x1=midx+jut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +lft x6=pcshiftx+jut; +top y6=h-2thin; +lft x7=pcshiftx; y7=y2; +x8=0.5[x7,x1]; y8=y3; +x15=0.5[x8,x1]; y15=y8; +z15'=z15 shifted (w*pdir); +x2'=x2; y2'=y15; +path p[]; +p1=z1--z2'; +p2=z15--z15'; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % right half +draw z2{down}..z3{right}..z4{up}..z5; +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..z9; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "w" + +cmchar "AUncial letter x"; +beginchar("x", 2u#+hstretch*(4/3x_height#+jut#), x_height#, 1/2desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; rt x2=w-pcshiftx-jut; +y1=h; y2=0; +lft x3=pcshiftx; bot y3=-d; +rt x5=w-pcshiftx; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw z3..{pdir}z5; % thin diagonal +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "x" + +cmchar "AUncial letter y"; +beginchar("y", 2u#+hstretch*(4/3x_height#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +rt x2=3/4w; top y2=0; +pickup stylus; +rt x3=w-pcshiftx; top y3=h; +lft x4=pcshiftx; bot y4=-d; +x5=x3-3thin; y5=y3; +x7=x2-3/2thin; y7=y2; +pickup quill; +x8=w/2; y8=h+jut; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % left stroke +draw_pdot(8,dot_size); % the dot +pickup stylus; +filldraw z3..z2..z4 & z4..z7..z5--cycle; % right stroke +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "AUncial letter z"; +beginchar("z", 2u#+hstretch*(7/6x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x4=pcshiftx; bot y4=0; +x6=w-pcshiftx; y6=0; +x1=x4; top y1=h; +rt x3=6/7w; y3=y1; +x11=pcshiftx+0.5jut; y11=h-thin/2; % y11=h-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z3; % top stroke +draw_triangle(11,jut); +draw_fork(4,6,jut); +draw z4--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncllig.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncllig.mf new file mode 100644 index 00000000000..ce4509ce88c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/auncllig.mf @@ -0,0 +1,133 @@ +%% +%% This is file `auncllig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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"; + + +cmchar "Uncial closing quotes"; +beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Uncial opening quotes"; +beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Uncial hyphen"; +beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw z1--z2; % bar +draw_triangle(11,alpha); +draw_rutriangle(12,alpha); +penlabels(1,2); +endchar; % end of "-" + + +cmchar "Uncial en dash"; +beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw z1--z2; % bar +draw_triangle(11,alpha); +draw_rutriangle(12,alpha); +penlabels(1,2); +endchar; % end of "--" + + +cmchar "Uncial em dash"; +beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw z1--z2; % bar +draw_triangle(11,alpha); +draw_rutriangle(12,alpha); +penlabels(1,2); +endchar; % end of "---" + + +cmchar "Uncial ampersand"; +beginchar("&", 2u#+hstretch*(7/4x_height#), x_height#, 0.5desc_depth#); +adjust_fit(0,0); +pcshiftx:=u; +numeric alpha; alpha:=4/7w-u; +pickup quill; +lft x1=pcshiftx; rt x3= alpha; y1=y3=h/2; +x2=x4=alpha/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.1h; +top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6; +pickup stylus; +rt x16=alpha; top y16=y6'; +x17=x6; y17=y16-jut; +lft x18=x6''; bot y18=y6''; +pickup quill; +x7=x1; y7=y1; +x8=w-pcshiftx; y8=y7; +lft x31=alpha+2thin; y31=y8; +x32=x31; bot y32=-d; +x33=rt x8-0.5thin; y33=top y31-0.5thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +draw_tstem(31,32,srad); % t stem +draw z7--z8; % the (top) bar +draw_rtriangle(33,jut); % t bar serif +pickup stylus; +filldraw z17..z18--z16--cycle; % e serif +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,31,32,33); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclpunct.mf new file mode 100644 index 00000000000..549f22c6c1b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclpunct.mf @@ -0,0 +1,78 @@ +%% +%% This is file `aunclpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 "Uncial Comma"; +beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "," + + +cmchar "Uncial Period"; +beginchar(".",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=w/2; y1=h/2; +draw_pdot(1,dot_size); +penlabels(1); +endchar; % end of "." + + +cmchar "Uncial Colon"; +beginchar(":",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=x2=w/2; y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pdot(2,dot_size); +penlabels(1,2); +endchar; % end ":" + + +cmchar "Uncial Semicolon"; +beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pcomma(2,dot_size,comma_width); +penlabels(1,2); +endchar; % end of ";" + + +cmchar "Uncial Apostrophe"; +beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "'" + + +cmchar "Uncial Reverse apostrophe"; +beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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/auncltitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncltitle.mf new file mode 100644 index 00000000000..ea38860657e --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/auncltitle.mf @@ -0,0 +1,271 @@ +%% +%% This is file `auncltitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 auncial_font_setup= % contains special stuff for auncial 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,cap_jut); + define_pixels(fig_width); + define_whole_pixels(letter_fit); + 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); + 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; + 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 auncial_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_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_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 +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_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_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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; +%% filldraw z$s--z$t--z$u--z$v--cycle; + filldraw z$s--z$t--z$u--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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; +%% filldraw z$s--z$t--z$u--z$v--cycle; + filldraw z$s--z$t--z$v--cycle; + labels($s,$t,$u,$v); +enddef; % end of draw_plq + + +font_coding_scheme:="ASCII minuscules and punctuation"; +mode_setup; +auncial_font_setup; + + +input auncll; % minuscules (lower case) +input aunclu; % majuscules (capitals) +input aunclpunct; % punctuation +input auncllig; % the several dashes +input auncldig; % arabic digits +%%%input aunclp; % ampersand and ?mark + + +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning +%% ligtable "P": "T": "Y": "A" kern kk#; +%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi, +%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#; +%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#, +%% "V" kern k#, "Y" kern k#; +%% ligtable "A": if serifs: "R": fi +%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#, +%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#; +%%ligtable "I": "I" kern -k#; % Richard III +fi + +bye. + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclu.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclu.mf new file mode 100644 index 00000000000..583283202ec --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclu.mf @@ -0,0 +1,646 @@ +%% +%% This is file `aunclu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% auncial.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 "AUncial letter A"; +beginchar("A", 2u#+hstretch*caprat*(x_height#+jut#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+2jut; rt x2=w-u-jut; +top y1=h; bot y2=0; +z3=3/4[z2,z1]; +x5=lft x3; y5=bot y3; +z13=1/2[z2,z1]; +x15=lft x13; y15=bot y13; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % the stem +pickup thickstylus; % for the bowl +lft x4=pcshiftx; bot y4=0; +z14=0.2[z4,z5]; +draw z14{pdir}...{z5-z4}z15; % bowl bottom +draw z5--z4; % bowl top +ductus:=false; +penlabels(1,2,3,4,5,6,14,15,100); +endchar; % end "A" + +cmchar "AUncial letter B"; +beginchar("B", 2u#+hstretch*caprat*(x_height#+jut#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +rt x4=w-pcshiftx; y4=1/3h; +lft x5=rt x1+2thin; y5=2/3h; +z6=z1; +rt x7=0.67[x1,x4]; y7=y6; +x9=rt x7-thin; y9=h-thin; +x8=lft x5+thin; y8=bot y5+thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % the stem +draw z2{right}..z4{up}..{left}z5; % bottom bowl +draw z6--z7; % top bowl +pickup stylus; +draw z9--z8; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "AUncial letter C"; +beginchar("C", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.1h; +top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6; +pickup stylus; +rt x16=w-pcshiftx; top y16=y6'; +x17=x6; y17=y16-jut; +lft x18=x6''; bot y18=y6''; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +pickup stylus; +filldraw z17..z18--z16--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,16,17,18,100); +endchar; % end "C" + +cmchar "AUncial letter D"; +beginchar("D", 2u#+hstretch*caprat*(4/3x_height#), caprat*(4/3x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; +x2=x4=w/2; top y2=3/4h; bot y4=0; +y1=y3=0.5[y4,y2]; +lft x5=pcshiftx; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z2{-pdir}..z1{down}..z4{right}..z3{up}..z5; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "AUncial letter E"; +beginchar("E", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.1h; +top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6; +pickup stylus; +rt x16=w-pcshiftx; top y16=y6'; +x17=x6; y17=y16-jut; +lft x18=x6''; bot y18=y6''; +pickup quill; +x7=x1; y7=y1; +x8=w-pcshiftx; y8=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +pickup stylus; +filldraw z17..z18--z16--cycle; % the serif +draw_fork(7,8,jut); % the bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,100); +endchar; % end "E" + +cmchar "AUncial letter F"; +beginchar("F", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), + caprat*(desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-d/2; +x3=x4=x1; y3=y1; bot y4=0; +rt x5= rt x6=w-pcshiftx; y5=y3; y6=y4; +x15=x16=rt x5-1/2thin; +y15=y5; y16=y6; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw z3--z5; % top bar +draw_rtriangle(15,jut); +draw z4--z6; % bottom bar +draw_rtriangle(16,jut); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "F" + +cmchar "AUncial letter G"; +beginchar("G", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), + caprat*(desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.1h; +top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6; +pickup stylus; +rt x16=w-pcshiftx; top y16=y6'; +x17=x6; y17=y16-jut; +lft x18=x6''; bot y18=y6''; +pickup quill; +x7=rt x5-1/2thin; y7=top y5-1/2thin; +pickup stylus; +lft x8=w/2; bot y8=-d; +pickup quill; +pair vec[]; vec1:=z7-z8; vec2:=z8-z7; +y21=y8+3/2thick; z21=whatever[z8,z7]; +y22=y8+ thick; z22=whatever[z8,z7]; +x23=x8-thick; y23=y8; +x24=x23+1/2thick; y24=y23+1/2thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +pickup stylus; +filldraw z17..z18--z16--cycle; % the serif +draw z7--z22; % the stem +filldraw z22{vec2}..{left}z23--z24{right}..{vec1}z21--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,16,17,18,21,22,23,24,100); +endchar; % end "G" + +cmchar "AUncial letter H"; +beginchar("H", 2u#+hstretch*caprat*(x_height#+jut#), caprat*(asc_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +rt x5=w-pcshiftx; y5=3/8h; +lft x6=2/3w; bot y6=0; +x4=0.5[x1,x5]; top y4=3/4h; +x4'=0.5[x4,x1]; y4'=y4; +z4''=z4' shifted (-w*pdir); +z3'=whatever[z4',z4'']=whatever[z1,z2]; +x3=rt x3'; y3=y3'; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % stem +draw z3{pdir}..z4{right}..z5{down}..z6; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "AUncial letter I"; +beginchar("I", 2u#+hstretch*(thick#+jut#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tlserif(1,2,srad); +draw_tail(2,jut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "I" + +cmchar "AUncial letter J"; +beginchar("J", 2u#+hstretch*(thick#+jut#), caprat*(x_height#), + caprat*(desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-1/2d; +%%ductus:=true; +draw_tlserif(1,2,srad); +draw_tail(2,jut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "J" + +cmchar "AUncial letter K"; +beginchar("K", 2u#+hstretch*caprat*(4/3x_height#), caprat*(asc_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +numeric rise,fall,fjut; +x3=rt x1; y3=5/8h; +rise:=1/6h; fall:=-rise/2; fjut:=1/2w; +%%x4=x1; y4=y3; +z4=z3; +x5=w-pcshiftx-jut; y5=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw_flick(3,rise,fall,fjut); % upper diag +draw_tstem(4,5,srad); % lower diag +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "K" + +cmchar "AUncial letter L"; +beginchar("L", 2u#+hstretch*caprat*(x_height#), caprat*(asc_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +z3=z2; +x4=w-u; y4=0; +%%ductus:=true; +draw_tlserif(1,2,srad); % the stem +draw_fork(3,4,jut); % the foot +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "AUncial letter M"; +beginchar("M", 2u#+hstretch*caprat*(2x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=1/4w; bot y1=0; +lft x2= pcshiftx; y2=h/2; +x4=w/2; y4=2/3h; +x3=0.5[x2,x4]; top y3=h; +x5=x4; y5=y1; +z6=z4; +x7=3/4w; top y7=h; +rt x8=w-pcshiftx; y8=y2; +lft x9=3/4w; y9=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{up}..z3{right}..{down}z4; % left half +draw_tstem(4,5,srad); % middle stem +draw z6..z7{right}..z8{down}..{-pdir}z9; % right half +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "M" + +cmchar "AUncial letter N"; +beginchar("N", 2u#+hstretch*caprat*(2jut#+x_height#), caprat*(x_height#), + caprat*(0.5desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +rt x4=w-pcshiftx-jut; y4=y1; +x3=x4; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % left stem +draw_tail(2,jut); +draw_istem(4,3,srad); % right stem +draw z1--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "N" + +cmchar "AUncial letter O"; +beginchar("O", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "O" + +cmchar "AUncial letter P"; +beginchar("P", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#), + caprat*(desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=-1/2d; +z3=z1; +rt x5=w-pcshiftx; y5=1/2h; +lft x7=rt x1; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw z3{pdir}..z5{down}..{-pdir}z7; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "P" + +cmchar "AUncial letter Q"; +beginchar("Q", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#), + caprat*(desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=rt x2=w-pcshiftx; top y1=h; bot y2=-1/2d; +z3=z1; +lft x5=pcshiftx; y5=1/2h; +rt x7=lft x1; y7=0.1h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % right stem +draw_tail(2,jut); +draw z3{left}..z5{down}..{pdir}z7; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "Q" + +cmchar "AUncial letter R"; +beginchar("R", 2u#+hstretch*caprat*(4/3x_height#), caprat*(x_height#), + caprat*(1/2desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=0; +lft x3=rt x1-thin; y3=y1; +rt x5=3/4w; y5=3/4h; +lft x7=rt x1; bot y7=1/3h; +z8=z7; +rt x9=w-pcshiftx; bot y9=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % stem +draw_tail(2,jut); +draw z3{pdir}..z5{down}..{-pdir}z7; % bowl +draw z8{-ppdir}..{right}z9; % leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "AUncial letter S"; +beginchar("S", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-thin; +x2=w/2; top y2=h; +lft x3=pcshiftx; y3=0.75h; +x4=w/2; y4=h/2; +rt x5=w-pcshiftx; y5=0.25h; +x6=w/2; bot y6=0; +lft x7= pcshiftx; bot y7 = thin; +path p[]; +p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7; +pair vec[]; +vec1= direction 0 of p1; +vec2= direction (length p1) of p1; +z11=z1 shifted vec1; +z17=z7 shifted -vec2; +y6'=top y1; y6''=bot y1; x6''=lft x1; +pickup stylus; +rt x26=w-pcshiftx; top y26=y6'; +x27=x1; y27=y26-0.75jut; +lft x28=x6''; bot y28=y6''; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw p1; % the curve +pickup stylus; +filldraw z27..z28--z26--cycle; % the serif +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100); +endchar; % end "S" + +cmchar "AUncial letter T"; +beginchar("T", 2u#+hstretch*caprat*(4/3x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=0.5jut; +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +lft x3=pcshiftx; rt x4=w-pcshiftx; y3=y4=y1; +x5=pcshiftx+alpha; y5=h-1/2thin; +x6=w-pcshiftx-1/2thin; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z3--z4; % top bar +draw_triangle(5,2alpha); draw_rtriangle(6,2alpha); +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "T" + +cmchar "AUncial letter U"; +beginchar("U", 2u#+hstretch*caprat*(4/3x_height#+jut#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x6=pcshiftx+jut; +top y6=h-2thin; +lft x7=pcshiftx; y7=h/2; +x8=0.5[x6,x1]; bot y8=0; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=0; +x5=0.5[x8,x1]; y5=y8; +z5'=z5 shifted (w*pdir); +path p[]; +p1=z5--z5'; +p2=z1--z2; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..{pdir}z9; +draw_istem(1,2,srad); % right stem +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "U" + +cmchar "AUncial letter V"; +beginchar("V", 2u#+hstretch*caprat*(7/6x_height#+jut#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+jut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); +draw z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +penlabels(1,2,3,4,5,11,100); +endchar; % end "V" + +cmchar "AUncial letter W"; +beginchar("W", 2u#+hstretch*caprat*(2x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= w/2-jut; +lft x1=midx+jut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +lft x6=pcshiftx+jut; +top y6=h-2thin; +lft x7=pcshiftx; y7=y2; +x8=0.5[x7,x1]; y8=y3; +x15=0.5[x8,x1]; y15=y8; +z15'=z15 shifted (w*pdir); +x2'=x2; y2'=y15; +path p[]; +p1=z1--z2'; +p2=z15--z15'; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % right half +draw z2{down}..z3{right}..z4{up}..z5; +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..z9; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "W" + +cmchar "AUncial letter X"; +beginchar("X", 2u#+hstretch*caprat*(4/3x_height#+jut#), caprat*(x_height#), + caprat*(1/2desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; rt x2=w-pcshiftx-jut; +y1=h; y2=0; +lft x3=pcshiftx; bot y3=-d; +rt x5=w-pcshiftx; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw z3..{pdir}z5; % thin diagonal +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "X" + +cmchar "AUncial letter Y"; +beginchar("Y", 2u#+hstretch*caprat*(4/3x_height#), caprat*(x_height#), + caprat*(desc_depth#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +rt x2=3/4w; top y2=0; +pickup stylus; +rt x3=w-pcshiftx; top y3=h; +lft x4=pcshiftx; bot y4=-d; +x5=x3-3thin; y5=y3; +x7=x2-3/2thin; y7=y2; +pickup quill; +x8=w/2; y8=h+jut; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % left stroke +draw_pdot(8,dot_size); % the dot +pickup stylus; +filldraw z3..z2..z4 & z4..z7..z5--cycle; % right stroke +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "AUncial letter Z"; +beginchar("Z", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x4=pcshiftx; bot y4=0; +x6=w-pcshiftx; y6=0; +x1=x4; top y1=h; +rt x3=6/7w; y3=y1; +x11=pcshiftx+0.5jut; y11=h-thin/2; % y11=h-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z3; % top stroke +draw_triangle(11,jut); +draw_fork(4,6,jut); +draw z4--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "Z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmin10.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmin10.mf new file mode 100644 index 00000000000..700d4934f04 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cmin10.mf @@ -0,0 +1,79 @@ +%% +%% This is file `cmin10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 +%% +%%% CMIN10.MF Carolingian Minuscule at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="CMIN"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.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.00; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=3/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 cmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmin17.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmin17.mf new file mode 100644 index 00000000000..e171160b114 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cmin17.mf @@ -0,0 +1,79 @@ +%% +%% This is file `cmin17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 +%% +%%% CMIN17.MF Carolingian Minuscule at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="CMIN"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.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.00; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=3/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 cmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmin7.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmin7.mf new file mode 100644 index 00000000000..a188e5aa612 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cmin7.mf @@ -0,0 +1,79 @@ +%% +%% This is file `cmin7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 +%% +%%% CMIN7.MF Carolingian Minuscule at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="CMIN"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.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.00; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=3/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 cmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminb10.mf new file mode 100644 index 00000000000..04f6f3b27a6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cminb10.mf @@ -0,0 +1,79 @@ +%% +%% This is file `cminb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 +%% +%%% CMINB10.MF Carolingian Minuscule Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="CMINB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.00; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=3/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 cmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminb17.mf new file mode 100644 index 00000000000..05588cd7599 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cminb17.mf @@ -0,0 +1,79 @@ +%% +%% This is file `cminb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 +%% +%%% CMINB17.MF Carolingian Minuscule Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="CMINB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.00; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=3/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 cmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminb7.mf new file mode 100644 index 00000000000..90a6dc48e8f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cminb7.mf @@ -0,0 +1,79 @@ +%% +%% This is file `cminb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 +%% +%%% CMINB7.MF Carolingian Minuscule Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="CMINB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.00; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=3/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 cmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmindig.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmindig.mf new file mode 100644 index 00000000000..3219a982757 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cmindig.mf @@ -0,0 +1,223 @@ +%% +%% This is file `cmindig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 "Carolingian digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "1" + +cmchar "Carolingian digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(5,6,thin); % foot +draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "Carolingian digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +%%lft x6=pcshiftx+3thin; x7=x6; +x6=1/2[x3,x9]; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl +draw z7{right}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "Carolingian digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw_wave(3,4,thin); % crossbar +draw z3wl--z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "Carolingian digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(2,1,thin); % top squiggle +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +draw z2wl--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "Carolingian digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "Carolingian 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 "Carolingian digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "Carolingian digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Carolingian digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminl.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminl.mf new file mode 100644 index 00000000000..c19f9968f83 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cminl.mf @@ -0,0 +1,787 @@ +%% +%% This is file `cminl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 "CMIN letter a"; +beginchar("a", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +x1 = pcshiftx + 6/8n1; top y1=h; +rt x2 = pcshiftx + n1; bot y2=0; +z16 = 1/6[z2,z1]; +rt x6 = x16; y6=y16; +lft x4 = pcshiftx; y4 = 1/2h; +pth1 := z1{down}..z2; +pr1 := direction 1 of pth1; +z20 = z2 shifted -10pr1; + +z11 = point 3/13 of pth1; z15 = point 10/13 of pth1; +lft x13 = pcshiftx; y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + draw_roundserif(1,2,srad); + draw_roundserif(2,20,srad); + % draw bowl +%% draw z1{-pdir}..z4{down}..z6{pdir}; + draw z11{-pdir}..z13{down}..z15{pdir}; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "a" + +cmchar "CMIN letter b"; +beginchar("b", 2sb#+hstretch*(3/4x_height#+clubjut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +%%ductus:=true; +lft x1 = pcshiftx+clubjut; top y1=h; +x3 = x1; y3=1/2n2; +rt x5 = w-pcshiftx; y5=y3; +x4 = 1/2[x3,x5]; bot y4=0; +x6=x4; top y6=n2; +pth1 := z1..z3{down}..z4{right}.. z5{up}; +z98=(0,3/4n2); z99=(w,y98); +pth2 := z98--z99; +z7 = pth1 intersectionpoint pth2; +if ductus: + pickup stylus; +fi +draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir}; +draw_clubserif(1,3,0.75); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "CMIN letter c"; +beginchar("c", 2sb#+hstretch*(5/8x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "c" + +cmchar "CMIN letter d"; +beginchar("d", 2sb#+hstretch*(5/8x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1 = h/ascratio; % x-height +rt x1=w-pcshiftx-jut; top y1=h; +x2 = x1; bot y2=0; +x3 = x1; y3 = 1/4n1; +lft x5 = pcshiftx; y5=1/2n1; +x4 = 1/2[x3,x5]; bot y4 = 0; +x6=x4; top y6 = n1; +x7=x3; y7=3/4n1; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +draw_clubserif(1,2,0.25); +draw_roundserif(2,1,srad); +draw z3..z4{left}..z5{up}..z6{right}..z7; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "CMIN letter e"; +beginchar("e", sb#+hstretch*(8/8x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := 6/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +%%z98=(0,3/8h); z99=(w,y98); +z98=(0,2/8h); z99=(w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x9 = w-pcshiftx; y9 = 3/4h; +z8=1/2[z7,z9]; + +z70 = z7 shifted 10pdir; +z17 = whatever[z7,z70]; +%%x17 = w-pcshiftx; +top y17 = h; + +rt x27=w-pcshiftx; top y27=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir}; +%%draw z7{pdir}..z8{right}..z9{pdir}; +%%draw z7--z17; +draw z7--z27; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,70,100); +endchar; % end "e" + +cmchar "CMIN letter f"; +beginchar("f", 2sb#+hstretch*(3/4x_height#+jut#), + (asc_height#), 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%% bar +z14=1/2[z4,z1]; +rt x16 = w -pcshiftx; top y16 = 1/2[y14,y6]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z4{up}...z5{right}...z6; % top +draw z14{right}..z16{pdir}; % bar +ductus:=false; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "f" + +cmchar "CMIN letter g"; +beginchar("g", 2sb#+hstretch*(5/4x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := 4/5w - 2pcshiftx; % width of top o +%% top O +x1 = x3 = pcshiftx + 1/2n1; top y1=h; bot y3=1/8h; +lft x4 = pcshiftx; rt x2 = pcshiftx+n1; y2 = y4 = 1/2[y1,y3]; + +%% top flick +lft x11 = rt x1; y11=y1; +rt x13 = w-pcshiftx; y13 = h; + +%% bottom +z31=z3; +x33 = w-pcshiftx; y33 = -1/2d; +x35=x31; bot y35 = -d; +rt x36 = lft x4; y36 = 1/2[y35,y33]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; % top O +draw z11{right}..z13{pdir}; % flick +draw z31{right}..z33{down}..z35{left}..z36; +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 "CMIN letter h"; +beginchar("h", 2sb#+hstretch*(6/8x_height#+clubjut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=1/2[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h/ascratio; +%%lft x6=x4; bot y6=0; +x6=1/2[x4,x5]; +bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +%%draw_flatserif(1,2,srad); +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4..z5..z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "CMIN letter i"; +beginchar("i", 2sb#+hstretch*(thick#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "CMIN letter j"; +beginchar("j", sb#+hstretch*(3/8x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_flatserif(1,2,srad); +draw z2{down}..z3{-pdir}; % hook +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "CMIN letter k"; +beginchar("k", 2sb#+hstretch*(7/8x_height#+clubjut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% stem +n1 = h/ascratio; % x-height +lft x1=lft x2=pcshiftx+clubjut; +y1=h; bot y2=0; +%% top arm +%%z3=(x1,1/2n1); +x3 = x1; top y3 = 1/2n1; +rt x5=5/8[x1,w-pcshiftx]; top y5=n1; +x4=1/2[x3,x5]; top y4=n1; +pth1 := z3{pdir}..z5{up}; +%% lower arm +pth2 := (rt x1,0)--(rt x1,h); +z13 = pth1 intersectionpoint pth2; +pickup threequarterquill; +lft x14 = x13; bot y14 = y13; +rt x7=w-pcshiftx; bot y7=0; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw pth1; % upper arm +pickup threequarterquill; +%%draw z14{down}..z7{-ppdir}; % lower arm +%%draw z14{down}..z7; % lower arm +draw z14{-ppdir}..z7{right}; % lower arm +pickup quill; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "k" + +cmchar "CMIN letter l"; +beginchar("l", 2sb#+hstretch*(thick#+clubjut#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx+clubjut; top y1=h; +x2=x1; bot y2 =0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "CMIN letter m"; +beginchar("m", 2sb#+hstretch*(x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of right and middle stems +rt x6 = w -pcshiftx - jut; y6=y2; +z4 = 1/2[z2,z6]; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z33{down}--z4; +draw_roundserif(4,3,srad); +draw z33{pdir}..z34{right}..z5{down}--z6; +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "m" + +cmchar "CMIN letter n"; +beginchar("n", 2sb#+hstretch*(5/8x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x13=x1; y13=3/4h; +%% right stem +rt x4 = w-pcshiftx-jut; y4=y2; +x3 = x4; y3 = y13; +x14 = 2/3[x13,x3]; top y14 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z3{down}--z4; +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "n" + +cmchar "CMIN letter o"; +beginchar("o", 2sb#+hstretch*(3/4x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +draw z1..z2..z3..z4..cycle; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +%%ductus:=true; +if ductus: + pickup stylus; + draw obfirst; draw obsecond; draw obouter; draw obinner; +else: +%% fill obouter; unfill obinner; +fi +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "o" + +cmchar "CMIN letter p"; +beginchar("p", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-d; +%% bowl % from "d" +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; top y4 = h; +x6=x4; bot y6=0; +z7=1/4[(x1,0),z1]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad) +draw z3{pdir}..z4{right}..z5{down}..z6{left}..z7; % bowl (from d) +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "CMIN letter q"; +beginchar("q", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=-d; +%% bowl +z3=1/4[(x1,0),z1]; +lft x5=pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; bot y4=0; +x6=x4; top y6=h; +z7=3/4[(x1,0),z1]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "CMIN letter r"; +beginchar("r", 2sb#+hstretch*(7/8x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=3/4[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4{right}..z5{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "CMIN letter s"; +beginchar("s", 2sb#+hstretch*(3/4x_height#+clubjut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+clubjut; top y1=n1; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw z4{up}...z5{right}...z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "s" + +cmchar "CMIN letter t"; +beginchar("t", 2sb#+hstretch*(x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +top y3=h; n3 := h - top y3; +lft x1 = pcshiftx; rt x2=w-pcshiftx; +%%top y1 = y3-n3; bot y2=y3+n3; +y1 = y3-n3; y2=y3; +n1 := w; % width of bowl +n2 := h; % height of bowl +x3=1/2[x1,x2]; +lft x4 = pcshiftx + 1/8n1; y4 = 1/2h; +x5=x3; bot y5 = 0; +rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{pdir}..z3..z2{pdir}; % bar +draw z3..z4{down}..z5{right}..z6{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "CMIN letter u"; +beginchar("u", 2sb#+hstretch*(5/8x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "u" + +cmchar "CMIN letter v"; +beginchar("v", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +rt x23=w-pcshiftx; y23=3/4h; +lft x26=x14; top y26=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}; % left stem +draw_flatserif(1,13,srad); +draw z14{pdir}..z23{up}..z26; + +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "v" + +cmchar "CMIN letter w"; +beginchar("w", 2sb#+hstretch*(x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33{down}..z34{right}..z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "w" + +cmchar "CMIN letter x"; +beginchar("x", 2sb#+hstretch*(x_height#), + x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx; bot y1=2/3h; +x2=pcshiftx+1/7n1; top y2=h; +x5=pcshiftx+11/14n1; bot y5=-1/4d; +rt x6=pcshiftx+n1; top y6=1/6h; +z25 = 1/3[z2,z5]; +pth1 := z2{right}..z5{right}; +z251 = point 1/3 of pth1; +z252 = point 2/3 of pth1; +%% diag bottom left to top right +lft x10 = -w + 2pcshiftx; bot y10=-d; +x50=x5; top y50=h; +rt x60 = w -pcshiftx; bot y60=2/3h; +x40=pcshiftx+8/14n1; y40=h; + +x150=x2; bot y150 = 0; +lft x160 = pcshiftx; top y160=1/3h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z5{right}..z6; % top left to bottom right +%%draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right +draw z251..z50{right}..z60; % middle to top right +draw z252..z150{left}..z160; % middle to bottom left +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 "CMIN letter y"; +beginchar("y", 2sb#+hstretch*(7/8x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% left stem top +lft x1 = pcshiftx + jut; top y1 = h; +bot y3 = 0; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +lft x9=-1/2w; bot y9 = -d; +pth1 := z9{right}..z5{up}; +pth2 := (0,y3)--(w,y3); +z99 = pth1 intersectionpoint pth2; +x3 = x99; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,3,srad); +draw pth1; % right stem +draw_flatserif(5,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "CMIN letter z"; +beginchar("z", 2sb#+hstretch*(x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +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; 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; y4=y34; +x34 = 1/2[x3,x4]; +pth2 := z3{pdir}..z34{right}..z4{pdir}; +%% diagonal +z5=z3; +pth3 := z5--(3/4w,h+jut); +z6 = pth3 intersectionpoint pth1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; % bars +draw z5--z6; +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/cminlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminlig.mf new file mode 100644 index 00000000000..78a4d48956d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cminlig.mf @@ -0,0 +1,271 @@ +%% +%% This is file `cminlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 "The ct ligature"; +beginchar(oct"014", 2sb#+hstretch*(6/4x_height#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair vc[]; +pickup quill; +%%%%%%%%%%% C + +n1:=1/2(w-2pcshiftx); % actual letter width +n2 := h/ascratio; % x-height +x1=pcshiftx + 1/2n1; top y1 = n2; +lft x2 = pcshiftx; y2 = 1/2n2; +x3 = x1; bot y3 = 0; +rt x4 = n1; y4 = 1/4n2; +x6 = x4; +%%y6 = 3/4n2; +top y6 = y1; +pth1 := z6..z1{left}..z2{down}..z3{right}..z4{pdir}; +%%%%%%%%%%%%% T + +%% bar +top y33=n2; n3 := n2 - top y33; +%%lft x31 = n1+pcshiftx; +lft x31 = n1; +rt x32=w-pcshiftx; +%%top y31 = y33-n3; bot y32=y33+n3; +top y31 = y33-n3; y32=y33; +x33=1/2[x31,x32]; +pth2 := z31{pdir}..z33..z32{pdir}; % T bar +n31 := n1; % width of bowl +%%lft x34 = pcshiftx + n1 + 1/8n31; +lft x34 = n1 + 1/8n31; +y34 = 1/2n2; +x35=x33; bot y35 = 0; +rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2; +pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl + +%%%%%%%%%%%%%%%%% Ligature + +z51=z6; +z55=z33; +x53 = 1/2[x51,x55]; +top y53 = h; +vc51 := direction 0 of pth1; +vc55 := direction 0 of pth3; +pth4 := z51{vc51}..z53{right}..z55{vc55}; % loop +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % C +draw pth2; % T bar +draw pth3; % T bowl +draw pth4; % ligature loop +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100); +endchar; % end of "ct" + + +cmchar "The st ligature"; +beginchar(oct"015", 2sb#+hstretch*(9/8x_height#+clubjut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair vc[]; +pickup quill; +%%%%%%%%%%% S + +n1:=3/7(w-2pcshiftx-clubjut); % actual letter width +n2 := h/ascratio; % x-height + +%% stem +lft x1=lft x2=pcshiftx+clubjut; top y1=n2; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +%%%%%%%%%%%%% T + +%% bar +top y33=n2; n3 := n2 - top y33; +%%lft x31 = n1+pcshiftx; +lft x31 = n1; +rt x32=w-pcshiftx; +%%top y31 = y33-n3; bot y32=y33+n3; +top y31 = y33-n3; y32=y33; +x33=1/2[x31,x32]; +pth2 := z31{pdir}..z33..z32{pdir}; % T bar +n31 := n1; % width of bowl +%%lft x34 = pcshiftx + n1 + 1/8n31; +lft x34 = n1 + 1/8n31; +y34 = 1/2n2; +x35=x33; bot y35 = 0; +rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2; +pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl + +%%%%%%%%%%%%%%%%% Ligature + +z51=z4; +z55=z33; +x53 = 5/8[x51,x55]; +top y53 = h; +vc51 := up; +vc55 := direction 0 of pth3; +pth4 := z51{vc51}...z53{right}..z55{vc55}; % loop +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % S stem +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw pth2; % T bar +draw pth3; % T bowl +draw pth4; % ligature loop +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100); +endchar; % end of "st" + + +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*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +%%pickup thickstylus; +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; 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*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +%%pickup thickstylus; +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; 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*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +%%pickup thickstylus; +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +draw z21--z22; +draw_roundserif(21,22,srad); draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "---" + + +cmchar "CMIN ampersand"; +beginchar("&", 2sb#+hstretch*(5/4x_height#+2jut#), asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx:=sb; +pickup quill; +%% alpha looking part +n1 := w-2pcshiftx-jut; % actual letter width +n2 := h/ascratio; % x-height +n3 := 16/16n2; % height of alpha +x1 = w-pcshiftx; bot y1 = 0; +x3 = pcshiftx + 12/16n1; y3 = 1/2n3; % 10/16 too small +lft x5 = pcshiftx; y5=y3; +x4 = x6 = 1/2[x5,x3]; +top y4 = n3; bot y6 = 0; +rt x8 = w-pcshiftx-jut; top y8 = h; +x9 = x8-2jut; x10 = x8+2jut; +y9 = y10 = y8; +pth1 := z1{left}..z3..z4{left}..z5{down}..z6{right}..z3..z8{up}; +%% loop +z21 = z5; +z25 = point 1.5 of pth1; +x23 = 1/2[x21,x25]; +y23 = 6/8[y4,y8]; +pth2 := z21{up}..z23{right}..z25{down}; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw z9--z10; % alpha part +draw pth2; % loop +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,21,22,23,24,25); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminpunct.mf new file mode 100644 index 00000000000..df684b7fb4d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cminpunct.mf @@ -0,0 +1,121 @@ +%% +%% This is file `cminpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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/4x_height#), + 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); +x4 = x5; y4=y5+3/2dot_size; +lft x1 = pcshiftx; y1 = 3/4h; +x2 = 1/2w; top y2 = h; +rt x3 = w-pcshiftx; y3 = 2/3h; + +%%ductus:= true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..z4{down}; +draw_pdot(5, dot_size); +penlabels(1,2,3,4,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=2/3h; y2=1/3h; +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=2/3h; y2=1/3h; +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/cmintitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmintitle.mf new file mode 100644 index 00000000000..85845bd7959 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cmintitle.mf @@ -0,0 +1,706 @@ +%% +%% This is file `cmintitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 carolmin_font_setup= % contains special stuff for carolmin 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); + 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); + 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 carolmin_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_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{down}..{left}z$uv--z$vu{right}..{up}z$sv--cycle; + labels($s,$t,$u,$v,$sv,$tu,$uv,$vu); +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{down}..{right}z$uv--z$vu{left}..{up}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; +carolmin_font_setup; + + +input cminl; % lower case +input cminu; % capitals +input cminpunct; % punctuation +input cminlig; % the several dashes +input cmindig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: + font_normal_space vstretch*9u#; % no stretching or shrinking + font_quad vstretch*18u#; + font_extra_space vstretch*9u#; +else: + font_normal_space vstretch*6u#+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/cminu.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminu.mf new file mode 100644 index 00000000000..805ffa88127 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/cminu.mf @@ -0,0 +1,787 @@ +%% +%% This is file `cminu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% carolmin.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 "CMIN letter A"; +beginchar("A", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +x1 = pcshiftx + 6/8n1; top y1=h; +rt x2 = pcshiftx + n1; bot y2=0; +z16 = 1/6[z2,z1]; +rt x6 = x16; y6=y16; +lft x4 = pcshiftx; y4 = 1/2h; +pth1 := z1{down}..z2; +pr1 := direction 1 of pth1; +z20 = z2 shifted -10pr1; + +z11 = point 3/13 of pth1; z15 = point 10/13 of pth1; +lft x13 = pcshiftx; y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + draw_roundserif(1,2,srad); + draw_roundserif(2,20,srad); + % draw bowl +%% draw z1{-pdir}..z4{down}..z6{pdir}; + draw z11{-pdir}..z13{down}..z15{pdir}; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "A" + +cmchar "CMIN letter B"; +beginchar("B", 2sb#+caprat*hstretch*(3/4x_height#+clubjut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +%%ductus:=true; +lft x1 = pcshiftx+clubjut; top y1=h; +x3 = x1; y3=1/2n2; +rt x5 = w-pcshiftx; y5=y3; +x4 = 1/2[x3,x5]; bot y4=0; +x6=x4; top y6=n2; +pth1 := z1..z3{down}..z4{right}.. z5{up}; +z98=(0,3/4n2); z99=(w,y98); +pth2 := z98--z99; +z7 = pth1 intersectionpoint pth2; +if ductus: + pickup stylus; +fi +draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir}; +draw_clubserif(1,3,0.75); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "CMIN letter C"; +beginchar("C", 2sb#+caprat*hstretch*(5/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "C" + +cmchar "CMIN letter D"; +beginchar("D", 2sb#+caprat*hstretch*(5/8x_height#+jut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1 = h/ascratio; % x-height +rt x1=w-pcshiftx-jut; top y1=h; +x2 = x1; bot y2=0; +x3 = x1; y3 = 1/4n1; +lft x5 = pcshiftx; y5=1/2n1; +x4 = 1/2[x3,x5]; bot y4 = 0; +x6=x4; top y6 = n1; +x7=x3; y7=3/4n1; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +draw_clubserif(1,2,0.25); +draw_roundserif(2,1,srad); +draw z3..z4{left}..z5{up}..z6{right}..z7; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "CMIN letter E"; +beginchar("E", sb#+caprat*hstretch*(8/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := 6/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +%%z98=(0,3/8h); z99=(w,y98); +z98=(0,2/8h); z99=(w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x9 = w-pcshiftx; y9 = 3/4h; +z8=1/2[z7,z9]; + +z70 = z7 shifted 10pdir; +z17 = whatever[z7,z70]; +%%x17 = w-pcshiftx; +top y17 = h; + +rt x27=w-pcshiftx; top y27=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir}; +%%draw z7{pdir}..z8{right}..z9{pdir}; +%%draw z7--z17; +draw z7--z27; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,70,100); +endchar; % end "E" + +cmchar "CMIN letter F"; +beginchar("F", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + (asc_height#), 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%% bar +z14=1/2[z4,z1]; +rt x16 = w -pcshiftx; top y16 = 1/2[y14,y6]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z4{up}...z5{right}...z6; % top +draw z14{right}..z16{pdir}; % bar +ductus:=false; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "F" + +cmchar "CMIN letter G"; +beginchar("G", 2sb#+caprat*hstretch*(5/4x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := 4/5w - 2pcshiftx; % width of top o +%% top O +x1 = x3 = pcshiftx + 1/2n1; top y1=h; bot y3=1/8h; +lft x4 = pcshiftx; rt x2 = pcshiftx+n1; y2 = y4 = 1/2[y1,y3]; + +%% top flick +lft x11 = rt x1; y11=y1; +rt x13 = w-pcshiftx; y13 = h; + +%% bottom +z31=z3; +x33 = w-pcshiftx; y33 = -1/2d; +x35=x31; bot y35 = -d; +rt x36 = lft x4; y36 = 1/2[y35,y33]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; % top O +draw z11{right}..z13{pdir}; % flick +draw z31{right}..z33{down}..z35{left}..z36; +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 "CMIN letter H"; +beginchar("H", 2sb#+caprat*hstretch*(6/8x_height#+clubjut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=1/2[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h/ascratio; +%%lft x6=x4; bot y6=0; +x6=1/2[x4,x5]; +bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +%%draw_flatserif(1,2,srad); +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4..z5..z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "CMIN letter I"; +beginchar("I", 2sb#+caprat*hstretch*(thick#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,100); +endchar; % end "I" + +cmchar "CMIN letter J"; +beginchar("J", sb#+caprat*hstretch*(3/8x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_flatserif(1,2,srad); +draw z2{down}..z3{-pdir}; % hook +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "J" + +cmchar "CMIN letter K"; +beginchar("K", 2sb#+caprat*hstretch*(7/8x_height#+clubjut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% stem +n1 = h/ascratio; % x-height +lft x1=lft x2=pcshiftx+clubjut; +y1=h; bot y2=0; +%% top arm +%%z3=(x1,1/2n1); +x3 = x1; top y3 = 1/2n1; +rt x5=5/8[x1,w-pcshiftx]; top y5=n1; +x4=1/2[x3,x5]; top y4=n1; +pth1 := z3{pdir}..z5{up}; +%% lower arm +pth2 := (rt x1,0)--(rt x1,h); +z13 = pth1 intersectionpoint pth2; +pickup threequarterquill; +lft x14 = x13; bot y14 = y13; +rt x7=w-pcshiftx; bot y7=0; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw pth1; % upper arm +pickup threequarterquill; +%%draw z14{down}..z7{-ppdir}; % lower arm +%%draw z14{down}..z7; % lower arm +draw z14{-ppdir}..z7{right}; % lower arm +pickup quill; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "K" + +cmchar "CMIN letter L"; +beginchar("L", 2sb#+caprat*hstretch*(thick#+clubjut#+jut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx+clubjut; top y1=h; +x2=x1; bot y2 =0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "CMIN letter M"; +beginchar("M", 2sb#+caprat*hstretch*(x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of right and middle stems +rt x6 = w -pcshiftx - jut; y6=y2; +z4 = 1/2[z2,z6]; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z33{down}--z4; +draw_roundserif(4,3,srad); +draw z33{pdir}..z34{right}..z5{down}--z6; +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "M" + +cmchar "CMIN letter N"; +beginchar("N", 2sb#+caprat*hstretch*(5/8x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x13=x1; y13=3/4h; +%% right stem +rt x4 = w-pcshiftx-jut; y4=y2; +x3 = x4; y3 = y13; +x14 = 2/3[x13,x3]; top y14 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z3{down}--z4; +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "N" + +cmchar "CMIN letter O"; +beginchar("O", 2sb#+caprat*hstretch*(3/4x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +draw z1..z2..z3..z4..cycle; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +%%ductus:=true; +if ductus: + pickup stylus; + draw obfirst; draw obsecond; draw obouter; draw obinner; +else: +%% fill obouter; unfill obinner; +fi +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "O" + +cmchar "CMIN letter P"; +beginchar("P", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-d; +%% bowl % from "d" +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; top y4 = h; +x6=x4; bot y6=0; +z7=1/4[(x1,0),z1]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad) +draw z3{pdir}..z4{right}..z5{down}..z6{left}..z7; % bowl (from d) +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "CMIN letter Q"; +beginchar("Q", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=-d; +%% bowl +z3=1/4[(x1,0),z1]; +lft x5=pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; bot y4=0; +x6=x4; top y6=h; +z7=3/4[(x1,0),z1]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "Q" + +cmchar "CMIN letter R"; +beginchar("R", 2sb#+caprat*hstretch*(7/8x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=3/4[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4{right}..z5{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "CMIN letter S"; +beginchar("S", 2sb#+caprat*hstretch*(3/4x_height#+clubjut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+clubjut; top y1=n1; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw z4{up}...z5{right}...z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "S" + +cmchar "CMIN letter T"; +beginchar("T", 2sb#+caprat*hstretch*(x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +top y3=h; n3 := h - top y3; +lft x1 = pcshiftx; rt x2=w-pcshiftx; +%%top y1 = y3-n3; bot y2=y3+n3; +y1 = y3-n3; y2=y3; +n1 := w; % width of bowl +n2 := h; % height of bowl +x3=1/2[x1,x2]; +lft x4 = pcshiftx + 1/8n1; y4 = 1/2h; +x5=x3; bot y5 = 0; +rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{pdir}..z3..z2{pdir}; % bar +draw z3..z4{down}..z5{right}..z6{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "CMIN letter U"; +beginchar("U", 2sb#+caprat*hstretch*(5/8x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "U" + +cmchar "CMIN letter V"; +beginchar("V", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +rt x23=w-pcshiftx; y23=3/4h; +lft x26=x14; top y26=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}; % left stem +draw_flatserif(1,13,srad); +draw z14{pdir}..z23{up}..z26; + +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "V" + +cmchar "CMIN letter W"; +beginchar("W", 2sb#+caprat*hstretch*(x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33{down}..z34{right}..z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "W" + +cmchar "CMIN letter X"; +beginchar("X", 2sb#+caprat*hstretch*(x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx; bot y1=2/3h; +x2=pcshiftx+1/7n1; top y2=h; +x5=pcshiftx+11/14n1; bot y5=-1/4d; +rt x6=pcshiftx+n1; top y6=1/6h; +z25 = 1/3[z2,z5]; +pth1 := z2{right}..z5{right}; +z251 = point 1/3 of pth1; +z252 = point 2/3 of pth1; +%% diag bottom left to top right +lft x10 = -w + 2pcshiftx; bot y10=-d; +x50=x5; top y50=h; +rt x60 = w -pcshiftx; bot y60=2/3h; +x40=pcshiftx+8/14n1; y40=h; + +x150=x2; bot y150 = 0; +lft x160 = pcshiftx; top y160=1/3h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z5{right}..z6; % top left to bottom right +%%draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right +draw z251..z50{right}..z60; % middle to top right +draw z252..z150{left}..z160; % middle to bottom left +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 "CMIN letter Y"; +beginchar("Y", 2sb#+caprat*hstretch*(7/8x_height#+jut#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% left stem top +lft x1 = pcshiftx + jut; top y1 = h; +bot y3 = 0; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +lft x9=-1/2w; bot y9 = -d; +pth1 := z9{right}..z5{up}; +pth2 := (0,y3)--(w,y3); +z99 = pth1 intersectionpoint pth2; +x3 = x99; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,3,srad); +draw pth1; % right stem +draw_flatserif(5,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "CMIN letter Z"; +beginchar("Z", 2sb#+caprat*hstretch*(x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +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; 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; y4=y34; +x34 = 1/2[x3,x4]; +pth2 := z3{pdir}..z34{right}..z4{pdir}; +%% diagonal +z5=z3; +pth3 := z5--(3/4w,h+jut); +z6 = pth3 intersectionpoint pth1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; % bars +draw z5--z6; +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/egoth10.mf b/Master/texmf-dist/fonts/source/public/bookhands/egoth10.mf new file mode 100644 index 00000000000..ef6904d2519 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egoth10.mf @@ -0,0 +1,85 @@ +%% +%% This is file `egoth10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 +%% +%%% EGOTH10.MF Early Gothic at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="EGOTH"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.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.27; + + 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#:=3/8u#; % unit for side bearings + + cap_sb#:=4/3sb#; % unit for side bearings + + cap_height#:=246/36pt#; % height of caps + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle +cappangle:=0; % pen angle +cappangle := pangle; + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +sqrcjut# := 2cap_jutstretch*thin#; +sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 egothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egoth17.mf b/Master/texmf-dist/fonts/source/public/bookhands/egoth17.mf new file mode 100644 index 00000000000..e138702c1a3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egoth17.mf @@ -0,0 +1,85 @@ +%% +%% This is file `egoth17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 +%% +%%% EGOTH17.MF Early Gothic at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="EGOTH"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.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.27; + + 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#:=3/8u#; % unit for side bearings + + cap_sb#:=4/3sb#; % unit for side bearings + + cap_height#:=425/36pt#; % height of caps + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle +cappangle:=0; % pen angle +cappangle := pangle; + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +sqrcjut# := 2cap_jutstretch*thin#; +sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 egothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egoth7.mf b/Master/texmf-dist/fonts/source/public/bookhands/egoth7.mf new file mode 100644 index 00000000000..1a4a13e049c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egoth7.mf @@ -0,0 +1,85 @@ +%% +%% This is file `egoth7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 +%% +%%% EGOTH7.MF Early Gothic at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="EGOTH"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.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.27; + + 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#:=3/8u#; % unit for side bearings + + cap_sb#:=4/3sb#; % unit for uppercase side bearings + + cap_height#:=172.2/36pt#; % height of caps + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle +cappangle:=0; % pen angle +cappangle := pangle; + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +sqrcjut# := 2cap_jutstretch*thin#; +sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 egothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothb10.mf new file mode 100644 index 00000000000..ff3c81a27c2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothb10.mf @@ -0,0 +1,85 @@ +%% +%% This is file `egothb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 +%% +%%% EGOTHB10.MF Early Gothic Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="EGOTHB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.27; + + 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#:=3/8u#; % unit for side bearings + + cap_sb#:=4/3sb#; % unit for 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:=35; % pen angle +cappangle:=0; % pen angle +cappangle := pangle; + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +sqrcjut# := 2cap_jutstretch*thin#; +sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 egothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothb17.mf new file mode 100644 index 00000000000..35946b27b35 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothb17.mf @@ -0,0 +1,85 @@ +%% +%% This is file `egothb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 +%% +%%% EGOTHB17.MF Early Gothic Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="EGOTHB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.27; + + 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#:=3/8u#; % unit for side bearings + + cap_sb#:=4/3sb#; % unit for 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:=35; % pen angle +cappangle:=0; % pen angle +cappangle := pangle; + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +sqrcjut# := 2cap_jutstretch*thin#; +sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 egothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothb7.mf new file mode 100644 index 00000000000..f9b4f1bb0a2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothb7.mf @@ -0,0 +1,85 @@ +%% +%% This is file `egothb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 +%% +%%% EGOTHB7.MF Early Gothic Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="EGOTHB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.27; + + 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#:=3/8u#; % unit for side bearings + + cap_sb#:=4/3sb#; % 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:=35; % pen angle +cappangle:=0; % pen angle +cappangle := pangle; + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +sqrcjut# := 2cap_jutstretch*thin#; +sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 egothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothdig.mf new file mode 100644 index 00000000000..30dd6b1e8df --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothdig.mf @@ -0,0 +1,224 @@ +%% +%% This is file `egothdig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 "EGOTH digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_flatserif(2,1,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "1" + +cmchar "EGOTH digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(5,6,thin); % foot +draw z1..z2{right}.. tension 0.75 ..z3{down}..{-pdir}z5wl; % curve +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "EGOTH digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +%%lft x6=pcshiftx+3thin; x7=x6; +x6=1/2[x3,x9]; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl +draw z7{right}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "EGOTH digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw_wave(3,4,thin); % crossbar +draw z3wl--z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "EGOTH digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(2,1,thin); % top squiggle +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +draw z2wl--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "EGOTH digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}.. tension 0.8 ..z3{down}.. tension 0.8 ..z4{right}..z5{up}.. tension 0.8 ..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "EGOTH 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 "EGOTH digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3..z5.. + z11.. tension 0.8 ..z4.. tension 0.8 ..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "EGOTH digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}.. tension 0.8 ..z3{up}.. tension 0.8 ..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "EGOTHIC digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3.. tension 0.8 ..z4.. tension 0.8 ..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothl.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothl.mf new file mode 100644 index 00000000000..de79a5aa295 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothl.mf @@ -0,0 +1,798 @@ +%% +%% This is file `egothl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 "EGOTH letter a"; +beginchar("a", 2sb#+hstretch*(9/16x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +rt x1 = w-pcshiftx-jut; top y1=h; +x2 = x1; bot y2=0; +z16 = 1/6[z2,z1]; +rt x6 = x16; y6=y16; +lft x4 = pcshiftx; y4 = 1/2h; +pth1 := z1--z2; +pr1 := direction 1 of pth1; +z20 = z2 shifted -10pr1; + +z11 = point 3/13 of pth1; z15 = point 10/13 of pth1; +lft x13 = pcshiftx; y13=1/4h; +n2 := y13 - bot y13; +z23 = (x13, y13+n2); +z33 = (x13, y13-n2); +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + draw_roundserif(1,2,srad); + draw_roundserif(2,1,srad); + % draw bowl +%% draw z1{-pdir}..z4{down}..z6{pdir}; + draw z11{-pdir}..z23{down}..z33..z15{pdir}; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "a" + +cmchar "EGOTH letter b"; +beginchar("b", 2sb#+hstretch*(11/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +%%ductus:=true; +lft x1 = pcshiftx+jut; top y1=h; +x3 = x1; y3=2/8n2; +rt x5 = w-pcshiftx; y5=y3; +x4 = 1/2[x3,x5]; bot y4=0; +x6=1/2[x4,x5]; top y6=n2; +pth1 := z1..z3{down}..z4{right}.. z5{up}; +z98=(0,3/4n2); z99=(w,y98); +pth2 := z98--z99; +z7=(x1,6/8n2); +if ductus: + pickup stylus; +fi +draw z1--z3{down}..z4{right}..z5{up}..z6; +draw z6--z7; +draw_flatserif(1,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "EGOTH letter c"; +beginchar("c", 2sb#+hstretch*(9/16x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24--z1{left}...z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "c" + +cmchar "EGOTH letter d"; +beginchar("d", 2sb#+hstretch*(11/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1 = h/ascratio; % x-height +rt x1=w-pcshiftx-jut; top y1=h; +x2 = x1; bot y2=0; +x3 = x1; y3 = 1/4n1; +lft x5 = pcshiftx; y5=6/8n1; +x4 = 3/8[x3,x5]; bot y4 = 0; +x6=1/2[x4,x5]; top y6 = n1; +x7=x3; top y7=n1; +rt x8 = w-pcshiftx; y8=n1; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3..z4{left}..z5{up}..z6; +draw z6..z7..z8; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "EGOTH letter e"; +beginchar("e", sb#+hstretch*(15/16x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := 6/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +%%z98=(0,3/8h); z99=(w,y98); +z98=(0,2/8h); z99=(w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x9 = w-pcshiftx; y9 = 3/4h; +z8=1/2[z7,z9]; + +z70 = z7 shifted 10pdir; +z17 = whatever[z7,z70]; +%%x17 = w-pcshiftx; +top y17 = h; + +rt x27=w-pcshiftx; top y27=h; +pth3 := z7--z27; % diagonal +pth4 := z1--z9; + +z34 = pth3 intersectionpoint pth4; +pth5 := z34--z1{left}...z2{down}..z3{right}..z4{pdir}; % bowl +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir}; +%%draw z7{pdir}..z8{right}..z9{pdir}; +%%draw z7--z17; +draw pth5; % bowl +draw pth3; % diagonal +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100); +endchar; % end "e" + +cmchar "EGOTH letter f"; +beginchar("f", 2sb#+hstretch*(9/16x_height#+jut#), + (asc_height#), 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +%%rt x6=w-pcshiftx; y6 = 2/3h; +%%x5 = 2/3[x4,x6]; top y5=h; +x6 = x1; y6=y1; rt x8 = w-pcshiftx; y8=h; +%% bar +z14=1/2[z4,z1]; +rt x16 = w -pcshiftx; bot y16 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z6{right}..z8{pdir}; % top +draw z14{right}..z16{pdir}; % bar +ductus:=false; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,14,15,16,100); +endchar; % end "f" + +cmchar "EGOTH letter g"; +beginchar("g", 2sb#+hstretch*(12/16x_height#+2jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := 4/5w - 2pcshiftx; % width of top o +%% S shape +x1 = x3 = x5 = 1/2w; +top y1 = h; bot y5 = -d; y3 = 1/2[y1,y5]; +lft x2 = pcshiftx + jut; rt x4 = w - pcshiftx - jut; +y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5]; +%% bow +z12 = (x4,y2); +lft x16 = pcshiftx; bot y16=-d; +pth2 := z16...z12{up}...z1; +n2 := top y5; +pth3 := (0, n2)--(w, n2); +z6 = pth3 intersectionpoint pth2; +%% top flick +z11=z1; +rt x13 = w-pcshiftx; y13 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{down}..z3..z4{down}..z5{left}..z6; % S +draw pth2; % bow +draw z11{right}..z13{pdir}; % flick +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 "EGOTH letter h"; +beginchar("h", 2sb#+hstretch*(11/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=1/2[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=9/16[x3,x5]; top y4 = h/ascratio; +%%lft x6=x4; bot y6=0; +x6=9/16[x4,x5]; +bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3--z4{right}...z5{down}...z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "EGOTH letter i"; +beginchar("i", 2sb#+hstretch*(thick#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "EGOTH letter j"; +beginchar("j", sb#+hstretch*(3/8x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_flatserif(1,2,srad); +draw z2{down}..z3{-pdir}; % hook +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "EGOTH letter k"; +beginchar("k", 2sb#+hstretch*(13/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% stem +n1 = h/ascratio; % x-height +lft x1=lft x2=pcshiftx+jut; +y1=h; bot y2=0; +%% top arm +%%z3=(x1,1/2n1); +x3 = x1; top y3 = 1/2n1; +rt x5=5/8[x1,w-pcshiftx]; top y5=n1; +x4=1/2[x3,x5]; top y4=n1; +pth1 := z3{pdir}..z5{up}; +%% lower arm +pth2 := (rt x1,0)--(rt x1,h); +z13 = pth1 intersectionpoint pth2; +pickup threequarterquill; +lft x14 = x13; bot y14 = y13; +rt x7=w-pcshiftx; bot y7=0; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw pth1; % upper arm +pickup threequarterquill; +%%draw z14{down}..z7{-ppdir}; % lower arm +%%draw z14{down}..z7; % lower arm +draw z14{-ppdir}..z7{right}; % lower arm +pickup quill; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "k" + +cmchar "EGOTH letter l"; +beginchar("l", 2sb#+hstretch*(thick#+2jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2 =0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "EGOTH letter m"; +beginchar("m", 2sb#+hstretch*(15/16x_height#+2jut#), % 12/16 too narrow, 14 a bit + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of right and middle stems +rt x6 = w -pcshiftx - jut; y6=y2; +z4 = 1/2[z2,z6]; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13--z14{right}..z33{down}--z4; +draw_roundserif(4,3,srad); +draw z33--z34{right}..z5{down}--z6; +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "m" + +cmchar "EGOTH letter n"; +beginchar("n", 2sb#+hstretch*(9/16x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x13=x1; y13=3/4h; +%% right stem +rt x4 = w-pcshiftx-jut; y4=y2; +x3 = x4; y3 = y13; +x14 = 2/3[x13,x3]; top y14 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13--z14{right}..z3{down}--z4; +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "n" + +cmchar "EGOTH letter o"; +beginchar("o", 2sb#+hstretch*(3/4x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +draw z1..z2..z3..z4..cycle; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +%%ductus:=true; +if ductus: + pickup stylus; + draw obfirst; draw obsecond; draw obouter; draw obinner; +else: +%% fill obouter; unfill obinner; +fi +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "o" + +cmchar "EGOTH letter p"; +beginchar("p", 2sb#+hstretch*(11/16x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-d; +%% bowl % from "d" +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; top y4 = h; +x6=x4; bot y6=0; +z7=1/4[(x1,0),z1]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad) +draw z3--z4; draw z4..z5{down}..z6{left}..z7; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "EGOTH letter q"; +beginchar("q", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=-d; +%% bowl +z3=1/4[(x1,0),z1]; +lft x5=pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; bot y4=0; +x6=x4; top y6=h; +%%z7=3/4[(x1,0),z1]; +z7=z1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7{pdir}; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "EGOTH letter r"; +beginchar("r", 2sb#+hstretch*(13/16x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=3/4[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4{right}..z5{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "EGOTH letter s"; +beginchar("s", 2sb#+hstretch*(11/16x_height#+jut#), + 5/6asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := (6/5h)/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +rt x6=w-pcshiftx; top y6 = h; +x5 = 1/2[x4,x6]; +y5 = y6; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +%%draw z4--z5--z6; +draw z1--z5--z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "s" + +cmchar "EGOTH letter t"; +beginchar("t", 2sb#+hstretch*(15/16x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +top y3=h; n3 := h - top y3; +lft x1 = pcshiftx; rt x2=w-pcshiftx; +%%top y1 = y3-n3; bot y2=y3+n3; +y1 = y3-n3; y2=y3; +n1 := w; % width of bowl +n2 := h; % height of bowl +x3=1/2[x1,x2]; +lft x4 = pcshiftx + 1/8n1; y4 = 1/2h; +x5=x3; bot y5 = 0; +rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{pdir}..z3..z2{pdir}; % bar +draw z3..z4{down}..z5{right}..z6{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "EGOTH letter u"; +beginchar("u", 2sb#+hstretch*(9/16x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z1--z13{down}...z14{right}...z33{pdir}; +draw z1--z13--z14{right}...z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "u" + +cmchar "EGOTH letter v"; +beginchar("v", 2sb#+hstretch*(11/16x_height#+jut#), % 13/16 too wide + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +bot y3 = 0; +x3 = 1/2[x1,x5]; +z51 = (x1,0); z55=(x5,0); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,51,srad); +draw z5{down}..z3; % right stem +draw_flatserif(5,55,srad); +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "v" + +cmchar "EGOTH letter w"; +beginchar("w", 2sb#+hstretch*(15/16x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13--z14{right}...z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33--z34{right}...z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "w" + +cmchar "EGOTH letter x"; +beginchar("x", 2sb#+hstretch*(15/16x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx+jut; top y1=h; +rt x2=w-pcshiftx-jut; bot y2=0; +z251 = 7/16[z1,z2]; +%%z252 = 9/16[z1,z2]; +z252 = z251; +%% diag middle to top right +x60 = w-pcshiftx; +top y50 = h; +x50 = 1/2[x251,x60]; +top y60 = y50; +%% diag bottom left to middle +x10 = -1/3w; bot y10=-d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % top left to bottom right +draw_flatserif(1,2,srad); draw_roundserif(2,1,srad); +draw z251...z50{right}...z60; % middle to top right +draw z10{right}..z252; % bottom left to middle +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 "EGOTH letter y"; +beginchar("y", 2sb#+hstretch*(11/16x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% left stem top +lft x1 = pcshiftx + jut; top y1 = h; +bot y3 = 0; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +lft x9=-1/2w; bot y9 = -d; +pth1 := z9{right}..z5{up}; +pth2 := (0,y3)--(w,y3); +z99 = pth1 intersectionpoint pth2; +x3 = x99; +z51 = (x1,0); z55=(x5,0); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,51,srad); +draw pth1; % right stem +draw_flatserif(5,55,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "EGOTH letter z"; +beginchar("z", 2sb#+hstretch*(15/16x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +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; 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; y4=y34; +x34 = 1/2[x3,x4]; +pth2 := z3{pdir}..z34{right}..z4{pdir}; +%% diagonal +z5=z3; +pth3 := z5--(3/4w,h+jut); +z6 = pth3 intersectionpoint pth1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; % bars +draw z5--z6; +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/egothlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothlig.mf new file mode 100644 index 00000000000..d35b2703d3e --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothlig.mf @@ -0,0 +1,269 @@ +%% +%% This is file `egothlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 "EGOTH ct ligature"; +beginchar(oct"014", 2sb#+hstretch*(6/4x_height#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair vc[]; +pickup quill; +%%%%%%%%%%% C + +n1:=1/2(w-2pcshiftx); % actual letter width +n2 := h/ascratio; % x-height +x1=pcshiftx + 1/2n1; top y1 = n2; +lft x2 = pcshiftx; y2 = 1/2n2; +x3 = x1; bot y3 = 0; +rt x4 = n1; y4 = 1/4n2; +x6 = x4; +%%y6 = 3/4n2; +top y6 = y1; +pth1 := z6..z1{left}..z2{down}..z3{right}..z4{pdir}; +%%%%%%%%%%%%% T + +%% bar +top y33=n2; n3 := n2 - top y33; +%%lft x31 = n1+pcshiftx; +lft x31 = n1; +rt x32=w-pcshiftx; +%%top y31 = y33-n3; bot y32=y33+n3; +top y31 = y33-n3; y32=y33; +x33=1/2[x31,x32]; +pth2 := z31{pdir}..z33..z32{pdir}; % T bar +n31 := n1; % width of bowl +%%lft x34 = pcshiftx + n1 + 1/8n31; +lft x34 = n1 + 1/8n31; +y34 = 1/2n2; +x35=x33; bot y35 = 0; +rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2; +pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl + +%%%%%%%%%%%%%%%%% Ligature + +z51=z6; +z55=z33; +x53 = 1/2[x51,x55]; +top y53 = h; +vc51 := direction 0 of pth1; +vc55 := direction 0 of pth3; +pth4 := z51{vc51}..z53{right}..z55{vc55}; % loop +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % C +draw pth2; % T bar +draw pth3; % T bowl +draw pth4; % ligature loop +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100); +endchar; % end of "ct" + + +cmchar "EGOTH st ligature"; +beginchar(oct"015", 2sb#+hstretch*(9/8x_height#+clubjut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair vc[]; +pickup quill; +%%%%%%%%%%% S + +n1:=3/7(w-2pcshiftx-clubjut); % actual letter width +n2 := h/ascratio; % x-height + +%% stem +lft x1=lft x2=pcshiftx+clubjut; top y1=n2; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +%%%%%%%%%%%%% T + +%% bar +top y33=n2; n3 := n2 - top y33; +%%lft x31 = n1+pcshiftx; +lft x31 = n1; +rt x32=w-pcshiftx; +%%top y31 = y33-n3; bot y32=y33+n3; +top y31 = y33-n3; y32=y33; +x33=1/2[x31,x32]; +pth2 := z31{pdir}..z33..z32{pdir}; % T bar +n31 := n1; % width of bowl +%%lft x34 = pcshiftx + n1 + 1/8n31; +lft x34 = n1 + 1/8n31; +y34 = 1/2n2; +x35=x33; bot y35 = 0; +rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2; +pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl + +%%%%%%%%%%%%%%%%% Ligature + +z51=z4; +z55=z33; +x53 = 5/8[x51,x55]; +top y53 = h; +vc51 := up; +vc55 := direction 0 of pth3; +pth4 := z51{vc51}...z53{right}..z55{vc55}; % loop +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % S stem +draw_clubserif(1,2,0.5); +draw_roundserif(2,1,srad); +draw pth2; % T bar +draw pth3; % T bowl +draw pth4; % ligature loop +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100); +endchar; % end of "st" + + +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*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +%%numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; 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*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +%%numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; 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*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +%%numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +draw z21--z22; +draw_roundserif(21,22,srad); draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "---" + + +cmchar "EGOTH ampersand"; +beginchar("&", 2sb#+hstretch*(5/4x_height#+2jut#), asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx:=sb; +pickup quill; +%% alpha looking part +n1 := w-2pcshiftx-jut; % actual letter width +n2 := h/ascratio; % x-height +n3 := 16/16n2; % height of alpha +x1 = w-pcshiftx; bot y1 = 0; +x3 = pcshiftx + 12/16n1; y3 = 1/2n3; +lft x5 = pcshiftx; y5 = y3; +x4 = x6 = 1/2[x5,x3]; +top y4 = n3; bot y6 = 0; +rt x8 = w-pcshiftx; top y8=h; +x9 = x8-2jut; x10-x8 = x8-x9; +y9=y10=y8; +pth1 := z1{left}..z3..z4{left}..z5{down}..z6{right}..z3..z8{up}; +%% loop +z21 = z5; +z25 = point 1.5 of pth1; +x23 = 1/2[x21,x25]; +y23 = 6/8[y4,y8]; +pth2 := z21{up}..z23{right}..z25{down}; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw z9--z8; % alpha +draw pth2; % loop +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,21,22,23,24,25); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothpunct.mf new file mode 100644 index 00000000000..277719599f0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothpunct.mf @@ -0,0 +1,121 @@ +%% +%% This is file `egothpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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/4x_height#), + 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); +x4 = x5; y4=y5+3/2dot_size; +lft x1 = pcshiftx; y1 = 3/4h; +x2 = 1/2w; top y2 = h; +rt x3 = w-pcshiftx; y3 = 2/3h; + +%%ductus:= true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..z4{down}; +draw_pdot(5, dot_size); +penlabels(1,2,3,4,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/egothtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothtitle.mf new file mode 100644 index 00000000000..7a0563ec551 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothtitle.mf @@ -0,0 +1,716 @@ +%% +%% This is file `egothtitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 egothic_font_setup= % contains special stuff for egothic 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(sqrcjut); + 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; + + pickup pencircle xscaled 3/8thick yscaled thin rotated pangle; %% 1/4 too small + thinquill := savepen; + + pickup pencircle xscaled thick yscaled thin rotated cappangle; + capquill:=savepen; + + pickup pencircle xscaled 3/8thick yscaled thin rotated cappangle; %% 1/4 too small + capthinquill := 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 egothic_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_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; +egothic_font_setup; + + +input egothl; % lower case +input egothu; % capitals +input egothpunct; % punctuation +input egothlig; % the several dashes +input egothdig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: + font_normal_space vstretch*9u#; % no stretching or shrinking + font_quad vstretch*18u#; + font_extra_space vstretch*9u#; +else: + font_normal_space vstretch*6u#+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/egothu.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothu.mf new file mode 100644 index 00000000000..9c27fc157b4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/egothu.mf @@ -0,0 +1,836 @@ +%% +%% This is file `egothu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% egothic.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 "EGOTH letter A"; +beginchar("A", 2cap_sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% legs +x1 = 6/16w; top y1=h; +rt x3 = w-pcshiftx - n1; bot y3= 0; +pickup capthinquill; +lft x2 = pcshiftx; bot y2 = 0; +x21 = x2 + n2; y21 = y2; +y22 = y21+n2; z22 = whatever[z2,z1]; +pickup capquill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z3; draw (x1-n1,y1)--(x1,y1); draw (x3,y3)--(x3+n1,y3); %% right leg +pickup capthinquill; +draw z1--z2; %% left leg +filldraw z2--z21{left}..{z1-z2}z22--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "A" + +cmchar "EGOTH letter B"; +beginchar("B", 2cap_sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := cap_sb; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +%% stem +lft x1 = pcshiftx + n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% bottom bowl +lft x21 = pcshiftx; bot y21 = 0; +z22=z2; +lft x27 = rt x12; y27 = y12; +rt x25 = w-pcshiftx; y25 = 1/2[y22,y27]; +pth1 := z21--z22{right}..z25{up}..{left}z27; +%% top bowl +z32 = z27; z37 = z1; +x38 = x21; y38 = y37; +rt x35 = x25; y35 = 1/2[y32,y37]; +pth2 := z38--z37{right}..z35{down}..{left}z27; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw pth1; draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "EGOTH letter C"; +beginchar("C", 2cap_sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := cap_sb; +pickup capquill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{3pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "C" + +cmchar "EGOTH letter D"; +beginchar("D", 2cap_sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := cap_sb; +pickup capquill; +x100 = 0; n1 := rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+sqrcjut; top y1=h; +x2 = x1; bot y2 = 0; +%% bowl +lft x3 = pcshiftx; y3 = y1; +z7 = (x3,y2); +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..{down}z5..{left}z2--z7; +if ductus: + pickup stylus; +fi +draw z1--z2; %% stem +draw pth1; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "EGOTH letter E"; +beginchar("E", cap_sb#+caprat*hstretch*(9/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +x100 = 0; +n1 = rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+sqrcjut; top y1 = h; +x2 = x1; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3; +x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5; +x7 = x3; y7 = y2; x8 = x4; y8=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw z3--z4; draw z5--z6; draw z7--z8; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,70,100); +endchar; % end "E" + +cmchar "EGOTH letter F"; +beginchar("F", 2cap_sb#+caprat*hstretch*(9/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := cap_sb; +pickup capquill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem +lft x1=lft x2=pcshiftx+sqrcjut; bot y1=h; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3; +x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw z3--z4; draw z5--z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "F" + +cmchar "EGOTH letter G"; +beginchar("G", 2cap_sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := cap_sb; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +%% bar +rt x52 = w - pcshiftx; y52 = 1/2h; +x51 = x52 - 2n1; y51 = y52; +z512 = 1/2[z51,z52]; +x54=x512; bot y54 = 0; +%% bowl +lft x2 = pcshiftx; y2 = 1/2h; +x4 = x512; y4 = 1/4h; +x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h; +x24 = x512; y24 = 3/4h; +pth1 := z24..z1{left}..z2{down}..z3{right}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +%%draw z4--z512; draw z51--z52; +draw z512--z54; draw (x512-n1,y512)--(x512,y512); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,12,13,24,31,32,33,34,35,36,51,52,512,100); +endchar; % end "G" + +cmchar "EGOTH letter H"; +beginchar("H", 2cap_sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +pickup capquill; +numeric n[]; +x100 = 0; +n1 := sqrcjut; +%% stems +lft x1=lft x2=pcshiftx+sqrcjut; +top y1=h; bot y2=0; +rt x3 = w - pcshiftx - sqrcjut; x4 = x3; y3 = y1; y4 = y2; +%% bar +z12 = 7/16[z1,z2]; z34 = 7/16[z3,z4]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw z12--z34; +%% serifs +draw (x1-n1,y1)--(x1,y1); draw (x2,y2)--(x2+n1,y2); +draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "EGOTH letter I"; +beginchar("I", 2cap_sb#+caprat*hstretch*(thick#+2sqrcjut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +pickup capquill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x2 = 1/2w; +top y1=h; bot y2=0; +%% serifs +lft x111 = pcshiftx; rt x112 = w-pcshiftx; +x211 = x111; x212 = x112; +draw z1--z2; +%% serifs +draw (x111,y1)--(x112,y1); +draw (x211,y2)--(x212,y2); +ductus:=false; +penlabels(1,2,100); +endchar; % end "I" + +cmchar "EGOTH letter J"; +beginchar("J", 2cap_sb#+caprat*hstretch*(2thick#+sqrcjut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +numeric n[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2 = x1; y2 = 1/4h; +%% hook +lft x4 = pcshiftx; bot y4 = 0; +pth1 := z4{pdir}..z2{up}; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2{down}..{-pdir}z4; % stem & hook +draw (x1-n1,y1)--z1; +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "J" + +cmchar "EGOTH letter K"; +beginchar("K", 2cap_sb#+caprat*hstretch*(16/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +numeric n[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +%% stem +lft x1 = pcshiftx+n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% top arm +x3 = rt x12; y3 = y12; +x5 = 1/2[w - pcshiftx, x1]; y5 = y1; +%%pth1 := z3{pdir}..{up}z5; +pth1 := z3--z5; +%% lower arm +z7 = z3; +rt x9 = w-pcshiftx; bot y9 = 0; +pth2 := z7{-ppdir}..{right}z9; +pickup capquill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; draw pth2; +draw (x1-n1,y1)--(x1,y1); +draw (x2-n1,y2)--(x2+n1,y2); +draw (x5,y5)--(x5+n1,y5); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "K" + +cmchar "EGOTH letter L"; +beginchar("L", 2cap_sb#+caprat*hstretch*(9/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +lft x1=pcshiftx+n1; bot y1=h; +x2=x1; bot y2 =0; +x3 = x2; rt x4 = w-pcshiftx; y3 = y4 = y2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; +draw (x1-n1,y1)--(x1,y1); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "EGOTH letter M"; +beginchar("M", 2cap_sb#+caprat*hstretch*(19/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% thick stem tops +lft x1=pcshiftx+n1; top y1=h; +rt x3 = w - pcshiftx -2n1; y3 = y1; +%% right stem bottom +rt x4 = w - pcshiftx - n1; bot y4 = 0; +%% the V +x24 = 1/2w; bot y24 = 0; +%% left stem top and bottom +x81 = lft x1; y81 = top y1; +pickup capthinquill; +lft x11 = x81; top y11 = y81; +lft x2 = pcshiftx; bot y2 = 0; +x2a = x2+n2; y2a = y2; +y2b = y2+n2; z2b = whatever[z2,z11]; +pickup capquill; +%% thin middle top and bottom +x83 = lft x3; y83 = top y3; +x824 = rt x24; y824 = bot y24; +pickup capthinquill; +lft x13 = x83; top y13 = y83; +rt x124 = x824; bot y124 = y824; +pickup capquill; +pth124 := z1{-ppdir}..z24; +pth34 := z3{down}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%% thick legs +draw pth124; draw pth34; +draw (x1-n1,y1)--(x1,y1); draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4); +%% thin legs +pickup capthinquill; +draw z11--z2; +filldraw z2--z2a{left}..{z11-z2}z2b--cycle; +%%%%pickup quarterquill; + draw z13--z124; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "M" + +cmchar "EGOTH letter N"; +beginchar("N", 2cap_sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +numeric n[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% diagonal +lft x1=pcshiftx+n1; top y1=h; +rt x4 = w -pcshiftx-n1; bot y4 = 0; +x101 = lft x1; +x104 = rt x4; +pth1 := z1{-ppdir}..z4; +%% stems +pickup capthinquill; +lft x21 = x101; top y21 =h; +x22 = x21; bot y22 = 0; +x22a = x22+n2; y22a=y22; +x22b = x22; y22b=y22+n2; +rt x24 = x104; bot y24 = 0; +x23 = x24; top y23 = h; +x23a = x23-n2; x23b = x23+n1; y23a = y23b = y23; +x23c = x23; y23c = y23-n2; +pickup capquill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%% diagonal +draw pth1; draw (x1-n1,y1)--(x1,y1); +%% stems +pickup capthinquill; +draw z21--z22; +filldraw z22--z22a{left}..{up}z22b--cycle; +draw z23--z24; +filldraw z23--z23a{right}..{down}z23c{up}..{right}z23b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,23,23a,23b,23c,100); +endchar; % end "N" + +cmchar "EGOTH letter O"; +beginchar("O", 2cap_sb#+caprat*hstretch*(17/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +pickup capquill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "O" + +cmchar "EGOTH letter P"; +beginchar("P", 2cap_sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +numeric n[]; +pickup capquill; +x100 = 0; +n1:= sqrcjut; +%% stem +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +z12 = 1/2[z1,z2]; +%% bowl +lft x3 = pcshiftx; y3 = y1; +x7 = x12; top y7 = y12; +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..z5{down}..{left}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; +%%draw (x2-n1,y2)--(x2+n1,y2); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "EGOTH letter Q"; +beginchar("Q", 2cap_sb#+caprat*hstretch*(17/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +%% bowl +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +pth1 := z1..z4..z3..z2..cycle; +%% tail +n1 := rt x1 - lft x1; +pth2 := z1..z2..z3..z4; +z5 = directionpoint pdir of pth1; +x7 = x3 + 2n1; top y7 = -n1; +pth3 := z5{-ppdir}..{pdir}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw pth3; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "Q" + +cmchar "EGOTH letter R"; +beginchar("R", 2cap_sb#+caprat*hstretch*(15/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +x100 = 0; +n1:= sqrcjut; +n3 := sqrcjutrat*sqrcjut; +n2 := 11/15; %% P/R width ratio +%% stem +pickup capthinquill; +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +x2a = x2 + n3; y2a = y2; +x2b = x2; y2b = y2+n3; +z12 = 1/2[z1,z2]; +pickup capquill; +%% bowl +lft x3 = pcshiftx; top y3 = h; x13 = x1; y13 = y3; +lft x7 = x12; top y7 = y12; +rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z13{right}..z5{down}..{left}z7; +%% leg +z21 = z7; +rt x23 = w-pcshiftx; bot y23 = 0; +pth2 := z21{-ppdir}..{right}z23; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; +pickup capthinquill; +draw z1--z2; +filldraw z2--z2a{left}..{up}z2b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "EGOTH letter S"; +beginchar("S", 2cap_sb#+caprat*hstretch*(15/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := cap_sb; +pickup capquill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x3 = x5 = 1/2w; +top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5]; +lft x2 = pcshiftx; rt x4 = w-pcshiftx; +y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5]; +rt x101 = w-pcshiftx; top y101 = y1; +lft x102 = pcshiftx; bot y102 = y5; +pth1 := z101..z1..z2..z3..z4..z5..z102; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "S" + +cmchar "EGOTH letter T"; +beginchar("T", 2cap_sb#+caprat*hstretch*(10/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +%% bar +lft x1 = pcshiftx; rt x2=w-pcshiftx; +top y1 = top y2 = h; +pth1 := z1{pdir}..{pdir}z2; +%% stem +z3 = 1/2[z1,z2]; +x4 = x3; bot y4 = 0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % bar +draw z3--z4; % stem +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "EGOTH letter U"; +beginchar("U", 2cap_sb#+caprat*hstretch*(15/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +%% left stem +lft x1 = pcshiftx + n1; top y1 = h; +lft x13=pcshiftx; y13=1/3h; +rt x3=w-pcshiftx-n1; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +pth1 := z1..z13{down}..z14{right}..{pdir}z33; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw (x1-n1,y1)--(x1,y1); +draw z3--z4; +draw (x3-n1,y3)--(x3,y3); +draw (x4,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "U" + +cmchar "EGOTH letter V"; +beginchar("V", 2cap_sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% stem tops +lft x1 = pcshiftx + n1; top y1 = h; +pickup capthinquill; +rt x3 = w - pcshiftx; top y3 = h; +x3a = x3-n2; y3a=y3; +x3b = x3; y3b = y3-n2; +pickup capquill; +%% bottom +x13 = 10/16[x1,x3]; bot y13 = 0; +x83 = rt x13; y83 = top y13; +pth1 := z1{down}..z13; +pth2 := z3{down}..z83; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw (x1-n1,y1)--(x1,y1); + +pickup capthinquill; +draw pth2; +filldraw z3--z3a{right}..{down}z3b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "V" + +cmchar "EGOTH letter W"; +beginchar("W", 2cap_sb#+caprat*hstretch*(22/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% thick leg tops +lft x1 = pcshiftx + n1; top y1 = h; +x3 = 1/2w; y3 = y1; +%% thin leg top +pickup capthinquill; +rt x5 = w-pcshiftx; top y5 = h; +x5a = x5-n2; y5a = y5; +x5b = x5; y5b = y5-n2; +pickup capquill; +%% V bottoms +x13 = 1/2[x1,x3]; bot y13 = 0; +x35 = 1/2[x3,x5]; bot y35 = 0; +pth113 := z1{down}..z13; +pth335 := z3{down}..z35; +x83 = x3; y83 = top y3; +x813 = rt x13; y813 = bot y13; +x835 = rt x35; y835 = bot y35; +%% thin legs +pickup capthinquill; +rt x113 = x813; bot y113 = y813; +rt x135 = x835; bot y135 = y835; +%%ductus:=true; +if ductus: + pickup stylus; +fi +pickup capquill; +draw pth113; draw pth335; draw (x1-n1,y1)--(x1,y1); +pickup capthinquill; +draw z113..{up}z3; draw z135..{up}z5; +filldraw z5--z5a{right}..{down}z5b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "W" + +cmchar "EGOTH letter X"; +beginchar("X", 2cap_sb#+caprat*hstretch*(17/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := cap_sb; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% diag top left to bottom right +lft x1=pcshiftx+n1; top y1 = h; +rt x2 = w - pcshiftx - n1; bot y2 = 0; +%% diag top right to bottom left +pickup capthinquill; +rt x3 = w - pcshiftx - n1; top y3 = h; +lft x4 = pcshiftx; bot y4 = 0; +x3a = x3-n2; x3b = x3+n1; y3a = y3b = y3; +y3c = y3-n2; z3c = whatever[z3,z4]; +x4a = x4+n2; y4a = y4; +y4b = y4+n2; z4b = whatever[z4,z3]; +pickup capquill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw (x1-n1,y1)--(x1,y1); +draw (x2,y2)--(x2+n1,y2); +pickup capthinquill; +draw z3--z4; +filldraw z3--z3a{right}..{z4-z3}z3c{z3-z4}..{right}z3b--cycle; +filldraw z4--z4a{left}..{z3-z4}z4b--cycle; +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 "EGOTH letter Y"; +beginchar("Y", 2cap_sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +numeric n[]; +pickup capquill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% upright +x5 = 1/2w; y5 = 1/2h; +x6 = x5; bot y6 = 0; +%% left stem top +lft x1 = pcshiftx + n1; top y1 = h; +%% right stem +x85 = rt x5; y85 = top y5; +pickup capthinquill; +rt x3=w-pcshiftx; top y3 = h; +x4=x85; y4 = y85; +x3a=x3-n2; y3a = y3; +y3b = y3-n2; z3b = whatever[z3,z4]; +pickup capquill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem +draw z1--z5; draw (x1-n1,y1)--(x1,y1); % left arm +pickup capthinquill; +draw z3--z4; +filldraw z3--z3a{right}..{z4-z3}z3b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "EGOTH letter Z"; +beginchar("Z", 2cap_sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +n1 := sqrcjutrat*sqrcjut; +path pth[]; +pcshiftx := cap_sb; +pickup capquill; +%% top bar ends +lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h; +x101 = lft x1; y101 = top y1; +%% bottom bar ends +lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0; +x104 = rt x4; y104 = bot y4; +pickup stylus; +lft x11 = x101; top y11 = y101; +x12 = x11; y12 = y11-n1; +x13 = x11+n1; y13 = y11; +rt x14 = x104; bot y14 = y104; +x15 = x14; y15 = y14 + n1; +x16 = x14 - n1; y16 = y14; +pickup capquill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; +draw z2--z3; +pickup stylus; +filldraw z11--z12{up}..{right}z13--cycle; +filldraw z14--z15{down}..{left}z16--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,10o,10i,14,14,16,20o,20i,100); +endchar; % end "Z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmin10.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmin10.mf new file mode 100644 index 00000000000..cb133dab348 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hmin10.mf @@ -0,0 +1,80 @@ +%% +%% This is file `hmin10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 +%% +%%% HMIN10.MF Humanist Miniscule at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HMIN"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.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.00; + + 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/2u#; % unit for 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:=25; % pen angle + ascratio:=7/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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#; +comma_width#:=4/4dot_size#; + +generate hmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmin17.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmin17.mf new file mode 100644 index 00000000000..bdff7bc0f15 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hmin17.mf @@ -0,0 +1,80 @@ +%% +%% This is file `hmin17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 +%% +%%% HMIN17.MF Humanist Miniscule at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HMIN"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.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.00; + + 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/2u#; % unit for 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:=25; % pen angle + ascratio:=7/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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#; +comma_width#:=4/4dot_size#; + +generate hmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmin7.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmin7.mf new file mode 100644 index 00000000000..ab72e6094d5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hmin7.mf @@ -0,0 +1,80 @@ +%% +%% This is file `hmin7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 +%% +%%% HMIN7.MF Humanist Miniscule at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HMIN"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.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.00; + + 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/2u#; % unit for 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:=25; % pen angle + ascratio:=7/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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#; +comma_width#:=4/4dot_size#; + +generate hmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminb10.mf new file mode 100644 index 00000000000..e4f0ae89b33 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hminb10.mf @@ -0,0 +1,80 @@ +%% +%% This is file `hminb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 +%% +%%% HMINB10.MF Humanist Miniscule Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HMINB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.00; + + 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/2u#; % unit for 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:=25; % pen angle + ascratio:=7/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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#; +comma_width#:=4/4dot_size#; + +generate hmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminb17.mf new file mode 100644 index 00000000000..3f0bdd12541 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hminb17.mf @@ -0,0 +1,80 @@ +%% +%% This is file `hminb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 +%% +%%% HMINB17.MF Humanist Miniscule Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HMINB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.00; + + 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/2u#; % unit for 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:=25; % pen angle + ascratio:=7/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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#; +comma_width#:=4/4dot_size#; + +generate hmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminb7.mf new file mode 100644 index 00000000000..f26b9d8ba96 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hminb7.mf @@ -0,0 +1,80 @@ +%% +%% This is file `hminb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 +%% +%%% HMINB7.MF Humanist Miniscule Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HMINB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.00; + + 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/2u#; % unit for 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:=25; % pen angle + ascratio:=7/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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#; +comma_width#:=4/4dot_size#; + +generate hmintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmindig.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmindig.mf new file mode 100644 index 00000000000..b1b9c4dd257 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hmindig.mf @@ -0,0 +1,223 @@ +%% +%% This is file `hmindig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 "Uncial digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "1" + +cmchar "Uncial digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(5,6,thin); % foot +draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "Uncial digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +%%lft x6=pcshiftx+3thin; x7=x6; +x6=1/2[x3,x9]; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl +draw z7{right}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "Uncial digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw_wave(3,4,thin); % crossbar +draw z3wl--z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "Uncial digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(2,1,thin); % top squiggle +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +draw z2wl--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "Uncial digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "Uncial 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 "Uncial digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "Uncial digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Uncial digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminl.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminl.mf new file mode 100644 index 00000000000..caf09f4498e --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hminl.mf @@ -0,0 +1,786 @@ +%% +%% This is file `hminl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 "HMIN letter a"; +beginchar("a", 2sb#+hstretch*(11/11x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +rt x1 = w-pcshiftx-jut; top y1=h; +x2 = x1; bot y2=0; +z16 = 1/6[z2,z1]; +rt x6 = x16; y6=y16; +lft x4 = pcshiftx; y4 = 1/2h; +pth1 := z1{down}..z2; +pr1 := direction 1 of pth1; +z20 = z2 shifted -10pr1; + +z11 = point 3/13 of pth1; z15 = point 10/13 of pth1; +lft x13 = pcshiftx; y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + draw_roundserif(1,2,srad); + draw_roundserif(2,20,srad); + % draw bowl +%% draw z1{-pdir}..z4{down}..z6{pdir}; + draw z11{-pdir}..z13{down}..z15{pdir}; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "a" + +cmchar "HMIN letter b"; +beginchar("b", 2sb#+hstretch*(13/11x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +%%ductus:=true; +lft x1 = pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x12=x2; bot y12=y2; +x3 = x1; y3=1/2n2; +rt x5 = w-pcshiftx; y5=y3; +x4 = 1/2[x3,x5]; bot y4=0; +x6=x4; top y6=n2; +pth1 := z1..z3{down}..z4{right}.. z5{up}; +z98=(0,3/4n2); z99=(w,y98); +pth2 := z98--z99; +z7 = pth1 intersectionpoint pth2; +if ductus: + pickup stylus; +fi +%%draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir}; +draw z1--z2; +draw_flatserif(1,2,srad); +draw z12..z4{right}..z5{up}..z6{left}..z7{-pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "HMIN letter c"; +beginchar("c", 2sb#+hstretch*(11/11x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "c" + +cmchar "HMIN letter d"; +beginchar("d", 2sb#+hstretch*(13/11x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1 = h/ascratio; % x-height +rt x1=w-pcshiftx-jut; top y1=h; +x2 = x1; bot y2=0; +x3 = x1; y3 = 1/4n1; +lft x5 = pcshiftx; y5=1/2n1; +x4 = 1/2[x3,x5]; bot y4 = 0; +x6=x4; top y6 = n1; +x7=x3; y7=3/4n1; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3..z4{left}..z5{up}..z6{right}..z7; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "CMIN letter e"; +beginchar("e", sb#+hstretch*(12/11x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := 7/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +z98=(0,5/8h); z99=(2w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x17 = w; y17=y7; +rt x8 =pcshiftx+n2; y8=y2; +pth3 := z1{right}..z8{down}..z3{left}; +z9 = pth1 intersectionpoint pth3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z9{up}..z1{left}..z2{down}..z3{right}..z4{pdir}; +draw z7--z17; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,70,100); +endchar; % end "e" + +cmchar "HMIN letter f"; +beginchar("f", 2sb#+hstretch*(11/11x_height#+jut#), + (asc_height#), 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%% bar +x14=pcshiftx; top y14=n1; +rt x16 = w -pcshiftx; y16 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_roundserif(2,1,srad); +draw z1{up}...z5{right}...z6; % top +draw z14--z16; % bar +ductus:=false; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "f" + +cmchar "CMIN letter g"; +beginchar("g", 2sb#+hstretch*(16/11x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := 4/5w - 2pcshiftx; % width of top o +%% top O +x1 = x3 = pcshiftx + 1/2n1; top y1=h; bot y3=1/8h; +lft x4 = pcshiftx; rt x2 = pcshiftx+n1; y2 = y4 = 1/2[y1,y3]; + +%% top flick +lft x11 = rt x1; y11=y1; +rt x13 = w-pcshiftx; y13 = h; + +%% bottom O +x31=x3; top y31= -1/8d; +x33=x31; top y33 = -d; +lft x32 = x2; y32 = 1/2[y31,y33]; +lft x34 = pcshiftx; y34=y32; + +%% link +x44=1/2[x34,x31]; y44=1/2[y3,y31]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; % top O +draw z11{right}..z13{pdir}; % flick +draw z31{right}..z32{down}..z33{left}..{up}z34..cycle; % bottom O +draw z3{left}..z44{down}..z31{right}; % link +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 "HMIN letter h"; +beginchar("h", 2sb#+hstretch*(13/11x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +n1 := h/ascratio; % x-height +z3=(x1,6/8n1); +rt x5 = w-pcshiftx; y5=1/2n1; +x4=1/2[x3,x5]; top y4 = n1; +%%lft x6=x4; bot y6=0; +x6=1/2[x4,x5]; +bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3..z4{right}..z5{down}..z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "CMIN letter i"; +beginchar("i", 2sb#+hstretch*(thick#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% dot +x22 = x21=x1; +bot y22 = 2h - bot y1; +bot y21 = top y22; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z21--z22; %% dot +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "CMIN letter j"; +beginchar("j", sb#+hstretch*(3/8x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% dot +x22 = x21=x1; +bot y22 = 2h - bot y1; +bot y21 = top y22; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_flatserif(1,2,srad); +draw z21--z22; % dot +draw z2{down}..z3{-pdir}; % hook +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "HMIN letter k"; +beginchar("k", 2sb#+hstretch*(14/11x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% stem +n1 = h/ascratio; % x-height +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% top arm +%%z3=(x1,1/2n1); +x3 = x1; top y3 = 1/2n1; +rt x5=5/8[x1,w-pcshiftx]; top y5=n1; +x4=1/2[x3,x5]; top y4=n1; +pth1 := z3{pdir}..z5{up}; + +x29=x1; top y29 = 7/8n1; +rt x25=5/8[x1,w-pcshiftx]; y25=6/8[y3,y29]; +x27=1/2[x29,x25]; top y27=n1; +pth1 := z3{pdir}..z25{up}..z27{left}..z29; +pth1 := z3{pdir}..z25..z27{left}..z29; + +%% lower arm +pth2 := (rt x1,0)--(rt x1,h); +z13 = pth1 intersectionpoint pth2; +pickup threequarterquill; +lft x14 = x13; bot y14 = y13; +rt x7=w-pcshiftx; bot y7=0; + +pth3 := z14{pdir}..z25..z27{left}..z29; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +%%draw pth1; % upper arm +draw pth3; % upper arm +pickup threequarterquill; +%%draw z14{down}..z7{-ppdir}; % lower arm +%%draw z14{down}..z7; % lower arm +draw z14{-ppdir}..z7{right}; % lower arm +pickup quill; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "k" + +cmchar "HMIN letter l"; +beginchar("l", 2sb#+hstretch*(9/11x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +n1 := top y1 - y1; +x2=x1; bot y2 =3n1; +rt x4 = w-pcshiftx; bot y4=n1; +x3=1/2[x2,x4]; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2..z3{right}..z4; +draw_flatserif(1,2,srad); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "HMIN letter m"; +beginchar("m", 2sb#+hstretch*(19/11x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of right and middle stems +rt x6 = w -pcshiftx - jut; y6=y2; +z4 = 1/2[z2,z6]; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z33{down}--z4; +draw_roundserif(4,3,srad); +draw z33{pdir}..z34{right}..z5{down}--z6; +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "m" + +cmchar "HMIN letter n"; +beginchar("n", 2sb#+hstretch*(12/11x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x13=x1; y13=3/4h; +%% right stem +rt x4 = w-pcshiftx-jut; y4=y2; +x3 = x4; y3 = y13; +x14 = 2/3[x13,x3]; top y14 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z3{down}--z4; +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "n" + +cmchar "CMIN letter o"; +beginchar("o", 2sb#+hstretch*(15/11x_height#), % could be 15/11 + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +draw z1..z2..z3..z4..cycle; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +%%ductus:=true; +if ductus: + pickup stylus; + draw obfirst; draw obsecond; draw obouter; draw obinner; +else: +%% fill obouter; unfill obinner; +fi +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "o" + +cmchar "CMIN letter p"; +beginchar("p", 2sb#+hstretch*(13/11x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-d; +%% bowl % from "d" +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; top y4 = h; +x6=x4; bot y6=0; +z7=1/4[(x1,0),z1]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad) +draw z3{pdir}..z4{right}..z5{down}..z6{left}..z7; % bowl (from d) +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "CMIN letter q"; +beginchar("q", 2sb#+hstretch*(13/11x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=-d; +%% bowl +z3=1/4[(x1,0),z1]; +lft x5=pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; bot y4=0; +x6=x4; top y6=h; +z7=3/4[(x1,0),z1]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "CMIN letter r"; +beginchar("r", 2sb#+hstretch*(10/11x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=3/4[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4{right}..z5{down}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "HMIN letter s"; +beginchar("s", 2sb#+hstretch*(11/11x_height#+jut#), % 13/11 seems too wide + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +x2=x4=x6=1/2w; +rt x1 = rt x5 = w-pcshiftx; +lft x3 = lft x7 = pcshiftx; +top y2=h; bot y6=0; +y4 = 7/16[y6,y2]; +n1 := top y2 - y2; +y3 = 1/2[y4,y2]; y5 = 1/2[y4,y6]; +y1 = y2-n1; +y7 = y6+n1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "s" + +cmchar "CMIN letter t"; +beginchar("t", 2sb#+hstretch*(8/11x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +lft x11 = pcshiftx; rt x12=w-pcshiftx; +top y11= top y12=h; +n1 := top y11 - y11; +%% stem +lft x1=pcshiftx+jut; bot y1=h+n1; +x2=x1; bot y2 = 2n1; +rt x4 = w-pcshiftx; bot y4 = n1; +x3 = 1/2[x2,x4]; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z11--z12; % bar +draw z1--z2..z3..z4; % stem +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "CMIN letter u"; +beginchar("u", 2sb#+hstretch*(11/11x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "u" + +cmchar "CMIN letter v"; +beginchar("v", 2sb#+hstretch*(13/11x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% left stem top +lft x1 = pcshiftx + jut; top y1 = h; +bot y3 = 0; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +x3=5/8[x1,x5]; + +z11=(x1,0); z15=(x5,0); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,11,srad); +draw z5{down}..z3; % right stem +draw_flatserif(5,15,srad); +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "v" + +cmchar "CMIN letter w"; +beginchar("w", 2sb#+hstretch*(21/11x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33{down}..z34{right}..z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "w" + +cmchar "CMIN letter x"; +beginchar("x", 2sb#+hstretch*(13/11x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; + +lft x1 = pcshiftx + jut; y1=h; +rt x2 = w - pcshiftx - jut; y2 =0; + +lft x21=pcshiftx; bot y21=0; +rt x22=w-pcshiftx; top y22=h; +z12=14/24[z1,z2]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw_roundserif(1,2,srad); +draw_roundserif(2,1,srad); + +draw z21..z12..z22{up}; + +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 "CMIN letter y"; +beginchar("y", 2sb#+hstretch*(14/11x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% left stem top +lft x1 = pcshiftx + jut; top y1 = h; +bot y3 = 0; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +lft x9=-1/2w; bot y9 = -d; +pth1 := z9{right}..z5{up}; +pth2 := (0,y3)--(w,y3); +z99 = pth1 intersectionpoint pth2; +x3 = x99; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,3,srad); +draw pth1; % right stem +draw_flatserif(5,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "CMIN letter z"; +beginchar("z", 2sb#+hstretch*(12/11x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +%% top bar ends +lft x1 = pcshiftx; rt x2 = w-pcshiftx; +top y1 = top y2 = h; +%% bottom bar +x3=x1; x5=x2; x4=1/2[x3,x5]; +bot y3 = bot y4 = 0; +bot y5 = y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % top bar +draw z3--z4..z5; % bottom bar +draw z2--z3; % diagonal +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/hminlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminlig.mf new file mode 100644 index 00000000000..5c9b142b31c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hminlig.mf @@ -0,0 +1,262 @@ +%% +%% This is file `hminlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 "The ct ligature"; +beginchar(oct"014", 2sb#+hstretch*(20/11x_height#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair vc[]; +pickup quill; + +%%%%%%%%%%% C + +n1:=1/2(w-2pcshiftx); % actual letter width +n2 := h/ascratio; % x-height +x1=pcshiftx + 1/2n1; top y1 = n2; +lft x2 = pcshiftx; y2 = 1/2n2; +x3 = x1; bot y3 = 0; +rt x4 = n1; y4 = 1/4n2; +x6 = x4; +%%y6 = 3/4n2; +top y6 = y1; +pth1 := z6..z1{left}..z2{down}..z3{right}..z4{pdir}; + +%%%%%%%%%%%%% T + +%% bar +top y33=n2; n3 := n2 - top y33; +%%lft x31 = n1+pcshiftx; +lft x31 = n1; +rt x32=w-pcshiftx; +%%top y31 = y33-n3; bot y32=y33+n3; +%%top y31 = y33-n3; y32=y33; +y31 = y32 = y33; +x33=1/2[x31,x32]; +pth2 := z31--z32; % T bar + +n4 := top y33 - y33; +x34 = x33; bot y34 = 2n4; +rt x36 = w - pcshiftx; bot y36 = n4; +x35 = 1/2[x34,x36]; bot y35 = 0; +pth3 := z33--z34..z35..z36; % T stem + +%%%%%%%%%%%%%%%%% Ligature + +z51=z6; +z55=z33; +x53 = 1/2[x51,x55]; +top y53 = h; +vc51 := direction 0 of pth1; +vc55 := direction 0 of pth3; +pth4 := z51{vc51}..z53{right}..z55{vc55}; % loop +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % C +draw pth2; % T bar +draw pth3; % T bowl +draw pth4; % ligature loop +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100); +endchar; % end of "ct" + + +cmchar "The st ligature"; +beginchar(oct"015", 2sb#+hstretch*(15/11x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair vc[]; +pickup quill; +%%%%%%%%%%% S + +n1:=3/7(w-2pcshiftx-jut); % actual letter width +n2 := h/ascratio; % x-height + +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=n2; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +%%%%%%%%%%%%% T + +%% bar +top y33=n2; n3 := n2 - top y33; +%%lft x31 = n1+pcshiftx; +lft x31 = n1; +rt x32=w-pcshiftx; +%%top y31 = y33-n3; bot y32=y33+n3; +%%top y31 = y33-n3; y32=y33; +y31 = y32 = y33; +x33=1/2[x31,x32]; +pth2 := z31--z32; % T bar + +n4 := top y33 - y33; +x34 = x33; bot y34 = 2n4; +rt x36 = w - pcshiftx; bot y36 = n4; +x35 = 1/2[x34,x36]; bot y35 = 0; +pth3 := z33--z34..z35..z36; % T stem + +%%%%%%%%%%%%%%%%% Ligature + +z51=z4; +z55=z33; +x53 = 5/8[x51,x55]; +top y53 = h; +vc51 := up; +vc55 := direction 0 of pth3; +pth4 := z51{vc51}...z53{right}..z55{vc55}; % loop +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % S stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw pth2; % T bar +draw pth3; % T bowl +draw pth4; % ligature loop +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100); +endchar; % end of "st" + + +cmchar "Closing quotes"; +beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_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#),7/8asc_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*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup threequarterquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +z31 = z21 shifted (-jut*pdir); +draw z21--z22; +draw z31--z21; +draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "-" + + +cmchar "En dash"; +beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup threequarterquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +z31 = z21 shifted (-jut*pdir); +draw z21--z22; +%%draw_roundserif(21,22,srad); +draw z31--z21; +draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "--" + + +cmchar "Em dash"; +beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup threequarterquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +z31 = z21 shifted (-jut*pdir); +draw z21--z22; +%%draw_roundserif(21,22,srad); +draw z31--z21; +draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "---" + + +cmchar "HMIN ampersand"; +beginchar("&", 2sb#+hstretch*(15/11x_height#+2jut#), asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx:=sb; +pickup quill; +%% alpha looking part +n1 := w-2pcshiftx-jut; % actual letter width +n2 := h/ascratio; % x-height +n3 := 16/16n2; % height of alpha +rt x1 = w-pcshiftx; bot y1=0; + +x3 = pcshiftx + 12/16n1; y3 = 1/2n2; + +lft x5 = pcshiftx + thick; y5 = 1/2[n2,h]; +rt x7 = lft x5 + 1/2n1; y7 = y5; +x6 = 1/2[x5,x7]; top y6 = h; + +lft x9 = pcshiftx; y9 = 1/2n2; +rt x10 = pcshiftx + 1/2n1; bot y10 = 0; + +rt x12 = w - pcshiftx; y12 = y7; + +x4 = x6; y4 = 1/2[y9,y5]; + +pth1 = z1..z4..z5{up}..z6{right}..z7{down}..z9{down}..z10{right}..{up}z12; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,21,22,23,24,25); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminpunct.mf new file mode 100644 index 00000000000..aad6f0cae47 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hminpunct.mf @@ -0,0 +1,121 @@ +%% +%% This is file `hminpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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*(11/11x_height#), + 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); +x4 = x5; y4=y5+3/2dot_size; +lft x1 = pcshiftx; y1 = 3/4h; +x2 = 1/2w; top y2 = h; +rt x3 = w-pcshiftx; y3 = 2/3h; + +%%ductus:= true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..z4{down}; +draw_pdot(5, dot_size); +penlabels(1,2,3,4,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=2/3h; y2=1/2dot_size; +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=2/3h; 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#),7/8asc_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#),7/8asc_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/hmintitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmintitle.mf new file mode 100644 index 00000000000..967ff8b8cb2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hmintitle.mf @@ -0,0 +1,706 @@ +%% +%% This is file `hmintitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 humanist_font_setup= % contains special stuff for humanist 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); + 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); + 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 humanist_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_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{down}..{left}z$uv--z$vu{right}..{up}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{down}..{right}z$uv--z$vu{left}..{up}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; +humanist_font_setup; + + +input hminl; % lower case +input hminu; % capitals +input hminpunct; % punctuation +input hminlig; % the several dashes +input hmindig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: + font_normal_space vstretch*9u#; % no stretching or shrinking + font_quad vstretch*18u#; + font_extra_space vstretch*9u#; +else: + font_normal_space vstretch*6u#+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/hminu.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminu.mf new file mode 100644 index 00000000000..a519672fe45 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hminu.mf @@ -0,0 +1,765 @@ +%% +%% This is file `hminu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% humanist.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 "HMIN letter A"; +beginchar("A", 2sb#+caprat*hstretch*(20/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +x100 = 0; +n2 := rt x100 - lft x100; +n1 := w - 2pcshiftx - n2; % effective letter width +%% legs +x1 = pcshiftx + n1/2; top y1=h; +lft x2 = pcshiftx; bot y2 = 0; +rt x3 = pcshiftx + n1; y3=y2; +rt x4 = w-pcshiftx; y4=y3; +%% bar +z12=10/16[z1,z2]; z83=10/16[z1,z3]; +z13 = (x83 - n2,y83); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z1--z3; draw z12--z13; %% legs and bar +draw z3--z4; draw z2--(x2+n2,y2); draw (x1-n2,y1)--z1; %% serifs +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "A" + +cmchar "HMIN letter B"; +beginchar("B", 2sb#+caprat*hstretch*(14/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem +lft x1 = pcshiftx + n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% bottom bowl +lft x21 = pcshiftx; bot y21 = 0; +z22=z2; +lft x27 = rt x12; y27 = y12; +rt x25 = w-pcshiftx; y25 = 1/2[y22,y27]; +pth1 := z21--z22{right}..z25{up}..{left}z27; +%% top bowl +z32 = z27; z37 = z1; +x38 = x21; y38 = y37; +rt x35 = x25; y35 = 1/2[y32,y37]; +pth2 := z38--z37{right}..z35{down}..{left}z27; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw pth1; draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "HMIN letter C"; +beginchar("C", 2sb#+caprat*hstretch*(16/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "C" + +cmchar "HMIN letter D"; +beginchar("D", 2sb#+caprat*hstretch*(18/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; n1 := rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+n1; top y1=h; +x2 = x1; bot y2 = 0; +%% bowl +lft x3 = pcshiftx; y3=y1; +x7 = x3; y7=y2; +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..{down}z5..{left}z2--z7; +if ductus: + pickup stylus; +fi +draw z1--z2; %% stem +draw pth1; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "HMIN letter E"; +beginchar("E", sb#+caprat*hstretch*(14/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 = rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+n1; top y1 = h; +x2 = x1; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3; +x5=x1; y5 = 1/2[y1,y2]; x6 = x4; y6 = y5; +x7 = x3; y7 = y2; x8 = x4; y8=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw z3--z4; draw z5--z6; draw z7--z8; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,70,100); +endchar; % end "E" + +cmchar "HMIN letter F"; +beginchar("F", 2sb#+caprat*hstretch*(14/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem +lft x1=lft x2=pcshiftx+n1; top y1=h; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3; +x5=x1; y5 = 1/2[y1,y2]; x6 = x4; y6 = y5; +%% serif +x211 = x2 - n1; y211 = y2; +x212 = x2 + n1; y212 = y2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw z3--z4; draw z5--z6; +draw z211--z212; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "F" + +cmchar "HMIN letter G"; +beginchar("G", 2sb#+caprat*hstretch*(19/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% bar +rt x52 = w - pcshiftx; y52 = 1/2h; +x51 = x52 - 2n1; y51 = y52; +z512 = 1/2[z51,z52]; +%% bowl +lft x2 = pcshiftx; y2 = 1/2h; +x4 = x512; y4 = 1/4h; +x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h; +x24 = x512; y24 = 3/4h; +pth1 := z24..z1{left}..z2{down}..z3{right}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw z4--z512; draw z51--z52; +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 "HMIN letter H"; +beginchar("H", 2sb#+caprat*hstretch*(18/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +x100 = 0; +n1 := rt x100 - lft x100; +%% stems +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +rt x3 = w - pcshiftx - n1; x4 = x3; y3 = y1; y4 = y2; +%% bar +z12 = 1/2[z1,z2]; z34 = 1/2[z3,z4]; +%% serifs +rt x111 = lft x1; y111 = y1; lft x112 = rt x1; y112 = y111; % TL +x211 = x111; x212 = x112; y211 = y212 = y2; % BL +rt x311 = lft x3; y311 = y3; lft x312 = rt x3; y312 = y311; % TR +x411 = x311; x412 = x4+n1; y411 = y412 = y4; % BR +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw z12--z34; +draw (x1-n1,y1)--(x1+n1,y1); draw (x2-n1,y2)--(x2+n1,y2); +draw (x3-n1,y3)--(x3+n1,y3); draw (x4-n1,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "HMIN letter I"; +beginchar("I", 2sb#+caprat*hstretch*(thick#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x2 = 1/2w; +top y1=h; bot y2=0; +%% serifs +rt x111 = lft x1; lft x112 = rt x1; y111 = y112 = y1; +x211 = x111; x212 = x112; y211 = y212 = y2; +%%ductus:=true; +draw z1--z2; +draw z111--z112; draw z211--z212; +ductus:=false; +penlabels(1,2,100); +endchar; % end "I" + +cmchar "HMIN letter J"; +beginchar("J", 2sb#+caprat*hstretch*(10/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem serif +rt x112 = w - pcshiftx; top y112 = h; +x111 = x112 - n1; y111 = y112; +%% stem +z1 = 1/2[z111,z112]; +x2 = x1; y2 = 1/4h; +%% hook +lft x4 = pcshiftx; y4 = 1/2y2; +x3 = 1/2[x2,x4]; bot y3 = 0; +pth1 := z2{down}..z3{left}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw z111--z112; +draw pth1; +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "J" + +cmchar "HMIN letter K"; +beginchar("K", 2sb#+caprat*hstretch*(17/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% top arm +x3 = rt x12; y3 = y12; +rt x5 = w - pcshiftx - n1; y5 = y1; +%%pth1 := z3{pdir}..{up}z5; +pth1 := z3--z5; +%% lower arm +z7 = z3; +rt x9 = w-pcshiftx; bot y9 = 0; +pth2 := z7{-ppdir}..{right}z9; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; draw pth2; +draw (x1-n1,y1)--(x1+n1,y1); +draw (x2-n1,y2)--(x2+n1,y2); +draw (x5,y5)--(x5+n1,y5); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "K" + +cmchar "HMIN letter L"; +beginchar("L", 2sb#+caprat*hstretch*(12/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +x100 = 0; n1 := rt x100 - lft x100; +lft x1=pcshiftx+n1; top y1=h; +x2=x1; bot y2 =0; +lft x3 = pcshiftx; rt x4 = w-pcshiftx; y3 = y4 = y2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; +draw (x1-n1,y1)--(x1+n1,y1); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "HMIN letter M"; +beginchar("M", 2sb#+caprat*hstretch*(25/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% left stem +lft x1=pcshiftx+n1; top y1=h; +lft x2=pcshiftx; bot y2=0; +%% right stem +rt x4 = w - pcshiftx - n1; y4 = y2; +x3 = x4 - n1; y3 = y1; +%% the V +z24 = 1/2[z2,z4]; +pth1 := z1{-ppdir}..{down}z24; +pth2 := z3{down}..{down}z24; +%% serifs +x111 = x1 - n1; y111 = y1; % TL +x212 = x2+n1; y212 = y2; % BL +x311 = x3-n1; y311 = y3; % TR +x412 = x4+n1; y412 = y4; % BR +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw pth1; draw pth2; +draw z111--z1; draw z2--z212; +draw z311--z3; draw z4--z412; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "M" + +cmchar "HMIN letter N"; +beginchar("N", 2sb#+caprat*hstretch*(22/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stems +lft x1=pcshiftx+n1; top y1=h; x2=x1; bot y2=0; +rt x3 = w - pcshiftx - n1; x4 = x3; y3 = y1; y4 = y2; +pth1 := z1{-ppdir}..{-ppdir}z4; +%% serifs +x111 = x1 - n1; x112 = x1 + n1; y111 = y112 = y1; % TL +x211 = x111; x212 = x112; y211 = y212 = y2; % BL +x311 = x3 - n1; x312 = x3 + n1; y311 = y312 = y3; % TR +x411 = x311; x412 = x312; y411 = y412 = y4; % BR +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw pth1; +draw z111--z112; draw z211--z212; +draw z311--z312; draw z411--z412; +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "N" + +cmchar "HMIN letter O"; +beginchar("O", 2sb#+caprat*hstretch*(18/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "O" + +cmchar "HMIN letter P"; +beginchar("P", 2sb#+caprat*hstretch*(14/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1:= rt x100 - lft x100; +%% stem +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +z12 = 1/2[z1,z2]; +%% bowl +z3 = (pcshiftx,y1); +x7 = x12; top y7 = y12; +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..z5{down}..{left}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; +draw (x2-n1,y2)--(x2+n1,y2); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "HMIN letter Q"; +beginchar("Q", 2sb#+caprat*hstretch*(18/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% bowl +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +pth1 := z1..z4..z3..z2..cycle; +%% tail +n1 := rt x1 - lft x1; +pth2 := z1..z2..z3..z4; +z5 = directionpoint pdir of pth1; +x7 = x3 + 2n1; top y7 = -n1; +pth3 := z5{-ppdir}..{pdir}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw pth3; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "Q" + +cmchar "HMIN letter R"; +beginchar("R", 2sb#+caprat*hstretch*(18/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1:= rt x100 - lft x100; +n2 := 14/18; %% P/R width ratio +%% stem +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +z12 = 1/2[z1,z2]; +%% bowl +z3 = (pcshiftx,y1); +x7 = x12; top y7 = y12; +rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..z5{down}..{left}z7; +%% leg +z21 = z7; +x23 = w-pcshiftx; bot y23 = 0; +pth2 := z21{-ppdir}..{right}z23; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; draw pth2; +draw (x2-n1,y2)--(x2+n1,y2); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "HMIN letter S"; +beginchar("S", 2sb#+caprat*hstretch*(15/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x3 = x5 = 1/2w; +top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5]; +lft x2 = pcshiftx; rt x4 = w-pcshiftx; +y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5]; +rt x101 = w-pcshiftx; top y101 = y1; +lft x102 = pcshiftx; bot y102 = y5; +pth1 := z101..z1..z2..z3..z4..z5..z102; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "S" + +cmchar "HMIN letter T"; +beginchar("T", 2sb#+caprat*hstretch*(16/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +lft x1 = pcshiftx; rt x2=w-pcshiftx; +top y1 = top y2 = h; +%% stem +z3 = 1/2[z1,z2]; +x4 = x3; bot y4 = 0; +%% foot +n1 := rt x4 - lft x4; +rt x5 = lft x4; x6 = x4 + n1; y5 = y6 = y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % bar +draw z3--z4; % stem +draw z5--z6; % foot +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "HMIN letter U"; +beginchar("U", 2sb#+caprat*hstretch*(20/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% left stem +lft x1 = pcshiftx + n1; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-n1; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +pth1 := z1--z13{down}..z14{right}..{pdir}z33; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z3--z4; draw pth1; +draw (x1-n1,y1)--(x1+n1,y1); +draw (x3-n1,y3)--(x3+n1,y3); +draw (x4,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "U" + +cmchar "HMIN letter V"; +beginchar("V", 2sb#+caprat*hstretch*(20/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem tops +lft x1 = pcshiftx + 2n1; top y1 = h; +rt x3 = w - pcshiftx - 2n1; top y3 = h; +%% bottom +x13 = 1/2[x1,x3]; bot y13 = 0; +pth1 := z1{-pdir}..{-ppdir}z13; +pth2 := z13{pdir}..z3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; +draw (x1-2n1,y1)--(x1,y1); +draw (x3,y3)--(x3+2n1,y3); +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "V" + +cmchar "HMIN letter W"; +beginchar("W", 2sb#+caprat*hstretch*(26/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem tops +lft x1 = pcshiftx + 2n1; top y1 = h; +rt x5 = w - pcshiftx - 2n1; top y5 = h; +z93 = 1/2[z1,z5]; +x3 = rt x93; y3 = y93; +%% V bottoms +x13 = 1/2[x1,x3]; bot y13 = 0; +x35 = 1/2[x3,x5]; bot y35 = 0; +pth1 := z1{-pdir}..{-ppdir}z13; +%%pth2 := z13{pdir}..z3; +pth3 := z3{-pdir}..{-ppdir}z35; +z335 = directionpoint down of pth3; +%%pth2 := z13..{up}z3; +%%pth3 := z3{down}..z35; +pth2 := z13..{up}z335; +pth4 := z35{pdir}..z5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw (x1-2n1,y1)--(x1,y1); +draw pth2; +draw (x3-n1,y3)--(x3,y3); +draw pth3; +draw pth4; draw (x5,y5)--(x5+2n1,y5); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "W" + +cmchar "HMIN letter X"; +beginchar("X", 2sb#+caprat*hstretch*(18/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% diag top left to bottom right +lft x1=pcshiftx+n1; top y1 = h; +rt x2 = w - pcshiftx - n1; bot y2 = 0; +%% diag top right to bottom left +rt x3 = w - pcshiftx - n1; top y3 = h; +lft x4 = pcshiftx; bot y4 = 0; +pth1 := z4{pdir}..z3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; +draw (x1-n1,y1)--(x1+n1,y1); +draw (x2-n1,y2)--(x2+n1,y2); +draw (x3-n1,y3)--(x3+n1,y3); +draw (x4,y4)--(x4+n1,y4); +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 "HMIN letter Y"; +beginchar("Y", 2sb#+caprat*hstretch*(15/18x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% left stem top +lft x1 = pcshiftx + n1; top y1 = h; +%% upright +x5 = 1/2w; y5 = 1/2y1; +x6 = x5; bot y6 = 0; +%% right stem +rt x3=w-pcshiftx-n1; top y3 = h; +pth1 := z5{ppdir}..{pdir}z1; % left +pth2 := z5{pdir}..{left}z3; % right +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem +draw pth1; draw (x1-n1,y1)--(x1,y1); +draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "HMIN letter Z"; +beginchar("Z", 2sb#+caprat*hstretch*(14/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +%% top bar ends +lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h; +%% bottom bar ends +lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0; +%% middle bar +lft x5 = x1; rt x6 = x2; y5 = y6 = 1/2h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw z5--z6; +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/huncl10.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncl10.mf new file mode 100644 index 00000000000..f4dea1011ff --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/huncl10.mf @@ -0,0 +1,75 @@ +%% +%% This is file `huncl10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 +%% +%%% HUNCL10.MF Half Uncial at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HUNCL"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.25; % 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.07; + + 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 + + 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:=20; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=2/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate huncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncl17.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncl17.mf new file mode 100644 index 00000000000..edce56f870f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/huncl17.mf @@ -0,0 +1,75 @@ +%% +%% This is file `huncl17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 +%% +%%% HUNCL17.MF Half Uncial at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HUNCL"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.25; % 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.07; + + 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 + + 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:=20; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=2/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate huncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncl7.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncl7.mf new file mode 100644 index 00000000000..6d2e0caebcc --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/huncl7.mf @@ -0,0 +1,75 @@ +%% +%% This is file `huncl7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 +%% +%%% HUNCL7.MF Half Uncial at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HUNCL"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.25; % 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.07; + + 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 + + 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:=20; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=2/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate huncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclb10.mf new file mode 100644 index 00000000000..fdea1a7e58d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclb10.mf @@ -0,0 +1,75 @@ +%% +%% This is file `hunclb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 +%% +%%% HUNCLB10.MF Half Uncial Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HUNCLB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.07; + + 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 + + cap_height#:=246/36pt#; % height of caps + thickfudge:=1/3.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=20; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=2/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate huncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclb17.mf new file mode 100644 index 00000000000..7d9a68a825c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclb17.mf @@ -0,0 +1,75 @@ +%% +%% This is file `hunclb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 +%% +%%% HUNCLB17.MF Half Uncial Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HUNCLB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.07; + + 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 + + cap_height#:=425/36pt#; % height of caps + thickfudge:=1/3.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=20; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=2/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate huncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclb7.mf new file mode 100644 index 00000000000..583f8a5c18d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclb7.mf @@ -0,0 +1,75 @@ +%% +%% This is file `hunclb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 +%% +%%% HUNCLB7.MF Half Uncial Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="HUNCLB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.07; + + 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 + + cap_height#:=172.2/36pt#; % height of caps + thickfudge:=1/3.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=20; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=2/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate huncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncldig.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncldig.mf new file mode 100644 index 00000000000..d196ec881d3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/huncldig.mf @@ -0,0 +1,228 @@ +%% +%% This is file `huncldig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 "HUncial digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "1" + +cmchar "HUncial digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..{-pdir}z5; % curve +draw z5--z6; % foot +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "HUncial digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +lft x6=pcshiftx+3thin; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +draw z7{pdir}...z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "HUncial digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +lft x5=pcshiftx+jut; y5=h; +x6=x5; y6=y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw z3--z4; % crossbar +draw z3{pdir}..{pdir}z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "HUncial digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx+trijut; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx+trijut; bot y7=2thin; +%%x8=w-pcshiftx; y8=h-0.5thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw_wave(2,1,thin); % top squiggle +draw z2--z1; % top bar +%%draw_rtriangle(8,3/4jut); +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +draw z2--z3; % vertical +draw_triserif(2,trijut); +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "HUncial digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +x8=w-pcshiftx; y8=h-0.5thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +%%draw z1{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +%%draw_rtriangle(8,3/4jut); +ductus:=false; +penlabels(1,2,3,4,5,6,8,100); +endchar; % end "6" + +cmchar "HUncial 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; +x8=pcshiftx+3/8jut; y8=h-0.5thin; +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 z1--z2; % top bar +%%draw_triangle(8,3/4jut); +draw z2..z3..z4; % leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "7" + +cmchar "HUncial digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "HUncial digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Uncial digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncll.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncll.mf new file mode 100644 index 00000000000..215b0ee1a40 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/huncll.mf @@ -0,0 +1,611 @@ +%% +%% This is file `huncll.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 "HUncial letter a"; +beginchar("a", 2u#+hstretch*(x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +x2=x1; bot y2=0; +x5=x1-jut; y5=0.5[y1,y2]; +path p[]; +p1=z1{-pdir}..z5{down}..{right}z2; +lft x3=pcshiftx; y3=y5; +x4=x6=0.5[x3,x5]; top y4=h; bot y6=0; +x2'=0.5[x2,x5]; +bowl_stem(6,2'); +rt x7=x6i; top y7=y6i; +rt x8=x1; y4-y8=y7-y6; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw p1; % the stem +draw z8..z4{left}..z3{down}..z6{right}..{pdir}z7; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "a" + +cmchar "HUncial letter b"; +beginchar("b", 2u#+hstretch*(x_height#+trijut#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; +rt x4=w-pcshiftx; +x3=x5=0.5[x2,x4]; bot y3=0; top y5=h/ascratio; +y2=y4=0.5[y3,y5]; +x11=rt x1; bowl_stem(5,11); +lft x7=x5i; bot y7=y5i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2{down}..z3{right}..z4{up}..z5{left}..{-pdir}z7; +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "HUncial letter c"; +beginchar("c", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x3'=w-pcshiftx; +bowl_stem(4,3'); +rt x5=x4i; top y5=y4i; +x6=x5; y2-y6=y5-y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +ductus:=false; +penlabels(1,2,3,4,5,6,16,17,18,100); +endchar; % end "c" + +cmchar "HUncial letter d"; +beginchar("d", 2u#+hstretch*(x_height#+thick#+jut#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=0; +x1'=lft x1; y1'=h; +lft x5=pcshiftx; +top y4=h/ascratio; bot y6=0; +x4=x6=0.5[x5,x1']; y5=0.5[y6,y4]; +bowl_stem(6,1'); +rt x7=x6i; top y7=y6i; +x8=x7; y4-y8=y7-y6; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z8..z4{left}..z5{down}..z6{right}..{pdir}z7; % bowl +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "HUncial letter e"; +beginchar("e", 2u#+hstretch*(x_height#+trijut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx-trijut; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x3'=w-pcshiftx-trijut; +bowl_stem(4,3'); +rt x5=x4i; top y5=y4i; +x7=x1; y7=y1; +rt x8=w-pcshiftx; top y8=2/3h; +path p[]; +p1=z7{right}..{pdir}z8; +p2=z2{right}..z3{down}..{left}z4; +z6 = p1 intersectionpoint p2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2{right}..z6; % the bowl +draw p1; % the bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "e" + +cmchar "HUncial letter f"; +beginchar("f", 2u#+hstretch*(7/6x_height#+trijut#), (3/2x_height#), desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=2/3h; bot y2=-d; +z3=z4=z1; +rt x5= rt x6=w-pcshiftx; top y5=h; y6=y4; +x7=0.5[x4,x6]; y7=y6-2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_urswish(3,5); % top bar +draw z4..z7{right}..{pdir}z6; % bottom bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "f" + +cmchar "HUncial letter g"; +beginchar("g", 2u#+hstretch*(4/3x_height#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=thin; +pickup quill; +lft x1=pcshiftx; top y1=h+alpha; +rt x3=w-pcshiftx; top y3=h-alpha; +rt x2=3/4w; top y2=h-alpha; +x4=1/4w; y4=0; +rt x6=w-pcshiftx; y6=-1/2d; +x7=1/2w; bot y7=-d; +lft x8=pcshiftx; top y8=-1/2d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(1,3,alpha); % top bar +draw z2--z4; % diagonal +draw z4{pdir}..z6{down}..z7{left}..z8; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "g" + +cmchar "HUncial letter h"; +beginchar("h", 2u#+hstretch*(x_height#+trijut#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +rt x5=w-pcshiftx; y5=h/(2ascratio); +lft x6=2/3w; bot y6=0; +x4=0.5[x1,x5]; top y4=h/ascratio; +x1'=rt x1; +bowl_stem(4,1'); +lft x3=x4i; bot y3=y4i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z3{pdir}..z4{right}..z5{down}..z6; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "HUncial letter i"; +beginchar("i", 2u#+hstretch*(thick#+trijut#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "HUncial letter j"; +beginchar("j", 2u#+hstretch*(thick#+trijut#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-1/2d; +lft x3=pcshiftx; bot y3=-d; +%%ductus:=true; +draw z1--z2{down}..{-pdir}z3; +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "HUncial letter k"; +beginchar("k", 2u#+hstretch*(x_height#+trijut#+jut#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +numeric rise,fall,fjut; +x3=rt x1; y3=(3/4)*(h/ascratio); +rise:=1/6h; fall:=-rise/2; fjut:=1/2w; +z4=z3; +x5=w-pcshiftx-jut; y5=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_flick(3,rise,fall,fjut); % upper diag +draw_tstem(4,5,srad); % lower diag +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "k" + +cmchar "HUncial letter l"; +beginchar("l", 2u#+hstretch*(7/6x_height#+trijut#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +z3=z2; +rt x4=w-pcshiftx; bot y4=1/10h; +%%ductus:=true; +draw z1--z2; +draw_triserif(1,trijut); % the stem +draw z3{right}..{pdir}z4; % the foot +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "HUncial letter m"; +beginchar("m", 2u#+hstretch*(5/3x_height#+trijut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=0; +x4=w/2; y4=2/3h; +x3=0.5[x2,x4]; top y3=h; +x5=x4; y5=y2; +z6=z4; +x7=3/4w; top y7=h; +rt x8=w-pcshiftx; y8=h/2; +lft x9=3/4w; y9=y2; +x14=x1; y14=y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_triserif(1,trijut); +draw z14..z3{right}..{down}z4; +draw_tstem(4,5,srad); % middle stem +draw z6..z7{right}..z8{down}..{-pdir}z9; % right half +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,14,100); +endchar; % end "m" + +cmchar "HUncial letter n"; +beginchar("n", 2u#+hstretch*(x_height#+trijut#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=0; +x1'=rt x1; +rt x5=w-pcshiftx-jut; y5=h/2; +x6=x5; bot y6=0; +x4=0.5[x1,x5]; top y4=h; +bowl_stem(4,1'); +lft x3=x4i; bot y3=y4i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_triserif(1,trijut); +draw_tstem(5,6,srad); % right stem +draw z3{pdir}..z4{right}..{down}z5; % the bowl top +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "n" + +cmchar "HUncial letter o"; +beginchar("o", 2u#+hstretch*(7/6x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "o" + +cmchar "HUncial letter p"; +beginchar("p", 2u#+hstretch*(7/6x_height#+trijut#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-d; +rt x4=w-pcshiftx; +x3=x5=0.5[x2,x4]; bot y3=0; top y5=h; +y4=0.5[y3,y5]; +x1'=rt x1; +bowl_stem(5,1'); +lft x7=x5i; bot y7=y5i; +lft x8=rt x1; bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z8{right}..z4{up}..z5{left}..{-pdir}z7; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "HUncial letter q"; +beginchar("q", 2u#+hstretch*(7/6x_height#+jut#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=-d; +lft x5=pcshiftx; +top y4=h; bot y6=0; +x4=x6=0.5[x5,x1']; y5=0.5[y6,y4]; +x1'=lft x1; +bowl_stem(6,1'); +rt x7=x6i; top y7=y6i; +z8=z1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z8{left}..z5{down}..z6{right}..{pdir}z7; % bowl +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "HUncial letter r"; +beginchar("r", 2u#+hstretch*(x_height#+trijut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=0; +lft x3=rt x1; bot y3=7/8h; +rt x5=w-pcshiftx; top y5=1/2h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z3{pdir}..{pdir}z5; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "HUncial letter s"; +beginchar("s", 2u#+hstretch*(x_height#+trijut#), 3/2x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; top y1=2/3h; bot y2=0; +x5=w-pcshiftx; y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +%%draw z1{pdir}..{right}z5; % arm +draw_urswish(1,5); +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100); +endchar; % end "s" + +cmchar "HUncial letter t"; +beginchar("t", 2u#+hstretch*(4/3x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+1/4w; rt x3=w-pcshiftx; y1=h/3; y3=h/2; +x2=x4=0.5[x1,x3]; top y2=h; bot y4=0; +x6=x3; +x6'=w-pcshiftx; +bowl_stem(4,6'); +rt x5=x4i; top y5=y4i; +top y6=h; +lft x12=pcshiftx; top y12=h; +x11=0.5[x6,x12]; y11=y12-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1{up}..{pdir}z6; % bowl +draw z6..z11..z12; % top bar +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "HUncial letter u"; +beginchar("u", 2u#+hstretch*(x_height#+trijut#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x6=pcshiftx+trijut; +top y6=h; +x7=x6; y7=h/2; +x8=0.5[x6,x1]; bot y8=0; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=0; +x1'=lft x1; +bowl_stem(8,1'); +rt x9=x8i; top y9=y8i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(6,trijut); % left half +draw z6--z7{down}..z8{right}..{pdir}z9; +draw_tstem(1,2,srad); % right stem +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "u" + +cmchar "HUncial letter v"; +beginchar("v", 2u#+hstretch*(x_height#+trijut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); +%%draw_triserif(5,trijut); +draw z1--z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +penlabels(1,2,3,4,5,11,100); +endchar; % end "v" + +cmchar "HUncial letter w"; +beginchar("w", 2u#+hstretch*(5/3x_height#+trijut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= w/2-trijut; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +lft x6=pcshiftx+trijut; +top y6=h; +%%lft x7=pcshiftx; y7=y2; +x7=x6; y7=y2; +x8=0.5[x7,x1]; y8=y3; +x15=0.5[x8,x1]; y15=y8; +z15'=z15 shifted (w*pdir); +x2'=x2; y2'=y15; +path p[]; +p1=z1--z2'; +p2=z15--z15'; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); % right half +draw z1--z2{down}..z3{right}..z4{up}..z5; +draw_triserif(6,trijut); % left half +draw z6--z7{down}..z8{right}..z9; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "w" + +cmchar "HUncial letter x"; +beginchar("x", 2u#+hstretch*(4/3x_height#+jut#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=1/4w; rt x2=w-pcshiftx-jut; +y1=h; y2=0; +rt x4=w-pcshiftx; top y4=h; +z3=2/3[z2,z1]; +lft x6=pcshiftx; bot y6=-d; +path p[]; +pair vec; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw_urswish(3,4); % top thin diagonal +p1=z3..z4s1{pdir}..z4s2{down}; % bottom thin diagonal +vec= direction 0 of p1; +draw z3{-vec}..{down}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "x" + +cmchar "HUncial letter y"; +beginchar("y", 2u#+hstretch*(4/3x_height#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; top y1=h; +lft x3=w/2; bot y3=-d; +x2=lft x5; y2=bot y5; +x5=w/2; y5=1/3h; +x4=w-pcshiftx; top y4=h; +x8=w/2; y8=h+jut; +if ductus: + pickup stylus; +fi +draw z1..z2..z3; % left stroke +draw_urswish(2,4); % right stroke +draw_pdot(8,dot_size); % the dot +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "HUncial letter z"; +beginchar("z", 2u#+hstretch*(5/3x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha, beta; alpha:=thin; beta:=2thin; +pickup quill; +lft x4=pcshiftx; bot y4=0; x14=x4; y14=y4+beta; +rt x6=w-pcshiftx; bot y6=-beta; +lft x1=1/5w; top y1=h+alpha; +rt x3=4/5w; top y3=h; x13=x3; y13=y3-alpha; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(1,13,alpha); % top stroke +draw_wave(14,6,beta); % bottom stroke +draw z4--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncllig.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncllig.mf new file mode 100644 index 00000000000..6f324c5d836 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/huncllig.mf @@ -0,0 +1,155 @@ +%% +%% This is file `huncllig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 "f": "i"=:oct"014"; + + +cmchar "Uncial closing quotes"; +beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Uncial opening quotes"; +beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Uncial hyphen"; +beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw z1--z2; % bar +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +penlabels(1,2); +endchar; % end of "-" + + +cmchar "Uncial en dash"; +beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw z1--z2; % bar +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +penlabels(1,2); +endchar; % end of "--" + + +cmchar "Uncial em dash"; +beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw z1--z2; % bar +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +penlabels(1,2); +endchar; % end of "---" + + +cmchar "HUncial ligature fi"; +beginchar(oct"014", 2u#+hstretch*(7/6x_height#+trijut#), (3/2x_height#), desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=2/3h; bot y2=-d; +z3=z4=z1; +rt x5=w-pcshiftx; top y5=h; +rt x6=w-pcshiftx-jut; y6=y4; +x7=x6; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_urswish(3,5); % top bar +draw z4--z6; % bottom bar +draw_tstem(6,7,srad); % stem +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end of "fi" + + +cmchar "HUncial ampersand"; +beginchar("&", 2u#+hstretch*(5/3x_height#), x_height#, 0.5desc_depth#); +adjust_fit(0,0); +pcshiftx:=u; +numeric alpha; alpha:=3/5w-u; +pickup quill; +lft x1=pcshiftx; rt x3= alpha; y1=y3=h/2; +x2=x4=alpha/2; top y2=h; bot y4=0; +x3'=alpha; +bowl_stem(4,3'); +rt x5=x4i; top y5=y4i; +rt x6=x4i; y5-y4=y2-y6; +x7=x1; y7=y1; +rt x8=w-pcshiftx; y8=y7; +lft x9=x5; y9=y5; +x10=0.5[x9,x8]; bot y10=-d; +x8'=x8; +bowl_stem(10,8'); +x11=x10i; y11=y10i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the E bowl +draw z7--z8; % the (top) bar +draw z8{left}..z9..z10{right}..{pdir}z11; % the T bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,31,32,33); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclpunct.mf new file mode 100644 index 00000000000..8a3646a8907 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclpunct.mf @@ -0,0 +1,78 @@ +%% +%% This is file `hunclpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 "Uncial Comma"; +beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "," + + +cmchar "Uncial Period"; +beginchar(".",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=w/2; y1=h/2; +draw_pdot(1,dot_size); +penlabels(1); +endchar; % end of "." + + +cmchar "Uncial Colon"; +beginchar(":",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=x2=w/2; y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pdot(2,dot_size); +penlabels(1,2); +endchar; % end ":" + + +cmchar "Uncial Semicolon"; +beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pcomma(2,dot_size,comma_width); +penlabels(1,2); +endchar; % end of ";" + + +cmchar "Uncial Apostrophe"; +beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "'" + + +cmchar "Uncial Reverse apostrophe"; +beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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/huncltitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf new file mode 100644 index 00000000000..9122a5ad4e6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf @@ -0,0 +1,306 @@ +%% +%% This is file `huncltitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 huncial_font_setup= % contains special stuff for huncial 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,cap_jut,trijut); + define_pixels(fig_width); + define_whole_pixels(letter_fit); + 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); + 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; + 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 huncial_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_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_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 +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_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_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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; +%% filldraw z$s--z$t--z$u--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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; +%% filldraw z$s--z$t--z$v--cycle; + labels($s,$t,$u,$v); +enddef; % end of draw_plq + + +font_coding_scheme:="ASCII minuscules and punctuation"; +mode_setup; +huncial_font_setup; + + +input huncll; % minuscules (lower case) +input hunclu; % majuscules (capitals) +input hunclpunct; % punctuation +input huncllig; % the several dashes +input huncldig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning +%% ligtable "P": "T": "Y": "A" kern kk#; +%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi, +%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#; +%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#, +%% "V" kern k#, "Y" kern k#; +%% ligtable "A": if serifs: "R": fi +%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#, +%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#; +%%ligtable "I": "I" kern -k#; % Richard III +fi + +bye. + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclu.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclu.mf new file mode 100644 index 00000000000..2ccc14dff11 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclu.mf @@ -0,0 +1,617 @@ +%% +%% This is file `hunclu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% huncial.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 "HUncial letter A"; +beginchar("A", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +x2=x1; bot y2=0; +x5=x1-jut; y5=0.5[y1,y2]; +path p[]; +p1=z1{-pdir}..z5{down}..{right}z2; +lft x3=pcshiftx; y3=y5; +x4=x6=0.5[x3,x5]; top y4=h; bot y6=0; +x2'=0.5[x2,x5]; +bowl_stem(6,2'); +rt x7=x6i; top y7=y6i; +rt x8=x1; y4-y8=y7-y6; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw p1; % the stem +draw z8..z4{left}..z3{down}..z6{right}..{pdir}z7; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "A" + +cmchar "HUncial letter B"; +beginchar("B", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; +rt x4=w-pcshiftx; +x3=x5=0.5[x2,x4]; bot y3=0; top y5=h/ascratio; +y2=y4=0.5[y3,y5]; +x11=rt x1; bowl_stem(5,11); +lft x7=x5i; bot y7=y5i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2{down}..z3{right}..z4{up}..z5{left}..{-pdir}z7; +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "HUncial letter C"; +beginchar("C", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x3'=w-pcshiftx; +bowl_stem(4,3'); +rt x5=x4i; top y5=y4i; +x6=x5; y2-y6=y5-y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +ductus:=false; +penlabels(1,2,3,4,5,6,16,17,18,100); +endchar; % end "C" + +cmchar "HUncial letter D"; +beginchar("D", 2u#+caprat*hstretch*(x_height#+thick#+jut#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=0; +x1'=lft x1; y1'=h; +lft x5=pcshiftx; +top y4=h/ascratio; bot y6=0; +x4=x6=0.5[x5,x1']; y5=0.5[y6,y4]; +bowl_stem(6,1'); +rt x7=x6i; top y7=y6i; +x8=x7; y4-y8=y7-y6; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z8..z4{left}..z5{down}..z6{right}..{pdir}z7; % bowl +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "HUncial letter E"; +beginchar("E", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx-trijut; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x3'=w-pcshiftx-trijut; +bowl_stem(4,3'); +rt x5=x4i; top y5=y4i; +x7=x1; y7=y1; +rt x8=w-pcshiftx; top y8=2/3h; +path p[]; +p1=z7{right}..{pdir}z8; +p2=z2{right}..z3{down}..{left}z4; +z6 = p1 intersectionpoint p2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2{right}..z6; % the bowl +draw p1; % the bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "E" + +cmchar "HUncial letter F"; +beginchar("F", 2u#+caprat*hstretch*(7/6x_height#+trijut#), caprat*(3/2x_height#), + caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=2/3h; bot y2=-d; +z3=z4=z1; +rt x5= rt x6=w-pcshiftx; top y5=h; y6=y4; +x7=0.5[x4,x6]; y7=y6-2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_urswish(3,5); % top bar +draw z4..z7{right}..{pdir}z6; % bottom bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "F" + +cmchar "HUncial letter G"; +beginchar("G", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, + caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=thin; +pickup quill; +lft x1=pcshiftx; top y1=h+alpha; +rt x3=w-pcshiftx; top y3=h-alpha; +rt x2=3/4w; top y2=h-alpha; +x4=1/4w; y4=0; +rt x6=w-pcshiftx; y6=-1/2d; +x7=1/2w; bot y7=-d; +lft x8=pcshiftx; top y8=-1/2d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(1,3,alpha); % top bar +draw z2--z4; % diagonal +draw z4{pdir}..z6{down}..z7{left}..z8; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "G" + +cmchar "HUncial letter H"; +beginchar("H", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +rt x5=w-pcshiftx; y5=h/(2ascratio); +lft x6=2/3w; bot y6=0; +x4=0.5[x1,x5]; top y4=h/ascratio; +x1'=rt x1; +bowl_stem(4,1'); +lft x3=x4i; bot y3=y4i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z3{pdir}..z4{right}..z5{down}..z6; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "HUncial letter I"; +beginchar("I", 2u#+hstretch*(thick#+trijut#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "I" + +cmchar "HUncial letter J"; +beginchar("J", 2u#+hstretch*(thick#+trijut#), caprat*x_height#, caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-1/2d; +lft x3=pcshiftx; bot y3=-d; +%%ductus:=true; +draw z1--z2{down}..{-pdir}z3; +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "J" + +cmchar "HUncial letter K"; +beginchar("K", 2u#+caprat*hstretch*(x_height#+trijut#+jut#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +numeric rise,fall,fjut; +x3=rt x1; y3=(3/4)*(h/ascratio); +rise:=1/6h; fall:=-rise/2; fjut:=1/2w; +z4=z3; +x5=w-pcshiftx-jut; y5=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_flick(3,rise,fall,fjut); % upper diag +draw_tstem(4,5,srad); % lower diag +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "K" + +cmchar "HUncial letter L"; +beginchar("L", 2u#+caprat*hstretch*(7/6x_height#+trijut#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +z3=z2; +rt x4=w-pcshiftx; bot y4=1/10h; +%%ductus:=true; +draw z1--z2; +draw_triserif(1,trijut); % the stem +draw z3{right}..{pdir}z4; % the foot +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "HUncial letter M"; +beginchar("M", 2u#+caprat*hstretch*(5/3x_height#+trijut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=0; +x4=w/2; y4=2/3h; +x3=0.5[x2,x4]; top y3=h; +x5=x4; y5=y2; +z6=z4; +x7=3/4w; top y7=h; +rt x8=w-pcshiftx; y8=h/2; +lft x9=3/4w; y9=y2; +x14=x1; y14=y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_triserif(1,trijut); +draw z14..z3{right}..{down}z4; +draw_tstem(4,5,srad); % middle stem +draw z6..z7{right}..z8{down}..{-pdir}z9; % right half +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,14,100); +endchar; % end "M" + +cmchar "HUncial letter N"; +beginchar("N", 2u#+caprat*hstretch*(x_height#+trijut#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=0; +x1'=rt x1; +rt x5=w-pcshiftx-jut; y5=h/2; +x6=x5; bot y6=0; +x4=0.5[x1,x5]; top y4=h; +bowl_stem(4,1'); +lft x3=x4i; bot y3=y4i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_triserif(1,trijut); +draw_tstem(5,6,srad); % right stem +draw z3{pdir}..z4{right}..{down}z5; % the bowl top +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "N" + +cmchar "HUncial letter O"; +beginchar("O", 2u#+caprat*hstretch*(7/6x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "O" + +cmchar "HUncial letter P"; +beginchar("P", 2u#+caprat*hstretch*(7/6x_height#+trijut#), caprat*x_height#, + caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-d; +rt x4=w-pcshiftx; +x3=x5=0.5[x2,x4]; bot y3=0; top y5=h; +y4=0.5[y3,y5]; +x1'=rt x1; +bowl_stem(5,1'); +lft x7=x5i; bot y7=y5i; +lft x8=rt x1; bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z8{right}..z4{up}..z5{left}..{-pdir}z7; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "HUncial letter Q"; +beginchar("Q", 2u#+caprat*hstretch*(7/6x_height#+jut#), caprat*x_height#, + caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=-d; +lft x5=pcshiftx; +top y4=h; bot y6=0; +x4=x6=0.5[x5,x1']; y5=0.5[y6,y4]; +x1'=lft x1; +bowl_stem(6,1'); +rt x7=x6i; top y7=y6i; +z8=z1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z8{left}..z5{down}..z6{right}..{pdir}z7; % bowl +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "Q" + +cmchar "HUncial letter R"; +beginchar("R", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=0; +lft x3=rt x1; bot y3=7/8h; +rt x5=w-pcshiftx; top y5=1/2h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw z3{pdir}..{pdir}z5; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "HUncial letter S"; +beginchar("S", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*(3/2x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; top y1=2/3h; bot y2=0; +x5=w-pcshiftx; y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +%%draw z1{pdir}..{right}z5; % arm +draw_urswish(1,5); +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100); +endchar; % end "S" + +cmchar "HUncial letter T"; +beginchar("T", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+1/4w; rt x3=w-pcshiftx; y1=h/3; y3=h/2; +x2=x4=0.5[x1,x3]; top y2=h; bot y4=0; +x6=x3; +x6'=w-pcshiftx; +bowl_stem(4,6'); +rt x5=x4i; top y5=y4i; +top y6=h; +lft x12=pcshiftx; top y12=h; +x11=0.5[x6,x12]; y11=y12-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1{up}..{pdir}z6; % bowl +draw z6..z11..z12; % top bar +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "HUncial letter U"; +beginchar("U", 2u#+caprat*hstretch*(x_height#+trijut#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x6=pcshiftx+trijut; +top y6=h; +x7=x6; y7=h/2; +x8=0.5[x6,x1]; bot y8=0; +rt x1=w-pcshiftx-jut; top y1=h; +x2=x1; bot y2=0; +x1'=lft x1; +bowl_stem(8,1'); +rt x9=x8i; top y9=y8i; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(6,trijut); % left half +draw z6--z7{down}..z8{right}..{pdir}z9; +draw_tstem(1,2,srad); % right stem +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "U" + +cmchar "HUncial letter V"; +beginchar("V", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); +%%draw_triserif(5,trijut); +draw z1--z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +penlabels(1,2,3,4,5,11,100); +endchar; % end "V" + +cmchar "HUncial letter W"; +beginchar("W", 2u#+caprat*hstretch*(5/3x_height#+trijut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +numeric midx; midx:= w/2-trijut; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +lft x6=pcshiftx+trijut; +top y6=h; +%%lft x7=pcshiftx; y7=y2; +x7=x6; y7=y2; +x8=0.5[x7,x1]; y8=y3; +x15=0.5[x8,x1]; y15=y8; +z15'=z15 shifted (w*pdir); +x2'=x2; y2'=y15; +path p[]; +p1=z1--z2'; +p2=z15--z15'; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); % right half +draw z1--z2{down}..z3{right}..z4{up}..z5; +draw_triserif(6,trijut); % left half +draw z6--z7{down}..z8{right}..z9; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "W" + +cmchar "HUncial letter X"; +beginchar("X", 2u#+caprat*hstretch*(4/3x_height#+jut#), caprat*x_height#, + caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=1/4w; rt x2=w-pcshiftx-jut; +y1=h; y2=0; +rt x4=w-pcshiftx; top y4=h; +z3=2/3[z2,z1]; +lft x6=pcshiftx; bot y6=-d; +path p[]; +pair vec; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw_urswish(3,4); % top thin diagonal +p1=z3..z4s1{pdir}..z4s2{down}; % bottom thin diagonal +vec= direction 0 of p1; +draw z3{-vec}..{down}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "X" + +cmchar "HUncial letter Y"; +beginchar("Y", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, + caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; top y1=h; +lft x3=w/2; bot y3=-d; +x2=lft x5; y2=bot y5; +x5=w/2; y5=1/3h; +x4=w-pcshiftx; top y4=h; +x8=w/2; y8=h+jut; +if ductus: + pickup stylus; +fi +draw z1..z2..z3; % left stroke +draw_urswish(2,4); % right stroke +draw_pdot(8,dot_size); % the dot +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "HUncial letter Z"; +beginchar("Z", 2u#+caprat*hstretch*(5/3x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha, beta; alpha:=thin; beta:=2thin; +pickup quill; +lft x4=pcshiftx; bot y4=0; x14=x4; y14=y4+beta; +rt x6=w-pcshiftx; bot y6=-beta; +lft x1=1/5w; top y1=h+alpha; +rt x3=4/5w; top y3=h; x13=x3; y13=y3-alpha; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(1,13,alpha); % top stroke +draw_wave(14,6,beta); % bottom stroke +draw z4--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "Z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imaj10.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaj10.mf new file mode 100644 index 00000000000..cbf50e23420 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imaj10.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imaj10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 +%% +%%% IMAJ10.MF Insular Majuscule at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMAJ"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.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.4; + + 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/2u#; % unit for 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:=0; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=1.5/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; +clubjut:=5/12; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imajtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imaj17.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaj17.mf new file mode 100644 index 00000000000..b495886d6ed --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imaj17.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imaj17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 +%% +%%% IMAJ17.MF Insular Majuscule at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMAJ"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.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.4; + + 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/2u#; % unit for 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:=0; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=1.5/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; +clubjut:=5/12; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imajtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imaj7.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaj7.mf new file mode 100644 index 00000000000..9894a1dddd1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imaj7.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imaj7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 +%% +%%% IMAJ7.MF Insular Majuscule at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMAJ"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.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.4; + + 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/2u#; % unit for 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:=0; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=1.5/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; +clubjut:=5/12; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imajtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajb10.mf new file mode 100644 index 00000000000..e8929abfa4d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajb10.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imajb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 +%% +%%% IMAJB10.MF Insular Majuscule Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMAJB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.4; + + 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/2u#; % unit for 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:=0; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=1.5/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; +clubjut:=5/12; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imajtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajb17.mf new file mode 100644 index 00000000000..f17708a23c9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajb17.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imajb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 +%% +%%% IMAJB17.MF Insular Majuscule Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMAJB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.4; + + 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/2u#; % unit for 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:=0; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=1.5/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; +clubjut:=5/12; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imajtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajb7.mf new file mode 100644 index 00000000000..3f4d2f02889 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajb7.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imajb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 +%% +%%% IMAJB7.MF Insular Majuscule Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMAJB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.4; + + 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/2u#; % unit for 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:=0; % pen angle + ascratio:=5/3; + asc_height#:=ascratio*x_height#; + descratio:=1.5/3; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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.5; +trijut#:=0.75jutstretch*thick#; +clubjut:=5/12; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imajtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajdig.mf new file mode 100644 index 00000000000..b9764b5051e --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajdig.mf @@ -0,0 +1,300 @@ +%% +%% This is file `imajdig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 "IMAJ digit 1"; +beginchar("1", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "1" + +cmchar "IMAJ digit 2"; +beginchar("2", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +%% foot +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..{down}z5; % curve +draw z5--z6; % foot +draw_utriangle(6,thick); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "IMAJ digit 3"; +beginchar("3", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% x values +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +lft x6=pcshiftx+3thin; x7=x6; +%% y values +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +draw z7{pdir}...z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "IMAJ digit 4"; +beginchar("4", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% the stem +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +%% the crossbar +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%% the diagonal +lft x5=pcshiftx+jut; y5=h; +x6=x5; y6=y4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +%%draw_clubbase(1, 2, 1/3, 0, clubjut); +draw z3--z4; % crossbar +draw z3{(1,1)}..{(1,1)}z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "IMAJ digit 5"; +beginchar("5", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% for the top +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +z2'=(lft x2, top y2); z2''=(rt x2, y2'); +z0'=(x2', 0); z0''=(x2'', 0); +%% bowl +n1 := w-2pcshiftx+4/3thick; % width of bowl +n2 := 2/3h; % height of bowl +z3=(w-pcshiftx-n1, 0); +obowl(3, n1, n2); +z10o = (z2''--z0'') intersectionpoint subpath (3,4) of obouter; +z10i = (z2'--z0') intersectionpoint subpath (3,4) of obinner; +z10'=(x10i,y10o); +z20o = (z2'--z0') intersectionpoint subpath (2,3) of obouter; +z20i = (z2'--z0') intersectionpoint subpath (2,3) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; + draw z2--z1; draw z2'--z0'; draw z2''--z0''; + draw obouter; draw obinner; +else: + draw z2--z1; % top bar + draw_triangle(1,thick); + fill z2'--z10i--z10o--z2''--cycle; % stem + fill z10o..z3minlo{pdir}..z3maxro{-ppdir}..z3minro{-pdir}..z20o-- + z20i..z3minri{pdir}..z3maxri{ppdir}..z3minli{-pdir}..z10i-- + z10'--cycle; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "IMAJ digit 6"; +beginchar("6", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % width of character +n2 := h; % height of character +%% main bowl +z3=(w-pcshiftx-n1,0); +obowl(3, n1, n2); +pth1 := obouter; pth2 := obinner; +z0 = (0,0); z0'=(w,h); +z10o' = (z0--z0') intersectionpoint subpath (0,1) of pth1; +z10i' = (z0--z0') intersectionpoint subpath (0,1) of pth2; +n0 := w-pcshiftx-x10o'; +z10o=(x10o'+n0, y10o'); +z10i=(x10i'+n0, y10i'); +%% bottom bowl +n3 := 16/12n2; % width +n4 := 2/3n2; % height +z13=(w-pcshiftx-n3, 0); +obowl(13, n3, n4); +pth11 := obouter; pth12 := obinner; +z20o = subpath (2,4) of pth2 intersectionpoint + (subpath (3,4) of pth11 & subpath (0,1) of pth11); +z20i = subpath (2,4) of pth2 intersectionpoint + (subpath (3,4) of pth12 & subpath (0,1) of pth12); +%%ductus:=true; +if ductus: + pickup stylus; + draw subpath (2,4) of pth2; + draw (subpath (3,4) of pth11 & subpath (0,1) of pth11); + draw (subpath (3,4) of pth12 & subpath (0,1) of pth12); +else: + fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{pdir}.. + z13maxro{ppdir}..{-pdir}z20o--z20i{pdir}..z13maxri{-ppdir}.. + z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i-- + cycle; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,8,100); +endchar; % end "6" + +cmchar "IMAJ digit 7"; +beginchar("7", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% top bar +lft x1=pcshiftx; +rt x2=w-pcshiftx; +top y1=top y2=h; +x8=pcshiftx+3/8jut; y8=h-0.5thin; +%% bowed leg +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 z1--z2; % top bar +draw_triangle(1,thick); +draw z2..z3..z4; % leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "7" + +cmchar "IMAJ digit 8"; +beginchar("8", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "IMAJ digit 9"; +beginchar("9", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % width of character +n2 := h; % height of character +%% main bowl +z3=(w-pcshiftx-n1,0); +obowl(3, n1, n2); +pth1 := obouter; pth2 := obinner; +z0=(0,0); z0'=(w,h); +z20o' = (z0--z0') intersectionpoint subpath (2,3) of pth1; +z20i' = (z0--z0') intersectionpoint subpath (2,3) of pth2; +n0 := x20o'-pcshiftx; +z20o=(x20o'-n0, y20o'); +z20i=(x20i'-n0, y20i'); +%% bottom bowl +n3 := 16/12n2; % width +n4 := 2/3n2; % height +z13=(pcshiftx,h-n4); +obowl(13, n3, n4); +pth11 := obouter; pth12 := obinner; +z10o = subpath (0,2) of pth2 intersectionpoint subpath (1,3) of pth11; +z10i = subpath (0,2) of pth2 intersectionpoint subpath (1,3) of pth12; +%%ductus:=true; +if ductus: + pickup stylus; + draw subpath (0,2) of pth2; + draw subpath (1,3) of pth11; + draw subpath (1,3) of pth12; +else: + fill z20o..z3minro{pdir}..z3maxro{ppdir}..z3minlo{-pdir}.. + z13maxlo{-ppdir}..{pdir}z10o--z10i{-pdir}..z13maxli{ppdir}.. + z3minli{pdir}..z3maxri{-ppdir}..z3minri{-pdir}..z20i-- + cycle; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Uncial digit 0"; +beginchar("0", 2sb#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % bowl width +n2 := h+2o; % bowl height +z1=(pcshiftx,-o); +obowl(1, n1, n2); +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill obouter; unfill obinner; +ductus:=false; +%%%proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajl.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajl.mf new file mode 100644 index 00000000000..f6746095bf3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajl.mf @@ -0,0 +1,842 @@ +%% +%% This is file `imajl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 "IMAJ letter a"; +beginchar("a", 2sb#+hstretch*(5/3x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left bowl +n1 := w-2pcshiftx; % actual letter width +n2 := 7/10n1; % width of left bowl +z1=(pcshiftx,0); +obowl(1, n2, h); +pth1:=obouter; pth2:=obinner; +pth10:=obfirst; pth20:=obsecond; +%% right bowl +n3:=x1+n2-16/12thick; % leftmost point of "stem" +n4:=2(n1-n3); % total width of right stem bowl +z2=(n3,0); +offsetbowl(2, n4, h, 6/12, 1/2); +pth3:=obouter; pth4:=obinner; +pth30:=obfirst; pth40:=obsecond; +%% intersect left bowl with outer of right bowl +z1tout = (subpath (0,1) of pth1) intersectionpoint (subpath (4,2) of pth3); +z1tinn = (subpath (0,1) of pth2) intersectionpoint (subpath (4,2) of pth3); +z1lout = (subpath (1,2) of pth1) intersectionpoint (subpath (4,2) of pth3); +z1linn = (subpath (1,2) of pth2) intersectionpoint (subpath (4,2) of pth3); + +%%ductus:=true; +if ductus: + pickup stylus; + % draw the control paths + draw pth10; draw pth20; + draw pth30; draw pth40; +else: + %% draw left bowl + fill z1lout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z1tout-- + z1tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z1linn-- + cycle; + %% draw right stem/bowl + fill z2minro{-pdir}..z2maxlo{ppdir}..{pdir}z2minlo-- + z2minli{-pdir}..z2maxli{-ppdir}..{pdir}z2minri--cycle; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "a" + +cmchar "IMAJ letter b"; +beginchar("b", 2sb#+hstretch*(7/6x_height#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +z1=(pcshiftx, -o); +obowl(1, n1, n2+o); +%% draw bowl +fill obouter; unfill obinner; +%% top of stem +x2=x1wt+1/3n1; top y2=h; +tangentpoint(2, subpath (3,4) of obsecond); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z2tan--z2; +draw_triserif(2,trijut); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "IMAJ letter c"; +beginchar("c", 2sb#+hstretch*(5/6x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=6/5w-2pcshiftx; % width of full bowl +z1=(pcshiftx,0); +obowl(1, n2, h); +z3=(x1+n1, h); % top RH corner +z4=(x1obc,1/6h); z5=(3/2w,y4); % for horizontal line +%% top intersection points +z10i = (z1obc--z3) intersectionpoint obinner; +z10o = (z1obc--z3) intersectionpoint obouter; +%% bottom intersection points +z20i = (z4--z5) intersectionpoint obinner; +z20o = (z4--z5) intersectionpoint obouter; +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill z20o..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10o-- + z10i..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20i-- + cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,16,17,18,100); +endchar; % end "c" + +cmchar "IMAJ letter d"; +beginchar("d", 2sb#+hstretch*(x_height#+1/2thick#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% bowl +n1 := w-2pcshiftx; % actual letter width +n2 := n1-1/2thick; % width of bowl +n3 := h; % top of bowl +z1=(w-pcshiftx-n2, 0); +obowl(1, n2, n3); +%% top bar +lft x3=pcshiftx; y3=h; +z3i=(pcshiftx, y3-1/2thin); z3o=(x3i,y3i+thin); +z2i=(x1nh,y3i); +z2o=(x2i,y3o); +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill z1minlo{-pdir}..z1maxlo{-ppdir}..z1minro{pdir}..z1maxro{ppdir}..{left}z2o-- + z3o--z3i-- + z2i{right}..z1maxri{-ppdir}..z1minri{-pdir}..z1maxli{ppdir}..{pdir}z1minli-- + cycle; +draw_utriangle(3, thick); +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "IMAJ letter e"; +beginchar("e", sb#+hstretch*(x_height#+3/2thick#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := n1-3/2thick; % width of bowl +z1=(pcshiftx,0); +obowl(1, n2, h); +%% for crossbar +z2=(0,2/3h); rt x3=w; y3=y2; z3'=(x1obc,y2); +z4 = (z2--z3') intersectionpoint subpath (3,4) of obsecond; +z10tout = (z3'--z3) intersectionpoint subpath (0,3) of obouter; +z10tinn = (z3'--z3) intersectionpoint subpath (0,3) of obinner; +%% bottom cutoff +z5=(x1obc,1/6h); z6=(w,y5); +z20bout = (z5--z6) intersectionpoint subpath (0,3) of obouter; +z20binn = (z5--z6) intersectionpoint subpath (0,3) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill z20bout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10tout-- + z10tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20binn-- + cycle; +draw z4--z3; % crossbar & decoration +draw_triangle(3,thick); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "e" + +cmchar "IMAJ letter f"; +beginchar("f", 2sb#+hstretch*(x_height#+trijut#), + (x_height#), desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-d; +%% bottom bar +z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6]; +%% top bar +z7=(rt x1, bot y1); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar +draw_flick(7, 2thin, thin, (w-pcshiftx-x7+1/2thick)); % top bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "f" + +cmchar "IMAJ letter g"; +beginchar("g", 2sb#+hstretch*(5/3x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +pcshiftx := sb; +pickup quill; +%% top bar +lft x1=pcshiftx; y1=h; rt x2=w-pcshiftx; y2=h; +%% curves +z3=2/5[z1,z2]; +x5=4/5[x1,x2]; y5=-1/2d; +x4=(x3-thick); y4=1/2[y5,y3]; +x7=1/2[x1,x4]; y7=y5; +x6=2/3[x7,x5]; bot y6=-d; +pth1 := z3..z4{down}..z5; +pth2 := z5--z6{left}..z7; +%% diagonal to close bottom bowl +vec1 := direction 2 of pth2; +vec2 := (z5-z6); +z7'=(lft x7, bot y7); z7''=(rt x7, y7); +pickup thickstylus; +lft x8 = x7'; bot y8 = y7'; +z9' = z8 shifted 2vec2; +z9 = (z8--z9') intersectionpoint pth1; +z7''' = z7'' shifted 2vec1; +z8' = whatever[z7'',z7'''] = whatever[z8,z9']; +%%ductus:=true; +if ductus: + pickup stylus; + draw z1--z2; % top bar + draw pth1; draw pth2; % curves + draw rt z8--z9; % diagonal +else: + pickup quill; + draw z1--z2; % top bar + draw_triangle(2,thick); + draw_utriangle(1,thick); + draw pth1; draw pth2; % curves + pickup thickstylus; + draw rt z8--z9; % diagonal + fill z7''--z8'--z8--cycle; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "g" + +cmchar "IMAJ letter h"; +beginchar("h", 2sb#+hstretch*(x_height#+trijut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +%% bowl +rt x3 = lft x1; y3=0; +n1 := w-pcshiftx-x3; % bowl width +n2 := h/ascratio; % bowl height +obowl(3, n1, n2); +z1'=(rt x1, y1); z2'=(x1',y2); %% right hand side of stem +z10tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter; +z10tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner; +z10toth = (x1, y10tinn); % avoids 180 turn in path +z6 = directionpoint down of obsecond; % top of right leg +z6i=(lft x6, bot y6); z6o=(rt x6, bot y6); +z8=(x6,0); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +draw_tstem(6,8,srad); % right leg +draw_clubbase(6, 8, 1/3, 0, 1/2clubjut); +fill z6i{up}..z3minli{-pdir}..z10tinn--z10toth-- % top of bowl + z10tout..z3minlo{pdir}..{down}z6o--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "IMAJ letter i"; +beginchar("i", 2sb#+hstretch*(thick#+trijut#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "IMAJ letter j"; +beginchar("j", sb#+hstretch*(2/3x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%% triangle +n1 := thick; % side length +z6=(lft x3, bot y3); +x7=x6+n1; z7=whatever[z6,z2]; +z8=1/2[z6,z7]; +z9=(x8, y8+0.9n1); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_triserif(1,trijut); +draw z2--z3; % hook +fill z6--z7--z9--cycle; % triangle +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "IMAJ letter k"; +beginchar("k", 2sb#+hstretch*(x_height#+trijut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-d; +%% top arm +z3=(x1,5/6h); +rt x5=w-pcshiftx; y5=2/3h; +x4=1/2[x3,x5]; top y4=h; +%% lower arm +x7=x5; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1,2,1/3, clubjut, clubjut); +draw z3..z4{right}..z5; % upper arm +draw z3..{right}z7; % lower arm +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "k" + +cmchar "IMAJ letter l"; +beginchar("l", 2sb#+hstretch*(7/6x_height#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x2=pcshiftx; y2=1/5h; +x1=x2+trijut; top y1=h; +rt x4=w-pcshiftx; y4=1/5h; +x3=1/2[x2,x4]; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z2..z3{right}..z4; +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "IMAJ letter m"; +beginchar("m", 2sb#+hstretch*(5/3x_height#+trijut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=0; +z1'=(rt x1, y1+h); z2'=(rt x2, y2-h); +%% right stem +rt x5=w-pcshiftx; y5=y1; +z6=(x5,0); +%% middle stem +z3=1/2[z1,z5]; z4=1/2[z2,z6]; +z3'=(rt x3, y3); z4'=(rt x4, y4); +n1 := x4-x2+3/2thick; % width of bowl +n2 := 2/3h; % height of bowl +%% left bowl +z7=(rt x4 - n1, h-n2); +obowl(7, n1, n2); +pth1 := obouter; pth2 := obinner; pth3 := obsecond; +z17tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter; +z17tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner; +z17toth = (x2, y17tinn); +%% right bowl +z8=(rt x6 - n1, y7); +obowl(8, n1, n2); +pth5 := obouter; pth6 := obinner; pth7 := obsecond; +z18tout = pth5 intersectionpoint subpath (0,1) of pth1; +z18tinn = pth6 intersectionpoint subpath (0,1) of pth1; +z13 = directionpoint down of pth3; +z15 = directionpoint down of pth7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +fill z17tout..z7minlo{pdir}..{down}(rt x13, y13)-- + (lft x13, y13){up}..z7minli{-pdir}..z17tinn--z17toth--cycle; +draw_tstem(13,4,srad); % right half +fill z18tout..z8minlo{pdir}..{down}(rt x15, y15)-- + (lft x15, y15){up}..z8minli{-pdir}..z18tinn--cycle; +draw_tstem(15,6,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,14,100); +endchar; % end "m" + +cmchar "IMAJ letter n"; +beginchar("n", 2sb#+hstretch*(7/6x_height#+trijut#), + x_height#, 1/2desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=-d; +%% right stem +rt x3=w-pcshiftx; y3=y1; +z4=(x3,0); +%% bar +z5=(x1,1/3h); z6=(x4,1/6h); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +draw_tstem(3,4,srad); % right stem +draw_clubbase(3, 4, 1/3, clubjut, clubjut); +draw z5--z6; % bar +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "n" + +cmchar "IMAJ letter o"; +beginchar("o", 2sb#+hstretch*(7/6x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%%draw z1..z2..z3..z4..cycle; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +fill obouter; unfill obinner; +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "o" + +cmchar "IMAJ letter p"; +beginchar("p", 2sb#+hstretch*(8/6x_height#+trijut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=1/3h; bot y2=-d; +n1 := w - pcshiftx - lft x1; % width of bowl +n2 := h+1/4d; % height of bowl +z3=(lft x1, -1/4d); +obowl(3, n1, n2); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, 0); +fill lft z1{up}..z3minlo{pdir}..z3maxro{-ppdir}..{-pdir}z3minro-- + z3minri{pdir}..z3maxri{ppdir}..z3minli{-pdir}..{down}rt z1-- + cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "IMAJ letter q"; +beginchar("q", 2sb#+hstretch*(x_height#+1/2trijut#), + x_height#, 1/2desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx-1/2trijut; top y1=h; +x2=x1; bot y2=-d; +z3=(pcshiftx,0); +n1 := w; % width of bowl +n2 := h; % height of bowl +obowl(3, n1, n2); +z10o = (rt z1--rt z2) intersectionpoint subpath (0,1) of obouter; +z10i = (lft z1--lft z2) intersectionpoint subpath (0,1) of obinner; +z20o = (rt z1--rt z2) intersectionpoint subpath (1,2) of obouter; +z20i = (lft z1--lft z2) intersectionpoint subpath (1,2) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, 0, clubjut); +fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{right}..z20o-- + z20i..z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i-- + cycle; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "IMAJ letter r"; +beginchar("r", sb#+hstretch*(11/6x_height#+trijut#), + x_height#, 1/2desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=-d; +n1 := w-pcshiftx; % width of bowl +n2 := 5/6h; % height of bowl +z3=(x1-1/2n1, h-n2); +obowl(3, n1, n2); +z10o=(x1,h); z10i=(x1, y10o-thin); +z20o=(x1,y3); z20i=(x20o, y20o+thin); +%% arm +x4=x1; bot y4=y3; +x5=x3maxro; top y5=0; +%%rt x6=w; y6=y4; +rt x6=w; y6=y2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, 0); +fill z10o{right}..z3maxro{-ppdir}..{left}z20o-- + z20i{right}..z3maxri{ppdir}..{left}z10i--cycle; +%%draw z4{right}..z5{right}..{right}z6; % arm +draw z4{right}..{right}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "IMAJ letter s"; +beginchar("s", 2sb#+hstretch*(x_height#+trijut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; top y1=h/ascratio; bot y2=0; +n1 := w; % width of bowl +n2 := 2(h-y1); % height of bowl +z3=(lft x1, y1-1/2n2); +obowl(3, n1, n2); +z4=(2w,2h); +z10o = (z3--z4) intersectionpoint subpath (0,1) of obouter; +z10i = (z3--z4) intersectionpoint subpath (0,1) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +fill rt z1{up}..z3minli{pdir}..z10i-- + z10o..z3minlo{-pdir}..{down}lft z1--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100); +endchar; % end "s" + +cmchar "IMAJ letter t"; +beginchar("t", 2sb#+hstretch*(4/3x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +lft x1 = pcshiftx; y1=h; rt x2=w-pcshiftx; y2=y1; +n1 := w; % width of bowl +n2 := h; % height of bowl +z3=(pcshiftx+thick,0); +obowl(3, n1, n2); +z5=(x1+w, 0); +z20o = (z1--z5) intersectionpoint subpath (1,2) of obouter; +z20i = (z1--z5) intersectionpoint subpath (1,2) of obinner; +z10o = (x3minlo, top y1); +z10i = (x3minlo, bot y1); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % bar +draw_utriangle(1, thick); +draw_triangle(2, thick); +fill z10o{left}..z3maxlo{-ppdir}..z3minro{pdir}..z20o-- + z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i{right}--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "IMAJ letter u"; +beginchar("u", 2sb#+hstretch*(7/6x_height#+1/2trijut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1 = rt x2 = w-pcshiftx-1/2trijut; +y1=h; y2=0; +z1'=(x1-1/2thick,2h); z2'=(x1',-h); +%% bowl +n1 := w; % width of bowl +n2 := 4/3h; % height of bowl +z3=(pcshiftx,0); +obowl(3, n1, n2); +z4=(pcshiftx,h); z5=(w,y4); +z10o = (z4--z5) intersectionpoint subpath (3,4) of obouter; +z10i = (z4--z5) intersectionpoint subpath (3,4) of obinner; +z10'=1/2[z10o,z10i]; +z10=(x10i,y1); +z20o = (z1'--z2') intersectionpoint subpath (1,3) of obouter; +z20i = (z1'--z2') intersectionpoint subpath (1,3) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, 0, clubjut); +fill z10o..z3maxlo{-ppdir}..z3minro{pdir}..z20o-- + z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i--cycle; +draw_triserif(10,trijut); % serif on bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "u" + +cmchar "IMAJ letter v"; +beginchar("v", 2sb#+hstretch*(x_height#+trijut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); +%%draw_triserif(5,trijut); +draw z1--z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +penlabels(1,2,3,4,5,11,100); +endchar; % end "v" + +cmchar "IMAJ letter w"; +beginchar("w", 2sb#+hstretch*(5/3x_height#+trijut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric midx; midx:= w/2-trijut; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +lft x6=pcshiftx+trijut; +top y6=h; +%%lft x7=pcshiftx; y7=y2; +x7=x6; y7=y2; +x8=0.5[x7,x1]; y8=y3; +x15=0.5[x8,x1]; y15=y8; +z15'=z15 shifted (w*pdir); +x2'=x2; y2'=y15; +path p[]; +p1=z1--z2'; +p2=z15--z15'; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); % right half +draw z1--z2{down}..z3{right}..z4{up}..z5; +draw_triserif(6,trijut); % left half +draw z6--z7{down}..z8{right}..z9; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "w" + +cmchar "IMAJ letter x"; +beginchar("x", 2sb#+hstretch*(16/6x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx; bot y1=2/3h; +x2=pcshiftx+1/7n1; top y2=h; +x5=pcshiftx+11/14n1; bot y5=-1/4d; +rt x6=pcshiftx+n1; top y6=1/6h; +%% diag bottom left to top right +x10=x1; bot y10=-d; +x50=pcshiftx+9/14n1; top y50=h; +rt x60=x5; bot y60=2/3h; +x40=pcshiftx+8/14n1; y40=h; +%% triangle +z100=(lft x10, bot y10); +x101=x100+n2; z101=whatever[z100,z40]; +x102=x100; y102=1/2[y100,y101]+n2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z5{right}..z6; % top left to bottom right +draw z10{z40-z10}..z50{right}..z60; % bottom left to top right +fill z100--z101--z102--cycle; % triangle +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "x" + +cmchar "IMAJ letter y"; +beginchar("y", 2sb#+hstretch*(x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +%% main stroke +rt x1=w-pcshiftx; top y1=h; +lft x3=pcshiftx; y3=1/2h; +x4=x1; y4=0; +x2=2/3[x3,x1]; bot y2=h; +lft x5=1/2[x3,x4]; bot y5=-d; +%% arm +z101=1/2[z3,z4]; +z103=(x1,y3); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{down}..z5; % main stroke +draw z101..z103{right}; % arm +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "IMAJ letter z"; +beginchar("z", 2sb#+hstretch*(9/6x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% top bar +n10 := w-2pcshiftx; % letter width +lft x1=pcshiftx; y1=h; +rt x2=pcshiftx+2/3n10; y2=y1; +%% diagonal +x3=x1; bot y3=0; +%% bowl +n1 := 2/3n10; % width of bowl +n2 := 5/6h; % height of bowl +z4=(w-pcshiftx-n1, 0); +obowl(4, n1, n2); +z5'=(0,1/4n2); z6'=(x4obc,y5'); +z20o = (z5'--z6') intersectionpoint obouter; +z20i = (z5'--z6') intersectionpoint obinner; +z7'=(0,2/3n2); z8'=(x6',y7'); +z10o = whatever[lft z3, lft z2] = whatever[z7',z8']; +z10i = whatever[rt z3, rt z2] = whatever[z7',z8']; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % top bar +draw_utriangle(1,thick); +draw z2--z3; % diagonal +fill z20o..z4minro{pdir}..z4maxro{ppdir}..z4minlo{-pdir}..{z3-z2}z10o-- + z10i{z2-z3}..z4minli{pdir}..z4maxri{-ppdir}..z4minri{-pdir}..z20i-- + cycle; +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/imajlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajlig.mf new file mode 100644 index 00000000000..190833a97b1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajlig.mf @@ -0,0 +1,145 @@ +%% +%% This is file `imajlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 "f": "i"=:oct"014"; + + +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*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw_triangle(11,alpha); +draw_rutriangle(12,alpha); +pickup thickstylus; +lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=y1; +draw z21--z22; +penlabels(1,2); +endchar; % end of "-" + + +cmchar "En dash"; +beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw_triangle(11,alpha); +draw_rutriangle(12,alpha); +pickup thickstylus; +lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=y1; +draw z21--z22; +penlabels(1,2); +endchar; % end of "--" + + +cmchar "Em dash"; +beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +x11=lft x1+alpha/2; y11=top y1-0.5thin; +x12=rt x2; y12=bot y1+0.5thin; +draw_triangle(11,alpha); +draw_rutriangle(12,alpha); +pickup thickstylus; +lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=y1; +draw z21--z22; +penlabels(1,2); +endchar; % end of "---" + + +cmchar "IMAJ ampersand"; +beginchar("&", 2sb#+hstretch*(6/3x_height#), asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx:=sb; +pickup quill; +n10 := w-2pcshiftx; % width of character +%% crossbar +z1'=(0,h/ascratio); +rt x2=w-pcshiftx; y2=y1'; +%% main bowl +n1 := 4/6n10; % width of bowl +n2 := h; % height of bowl +z3=(pcshiftx,0); +obowl(3, n1, n2); +z2'=(x3obc,y1'); +z1 = (z1'--z2') intersectionpoint obinner; +z10o = (z2'--z2) intersectionpoint obouter; +z10i = (z2'--z2) intersectionpoint obinner; +%% wave +x4=x2; bot y4=0; +pth1 := z1{right}..z4{right}; +%% wave/bowl +z20o = pth1 intersectionpoint subpath (0,2) of obouter; +z20i = pth1 intersectionpoint subpath (0,2) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{pdir}..z20o-- + z20i..z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i-- + cycle; +draw z1--z2; % bar +draw pth1; % wave +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,31,32,33); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajpunct.mf new file mode 100644 index 00000000000..26413b9382f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajpunct.mf @@ -0,0 +1,138 @@ +%% +%% This is file `imajpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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; +z1=(w/2,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*(x_height#), + 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 +%% top bowl +z1=(pcshiftx, h-n2); +obowl(1, n1, n2); +pth1 := obouter; +%% bottom bowl +z2=(x1,y1-n3); +obowl(2, n1, n3); +pth2 := obouter; +%% stem and dot +lft x4 = x1 + 4/4thick; +z5=(x4,1/2dot_size); +y4=y5+3/2dot_size; +z4o=(lft x4, y4); z4i=(rt x4, y4); +%%ductus:= true; +if ductus: + pickup stylus; + draw pth1; draw pth2; + draw z2wt--z4; + draw_pdot(5, dot_size); +else: + fill z1maxlo{ppdir}..z1minlo{pdir}..z1maxro{-ppdir}.. +%% z1minro..z2maxli{-ppdir}.. + z2minli.. + {down}z4i--z4o{up}.. + z2minlo.. +%% z1minri..z1maxri{ppdir}.. + z1maxri{ppdir}..z1minli{-pdir}..z1maxli{-ppdir}--cycle; + draw_pdot(5, dot_size); +fi +penlabels(1,2,3,4,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=h/2; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "," + + +cmchar "Period"; +beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=sb; +x1=w/2; y1=h/2; +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=2/3h; y2=1/3h; +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=2/3h; y2=1/3h; +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/imajtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajtitle.mf new file mode 100644 index 00000000000..0a0da946797 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imajtitle.mf @@ -0,0 +1,611 @@ +%% +%% This is file `imajtitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 inslrmaj_font_setup= % contains special stuff for inslrmaj 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,cap_jut,trijut); + define_pixels(fig_width); + define_whole_pixels(letter_fit,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); + 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; + 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 inslrmaj_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_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_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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; +%% filldraw z$s--z$t--z$u--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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; +%% filldraw z$s--z$t--z$v--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[]; + 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); + 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); + fi + obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle; + z$minl = directionpoint dir(pangle) of obfirst; + z$maxr = directionpoint -dir(pangle+90) of obfirst; + z$minr = directionpoint -dir(pangle) of obfirst; + z$maxl = directionpoint dir(pangle+90) of obfirst; + 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..z$maxro..z$minro..z$maxlo..cycle; +%% obouter := z$minl.r..z$maxr.r..z$minr.l..z$maxl.l..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; +%% obinner := z$minl.l..z$maxr.l..z$minr.r..z$maxl.r..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; +inslrmaj_font_setup; + + +input imajl; % lower case +input imaju; % capitals +input imajpunct; % punctuation +input imajlig; % the several dashes +input imajdig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: + font_normal_space vstretch*9u#; % no stretching or shrinking + font_quad vstretch*18u#; + font_extra_space vstretch*9u#; +else: + font_normal_space vstretch*6u#+2letter_fit#; + font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#; + font_quad vstretch*18u#+4letter_fit#; + font_extra_space vstretch*2u#; + + 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/imaju.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaju.mf new file mode 100644 index 00000000000..54152894c55 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imaju.mf @@ -0,0 +1,840 @@ +%% +%% This is file `imaju.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmaj.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 "IMAJ letter A"; +beginchar("A", 2sb#+caprat*hstretch*(5/3x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left bowl +n1 := w-2pcshiftx; % actual letter width +n2 := 7/10n1; % width of left bowl +z1=(pcshiftx,0); +obowl(1, n2, h); +pth1:=obouter; pth2:=obinner; +pth10:=obfirst; pth20:=obsecond; +%% right bowl +n3:=x1+n2-16/12thick; % leftmost point of "stem" +n4:=2(n1-n3); % total width of right stem bowl +z2=(n3,0); +offsetbowl(2, n4, h, 6/12, 1/2); +pth3:=obouter; pth4:=obinner; +pth30:=obfirst; pth40:=obsecond; +%% intersect left bowl with outer of right bowl +z1tout = (subpath (0,1) of pth1) intersectionpoint (subpath (4,2) of pth3); +z1tinn = (subpath (0,1) of pth2) intersectionpoint (subpath (4,2) of pth3); +z1lout = (subpath (1,2) of pth1) intersectionpoint (subpath (4,2) of pth3); +z1linn = (subpath (1,2) of pth2) intersectionpoint (subpath (4,2) of pth3); + +%%ductus:=true; +if ductus: + pickup stylus; + % draw the control paths + draw pth10; draw pth20; + draw pth30; draw pth40; +else: + %% draw left bowl + fill z1lout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z1tout-- + z1tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z1linn-- + cycle; + %% draw right stem/bowl + fill z2minro{-pdir}..z2maxlo{ppdir}..{pdir}z2minlo-- + z2minli{-pdir}..z2maxli{-ppdir}..{pdir}z2minri--cycle; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "A" + +cmchar "IMAJ letter B"; +beginchar("B", 2sb#+caprat*hstretch*(7/6x_height#), + caprat*asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +z1=(pcshiftx, -o); +obowl(1, n1, n2+o); +%% draw bowl +fill obouter; unfill obinner; +%% top of stem +x2=x1wt+1/3n1; top y2=h; +tangentpoint(2, subpath (3,4) of obsecond); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z2tan--z2; +draw_triserif(2,trijut); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "IMAJ letter C"; +beginchar("C", 2sb#+caprat*hstretch*(5/6x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=6/5w-2pcshiftx; % width of full bowl +z1=(pcshiftx,0); +obowl(1, n2, h); +z3=(x1+n1, h); % top RH corner +z4=(x1obc,1/6h); z5=(3/2w,y4); % for horizontal line +%% top intersection points +z10i = (z1obc--z3) intersectionpoint obinner; +z10o = (z1obc--z3) intersectionpoint obouter; +%% bottom intersection points +z20i = (z4--z5) intersectionpoint obinner; +z20o = (z4--z5) intersectionpoint obouter; +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill z20o..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10o-- + z10i..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20i-- + cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,16,17,18,100); +endchar; % end "C" + +cmchar "IMAJ letter D"; +beginchar("D", 2sb#+caprat*hstretch*(x_height#+1/2thick#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% bowl +n1 := w-2pcshiftx; % actual letter width +n2 := n1-1/2thick; % width of bowl +n3 := h; % top of bowl +z1=(w-pcshiftx-n2, 0); +obowl(1, n2, n3); +%% top bar +lft x3=pcshiftx; y3=h; +z3i=(pcshiftx, y3-1/2thin); z3o=(x3i,y3i+thin); +z2i=(x1nh,y3i); +z2o=(x2i,y3o); +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill z1minlo{-pdir}..z1maxlo{-ppdir}..z1minro{pdir}..z1maxro{ppdir}..{left}z2o-- + z3o--z3i-- + z2i{right}..z1maxri{-ppdir}..z1minri{-pdir}..z1maxli{ppdir}..{pdir}z1minli-- + cycle; +draw_utriangle(3, thick); +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "IMAJ letter E"; +beginchar("E", sb#+caprat*hstretch*(x_height#+3/2thick#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := n1-3/2thick; % width of bowl +z1=(pcshiftx,0); +obowl(1, n2, h); +%% for crossbar +z2=(0,2/3h); rt x3=w; y3=y2; z3'=(x1obc,y2); +z4 = (z2--z3') intersectionpoint subpath (3,4) of obsecond; +z10tout = (z3'--z3) intersectionpoint subpath (0,3) of obouter; +z10tinn = (z3'--z3) intersectionpoint subpath (0,3) of obinner; +%% bottom cutoff +z5=(x1obc,1/6h); z6=(w,y5); +z20bout = (z5--z6) intersectionpoint subpath (0,3) of obouter; +z20binn = (z5--z6) intersectionpoint subpath (0,3) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill z20bout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10tout-- + z10tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20binn-- + cycle; +draw z4--z3; % crossbar & decoration +draw_triangle(3,thick); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "E" + +cmchar "IMAJ letter F"; +beginchar("F", 2sb#+caprat*hstretch*(x_height#+trijut#), + caprat*(x_height#), caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-d; +%% bottom bar +z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6]; +%% top bar +z7=(rt x1, bot y1); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar +draw_flick(7, 2thin, thin, (w-pcshiftx-x7+1/2thick)); % top bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "F" + +cmchar "IMAJ letter G"; +beginchar("G", 2sb#+caprat*hstretch*(5/3x_height#), + caprat*x_height#, caprat*desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +pcshiftx := sb; +pickup quill; +%% top bar +lft x1=pcshiftx; y1=h; rt x2=w-pcshiftx; y2=h; +%% curves +z3=2/5[z1,z2]; +x5=4/5[x1,x2]; y5=-1/2d; +x4=(x3-thick); y4=1/2[y5,y3]; +x7=1/2[x1,x4]; y7=y5; +x6=2/3[x7,x5]; bot y6=-d; +pth1 := z3..z4{down}..z5; +pth2 := z5--z6{left}..z7; +%% diagonal to close bottom bowl +vec1 := direction 2 of pth2; +vec2 := (z5-z6); +z7'=(lft x7, bot y7); z7''=(rt x7, y7); +pickup thickstylus; +lft x8 = x7'; bot y8 = y7'; +z9' = z8 shifted 2vec2; +z9 = (z8--z9') intersectionpoint pth1; +z7''' = z7'' shifted 2vec1; +z8' = whatever[z7'',z7'''] = whatever[z8,z9']; +%%ductus:=true; +if ductus: + pickup stylus; + draw z1--z2; % top bar + draw pth1; draw pth2; % curves + draw rt z8--z9; % diagonal +else: + pickup quill; + draw z1--z2; % top bar + draw_triangle(2,thick); + draw_utriangle(1,thick); + draw pth1; draw pth2; % curves + pickup thickstylus; + draw rt z8--z9; % diagonal + fill z7''--z8'--z8--cycle; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "G" + +cmchar "IMAJ letter H"; +beginchar("H", 2sb#+caprat*hstretch*(x_height#+trijut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +%% bowl +rt x3 = lft x1; y3=0; +n1 := w-pcshiftx-x3; % bowl width +n2 := h/ascratio; % bowl height +obowl(3, n1, n2); +z1'=(rt x1, y1); z2'=(x1',y2); %% right hand side of stem +z10tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter; +z10tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner; +z10toth = (x1, y10tinn); % avoids 180 turn in path +z6 = directionpoint down of obsecond; % top of right leg +z6i=(lft x6, bot y6); z6o=(rt x6, bot y6); +z8=(x6,0); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +draw_tstem(6,8,srad); % right leg +draw_clubbase(6, 8, 1/3, 0, 1/2clubjut); +fill z6i{up}..z3minli{-pdir}..z10tinn--z10toth-- % top of bowl + z10tout..z3minlo{pdir}..{down}z6o--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "IMAJ letter I"; +beginchar("I", 2sb#+caprat*hstretch*(thick#+trijut#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +ductus:=false; +penlabels(1,2,100); +endchar; % end "I" + +cmchar "IMAJ letter J"; +beginchar("J", sb#+caprat*hstretch*(2/3x_height#), + caprat*x_height#, caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%% triangle +n1 := thick; % side length +z6=(lft x3, bot y3); +x7=x6+n1; z7=whatever[z6,z2]; +z8=1/2[z6,z7]; +z9=(x8, y8+0.9n1); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_triserif(1,trijut); +draw z2--z3; % hook +fill z6--z7--z9--cycle; % triangle +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "J" + +cmchar "IMAJ letter K"; +beginchar("K", 2sb#+caprat*hstretch*(x_height#+trijut#), + caprat*x_height#, caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=h; bot y2=-d; +%% top arm +z3=(x1,5/6h); +rt x5=w-pcshiftx; y5=2/3h; +x4=1/2[x3,x5]; top y4=h; +%% lower arm +x7=x5; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1,2,1/3, clubjut, clubjut); +draw z3..z4{right}..z5; % upper arm +draw z3..{right}z7; % lower arm +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "K" + +cmchar "IMAJ letter L"; +beginchar("L", 2sb#+caprat*hstretch*(7/6x_height#), + caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x2=pcshiftx; y2=1/5h; +x1=x2+trijut; top y1=h; +rt x4=w-pcshiftx; y4=1/5h; +x3=1/2[x2,x4]; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z2..z3{right}..z4; +draw_triserif(1,trijut); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "IMAJ letter M"; +beginchar("M", 2sb#+caprat*hstretch*(5/3x_height#+trijut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=0; +z1'=(rt x1, y1+h); z2'=(rt x2, y2-h); +%% right stem +rt x5=w-pcshiftx; y5=y1; +z6=(x5,0); +%% middle stem +z3=1/2[z1,z5]; z4=1/2[z2,z6]; +z3'=(rt x3, y3); z4'=(rt x4, y4); +n1 := x4-x2+3/2thick; % width of bowl +n2 := 2/3h; % height of bowl +%% left bowl +z7=(rt x4 - n1, h-n2); +obowl(7, n1, n2); +pth1 := obouter; pth2 := obinner; pth3 := obsecond; +z17tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter; +z17tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner; +z17toth = (x2, y17tinn); +%% right bowl +z8=(rt x6 - n1, y7); +obowl(8, n1, n2); +pth5 := obouter; pth6 := obinner; pth7 := obsecond; +z18tout = pth5 intersectionpoint subpath (0,1) of pth1; +z18tinn = pth6 intersectionpoint subpath (0,1) of pth1; +z13 = directionpoint down of pth3; +z15 = directionpoint down of pth7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +fill z17tout..z7minlo{pdir}..{down}(rt x13, y13)-- + (lft x13, y13){up}..z7minli{-pdir}..z17tinn--z17toth--cycle; +draw_tstem(13,4,srad); % right half +fill z18tout..z8minlo{pdir}..{down}(rt x15, y15)-- + (lft x15, y15){up}..z8minli{-pdir}..z18tinn--cycle; +draw_tstem(15,6,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,14,100); +endchar; % end "M" + +cmchar "IMAJ letter N"; +beginchar("N", 2sb#+caprat*hstretch*(7/6x_height#+trijut#), + caprat*x_height#, caprat*(1/2desc_depth#)); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+trijut; top y1=h; +x2=x1; bot y2=-d; +%% right stem +rt x3=w-pcshiftx; y3=y1; +z4=(x3,0); +%% bar +z5=(x1,1/3h); z6=(x4,1/6h); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +draw_tstem(3,4,srad); % right stem +draw_clubbase(3, 4, 1/3, clubjut, clubjut); +draw z5--z6; % bar +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "N" + +cmchar "IMAJ letter O"; +beginchar("O", 2sb#+caprat*hstretch*(7/6x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +%%ductus:=true; +if ductus: + pickup stylus; +fi +fill obouter; unfill obinner; +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "O" + +cmchar "IMAJ letter P"; +beginchar("P", 2sb#+caprat*hstretch*(8/6x_height#+trijut#), + caprat*x_height#, caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; +top y1=1/3h; bot y2=-d; +n1 := w - pcshiftx - lft x1; % width of bowl +n2 := h+1/4d; % height of bowl +z3=(lft x1, -1/4d); +obowl(3, n1, n2); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, 0); +fill lft z1{up}..z3minlo{pdir}..z3maxro{-ppdir}..{-pdir}z3minro-- + z3minri{pdir}..z3maxri{ppdir}..z3minli{-pdir}..{down}rt z1-- + cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "IMAJ letter Q"; +beginchar("Q", 2sb#+caprat*hstretch*(x_height#+1/2trijut#), + caprat*x_height#, caprat*(1/2desc_depth#)); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx-1/2trijut; top y1=h; +x2=x1; bot y2=-d; +z3=(pcshiftx,0); +n1 := w; % width of bowl +n2 := h; % height of bowl +obowl(3, n1, n2); +z10o = (rt z1--rt z2) intersectionpoint subpath (0,1) of obouter; +z10i = (lft z1--lft z2) intersectionpoint subpath (0,1) of obinner; +z20o = (rt z1--rt z2) intersectionpoint subpath (1,2) of obouter; +z20i = (lft z1--lft z2) intersectionpoint subpath (1,2) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, 0, clubjut); +fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{right}..z20o-- + z20i..z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i-- + cycle; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "Q" + +cmchar "IMAJ letter R"; +beginchar("R", sb#+caprat*hstretch*(11/6x_height#+trijut#), + caprat*x_height#, caprat*(1/2desc_depth#)); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=-d; +n1 := w-pcshiftx; % width of bowl +n2 := 5/6h; % height of bowl +z3=(x1-1/2n1, h-n2); +obowl(3, n1, n2); +z10o=(x1,h); z10i=(x1, y10o-thin); +z20o=(x1,y3); z20i=(x20o, y20o+thin); +%% arm +x4=x1; bot y4=y3; +x5=x3maxro; top y5=0; +%%rt x6=w; y6=y4; +rt x6=w; y6=y2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, 0); +fill z10o{right}..z3maxro{-ppdir}..{left}z20o-- + z20i{right}..z3maxri{ppdir}..{left}z10i--cycle; +%%draw z4{right}..z5{right}..{right}z6; % arm +draw z4{right}..{right}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "IMAJ letter S"; +beginchar("S", 2sb#+caprat*hstretch*(x_height#+trijut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+trijut; top y1=h/ascratio; bot y2=0; +n1 := w; % width of bowl +n2 := 2(h-y1); % height of bowl +z3=(lft x1, y1-1/2n2); +obowl(3, n1, n2); +z4=(2w,2h); +z10o = (z3--z4) intersectionpoint subpath (0,1) of obouter; +z10i = (z3--z4) intersectionpoint subpath (0,1) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, clubjut, clubjut); +fill rt z1{up}..z3minli{pdir}..z10i-- + z10o..z3minlo{-pdir}..{down}lft z1--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100); +endchar; % end "S" + +cmchar "IMAJ letter T"; +beginchar("T", 2sb#+caprat*hstretch*(4/3x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +lft x1 = pcshiftx; y1=h; rt x2=w-pcshiftx; y2=y1; +n1 := w; % width of bowl +n2 := h; % height of bowl +z3=(pcshiftx+thick,0); +obowl(3, n1, n2); +z5=(x1+w, 0); +z20o = (z1--z5) intersectionpoint subpath (1,2) of obouter; +z20i = (z1--z5) intersectionpoint subpath (1,2) of obinner; +z10o = (x3minlo, top y1); +z10i = (x3minlo, bot y1); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % bar +draw_utriangle(1, thick); +draw_triangle(2, thick); +fill z10o{left}..z3maxlo{-ppdir}..z3minro{pdir}..z20o-- + z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i{right}-- + cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "IMAJ letter U"; +beginchar("U", 2sb#+caprat*hstretch*(7/6x_height#+1/2trijut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1 = rt x2 = w-pcshiftx-1/2trijut; +y1=h; y2=0; +z1'=(x1-1/2thick,2h); z2'=(x1',-h); +%% bowl +n1 := w; % width of bowl +n2 := 4/3h; % height of bowl +z3=(pcshiftx,0); +obowl(3, n1, n2); +z4=(pcshiftx,h); z5=(w,y4); +z10o = (z4--z5) intersectionpoint subpath (3,4) of obouter; +z10i = (z4--z5) intersectionpoint subpath (3,4) of obinner; +z10'=1/2[z10o,z10i]; +z10=(x10i,y1); +z20o = (z1'--z2') intersectionpoint subpath (1,3) of obouter; +z20i = (z1'--z2') intersectionpoint subpath (1,3) of obinner; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_triserif(1,trijut); +draw_clubbase(1, 2, 1/3, 0, clubjut); +fill z10o..z3maxlo{-ppdir}..z3minro{pdir}..z20o-- + z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i--cycle; +draw_triserif(10,trijut); % serif on bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "U" + +cmchar "IMAJ letter V"; +beginchar("V", 2sb#+caprat*hstretch*(x_height#+trijut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); +%%draw_triserif(5,trijut); +draw z1--z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +penlabels(1,2,3,4,5,11,100); +endchar; % end "V" + +cmchar "IMAJ letter W"; +beginchar("W", 2sb#+caprat*hstretch*(5/3x_height#+trijut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric midx; midx:= w/2-trijut; +lft x1=midx+trijut; top y1=h; +x2=x1; y2=h/2; +rt x4=w-pcshiftx; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-trijut; y5=y1; +lft x6=pcshiftx+trijut; +top y6=h; +%%lft x7=pcshiftx; y7=y2; +x7=x6; y7=y2; +x8=0.5[x7,x1]; y8=y3; +x15=0.5[x8,x1]; y15=y8; +z15'=z15 shifted (w*pdir); +x2'=x2; y2'=y15; +path p[]; +p1=z1--z2'; +p2=z15--z15'; +z9= p2 intersectionpoint p1; +pair vec[]; +p3=z6..z7{down}..{right}z8; +vec3 = direction 0 of p3; +z16=z6 shifted vec3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_triserif(1,trijut); % right half +draw z1--z2{down}..z3{right}..z4{up}..z5; +draw_triserif(6,trijut); % left half +draw z6--z7{down}..z8{right}..z9; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "W" + +cmchar "IMAJ letter X"; +beginchar("X", 2sb#+caprat*hstretch*(16/6x_height#), + caprat*x_height#, caprat*desc_depth#); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx; bot y1=2/3h; +x2=pcshiftx+1/7n1; top y2=h; +x5=pcshiftx+11/14n1; bot y5=-1/4d; +rt x6=pcshiftx+n1; top y6=1/6h; +%% diag bottom left to top right +x10=x1; bot y10=-d; +x50=pcshiftx+9/14n1; top y50=h; +rt x60=x5; bot y60=2/3h; +x40=pcshiftx+8/14n1; y40=h; +%% triangle +z100=(lft x10, bot y10); +x101=x100+n2; z101=whatever[z100,z40]; +x102=x100; y102=1/2[y100,y101]+n2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z5{right}..z6; % top left to bottom right +draw z10{z40-z10}..z50{right}..z60; % bottom left to top right +fill z100--z101--z102--cycle; % triangle +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "X" + +cmchar "IMAJ letter Y"; +beginchar("Y", 2sb#+caprat*hstretch*(x_height#), + caprat*x_height#, caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +%% main stroke +rt x1=w-pcshiftx; top y1=h; +lft x3=pcshiftx; y3=1/2h; +x4=x1; y4=0; +x2=2/3[x3,x1]; bot y2=h; +lft x5=1/2[x3,x4]; bot y5=-d; +%% arm +z101=1/2[z3,z4]; +z103=(x1,y3); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{down}..z5; % main stroke +draw z101..z103{right}; % arm +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "IMAJ letter Z"; +beginchar("Z", 2sb#+caprat*hstretch*(9/6x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% top bar +n10 := w-2pcshiftx; % letter width +lft x1=pcshiftx; y1=h; +rt x2=pcshiftx+2/3n10; y2=y1; +%% diagonal +x3=x1; bot y3=0; +%% bowl +n1 := 2/3n10; % width of bowl +n2 := 5/6h; % height of bowl +z4=(w-pcshiftx-n1, 0); +obowl(4, n1, n2); +z5'=(0,1/4n2); z6'=(x4obc,y5'); +z20o = (z5'--z6') intersectionpoint obouter; +z20i = (z5'--z6') intersectionpoint obinner; +z7'=(0,2/3n2); z8'=(x6',y7'); +z10o = whatever[lft z3, lft z2] = whatever[z7',z8']; +z10i = whatever[rt z3, rt z2] = whatever[z7',z8']; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % top bar +draw_utriangle(1,thick); +draw z2--z3; % diagonal +fill z20o..z4minro{pdir}..z4maxro{ppdir}..z4minlo{-pdir}..{z3-z2}z10o-- + z10i{z2-z3}..z4minli{pdir}..z4maxri{-ppdir}..z4minri{-pdir}..z20i-- + cycle; +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/imin10.mf b/Master/texmf-dist/fonts/source/public/bookhands/imin10.mf new file mode 100644 index 00000000000..db6dbe31e5b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imin10.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imin10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 +%% +%%% IMIN10.MF Insular Minuscule at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMIN"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.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.37; + + 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/2u#; % unit for side bearings + + cap_height#:=246/36pt#; % height of caps + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=5/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +clubjut:=5/12; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imin17.mf b/Master/texmf-dist/fonts/source/public/bookhands/imin17.mf new file mode 100644 index 00000000000..d15f2e81c27 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imin17.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imin17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 +%% +%%% IMIN17.MF Insular Minuscule at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMIN"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.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.37; + + 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/2u#; % unit for side bearings + + cap_height#:=425/36pt#; % height of caps + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=5/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +clubjut:=5/12; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imin7.mf b/Master/texmf-dist/fonts/source/public/bookhands/imin7.mf new file mode 100644 index 00000000000..b8513b104bf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imin7.mf @@ -0,0 +1,77 @@ +%% +%% This is file `imin7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 +%% +%%% IMIN7.MF Insular Minuscule at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMIN"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.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.37; + + 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/2u#; % unit for side bearings + + cap_height#:=172.2/36pt#; % height of caps + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=5/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +clubjut:=5/12; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminb10.mf new file mode 100644 index 00000000000..a5f2549f6c8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/iminb10.mf @@ -0,0 +1,77 @@ +%% +%% This is file `iminb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 +%% +%%% IMINB10.MF Insular Minuscule Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMINB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.37; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=5/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +clubjut:=5/12; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminb17.mf new file mode 100644 index 00000000000..fd6e46e0346 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/iminb17.mf @@ -0,0 +1,77 @@ +%% +%% This is file `iminb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 +%% +%%% IMINB17.MF Insular Minuscule Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMINB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.37; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=5/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +clubjut:=5/12; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminb7.mf new file mode 100644 index 00000000000..44eb260a67e --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/iminb7.mf @@ -0,0 +1,77 @@ +%% +%% This is file `iminb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 +%% +%%% IMINB7.MF Insular Minuscule Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="IMINB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.37; + + 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/2u#; % unit for 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 + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=5/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +clubjut:=5/12; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate imintitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imindig.mf b/Master/texmf-dist/fonts/source/public/bookhands/imindig.mf new file mode 100644 index 00000000000..7dfce6b993a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imindig.mf @@ -0,0 +1,223 @@ +%% +%% This is file `imindig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 "Uncial digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "1" + +cmchar "Uncial digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(5,6,thin); % foot +draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "Uncial digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +%%lft x6=pcshiftx+3thin; x7=x6; +x6=1/2[x3,x9]; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl +draw z7{right}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "Uncial digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw_wave(3,4,thin); % crossbar +draw z3wl--z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "Uncial digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(2,1,thin); % top squiggle +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +draw z2wl--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "Uncial digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "Uncial 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 "Uncial digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "Uncial digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Uncial digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminl.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminl.mf new file mode 100644 index 00000000000..835ed13c020 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/iminl.mf @@ -0,0 +1,729 @@ +%% +%% This is file `iminl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 "IMIN letter a"; +beginchar("a", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +x1 = pcshiftx + 2/3n1; top y1=h; +rt x2 = pcshiftx + n1; bot y2=0; +z16 = 1/6[z2,z1]; +rt x6 = x16; y6=y16; +lft x4 = pcshiftx; y4 = 1/2h; +pth1 := z1{down}..z2; +pr1 := direction 1 of pth1; +z20 = z2 shifted -10pr1; +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + draw_roundserif(2,20,srad); + % draw bowl + draw z1{-pdir}..z4{down}..z6{pdir}; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "a" + +cmchar "IMIN letter b"; +beginchar("b", 2sb#+hstretch*(3/4x_height#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +%%ductus:=true; +lft x1 = pcshiftx+jut; top y1=h; +lft x3 = pcshiftx; y3=1/2n2; +rt x5 = w-pcshiftx; y5=y3; +x4 = 1/2[x3,x5]; bot y4=0; +x6=x4; top y6=n2; +pth1 := z1..z3{down}..z4{right}.. z5{up}; +z98=(0,3/4n2); z99=(w,y98); +pth2 := z98--z99; +z7 = pth1 intersectionpoint pth2; +if ductus: + pickup stylus; +fi +draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir}; +draw_flatserif(1,7,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "IMIN letter c"; +beginchar("c", 2sb#+hstretch*(5/8x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "c" + +cmchar "IMIN letter d"; +beginchar("d", 2sb#+hstretch*(3/4x_height#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; top y1=h; +rt x3 = w-pcshiftx; y3 = 1/2h/ascratio; +x4 = 1/2[x1,x3]; bot y4 = 0; +z5=(x1,y3); +z98=(0,h/ascratio); z99=(w,y98); pth2 := z98--z99; +pth1 := z1{-ppdir}..z3{down}..z4{left}; +z6 = pth1 intersectionpoint pth2; +if ductus: + pickup stylus; +fi +draw z1{-ppdir}..z3{down}..z4{left}..z5{up}..z6{pdir}; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "IMIN letter e"; +beginchar("e", sb#+hstretch*(5/4x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := 4/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +z98=(0,3/8h); z99=(w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x9 = w-pcshiftx; y9 = 3/4h; +z8=1/2[z7,z9]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir}; +draw z7{pdir}..z8{right}..z9{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "e" + +cmchar "IMIN letter f"; +beginchar("f", 2sb#+hstretch*(3/4x_height#+jut#), + (x_height#), desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; y2=-1/2d; +lft x20=0; bot y20=-d; +%% bottom bar +z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6]; +%% top bar +x7= x1; bot y7 = 1/2h; +rt x9= w-pcshiftx; y9 = 1/2[y7,y1]; +x8 = 2/3[x7,x9]; top y8 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z2{down}..z20{-pdir}; +draw_flatserif(1,2,srad); +draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar +%%draw_flick(7, 2thin, thin, (w-pcshiftx-x7+1/2thick)); % top bar +draw z7..z8..z9; % top bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "f" + +cmchar "IMIN letter g"; +beginchar("g", 2sb#+hstretch*(x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +pcshiftx := sb; +pickup quill; +%% top bar +lft x1=pcshiftx; top y1=h; rt x2=w-pcshiftx; top y2=h; +x3=1/2[x1,x2]; bot y3=1/8h; +rt x5 = w-pcshiftx; y5 = -1/2d; +x6 = x3; bot y6 = -d; +x7 = 1/2[x1,x3]; y7 = y5; +x8=x3; y8 = -y3; +%%ductus:=true; +if ductus: + pickup stylus; + draw z1--z2; % top bar + draw pth1; draw pth2; % curves + draw rt z8--z9; % diagonal +else: + draw z1--z2; + draw z2--z3; + draw z3{pdir}..z5{down}..z6{left}..z7{up}..z8{pdir}; + draw_roundserif(1,2,srad); +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "g" + +cmchar "IMIN letter h"; +beginchar("h", 2sb#+hstretch*(7/8x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=1/2[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h/ascratio; +lft x6=x4; bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4..z5..z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "IMIN letter i"; +beginchar("i", 2sb#+hstretch*(thick#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "IMIN letter j"; +beginchar("j", sb#+hstretch*(3/8x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_flatserif(1,2,srad); +draw z2{down}..z3{-pdir}; % hook +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "IMIN letter k"; +beginchar("k", 2sb#+hstretch*(x_height#+jut#), + asc_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; y2=-1/2d; +lft x20=pcshiftx; bot y20=-d; +%% top arm +z3=(x1,1/2h/ascratio); +rt x5=w-pcshiftx; y5=1/2[y3,y4]; +x4=1/2[x3,x5]; top y4=h/ascratio; +%% lower arm +x7=x5; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z2{down}..z20{-pdir}; +draw_flatserif(1,2,srad); +draw z3..z4{right}..z5; % upper arm +draw z3..{right}z7; % lower arm +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "k" + +cmchar "IMIN letter l"; +beginchar("l", 2sb#+hstretch*(3/4x_height#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x2=pcshiftx; y2=1/5h; +x1=x2+jut; top y1=h; +rt x4=w-pcshiftx; y4=1/5h; +x3=1/2[x2,x4]; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z2..z3{right}..z4; +draw_flatserif(1,2,srad); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "IMIN letter m"; +beginchar("m", 2sb#+hstretch*(x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of right and middle stems +rt x6 = w -pcshiftx - jut; y6=y2; +z4 = 1/2[z2,z6]; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z33{down}--z4; +draw_roundserif(4,3,srad); +draw z33{pdir}..z34{right}..z5{down}--z6; +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "m" + +cmchar "IMIN letter n"; +beginchar("n", 2sb#+hstretch*(5/8x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x13=x1; y13=3/4h; +%% right stem +rt x4 = w-pcshiftx-jut; y4=y2; +x3 = x4; y3 = y13; +x14 = 2/3[x13,x3]; top y14 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z3{down}--z4; +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "n" + +cmchar "IMIN letter o"; +beginchar("o", 2sb#+hstretch*(3/4x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +draw z1..z2..z3..z4..cycle; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +%%ductus:=true; +if ductus: + pickup stylus; + draw obfirst; draw obsecond; draw obouter; draw obinner; +else: +%% fill obouter; unfill obinner; +fi +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "o" + +cmchar "IMIN letter p"; +beginchar("p", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-1/2d; +lft x20 = pcshiftx; bot y20 = -d; +%% bowl % from "h" +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +lft x6=x4; bot y6=0; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw z2{down}..z20{-pdir}; +draw z3{pdir}..z4..z5..z6{-pdir}; % bowl (from h) +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "IMIN letter q"; +beginchar("q", 2sb#+hstretch*(3/4x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx; top y1=h; +x2=x1; bot y2=-1/2d; +x20 = x1-jut; bot y20=-d; +%% bowl +z3=1/4[(x1,0),z1]; +lft x5=pcshiftx; y5=y3; +x4=1/2[x3,x5]; bot y4=0; +x6=x1-jut; top y6=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw z2{down}..z20{-pdir}; % stem +draw_flatserif(1,2,srad); +draw z3{-pdir}..z4{left}..z5{up}..z6{pdir}; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "IMIN letter r"; +beginchar("r", sb#+hstretch*(7/8x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-1/2d; +lft x20 = pcshiftx; bot y20 = -d; +%% bowl +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw z2{down}..z20{-pdir}; + +draw z3{pdir}..z4{right}..z5{pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "IMIN letter s"; +beginchar("s", 2sb#+hstretch*(3/4x_height#+jut#), + asc_height#, desc_depth#); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=h/ascratio; bot y2=-1/2d; +lft x20=pcshiftx; bot y20=-d; +%% flick +x4=x2; y4 = 1/2h/ascratio; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z2{down}..z20{-pdir}; +draw_flatserif(1,2,srad); +draw z4{up}...z5{right}...z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "s" + +cmchar "IMIN letter t"; +beginchar("t", 2sb#+hstretch*(5/4x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +lft x1 = pcshiftx; top y1=h; rt x2=w-pcshiftx; bot y2=h; +n1 := w; % width of bowl +n2 := h; % height of bowl +z3=1/2[z1,z2]; +lft x4 = pcshiftx + 1/8n1; y4 = 1/2h; +x5=x3; bot y5 = 0; +rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{pdir}..z3..z2{pdir}; % bar +draw z3..z4{down}..z5{right}..z6{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "IMIN letter u"; +beginchar("u", 2sb#+hstretch*(5/8x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "u" + +cmchar "IMIN letter v"; +beginchar("v", 2sb#+hstretch*(3/4x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +rt x23=w-pcshiftx; y23=3/4h; +lft x26=x14; top y26=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}; % left stem +draw_flatserif(1,13,srad); +draw z14{pdir}..z23{up}..z26; + +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "v" + +cmchar "IMIN letter w"; +beginchar("w", 2sb#+hstretch*(x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33{down}..z34{right}..z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "w" + +cmchar "IMIN letter x"; +beginchar("x", 2sb#+hstretch*(x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx; bot y1=2/3h; +x2=pcshiftx+1/7n1; top y2=h; +x5=pcshiftx+11/14n1; bot y5=-1/4d; +rt x6=pcshiftx+n1; top y6=1/6h; +z25 = 1/3[z2,z5]; +%% diag bottom left to top right +lft x10 = -w + 2pcshiftx; bot y10=-d; +x50=x5; top y50=h; +rt x60 = w -pcshiftx; bot y60=2/3h; +x40=pcshiftx+8/14n1; y40=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z5{right}..z6; % top left to bottom right +draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,10,40,50,60,100); +endchar; % end "x" + +cmchar "IMIN letter y"; +beginchar("y", 2sb#+hstretch*(5/8x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +z50=(x3,-1/2d); +x60=x14; bot y60=-d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,50,srad); % right stem +draw z50{down}..z60{-pdir}; +draw_flatserif(3,4,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "IMIN letter z"; +beginchar("z", 2sb#+hstretch*(x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% top bar +n10 := w-2pcshiftx; % letter width +lft x1=pcshiftx; top y1=h; +rt x2= w-pcshiftx; bot y2=y1; +%% diagonal +x3=x1; bot y3=0; +%% bowl +x4=3/4[x1,x2]; top y4 = 1/2h; +x6=x4; bot y6 = 0; +rt x5 = w-pcshiftx; y5 = 1/2[y4,y6]; +x7=1/2[x3,x5]; y7 = 1/2[y6,y5]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{right}..z2{right}; % top bar +draw_roundserif(1,2,srad); +draw z2--z3; % diagonal +draw z3..z4{right}..z5{down}..z6{left}..z7; +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/iminlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminlig.mf new file mode 100644 index 00000000000..36288366e5c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/iminlig.mf @@ -0,0 +1,148 @@ +%% +%% This is file `iminlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 "f": "i"=:oct"014"; + + +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*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup thickstylus; +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*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup thickstylus; +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*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup thickstylus; +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 "IMIN ampersand"; +beginchar("&", 2sb#+hstretch*(5/4x_height#), asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx:=sb; +pickup quill; +%% E part +n1 := w-pcshiftx; % actual letter width +n2 := 4/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +z98=(0,3/8h); z99=(w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x9 = w-pcshiftx; y9 = 3/4h; +z8=6/8[z7,z9]; + +%% T part +x18=x8; bot y18=0; +x19=5/8[x18,x9]; +y19=1/8h; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +%% E part +draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{up}..z8{right}; +draw z7{pdir}..z8{right}..z9{pdir}; +%% T bowl +draw z8{left}..z4{down}..z18{right}..z19{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,31,32,33); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminpunct.mf new file mode 100644 index 00000000000..1adbda96726 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/iminpunct.mf @@ -0,0 +1,121 @@ +%% +%% This is file `iminpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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/4x_height#), + 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); +x4 = x5; y4=y5+3/2dot_size; +lft x1 = pcshiftx; y1 = 3/4h; +x2 = 1/2w; top y2 = h; +rt x3 = w-pcshiftx; y3 = 2/3h; + +%%ductus:= true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..z4{down}; +draw_pdot(5, dot_size); +penlabels(1,2,3,4,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=2/3h; y2=1/3h; +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=2/3h; y2=1/3h; +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/imintitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/imintitle.mf new file mode 100644 index 00000000000..33839302602 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/imintitle.mf @@ -0,0 +1,666 @@ +%% +%% This is file `imintitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 inslrmin_font_setup= % contains special stuff for inslrmin 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,cap_jut,trijut); + define_pixels(fig_width); + define_whole_pixels(letter_fit,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); + 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; + 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 inslrmin_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_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_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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; +%% filldraw z$s--z$t--z$u--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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; +%% filldraw z$s--z$t--z$v--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; +inslrmin_font_setup; + + +input iminl; % lower case +input iminu; % capitals +input iminpunct; % punctuation +input iminlig; % the several dashes +input imindig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: + font_normal_space vstretch*9u#; % no stretching or shrinking + font_quad vstretch*18u#; + font_extra_space vstretch*9u#; +else: + font_normal_space vstretch*6u#+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/iminu.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminu.mf new file mode 100644 index 00000000000..039ba01916c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/iminu.mf @@ -0,0 +1,738 @@ +%% +%% This is file `iminu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% inslrmin.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 "IMIN letter A"; +beginchar("A", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +x1 = pcshiftx + 2/3n1; top y1=h; +rt x2 = pcshiftx + n1; bot y2=0; + +z16 = 1/6[z2,z1]; +rt x6 = x16; y6=y16; + +lft x4 = pcshiftx; y4 = 1/2h; + +pth1 := z1{down}..z2; +pr1 := direction 1 of pth1; +z20 = z2 shifted -10pr1; + +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + draw_roundserif(2,20,srad); + % draw bowl + draw z1{-pdir}..z4{down}..z6{pdir}; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "A" + +cmchar "IMIN letter B"; +beginchar("B", 2sb#+caprat*hstretch*(3/4x_height#), + caprat*asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +lft x1 = pcshiftx+jut; top y1=h; +lft x3 = pcshiftx; y3=1/2n2; +rt x5 = w-pcshiftx; y5=y3; +x4 = 1/2[x3,x5]; bot y4=0; +x6=x4; top y6=n2; +pth1 := z1..z3{down}..z4{right}.. z5{up}; +z98=(0,3/4n2); z99=(w,y98); +pth2 := z98--z99; +z7 = pth1 intersectionpoint pth2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir}; +draw_flatserif(1,7,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "IMIN letter C"; +beginchar("C", 2sb#+caprat*hstretch*(5/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "C" + +cmchar "IMIN letter D"; +beginchar("D", 2sb#+caprat*hstretch*(3/4x_height#), + caprat*asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; top y1=h; +rt x3 = w-pcshiftx; y3 = 1/2h/ascratio; +x4 = 1/2[x1,x3]; bot y4 = 0; +z5=(x1,y3); +z98=(0,h/ascratio); z99=(w,y98); pth2 := z98--z99; +pth1 := z1{-ppdir}..z3{down}..z4{left}; +z6 = pth1 intersectionpoint pth2; +if ductus: + pickup stylus; +fi +draw z1{-ppdir}..z3{down}..z4{left}..z5{up}..z6{pdir}; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "IMIN letter E"; +beginchar("E", sb#+caprat*hstretch*(5/4x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := 4/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +z98=(0,3/8h); z99=(w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x9 = w-pcshiftx; y9 = 3/4h; +z8=1/2[z7,z9]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir}; +draw z7{pdir}..z8{right}..z9{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "e" + +cmchar "IMIN letter F"; +beginchar("F", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*(x_height#), desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; y2=-1/2d; +lft x20=0; bot y20=-d; +%% bottom bar +z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6]; +%% top bar +x7= x1; bot y7 = 1/2h; +rt x9= w-pcshiftx; y9 = 1/2[y7,y1]; +x8 = 2/3[x7,x9]; top y8 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z2{down}..z20{-pdir}; +draw_flatserif(1,2,srad); +draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar +draw z7..z8..z9; % top bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "F" + +cmchar "IMIN letter G"; +beginchar("G", 2sb#+caprat*hstretch*(x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +path pth[]; +pair vec[]; +pcshiftx := sb; +pickup quill; +%% top bar +lft x1=pcshiftx; top y1=h; rt x2=w-pcshiftx; top y2=h; +x3=1/2[x1,x2]; bot y3=1/8h; +rt x5 = w-pcshiftx; y5 = -1/2d; +x6 = x3; bot y6 = -d; +x7 = 1/2[x1,x3]; y7 = y5; +x8=x3; y8 = -y3; +%%ductus:=true; +if ductus: + pickup stylus; + draw z1--z2; % top bar + draw pth1; draw pth2; % curves + draw rt z8--z9; % diagonal +else: + draw z1--z2; + draw z2--z3; + draw z3{pdir}..z5{down}..z6{left}..z7{up}..z8{pdir}; + draw_roundserif(1,2,srad); +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "G" + +cmchar "IMIN letter H"; +beginchar("H", 2sb#+caprat*hstretch*(7/8x_height#+jut#), + caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=1/2[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h/ascratio; +lft x6=x4; bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z3{pdir}..z4..z5..z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "IMIN letter I"; +beginchar("I", 2sb#+caprat*hstretch*(thick#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "IMIN letter J"; +beginchar("J", sb#+caprat*hstretch*(3/8x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_flatserif(1,2,srad); +draw z2{down}..z3{-pdir}; % hook +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "J" + +cmchar "IMIN letter K"; +beginchar("K", 2sb#+caprat*hstretch*(x_height#+jut#), + caprat*asc_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; y2=-1/2d; +lft x20=pcshiftx; bot y20=-d; +%% top arm +z3=(x1,1/2h/ascratio); +rt x5=w-pcshiftx; y5=1/2[y3,y4]; +x4=1/2[x3,x5]; top y4=h/ascratio; +%% lower arm +x7=x5; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z2{down}..z20{-pdir}; +draw_flatserif(1,2,srad); +draw z3..z4{right}..z5; % upper arm +draw z3..{right}z7; % lower arm +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "K" + +cmchar "IMIN letter L"; +beginchar("L", 2sb#+caprat*hstretch*(3/4x_height#), + caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x2=pcshiftx; y2=1/5h; +x1=x2+jut; top y1=h; +rt x4=w-pcshiftx; y4=1/5h; +x3=1/2[x2,x4]; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z2..z3{right}..z4; +draw_flatserif(1,2,srad); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "IMIN letter M"; +beginchar("M", 2sb#+caprat*hstretch*(x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of right and middle stems +rt x6 = w -pcshiftx - jut; y6=y2; +z4 = 1/2[z2,z6]; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z33{down}--z4; +draw_roundserif(4,3,srad); +draw z33{pdir}..z34{right}..z5{down}--z6; +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "M" + +cmchar "IMIN letter N"; +beginchar("N", 2sb#+caprat*hstretch*(3/4x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% right stem +rt x3=w-pcshiftx-jut; y3=y1; +z4=(x3,y2); +%% bar +z5=3/8[lft z2, lft z1]; z6=2/8[rt z4,rt z3]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +draw z5{right}..z6{right}; % bar +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "N" + +cmchar "IMIN letter O"; +beginchar("O", 2sb#+caprat*hstretch*(3/4x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +draw z1..z2..z3..z4..cycle; +z5=(pcshiftx,-o); +obowl(5, w-2pcshiftx, h+2o); +%%ductus:=true; +if ductus: + pickup stylus; + draw obfirst; draw obsecond; draw obouter; draw obinner; +else: +%% fill obouter; unfill obinner; +fi +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "O" + +cmchar "IMIN letter P"; +beginchar("P", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-1/2d; +lft x20 = pcshiftx; bot y20 = -d; +%% bowl % from "h" +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +lft x6=x4; bot y6=0; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw z2{down}..z20{-pdir}; +draw z3{pdir}..z4..z5..z6{-pdir}; % bowl (from h) +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "IMIN letter Q"; +beginchar("Q", 2sb#+caprat*hstretch*(3/4x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx; top y1=h; +x2=x1; bot y2=-1/2d; +x20 = x1-jut; bot y20=-d; +%% bowl +z3=1/4[(x1,0),z1]; +lft x5=pcshiftx; y5=y3; +x4=1/2[x3,x5]; bot y4=0; +x6=x1-jut; top y6=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw z2{down}..z20{-pdir}; % stem +draw_flatserif(1,2,srad); +draw z3{-pdir}..z4{left}..z5{up}..z6{pdir}; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "Q" + +cmchar "IMIN letter R"; +beginchar("R", sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-1/2d; +lft x20 = pcshiftx; bot y20 = -d; +%% bowl % almost a "p" bowl +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +x100=x1; bot y100 = 0; +lft x6= rt x100; y6=y100; + +rt x26=w-pcshiftx; y26=-1/6d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw z2{down}..z20{-pdir}; +draw z3{pdir}..z4..z5..z6{-pdir}; % bowl (from h) +draw z6{-ppdir}..z26{pdir}; % leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "IMIN letter S"; +beginchar("S", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*asc_height#, desc_depth#); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=h/ascratio; bot y2=-1/2d; +lft x20=pcshiftx; bot y20=-d; +%% flick +x4=x2; y4 = 1/2h/ascratio; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw z2{down}..z20{-pdir}; +draw_flatserif(1,2,srad); +draw z4{up}...z5{right}...z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "S" + +cmchar "IMIN letter T"; +beginchar("T", 2sb#+caprat*hstretch*(5/4x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +lft x1 = pcshiftx; top y1=h; rt x2=w-pcshiftx; bot y2=h; +n1 := w; % width of bowl +n2 := h; % height of bowl +z3=1/2[z1,z2]; +lft x4 = pcshiftx + 1/8n1; y4 = 1/2h; +x5=x3; bot y5 = 0; +rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{pdir}..z3..z2{pdir}; % bar +draw z3..z4{down}..z5{right}..z6{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "IMIN letter U"; +beginchar("U", 2sb#+caprat*hstretch*(5/8x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "U" + +cmchar "IMIN letter V"; +beginchar("V", 2sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +rt x23=w-pcshiftx; y23=3/4h; +lft x26=x14; top y26=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}; % left stem +draw_flatserif(1,13,srad); +draw z14{pdir}..z23{up}..z26; +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "V" + +cmchar "IMIN letter W"; +beginchar("W", 2sb#+caprat*hstretch*(x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33{down}..z34{right}..z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "W" + +cmchar "IMIN letter X"; +beginchar("X", 2sb#+caprat*hstretch*(x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx; bot y1=2/3h; +x2=pcshiftx+1/7n1; top y2=h; +x5=pcshiftx+11/14n1; bot y5=-1/4d; +rt x6=pcshiftx+n1; top y6=1/6h; +z25 = 1/3[z2,z5]; +%% diag bottom left to top right +%%x10=x1; bot y10=-d; +lft x10 = -w + 2pcshiftx; bot y10=-d; +x50=x5; top y50=h; +%%rt x60=x5; bot y60=2/3h; +rt x60 = w -pcshiftx; bot y60=2/3h; +x40=pcshiftx+8/14n1; y40=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z5{right}..z6; % top left to bottom right +draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,10,40,50,60,100); +endchar; % end "X" + +cmchar "IMIN letter Y"; +beginchar("Y", 2sb#+caprat*hstretch*(5/8x_height#+jut#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +z50=(x3,-1/2d); +x60=x14; bot y60=-d; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,50,srad); % right stem +draw z50{down}..z60{-pdir}; +draw_flatserif(3,4,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "IMIN letter Z"; +beginchar("Z", 2sb#+caprat*hstretch*(x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +%% top bar +n10 := w-2pcshiftx; % letter width +lft x1=pcshiftx; top y1=h; +rt x2= w-pcshiftx; bot y2=y1; +%% diagonal +x3=x1; bot y3=0; +%% bowl +x4=3/4[x1,x2]; top y4 = 1/2h; +x6=x4; bot y6 = 0; +rt x5 = w-pcshiftx; y5 = 1/2[y4,y6]; +x7=1/2[x3,x5]; y7 = 1/2[y6,y5]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{right}..z2{right}; % top bar +draw_roundserif(1,2,srad); +draw z2--z3; % diagonal +draw z3..z4{right}..z5{down}..z6{left}..z7; +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/pgoth10.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgoth10.mf new file mode 100644 index 00000000000..76f399e74ce --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgoth10.mf @@ -0,0 +1,90 @@ +%% +%% This is file `pgoth10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 +%% +%%% PGOTH10.MF Gothic Textura Prescius at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="PGOTH"; 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 pgothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgoth17.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgoth17.mf new file mode 100644 index 00000000000..87f72b6c1cd --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgoth17.mf @@ -0,0 +1,90 @@ +%% +%% This is file `pgoth17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 +%% +%%% PGOTH17.MF Gothic Textura Prescius at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="PGOTH"; 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 pgothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgoth7.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgoth7.mf new file mode 100644 index 00000000000..09d07506ad6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgoth7.mf @@ -0,0 +1,90 @@ +%% +%% This is file `pgoth7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 +%% +%%% PGOTH7.MF Gothic Textura Prescius at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="PGOTH"; 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 pgothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothb10.mf new file mode 100644 index 00000000000..c57fb7a49ba --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothb10.mf @@ -0,0 +1,90 @@ +%% +%% This is file `pgothb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 +%% +%%% PGOTHB10.MF Gothic Textura Prescius Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="PGOTHB"; 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 pgothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothb17.mf new file mode 100644 index 00000000000..8ddd3edbb2c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothb17.mf @@ -0,0 +1,90 @@ +%% +%% This is file `pgothb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 +%% +%%% PGOTHB17.MF Gothic Textura Prescius Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="PGOTHB"; 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 pgothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothb7.mf new file mode 100644 index 00000000000..21f0b6ae750 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothb7.mf @@ -0,0 +1,90 @@ +%% +%% This is file `pgothb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 +%% +%%% PGOTHB7.MF Gothic Textura Prescius Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="PGOTHB"; 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 pgothtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothdig.mf new file mode 100644 index 00000000000..b4e56a93ecf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothdig.mf @@ -0,0 +1,245 @@ +%% +%% This is file `pgothdig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 "PGOTH 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 z12--z2; draw_flat_foot(2); +penlabels(1,2,100); +endchar; % end "1" + +cmchar "PGOTH 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 "PGOTH 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 "PGOTH 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 z1--z2; draw_flat_foot(2); +draw z3--z4; % horizontal +draw z1--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "PGOTH 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 "PGOTH 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; +n2 = top y1; +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 "PGOTH 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; +draw_flat_foot(4); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "7" + +cmchar "PGOTH 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 "PGOTH 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 "PGOTH 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/pgothl.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothl.mf new file mode 100644 index 00000000000..97dff9ff184 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothl.mf @@ -0,0 +1,699 @@ +%% +%% This is file `pgothl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 "PGOTH 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; bot y4=0; +z34=1/2[z3,z4]; +draw_updiamondstem(3,34,1.0,0.1,diawd,diang); +draw z34--z4; draw_flat_foot(4); +%% 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 z1--z2; draw_flat_foot(2); +%% 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 "PGOTH 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 "PGOTH 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; bot y2=0; +z12 = 1/2[z1,z2]; +draw_upforkstem(1,12); +draw z12--z2; +draw_flat_foot(2); +%% bowl +x3 = x1 + 2stem_width; x4 = x3; +y3 = n1; bot y4=0; +z34 = 1/2[z3,z4]; +draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang); +draw z34--z4; draw_flat_foot(4); +x7 = x1; z7 = whatever[z3d,z3c]; +pickup stylus; +draw z3d--z7; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "PGOTH 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; bot y2 = 0; +z12 = 1/2[z1,z2]; +draw_updiamondstem(1,12,1/2,1/2,diawd,diang); +draw z12--z2; draw_flat_foot(2); +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 "PGOTH 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 "PGOTH 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; bot y2=0; +z12 = 1/2[z1,z2]; +draw_upforkstem(1,12); +draw z12--z2; draw_flat_foot(2); +%% right leg +x3 = x1 + 2st; y3 = 8/16n1; +x4 = x3; bot y4 = 0; +z34 = 1/2[z3,z4]; +draw z3--z4; draw_flat_foot(4); +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 "PGOTH letter l"; +beginchar("l", 2sb#+hstretch*((1 + widedmin)*stem_width#), + asc_height#, 0); +adjust_fit(0,0); +numeric st; st := stem_width; +pcshiftx := sb; +pickup quill; +x1 = 1/2w; y1=h; +x2=x1; bot y2 =0; +z3 = 1/2[z1,z2]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_upforkstem(1,3); +draw z3--z2; draw_flat_foot(2); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "PGOTH 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; bot y2 = 0; y2 = y4 = y6; +z12=1/2[z1,z2]; +draw_updiamondstem(1,12,wided,widedmin,diawd,diang); +draw z12--z2; draw_flat_foot(2); +%% 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 z56--z6; draw_flat_foot(6); +%% 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 z34--z4; draw_flat_foot(4); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "m" + +cmchar "PGOTH 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; bot y2 = 0; +z12 = 1/2[z1,z2]; +draw_updiamondstem(1,12,wided,widedmin,diawd,diang); +draw z12--z2; draw_flat_foot(2); +%% 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 z34--z4; draw_flat_foot(4); +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "n" + +cmchar "PGOTH 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 "PGOTH 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 z12--z2; +%% 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 "PGOTH 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 z3--z4; +draw z5--z3; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "PGOTH 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; bot y2=0; +z12 = 1/2[z1,z2]; +draw_updiamondstem(1,12,wided,widedmin,diawd,diang); +draw z12--z2; draw_flat_foot(2); +%% 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 "PGOTH 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 "PGOTH 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; +bot y2 = 0; +draw z1--z2; draw_flat_foot(2); +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "PGOTH 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; +bot y4 = 0; +z34=1/2[z3,z4]; +draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang); +draw z34--z4; draw_flat_foot(4); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "u" + +cmchar "PGOTH 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; y11 = n1; +draw_updiamondstem(11,1,narrowd,narrowdmin,diawd,diang); +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "v" + +cmchar "PGOTH 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 = 0; bot 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 z56--z6; +%% middle stem +z3 = 1/2[z1,z5]; +x4 = 1/2[x2,x6]; +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 "PGOTH 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 "PGOTH 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 "PGOTH 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/pgothlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothlig.mf new file mode 100644 index 00000000000..44a50151446 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothlig.mf @@ -0,0 +1,150 @@ +%% +%% This is file `pgothlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 "PGOTH 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 z12--z2; draw_flat_foot(2); +%% 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 z21--z22; draw_flat_foot(22); +%% 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 "PGOTH 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 z1--z2; draw_flat_foot(2); +%% 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/pgothpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothpunct.mf new file mode 100644 index 00000000000..acf2dade73b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothpunct.mf @@ -0,0 +1,125 @@ +%% +%% This is file `pgothpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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/pgothtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothtitle.mf new file mode 100644 index 00000000000..3d96eb64d18 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothtitle.mf @@ -0,0 +1,870 @@ +%% +%% This is file `pgothtitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 pgothic_font_setup= % contains special stuff for pgothic 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 pgothic_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_flat_head(suffix $)= + pen oldpen; oldpen:=currentpen; +%% pickup quill; + x$bl'' = lft x$; y$bl'' = bot y$; + x$tr'' = rt x$; y$tr'' = top y$; + pickup stylus; + lft x$blfh = x$bl''; y$blfh = y$bl''; + rt x$trfh = x$tr''; top y$trfh = y$tr''; + x$tlfh = x$blfh; y$tlfh = y$trfh; + filldraw z$blfh--z$tlfh--z$trfh--cycle; + pickup oldpen; + labels($tlfh); +enddef; % end of draw_flat_head + +def draw_flat_foot(suffix $)= + pen oldpen; oldpen:=currentpen; +%% pickup quill; + x$bl'' = lft x$; y$bl'' = bot y$; + x$tr'' = rt x$; y$tr'' = top y$; + pickup stylus; + lft x$blff = x$bl''; bot y$blff = y$bl''; + rt x$trff = x$tr''; y$trff = y$tr''; + x$brff = x$trff; y$brff = y$blff; + filldraw z$blff--z$trff--z$brff--cycle; + pickup oldpen; + labels($brff); +enddef; % end of draw_flat_foot + +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; +pgothic_font_setup; + + +input pgothl; % lower case +input pgothu; % capitals +input pgothpunct; % punctuation +input pgothlig; % the several dashes +input pgothdig; % 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/pgothu.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothu.mf new file mode 100644 index 00000000000..e3586395cec --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothu.mf @@ -0,0 +1,1234 @@ +%% +%% This is file `pgothu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pgothic.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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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 "PGOTH 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" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnd10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnd10.mf new file mode 100644 index 00000000000..65e6f5277ea --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnd10.mf @@ -0,0 +1,81 @@ +%% +%% This is file `rtnd10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 +%% +%%% RTND10.MF Early Gothic at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RTND"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.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.1; + + 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/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 rtndtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnd17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnd17.mf new file mode 100644 index 00000000000..d01fc13636d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnd17.mf @@ -0,0 +1,81 @@ +%% +%% This is file `rtnd17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 +%% +%%% RTND17.MF Early Gothic at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RTND"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.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.1; + + 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/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 rtndtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnd7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnd7.mf new file mode 100644 index 00000000000..e5aea87173b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnd7.mf @@ -0,0 +1,81 @@ +%% +%% This is file `rtnd7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 +%% +%%% RTND7.MF Early Gothic at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RTND"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.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.1; + + 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/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 rtndtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndb10.mf new file mode 100644 index 00000000000..331cfc82c67 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndb10.mf @@ -0,0 +1,81 @@ +%% +%% This is file `rtndb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 +%% +%%% RTNDB10.MF Early Gothic Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RTNDB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.1; + + 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/5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 rtndtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndb17.mf new file mode 100644 index 00000000000..d1d1267283b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndb17.mf @@ -0,0 +1,81 @@ +%% +%% This is file `rtndb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 +%% +%%% RTNDB17.MF Early Gothic Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RTNDB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.1; + + 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/5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 rtndtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndb7.mf new file mode 100644 index 00000000000..8128e5865d2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndb7.mf @@ -0,0 +1,81 @@ +%% +%% This is file `rtndb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 +%% +%%% RTNDB7.MF Early Gothic Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RTNDB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.5; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.1; + + 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/5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=35; % pen angle + ascratio:=6/4; + asc_height#:=ascratio*x_height#; + descratio:=2/4; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; + 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 rtndtitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnddig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnddig.mf new file mode 100644 index 00000000000..6103a08747c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnddig.mf @@ -0,0 +1,228 @@ +%% +%% This is file `rtnddig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 "RTND digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw_flat_foot(2); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "1" + +cmchar "RTND digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(5,6,thin); % foot +draw z1..z2{right}.. tension 0.8 ..z3{down}..{-pdir}z5wl; % curve +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "RTND digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +%%lft x6=pcshiftx+3thin; x7=x6; +x6=1/2[x3,x9]; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl +draw z7{right}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "RTND digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw_flat_foot(2); +draw_wave(3,4,thin); % crossbar +draw z3wl--z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "RTND digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(2,1,thin); % top squiggle +draw z3{pdir}..z5{down}.. tension 0.8 ..z6{left}..z7; % curve +draw z2wl--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "RTND digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}.. tension 0.8 ..z3{down}.. tension 0.8 ..z4{right}.. tension 0.8 + ..z5{up}..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "RTND 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; +draw_flat_foot(4); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "7" + +cmchar "RTND digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3..z5.. + z11.. tension 0.8 ..z4.. tension 0.8 ..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "RTND digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}.. tension 0.8 ..z3{up}.. tension 0.8 ..z4{left}.. + tension 0.8 ..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "RTND digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3.. tension 0.8 ..z4.. tension 0.8 ..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndl.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndl.mf new file mode 100644 index 00000000000..a4b10704d0c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndl.mf @@ -0,0 +1,787 @@ +%% +%% This is file `rtndl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 "RTND letter a"; +beginchar("a", 2sb#+hstretch*(9/16x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +x1=1/2w; top y1=h; +rt x2 = w-pcshiftx-jut; top y2 = bot y1; +x3 = x2; bot y3 = 0; +z4 = z3 shifted (jut*pdir); +pth1 := z1--z2--z3--z4; +rt x6 = lft x3; bot y6 = 0; +lft x5 = pcshiftx; bot y5 = 1/4h; + +z15 = (lft x5, bot y5); z25 = (rt x5, top y5); +z7 = whatever[z15,z25] = whatever[z2,z3]; +x8 = x25; y8 = y25 + 1/2(y1-y7); + +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + % draw bowl + draw z5--z6; + pickup stylus; + draw z5--z7; + draw z1{-pdir}..z8..z7{pdir}; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "a" + +cmchar "RTND letter b"; +beginchar("b", 2sb#+hstretch*(11/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +%%ductus:=true; +lft x1 = pcshiftx+jut; top y1=h; +x3 = x1; bot y3= thick; +rt x5 = w-pcshiftx; y5=1/2n2; +x4 = 1/2[x3,x5]; bot y4=0; +x6=1/2[x4,x5]; top y6=n2; +pth1 := z1..z3{down}..z4{right}.. z5{up}; +z98=(0,3/4n2); z99=(w,y98); +pth2 := z98--z99; +z7=(x1,6/8n2); +if ductus: + pickup stylus; +fi +draw z1--z3--z4; +draw z4{pdir}..z5{up}..{-pdir}z7; +draw_flat_head(1); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "RTND letter c"; +beginchar("c", 2sb#+hstretch*(9/16x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24--z1{left}...z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "c" + +cmchar "RTND letter d"; +beginchar("d", 2sb#+hstretch*(11/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +n1 = h/ascratio; % x-height +rt x1=w-pcshiftx-jut; top y1=h; +x2 = x1; bot y2=0; +x3 = x1; y3 = 1/4n1; +lft x5 = pcshiftx; y5=6/8n1; +x4 = 3/8[x3,x5]; bot y4 = 0; +x6=1/2[x4,x5]; top y6 = n1; +x7=x3; top y7=n1; +rt x8 = w-pcshiftx; y8=n1; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw_flatserif(1,2,srad); +draw_flat_foot(2); +%%draw z3..z4{left}..z5{up}..z6; +draw z3..z4{left}.. tension 0.8 ..z5{up}..z6; +draw z6..z7..z8; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "RTND letter e"; +beginchar("e", sb#+hstretch*(15/16x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +n1 := w-pcshiftx; % actual letter width +n2 := 6/8n1; % width of bowl +x1 = pcshiftx + 5/8n2; top y1=h; +lft x2 = pcshiftx; y2 = 1/2h; +x3 = pcshiftx + 1/2n2; bot y3 = 0; +rt x4 = pcshiftx + n2; y4 = 1/4h; +%%z98=(0,3/8h); z99=(w,y98); +z98=(0,2/8h); z99=(w,y98); +pth1 := z98--z99; +pth2 := z1{left}..z2{down}..z3{right}; +z7 = pth1 intersectionpoint pth2; +rt x9 = w-pcshiftx; y9 = 3/4h; +z8=1/2[z7,z9]; + +z70 = z7 shifted 10pdir; +z17 = whatever[z7,z70]; +%%x17 = w-pcshiftx; +top y17 = h; + +rt x27=w-pcshiftx; top y27=h; +pth3 := z7--z27; % diagonal +pth4 := z1--z9; + +z34 = pth3 intersectionpoint pth4; +pth5 := z34--z1{left}...z2{down}..z3{right}..z4{pdir}; % bowl +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir}; +%%draw z7{pdir}..z8{right}..z9{pdir}; +%%draw z7--z17; +draw pth5; % bowl +%%draw pth3; % diagonal +draw z34--z7; % daigonal +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100); +endchar; % end "e" + +cmchar "RTND letter f"; +beginchar("f", 2sb#+hstretch*(9/16x_height#+jut#), + (asc_height#), 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1 = lft x2 = pcshiftx+jut; bot y2=0; +%% flick +rt x4 = w-pcshiftx; top y4 = h-thick; +top y3 = h; +lft x3 = rt x1; +top y1 = bot y3; +%% bar +lft x5 = pcshiftx; top y5 = n1; +rt x6 = lft x4; y6 = y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw_flat_foot(2); % stem +draw z3--z4; % top +draw z5--z6; % bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,14,15,16,100); +endchar; % end "f" + +cmchar "RTND letter g"; +beginchar("g", 2sb#+hstretch*(11/16x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +%%n1 = h/ascratio; % x-height +rt x1=w-pcshiftx-jut; top y1=h; +rt x2 = x1; y2=1/2h; +x3 = x1; y3 = 0; +rt x4 = w-pcshiftx; y4 = -1/2d; +x5 = 1/2w; bot y5 = -d; +lft x6 = pcshiftx; y6 = top y5; +x13 = x1; y13 = 1/4h; +lft x15 = pcshiftx; y15=6/8h; +x14 = 3/8[x13,x15]; bot y14 = 0; +x16=1/2[x14,x15]; top y16 = h; +x17=x13; top y17=h; +rt x18 = w-pcshiftx; y18=h; +if ductus: + pickup stylus; +fi +draw z1..z13..z4{down}..z5{left}..z6; +draw z6--z13; +%% top bowl +draw z13..z14{left}..z15{up}..z16; +draw z16..z17..z18; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,13,14,15,16,17,18,100); +endchar; % end "g" + +cmchar "RTND letter h"; +beginchar("h", 2sb#+hstretch*(11/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=1/2[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=9/16[x3,x5]; top y4 = h/ascratio; +%%lft x6=x4; bot y6=0; +x6=9/16[x4,x5]; +bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw_roundserif(2,1,srad); +draw z1--z2; +draw_flat_head(1); draw_flat_foot(2); +draw z3--z4{right}...z5{down}...z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "RTND letter i"; +beginchar("i", 2sb#+hstretch*(thick#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2= thick; +bot y3 = 0; rt x3 = w-pcshiftx; +x8 = x1; y8 = h + 3/2thick; +%%ductus:=true; +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw z2--z3; +draw_pdot(8, dot_size); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "RTND letter j"; +beginchar("j", sb#+hstretch*(3/8x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +x8 = x1; y8 = h + 3/2thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw_flatserif(1,2,srad); +draw z2{down}..z3{-pdir}; % hook +draw_pdot(8, dot_size); +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "RTND letter k"; +beginchar("k", 2sb#+hstretch*(13/16x_height#+jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% stem +n1 = h/ascratio; % x-height +lft x1=lft x2=pcshiftx+jut; +y1=h; bot y2=0; +%% top arm +%%z3=(x1,1/2n1); +x3 = x1; top y3 = 1/2n1; +rt x5=5/8[x1,w-pcshiftx]; top y5=n1; +x4=1/2[x3,x5]; top y4=n1; +pth1 := z3{pdir}..z5{up}; +%% lower arm +pth2 := (rt x1,0)--(rt x1,h); +z13 = pth1 intersectionpoint pth2; +pickup threequarterquill; +lft x14 = x13; bot y14 = y13; +rt x7=w-pcshiftx; bot y7=0; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_flat_foot(2); +draw pth1; % upper arm +pickup threequarterquill; +%%draw z14{down}..z7{-ppdir}; % lower arm +%%draw z14{down}..z7; % lower arm +draw z14{-ppdir}..z7{right}; % lower arm +pickup quill; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "k" + +cmchar "RTND letter l"; +beginchar("l", 2sb#+hstretch*(thick#+2jut#), + asc_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +x2=x1; +bot y2 = thick; +rt x3 = w-pcshiftx; bot y3 = 0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw_flatserif(1,2,srad); +draw z2--z3; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "RTND letter m"; +beginchar("m", 2sb#+hstretch*(15/16x_height#+2jut#), % 12/16 too narrow, 14 a bit + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of right and middle stems +rt x6 = w -pcshiftx - jut; y6=y2; +z4 = 1/2[z2,z6]; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left half +draw_flatserif(1,2,srad); +draw_flat_foot(2); +draw z13--z14{right}..z33{down}--z4; +draw_flat_foot(4); +draw z33--z34{right}..z5{down}--z6; +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "m" + +cmchar "RTND letter n"; +beginchar("n", 2sb#+hstretch*(9/16x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x13=x1; y13=3/4h; +%% right stem +rt x4 = w-pcshiftx-jut; y4=y2; +x3 = x4; y3 = y13; +x14 = 2/3[x13,x3]; top y14 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_flat_foot(2); +draw z13--z14{right}..z3{down}--z4; +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "n" + +cmchar "RTND letter o"; +beginchar("o", 2sb#+hstretch*(7/8x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +draw z2..z3..z4{left}.. tension 0.8 ..{up}z1..cycle; +%%ductus:=true; +if ductus: + pickup stylus; + draw obfirst; draw obsecond; draw obouter; draw obinner; +else: +%% fill obouter; unfill obinner; +fi +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "o" + +cmchar "RTND letter p"; +beginchar("p", 2sb#+hstretch*(14/16x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=-d; +%% bowl % from "d" +z3=3/4[(x1,0),z1]; +rt x5 = w-pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; top y4 = h; +x6=x4; bot y6=0; +z7=1/4[(x1,0),z1]; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_flat_foot(2); +draw z3--z4; draw z4..z5{down}..z6{left}..z7; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "RTND letter q"; +beginchar("q", 2sb#+hstretch*(7/8x_height#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% right stem +rt x1=w-pcshiftx; top y1=h; +x2=x1; bot y2=-d; +%% bowl +z3=1/4[(x1,0),z1]; +lft x5=pcshiftx; y5=1/2h; +x4=1/2[x3,x5]; bot y4=0; +x6=x4; top y6=h; +%%z7=3/4[(x1,0),z1]; +z7=z1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +%%draw_roundserif(2,1,srad); +draw_flat_foot(2); +draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7{pdir}; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "RTND letter r"; +beginchar("r", 2sb#+hstretch*(11/16x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+jut; +top y1=h; bot y2=0; +%% bowl +z3=3/4[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_flat_foot(2); +%%draw_roundserif(2,1,srad); +draw z3{pdir}..z4{right}..z5{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "RTND letter s"; +beginchar("s", 2sb#+hstretch*(7/8x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; + +z50=(1/2w, 1/2h); +x60 = w-pcshiftx; z60 = z50 shifted (whatever*pdir); +x40 = pcshiftx; z40 = z50 shifted (whatever*pdir); +rt x5 = x50; top y5 = y50; +z54 = (lft x5, bot y5); +lft x6 = x50; bot y6 = y50; +z56 = (rt x6, top y6); + +z1 = 1/2[z56,z60]; +x3 = 1/2[x5,x1]; top y3 = h; + +z10 = 1/2[z54,z40]; +x8 = x56; +bot y8 = 0; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{ppdir}..z3..z1{-ppdir}; + +draw z6..z8{left}..z10{ppdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,11,17,20,26,27,28,40,50,54,56,60,100); +endchar; % end "s" + +cmchar "RTND letter t"; +beginchar("t", 2sb#+hstretch*(10/16x_height#+jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% bar +lft x1 = pcshiftx; top y1 = h; +rt x2 = w - pcshiftx; y2 = y1; +%% stem +lft x3 = rt x1; bot y3 = top y1; +rt x5 = x2; bot y5 = 0; +x4 = x3; bot y4 = thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % bar +draw z3--z4--z5; % stem +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "RTND letter u"; +beginchar("u", 2sb#+hstretch*(9/16x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z1--z13{down}...z14{right}...z33{pdir}; +draw z1--z13--z14{right}...z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "u" + +cmchar "RTND letter v"; +beginchar("v", 2sb#+hstretch*(11/16x_height#+jut#), % 13/16 too wide + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +bot y3 = 0; +x3 = 1/2[x1,x5]; +z51 = (x1,0); z55=(x5,0); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,51,srad); +draw z5{down}..z3; % right stem +draw_flatserif(5,55,srad); +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "v" + +cmchar "RTND letter w"; +beginchar("w", 2sb#+hstretch*(15/16x_height#+2jut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13--z14{right}...z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33--z34{right}...z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "w" + +cmchar "RTND letter x"; +beginchar("x", 2sb#+hstretch*(7/2thick#), + x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1 = pcshiftx; top y1 = h; +rt x4 = w-pcshiftx; bot y4 = 0; +x2 = x3 = 1/2w; +top y5 = h; lft x5 = rt x2; +top y2 = bot y5; +rt x6 = w - pcshiftx; y6 = y2; +y3 = h - y2; +lft x8 = lft x1; bot y8 = 0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2--z3--z4; % top left to bottom right +draw z5--z6; % top right +draw z3--z8; % bottom left +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 "RTND letter y"; +beginchar("y", 2sb#+hstretch*(11/16x_height#+jut#), + x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +%% left stem top +lft x1 = pcshiftx + jut; top y1 = h; +bot y3 = 0; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +%%lft x9=-1/2w; bot y9 = -d; +lft x9 = 0; bot y9 = -d; +pth1 := z9{right}..z5{up}; +pth2 := (0,y3)--(w,y3); +z99 = pth1 intersectionpoint pth2; +x3 = x99; +z51 = (x1,0); z55=(x5,0); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,51,srad); +draw pth1; % right stem +draw_flatserif(5,55,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "RTND letter z"; +beginchar("z", 2sb#+hstretch*(12/16x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +%% top bar ends +lft x1 = pcshiftx; rt x2 = w-pcshiftx; +top y1 = top y2 = h; +%% bottom bar ends +lft x3 = pcshiftx; rt x4 = w-pcshiftx; +bot y3 = bot y4 = 0; +%% middle bar ends +lft x5 = x1; rt x6 = x2; +y5 = y6 = 1/2h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw z5--z6; % bars +draw z2--z3; % diagonal +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/rtndlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndlig.mf new file mode 100644 index 00000000000..f8c3b2b7d59 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndlig.mf @@ -0,0 +1,148 @@ +%% +%% This is file `rtndlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 "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*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +%%numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; 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*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +%%numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; 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*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +%%numeric alpha; alpha:=w/8; +%%pickup quill; +%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +%%x11=lft x1+alpha/2; y11=top y1-0.5thin; +%%x12=rt x2; y12=bot y1+0.5thin; +%%draw_triangle(11,alpha); +%%draw_rutriangle(12,alpha); +pickup halfquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +draw z21--z22; +draw_roundserif(21,22,srad); draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "---" + + +cmchar "RTND ampersand"; +beginchar("&", 2sb#+hstretch*(5/4x_height#+2jut#), asc_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx:=sb; +pickup quill; +%% alpha looking part +n1 := w-2pcshiftx-jut; % actual letter width +n2 := h/ascratio; % x-height +n3 := 16/16n2; % height of alpha +x1 = w-pcshiftx; bot y1 = 0; +x3 = pcshiftx + 12/16n1; y3 = 1/2n3; +lft x5 = pcshiftx; y5 = y3; +x4 = x6 = 1/2[x5,x3]; +top y4 = n3; bot y6 = 0; +rt x8 = w-pcshiftx-jut; +top y8 = h - thick; +x9 = x8-2jut; x10-x8 = x8-x9; +y9=y10=y8; +pth1 := z1{left}..z3..z4{left}.. tension 0.8 ..z5{down}.. + tension 0.8 ..z6{right}..z3..z8{up}; +%% loop +z21 = z5; +z25 = point 1.5 of pth1; +x23 = 1/2[x21,x25]; +top y23 = h; +pth2 := z21{up}..z23{right}..z25{down}; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw z8--z10; % alpha +draw pth2; % loop +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,21,22,23,24,25); +endchar; % end of "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndpunct.mf new file mode 100644 index 00000000000..4d3cdb63b8a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndpunct.mf @@ -0,0 +1,121 @@ +%% +%% This is file `rtndpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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/4x_height#), + 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); +x4 = x5; y4=y5+3/2dot_size; +lft x1 = pcshiftx; y1 = 3/4h; +x2 = 1/2w; top y2 = h; +rt x3 = w-pcshiftx; y3 = 2/3h; + +%%ductus:= true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..z4{down}; +draw_pdot(5, dot_size); +penlabels(1,2,3,4,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/rtndtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndtitle.mf new file mode 100644 index 00000000000..442d5ad2c11 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndtitle.mf @@ -0,0 +1,734 @@ +%% +%% This is file `rtndtitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 rotunda_font_setup= % contains special stuff for rotunda 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); + 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 rotunda_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_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_flat_head(suffix $)= + pen oldpen; oldpen:=currentpen; +%% pickup quill; + x$bl'' = lft x$; y$bl'' = bot y$; + x$tr'' = rt x$; y$tr'' = top y$; + pickup stylus; + lft x$blfh = x$bl''; y$blfh = y$bl''; + rt x$trfh = x$tr''; top y$trfh = y$tr''; + x$tlfh = x$blfh; y$tlfh = y$trfh; + filldraw z$blfh--z$tlfh--z$trfh--cycle; + pickup oldpen; + labels($tlfh); +enddef; % end of draw_flat_head + +def draw_flat_foot(suffix $)= + pen oldpen; oldpen:=currentpen; +%% pickup quill; + x$bl'' = lft x$; y$bl'' = bot y$; + x$tr'' = rt x$; y$tr'' = top y$; + pickup stylus; + lft x$blff = x$bl''; bot y$blff = y$bl''; + rt x$trff = x$tr''; y$trff = y$tr''; + x$brff = x$trff; y$brff = y$blff; + filldraw z$blff--z$trff--z$brff--cycle; + pickup oldpen; + labels($brff); +enddef; % end of draw_flat_foot + +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; +rotunda_font_setup; + + +input rtndl; % lower case +input rtndu; % capitals +input rtndpunct; % punctuation +input rtndlig; % the several dashes +input rtnddig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: + font_normal_space vstretch*9u#; % no stretching or shrinking + font_quad vstretch*18u#; + font_extra_space vstretch*9u#; +else: + font_normal_space vstretch*6u#+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/rtndu.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndu.mf new file mode 100644 index 00000000000..d71d50b3eb8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndu.mf @@ -0,0 +1,833 @@ +%% +%% This is file `rtndu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rotunda.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 "RTND letter A"; +beginchar("A", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +n1 := w - 2pcshiftx -jut; % effective letter width +x1 = pcshiftx + 6/8n1; top y1=h; +rt x2 = pcshiftx + n1; bot y2=0; +pth1 := z1{down}..z2; +z20 = 7/8[z1,z2]; + +rt x4 = lft x1; top y4 = y1; + +lft x8 = pcshiftx; top y8 = -thin; + +x6 = 3/8w; y6 = 1/2h; +pth2 := z4..{down}z6..{-pdir}z8; + +lft x11 = pcshiftx; top y11 = h - thick; + +x14 = x1; y14 = y1; + +x13 = 1/2[x11,x14]; y13 = y14; +pth3 := z11{pdir}.. z13..z14; + +%%ductus:=true; +if ductus: + pickup stylus; +else: + % draw stem + draw pth1; + draw_roundserif(2,20,srad); + % draw bowl + % left leg + draw pth2; + % top + draw pth3; +fi +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,20,100); +endchar; % end "A" + +cmchar "RTND letter B"; +beginchar("B", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := cap_sb; +pickup quill; +n1:=w-2pcshiftx; % actual letter width +n2:=h/ascratio; % top of bowl +%%ductus:=true; +lft x1 = pcshiftx+2jut; top y1=7/8h; +lft x13 = pcshiftx; top y13 = y1; +x2 = x1; bot y2 = 0; +z3 = 9/16[z2,z1]; +pth1 := z1--z2; % stem + +rt x6 = w-pcshiftx; y6 = 2/3[y2,y3]; + +pth2 := z2{right}..z6...{-pdir}z3; % bottom bowl + +rt x8 = lft x6; y8 = 13/16[y3,y1]; + +pth3 := z3{pdir}...z8..{-pdir}z13; % top bowl +if ductus: + pickup stylus; +fi +draw pth1; +draw pth2; +draw pth3; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "RTND letter C"; +beginchar("C", 2cap_sb#+caprat*hstretch*(5/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := cap_sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "C" + +cmchar "RTND letter D"; +beginchar("D", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+2jut; +top y1=h; bot y2=0; +%% bowl +rt x5 = w-pcshiftx; +x4=1/2[x1,x5]; top y4 = h; +x6'=x4; bot y6' = 5/16h; +y5=1/2[y4,y6']; +x7 = x2; y7 = y2; +x6 = 1/2[x6',x5]; y6 = 1/2[y6',y7]; +lft x3 = pcshiftx; top y3 = y1; +pth1 := z3{pdir}..z4..{down}z5..z6..{-pdir}z7; % bowl +z14 = point 0.75 of pth1; +pth2 := z2{pdir}..{up}z14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth2; +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,6',7,8,100); +endchar; % end "D" + +cmchar "RTND letter E"; +beginchar("E", 2cap_sb#+caprat*hstretch*(5/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +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}; +x31 = x2; y31 = y2; +x32 = x4; y32 = y31; +pth2 = z31--z32; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,24,31,32,100); +endchar; % end "E" + +cmchar "RTND letter F"; +beginchar("F", 2cap_sb#+caprat*hstretch*(10/16x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := cap_sb; +pickup quill; +n1 := h/ascratio; % x-height +%% stem +lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0; +%% flick +x4=x2; y4 = 1/2n1; +rt x6=w-pcshiftx; y6 = 2/3h; +x5 = 2/3[x4,x6]; top y5=h; +%% bar +z14=1/2[z4,z1]; +rt x16 = w -pcshiftx; top y16 = 1/2[y14,y6]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z4{up}...z5{right}...z6; % top +draw z14{right}..z16{pdir}; % bar +ductus:=false; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "F" + +cmchar "RTND letter G"; +beginchar("G", 2cap_sb#+caprat*hstretch*(5/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +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}; +x31 = x2; y31 = y2; +x32 = x4; y32 = y31; +pth2 = z31--z32; +z41 = 5/8[z31,z32]; +z42 = z32; +z43 = z4; +lft x45 = x3; top y45 = - thick; +pth3 := z41--z42--z43..{-pdir}z45; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw pth3; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,24,31,32,100); +endchar; % end "G" + +cmchar "RTND letter H"; +beginchar("H", 2cap_sb#+caprat*hstretch*(5/8x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +pickup quill; +numeric n[]; +%% stem +lft x1=lft x2=pcshiftx+3jut; +top y1=h; bot y2=0; +lft x16 = pcshiftx; top y16 = h; +x18 = x1; y18 = y1; +pth1 := z16{pdir}..{pdir}z18; + +%% bowl +z3=1/2[z2,z1]; +rt x5 = w-pcshiftx; y5=y3; +x4=1/2[x3,x5]; top y4 = h/ascratio; +%%lft x6=x4; bot y6=0; +x6=1/2[x4,x5]; +top y6 = 0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +%%draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw pth1; +draw z3{pdir}..z4..z5..z6{-pdir}; + +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "RTND letter I"; +beginchar("I", 2cap_sb#+caprat*hstretch*(thick#+3jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +pickup quill; +rt x1 = w - pcshiftx - jut; +x2 = x1; +top y1=h; bot y2=0; +lft x6 = pcshiftx; top y6 = h; +x8 = x1; y8 = y1; +pth1 := z6{pdir}..{pdir}z8; +draw_tstem(1,2,srad); +%%draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "I" + +cmchar "RTND letter J"; +beginchar("J", cap_sb#+caprat*hstretch*(thick#+2jut#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup quill; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2=x1; y2=-1/2d; +%% bottom hook +lft x3 = 0; bot y3 = -d; +pth1 := z1--z2..z3{-pdir}; +lft x6 = pcshiftx; top y6 = h; +x8 = x1; y8 = y1; +pth2 := z6{pdir}..{pdir}z8; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % stem +draw pth2; % bar +ductus:=false; +penlabels(1,2,3,6,7,8,100); +endchar; % end "J" + +cmchar "RTND letter K"; +beginchar("K", 2cap_sb#+caprat*hstretch*(7/8x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +numeric n[]; +pickup quill; +%% stem +n1 = h; % x-height +lft x1=lft x2=pcshiftx+2jut; +top y1=h; bot y2=0; +lft x26 = pcshiftx; top y26 = h; +x28 = x1; y28 = y1; +pth22 := z26{pdir}..{pdir}z28; +%% top arm +%%z3=(x1,1/2n1); +x3 = x1; top y3 = 1/2n1; +rt x5=5/8[x1,w-pcshiftx]; top y5=n1; +x4=1/2[x3,x5]; top y4=n1; +pth1 := z3{pdir}..z5{up}; +%% lower arm +pth2 := (rt x1,0)--(rt x1,h); +z13 = pth1 intersectionpoint pth2; +pickup threequarterquill; +lft x14 = x13; bot y14 = y13; +rt x7=w-pcshiftx; bot y7=0; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % stem +draw_roundserif(2,1,srad); +draw pth22; +draw pth1; % upper arm +pickup threequarterquill; +draw z14{-ppdir}..z7{right}; % lower arm +pickup quill; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "K" + +cmchar "RTND letter L"; +beginchar("L", 2cap_sb#+caprat*hstretch*(thick#+5jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +pickup quill; +lft x1= pcshiftx + 3jut; top y1=h; +lft x2= pcshiftx; bot y2 =0; +pth1 := z1{down}..{-pdir}z2; +lft x6 = pcshiftx; top y6 = h; +x8 = x1; y8 = y1; +pth2 := z6{pdir}..{pdir}z8; +x3 = x2; y3 = y2; +rt x5 = w - pcshiftx; bot y5 = 0; +pth3 := z3{pdir}..{pdir}z5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % stem +draw pth2; % bar +draw pth3; % foot +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "L" + +cmchar "RTND letter M"; +beginchar("M", 2cap_sb#+caprat*hstretch*(x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2'=x1; bot y2'=0; +%% start of bowl +x13=x1; y13=3/4h; +%% bottom of left, right and middle stems +rt x6' = w -pcshiftx - jut; y6'=y2'; +z4 = 1/2[z2',z6']; +x6 = 1/2[x4,x6']; bot y6 = -thick; +rt x2 = lft x4; bot y2 = 0; +%% top of middle and right stems +x3=x4; y3=y1; +x5=x6'; y5=y13; +%% top of bowls +x14=2/3[x13,x3]; top y14 = h; +x33=x4; y33=y13; +x34=2/3[x33,x5]; y34 = y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z2..z13..{right}z14..z33{down}--z4; +draw_roundserif(4,3,srad); +%%draw z33{pdir}..z34{right}..z5{down}--z6; +%%draw_roundserif(6,5,srad); +draw z33{pdir}..z34{right}..z5{down}..{-pdir}z6; % rightmost +ductus:=false; +penlabels(1,2,2',3,4,5,6,6',7,8,9,13,14,33,34,100); +endchar; % end "M" + +cmchar "RTND letter N"; +beginchar("N", 2cap_sb#+caprat*hstretch*(5/8x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +pickup quill; +%% left stem +lft x1=pcshiftx+jut; top y1=h; +x2=x1; bot y2=0; +x13=x1; y13=3/4h; +%% right stem +rt x4 = w-pcshiftx-jut; y4=y2; +x3 = x4; y3 = y13; +x14 = 2/3[x13,x3]; top y14 = h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % left stem +draw_flatserif(1,2,srad); +draw_roundserif(2,1,srad); +draw z13{pdir}..z14{right}..z3{down}--z4; +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,100); +endchar; % end "N" + +cmchar "RTND letter O"; +beginchar("O", 2cap_sb#+caprat*hstretch*(7/8x_height#), + 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+o; bot y4=-o; +pth1 := z2..z3..z4{left}.. tension 0.8 ..{up}z1..cycle; +if ductus: + pickup stylus; +fi +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "O" + +cmchar "RTND letter P"; +beginchar("P", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+2jut; +top y1=h; bot y2=0; +%% bowl +rt x5 = w-pcshiftx; +x4=1/2[x1,x5]; top y4 = h; +x6=x4; bot y6 = 5/16h; +y5=1/2[y4,y6]; +x7 = x1; y7 = 1/2[y6,y5]; +lft x3 = pcshiftx; top y3 = y1; +pth1 := z3{pdir}..z4..{down}z5..{left}z6..z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw_roundserif(2,1,srad) +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "RTND letter Q"; +beginchar("Q", 2cap_sb#+caprat*hstretch*(7/8x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx-jut; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +pth1 := z2..z3..z4{left}.. tension 0.8 ..{up}z1..cycle; +z5 = point 1.5 of pth1; +rt x7 = w - pcshiftx; bot y7 = 0; +pth2 := z5..{right}z7; +if ductus: + pickup stylus; +fi +draw pth1; +draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "Q" + +cmchar "RTND letter R"; +beginchar("R", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +path pth[]; +pickup quill; +%% stem +lft x1=lft x2=pcshiftx+2jut; +top y1=h; bot y2=0; +%% bowl +rt x5 = w-pcshiftx; +x4=1/2[x1,x5]; top y4 = h; +x6=x4; bot y6 = 6/16h; +y5=1/2[y4,y6]; +x7 = x1; +y7 = y6; +lft x3 = pcshiftx; top y3 = y1; +pth1 := z3{pdir}..z4..{down}z5..{left}z6..z7; +%% leg +x16 = x6; y16 = y6; +rt x18 = w - pcshiftx; bot y18 = 0; +pth2 := z16..{right}z18; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw_roundserif(2,1,srad) +draw pth1; +draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "R" + + +cmchar "RTND letter S"; +beginchar("S", 2cap_sb#+caprat*hstretch*(7/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := cap_sb; +pickup quill; + +z50=(1/2w, 1/2h); +x60 = w-pcshiftx; z60 = z50 shifted (whatever*pdir); +x40 = pcshiftx; z40 = z50 shifted (whatever*pdir); +rt x5 = x50; top y5 = y50; +z54 = (lft x5, bot y5); +lft x6 = x50; bot y6 = y50; +z56 = (rt x6, top y6); + +z1 = 1/2[z56,z60]; +x3 = 1/2[x5,x1]; top y3 = h; + +z10 = 1/2[z54,z40]; +x8 = x56; +bot y8 = 0; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{ppdir}..z3..z1{-ppdir}; + +draw z6..z8{left}..z10{ppdir}; +pickup stylus; +draw z60--z10; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,11,17,20,26,27,28,40,50,54,56,60,100); +endchar; % end "S" + +cmchar "RTND letter T"; +beginchar("T", 2cap_sb#+caprat*hstretch*(x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +pickup quill; +%% bar +top y3=h; n3 := h - top y3; +lft x1 = pcshiftx; rt x2=w-pcshiftx; +%%top y1 = y3-n3; bot y2=y3+n3; +y1 = y3-n3; y2=y3; +n1 := w; % width of bowl +n2 := h; % height of bowl +x3=1/2[x1,x2]; +lft x4 = pcshiftx + 1/8n1; y4 = 1/2h; +x5=x3; bot y5 = 0; +rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{pdir}..z3..z2{pdir}; % bar +draw z3--z5; +draw_roundserif(5,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "RTND letter U"; +beginchar("U", 2cap_sb#+caprat*hstretch*(5/8x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +numeric n[]; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; +draw_flatserif(1,13,srad); +draw_tstem(3,4,srad); % right stem +draw_flatserif(3,4,srad); +draw_roundserif(4,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "U" + +cmchar "RTND letter V"; +beginchar("V", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x3=w-pcshiftx-jut; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +rt x23=w-pcshiftx; y23=3/4h; +lft x26=x14; top y26=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}; % left stem +draw_flatserif(1,13,srad); +draw z14{pdir}..z23{up}..z26; + +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "V" + +cmchar "RTND letter W"; +beginchar("W", 2cap_sb#+caprat*hstretch*(x_height#+2jut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := cap_sb; +pickup quill; +%% left stem +lft x1 = pcshiftx + jut; top y1 = h; +x13=x1; y13=1/3h; +rt x5=w-pcshiftx-jut; y5=y1; +x6=x5; bot y6=0; +z53=1/4[z6,z5]; % start of bowl +z3 = 1/2[z1,z5]; +z33=(x3,y13); +x14=1/3[x1,x3]; bot y14=0; +x34=1/3[x3,x5]; y34=y14; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z13{down}..z14{right}..z33{pdir}; % left +draw_flatserif(1,13,srad); +draw z3--z33{down}..z34{right}..z53{pdir}; % middle +draw_flatserif(3,33,srad); +draw_tstem(5,6,srad); % right stem +draw_flatserif(5,6,srad); +draw_roundserif(6,5,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "W" + +cmchar "RTND letter X"; +beginchar("X", 2cap_sb#+caprat*hstretch*(x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := cap_sb; +pickup quill; +n1 := w-2pcshiftx; % total width +n2 := thick; % triangle side +%% diag top left to bottom right +lft x1=pcshiftx; bot y1=2/3h; +x2=pcshiftx+1/7n1; top y2=h; +x5=pcshiftx+11/14n1; bot y5=-1/4d; +rt x6=pcshiftx+n1; top y6=1/6h; +z25 = 1/3[z2,z5]; +pth1 := z2{right}..z5{right}; +z251 = point 1/3 of pth1; +z252 = point 2/3 of pth1; +%% diag bottom left to top right +lft x10 = -w + 2pcshiftx; bot y10=-d; +x50=x5; top y50=h; +rt x60 = w -pcshiftx; bot y60=2/3h; +x40=pcshiftx+8/14n1; y40=h; + +x150=x2; bot y150 = 0; +lft x160 = pcshiftx; top y160=1/3h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z5{right}..z6; % top left to bottom right +%%draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right +draw z251..z50{right}..z60; % middle to top right +draw z252..z150{left}..z160; % middle to bottom left +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 "RTND letter Y"; +beginchar("Y", 2cap_sb#+caprat*hstretch*(7/8x_height#), + caprat*x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := cap_sb; +path pth[]; +numeric n[]; +pickup quill; +%% left stem top +lft x1 = pcshiftx + jut; top y1 = h; +bot y3 = 0; +%% right stem +rt x5=w-pcshiftx; top y5 = h; +lft x9=-1/2w; bot y9 = -d; +pth1 := z9{right}..z5{up}; +pth2 := (0,y3)--(w,y3); +z99 = pth1 intersectionpoint pth2; +x3 = x99; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}..z3; % left stem +draw_flatserif(1,3,srad); +draw pth1; % right stem +draw_flatserif(5,3,srad); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "RTND letter Z"; +beginchar("Z", 2cap_sb#+caprat*hstretch*(7/8x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := cap_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; +top y1 = y12-n1; 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; bot y4=y34; +x34 = 1/2[x3,x4]; +pth2 := z3{pdir}..z34{right}..z4{pdir}; +%% diagonal +z5=z3; +z6 = z2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; % bars +draw z5--z6; +ductus:=false; +penlabels(1,2,3,4,5,6,12,34,10o,10i,20o,20i,100); +endchar; % end "Z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rust10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rust10.mf new file mode 100644 index 00000000000..2f38518bb3a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rust10.mf @@ -0,0 +1,80 @@ +%% +%% This is file `rust10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 +%% +%%% RUST10.MF Roman Rustic at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RUST"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.2; % 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.9; + + x_height#:=vstretch*carol_height#; + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + 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 + + asc_height#:=6/5x_height#; + desc_depth#:=2/3thick#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(3/5x_height#); + cap_height#:=caprat*asc_height#; % height of caps + 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:= 5/8; +jut#:=jutstretch*jutfudge*thick#; +hookjut#:=1/2jut#; +footjut#:=2/20x_height#; +extra_fhjut#:=1/3thick#; +stem_offset#:=8/12thick#+thin#; +srad:=0.5; +wiggle:= 0.05; +bowoff:= 0.05; + o#:=8/36pt#; + +pair thick_tltobr; +thick_tltobr:=(-2,5); + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate rusttitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rust17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rust17.mf new file mode 100644 index 00000000000..0d89c5d900c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rust17.mf @@ -0,0 +1,80 @@ +%% +%% This is file `rust17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 +%% +%%% RUST17.MF Roman Rustic at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RUST"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.2; % 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.9; + + x_height#:=vstretch*carol_height#; + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + 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 + + asc_height#:=6/5x_height#; + desc_depth#:=2/3thick#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(3/5x_height#); + cap_height#:=caprat*asc_height#; % height of caps + 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:= 5/8; +jut#:=jutstretch*jutfudge*thick#; +hookjut#:=1/2jut#; +footjut#:=2/20x_height#; +extra_fhjut#:=1/3thick#; +stem_offset#:=8/12thick#+thin#; +srad:=0.5; +wiggle:= 0.05; +bowoff:= 0.05; + o#:=10/36pt#; + +pair thick_tltobr; +thick_tltobr:=(-2,5); + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate rusttitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rust7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rust7.mf new file mode 100644 index 00000000000..be13d73f5d6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rust7.mf @@ -0,0 +1,80 @@ +%% +%% This is file `rust7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 +%% +%%% RUST7.MF Roman Rustic at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RUST"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.2; % 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.9; + + x_height#:=vstretch*carol_height#; + thickfudge:=1/6; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + 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 + + asc_height#:=6/5x_height#; + desc_depth#:=2/3thick#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(3/5x_height#); + cap_height#:=caprat*asc_height#; % height of caps + 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:= 5/8; +jut#:=jutstretch*jutfudge*thick#; +hookjut#:=1/2jut#; +footjut#:=2/20x_height#; +extra_fhjut#:=1/3thick#; +stem_offset#:=8/12thick#+thin#; +srad:=0.5; +wiggle:= 0.05; +bowoff:= 0.05; + o#:=5/36pt#; + +pair thick_tltobr; +thick_tltobr:=(-2,5); + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate rusttitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustb10.mf new file mode 100644 index 00000000000..ed47ef39767 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustb10.mf @@ -0,0 +1,80 @@ +%% +%% This is file `rustb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 +%% +%%% RUSTB10.MF Roman Rustic Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RUSTB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.2; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.9; + + x_height#:=vstretch*carol_height#; + thickfudge:=1/4.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + 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 + + asc_height#:=6/5x_height#; + desc_depth#:=2/3thick#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(3/5x_height#); + cap_height#:=caprat*asc_height#; % height of caps + 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:= 5/8; +jut#:=jutstretch*jutfudge*thick#; +hookjut#:=1/2jut#; +footjut#:=2/20x_height#; +extra_fhjut#:=1/3thick#; +stem_offset#:=8/12thick#+thin#; +srad:=0.5; +wiggle:= 0.05; +bowoff:= 0.05; + o#:=8/36pt#; + +pair thick_tltobr; +thick_tltobr:=(-2,5); + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate rusttitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustb17.mf new file mode 100644 index 00000000000..b9e49188a56 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustb17.mf @@ -0,0 +1,80 @@ +%% +%% This is file `rustb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 +%% +%%% RUSTB17.MF Roman Rustic Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RUSTB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.2; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.9; + + x_height#:=vstretch*carol_height#; + thickfudge:=1/4.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + 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 + + asc_height#:=6/5x_height#; + desc_depth#:=2/3thick#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(3/5x_height#); + cap_height#:=caprat*asc_height#; % height of caps + 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:= 5/8; +jut#:=jutstretch*jutfudge*thick#; +hookjut#:=1/2jut#; +footjut#:=2/20x_height#; +extra_fhjut#:=1/3thick#; +stem_offset#:=8/12thick#+thin#; +srad:=0.5; +wiggle:= 0.05; +bowoff:= 0.05; + o#:=10/36pt#; + +pair thick_tltobr; +thick_tltobr:=(-2,5); + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate rusttitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustb7.mf new file mode 100644 index 00000000000..eee464aec59 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustb7.mf @@ -0,0 +1,80 @@ +%% +%% This is file `rustb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 +%% +%%% RUSTB7.MF Roman Rustic Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="RUSTB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.2; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.9; + + x_height#:=vstretch*carol_height#; + thickfudge:=1/4.5; +thinfudge:=1/6; +thick#:=stemstretch*thickfudge*x_height#; % max pen breadth +thin#:=thinfudge*thick#; +pangle:=45; % pen angle + 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 + + asc_height#:=6/5x_height#; + desc_depth#:=2/3thick#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(3/5x_height#); + cap_height#:=caprat*asc_height#; % height of caps + 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:= 5/8; +jut#:=jutstretch*jutfudge*thick#; +hookjut#:=1/2jut#; +footjut#:=2/20x_height#; +extra_fhjut#:=1/3thick#; +stem_offset#:=8/12thick#+thin#; +srad:=0.5; +wiggle:= 0.05; +bowoff:= 0.05; + o#:=5/36pt#; + +pair thick_tltobr; +thick_tltobr:=(-2,5); + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate rusttitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustdig.mf new file mode 100644 index 00000000000..1df1062168f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustdig.mf @@ -0,0 +1,224 @@ +%% +%% This is file `rustdig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 "Rustic digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w/2; +y1=h; y2=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem and foot +draw_hserif(1,2,srad); % serif +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "1" + +cmchar "Rustic digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +rt x3=w-pcshiftx; y3=3/4h; +x5=pcshiftx+extra_fhjut; bot y5=0; +x6=w-pcshiftx-extra_fhjut; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..{-pdir}z5; % curve +draw_squiggle(5,6,wiggle,srad); % foot +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "Rustic digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +lft x6=pcshiftx+extra_fhjut; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw_rusticstem(1,2); % the stem +draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "Rustic digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-footjut-extra_fhjut; +y1=h; y2=0; +x3=pcshiftx+extra_fhjut; y3=0.33h; +x4=w-pcshiftx-extra_fhjut; y4=y3; +x5=lft x3; y5=bot y3+thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem and foot +%%draw_hserif(1,2,srad); % serif +draw_squiggle(3,4,wiggle,srad); % squiggle +pickup stylus; +draw z5{pdir}..z1; % thin diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "Rustic digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x7=pcshiftx+extra_fhjut; bot y7=0; +rt x1=w-pcshiftx-extra_fhjut; top y1=h; +lft x2=pcshiftx+extra_fhjut; y2=y1; + +x3=x2; y3=0.5h; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=0.75w; bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_squiggle(2,1,wiggle,srad); % top squiggle +draw z3{pdir}..z5{down}..{-pdir}z6; % curve +draw_squiggle(7,6,wiggle,srad); % base +pickup stylus; +draw z2--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "Rustic digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "Rustic digit 7"; +beginchar("7", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=pcshiftx+extra_fhjut; +x2=w-pcshiftx-extra_fhjut; +top y1=top y2=h; +rt x4=w-pcshiftx-3thin; bot y4=0; +x3=0.5[x2,x4]-2thin; y3=0.5[y2,y4]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_squiggle(1,2,wiggle,srad); +draw z2..z3..z4; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "7" + +cmchar "Rustic digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx-o; rt x3=w-pcshiftx; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2; +x11=x1+o; x13=x3+o; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "Rustic digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Rustic digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustl.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustl.mf new file mode 100644 index 00000000000..516cd499189 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustl.mf @@ -0,0 +1,637 @@ +%% +%% This is file `rustl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 "Rustic letter a"; +beginchar("a", 2u#+hstretch*(4/5x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z1-z2=whatever*thick_tltobr; +top y1=h; +rt x2=w-pcshiftx-jut; bot y2=0; +z3=9/10[z2,z1]; +x4=pcshiftx+footjut+extra_fhjut; bot y4=0; +x7=x4; y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % right leg +draw_bow(3,4,bowoff); % left leg +draw_foot(7); % left leg foot +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "a" + +cmchar "Rustic letter b"; +beginchar("b", 2u#+hstretch*(7/10x_height#), 11/10x_height#, 0); +adjust_fit(0,0); +pcshiftx := u+hookjut+thin; +pickup quill; +x1=x2=pcshiftx; +y1=h; y2=0; +rt x3=x1; bot y3=thin; +rt x5=w-u; y5 = 1/6h; +x4=0.4[x2,x5]; y4=0; +lft x6=x2; y6=2/3h; +z7=z6; +x8=0.25[x4,x5]; top y8=y1; +x9=0.5[x1,x8]; bot y9=h; +z10=z1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % the stem +draw z3..z4{right}..z5..{dir(pangle+90)}z6; % bottom bowl +draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "b" + +cmchar "Rustic letter c"; +beginchar("c", 2u#+hstretch*(3/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +rt x5= rt x6=w-pcshiftx; +top y5=1/5h; +top y6=4/5h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "c" + +cmchar "Rustic letter d"; +beginchar("d", 2u#+hstretch*(3/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+hookjut+thin; +top y1=h; y2=0; +rt x3=x1; bot y3=thin; +rt x5=w-u; y5 = 2/5h; +x4=0.4[x2,x5]; y4=0; +x6=x1; top y6=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw z3..z4{right}..z5{up}..z6; % bowl +ductus:=false; +penlabels(0,1,2,3,4,5,6,100); +endchar; % end "d" + +cmchar "Rustic letter e"; +beginchar("e", 2u#+hstretch*(4/10x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +top y1=h; y2=0; +rt x3=x1; x4=w-u; +top y3=top y4=h; +x5=x3; x6=x4; +y5=y6=3/5h; +x7=x3; x8=x4; +bot y7= bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw_squiggle(3,4,wiggle,srad); % top bar +draw_squiggle(5,6,wiggle,srad); % middle bar +draw_squiggle(7,8,wiggle,srad); % bottom bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "e" + +cmchar "Rustic letter f"; +beginchar("f", 2u#+hstretch*(4/10x_height#), 6/5x_height#, 0); +adjust_fit(0,0); +pcshiftx := u +stem_offset; +pickup quill; +x1=x2=pcshiftx; +top y1=h; y2=0; +x3=x1; x4=w-u; +top y3=top y4=h; +x5=x3; x6=x4; +y5=y6=2/3h; +x7=x3; x8=x4; +bot y7= bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem +draw_squiggle(3,4,wiggle,srad); % top bar +draw_squiggle(5,6,wiggle,srad); % middle bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "f" + +cmchar "Rustic letter g"; +beginchar("g", 2u#+hstretch*(3/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +rt x5= rt x6=w-pcshiftx; +top y5=1/5h; +top y6=4/5h; +lft x7=w/2; y7=h/2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z7..z5{down}..{left}z4..z1..z2..z6; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "g" + +cmchar "Rustic letter h"; +beginchar("h", 2u#+hstretch*(4/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = sqyside/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +y5=y6=7/10h; +lft x5=pcshiftx; rt x6=w-pcshiftx; +rt x7=w-pcshiftx; top y7=h; +x8=x7; bot y8=0; +x9=x8-2thin; y9=0.5[y8,y7]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % left stem +draw_hserif(1,2,srad); % its serif +draw_squiggle(5,6,wiggle,srad); % the bar +draw z7..z9..z8; % right stem +ductus:=false; +penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100); +endchar; % end "h" + +cmchar "Rustic letter i"; +beginchar("i", 2u#+hstretch*(2footjut#+hookjut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem and foot +draw_hserif(1,2,srad); % serif +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "i" + +cmchar "Rustic letter j"; +beginchar("j", 4u#+hstretch*(3/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := 3u; +pickup quill; +x1=x2=pcshiftx+2/3(w-4u); +y1=h; y2=0; +rt x4=w-u; top y4=h; +x1-x3 = x4-x1; y3=y4; +rt x5 = lft x3; +top y5=2/5h; +x7=x2; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw_squiggle(3,4,wiggle,srad); % top bar +draw z7{left}..{pdir}z5; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "j" + +cmchar "Rustic letter k"; +beginchar("k", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +lft x13=pcshiftx; bot y13=0; +x2-x13=x14-x2; y14=y13; +x3=x1; y3=h/2; +x4=x1+y3; top y4=h; +x5=x4-jut; x6-x4=x4-x5; +top y5=top y6=h; +x24=x4; y24=h; +lft x7=x3; bot y7=y3; +rt x9=w-pcshiftx; bot y9=0; +x8=0.5[x7,x9]; y8=0.7[y7,y9]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % the stem +draw_hserif(1,2,srad); % its serif +draw z3--z4; % upper diagonal +draw_head(24); +draw z7..z8..z9; % bottom leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "k" + +cmchar "Rustic letter l"; +beginchar("l", 2u#+hstretch*(1/2x_height#), 6/5x_height#, 0); +adjust_fit(0,0); +pcshiftx := u+hookjut; +pickup quill; +x1=x2=pcshiftx+thin+hookjut; +y1=h; y2=0; +rt x3=x1; rt x4=w-u; +bot y3= bot y4=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw_hserif(1,2,srad); % serif +draw_squiggle(3,4,wiggle,srad); % foot +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "Rustic letter m"; +beginchar("m", 2u#+hstretch*(6/5x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z11-z12=whatever*thick_tltobr; +rt x12=w-pcshiftx-jut; bot y12=0; +top y11=h; +pickup bowpen; +x4=pcshiftx+footjut+extra_fhjut; bot y4=thin; +z3=9/10[z2,z1]; +pickup quill; +x7=x4; y7=0; % for the foot +z13=9/10[z12,z11]; +z3-z4=z13-z14; y4=y14; +z1-z2=z11-z12; % y2=y12; +x12-x2=1/3w; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % right leg +draw_bow(3,4,bowoff); % left leg +draw_foot(7); % left leg foot +draw_istem(11,12,srad); +draw_bow(13,14,bowoff); +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,13,14,100); +endchar; % end "m" + +cmchar "Rustic letter n"; +beginchar("n", 2u#+hstretch*(9/10x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +x5=x6=w-u-hookjut-thin; +y5=y1; y6=y2; +x7=x1; y7=h; +x9=x6; bot y9=0; +x8=0.5[x7,x9]; y8=0.6[y7,y9]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % left stem +draw_rusticstem(5,6); % right stem +draw_hserif(5,6,srad); % its serif +draw z7..z8..z9; % diagonal +draw_serif(9,8,srad); % its bottom serif +ductus:=false; +penlabels(1,2,5,6,7,8,9,100); +endchar; % end "n" + +cmchar "Rustic letter o"; +beginchar("o", 2u#+hstretch*(3/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "o" + +cmchar "Rustic letter p"; +beginchar("p", 2u#+hstretch*(5/10x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +top y1=h; y2=0; +lft x7=x2; y7=1/2h; % y7=2/3h; +rt x8=w-pcshiftx; top y8=y1; +z10=z1; +x9=0.5[x1,x8]; y9=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem +draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,7,8,9,10,100); +endchar; % end "p" + +cmchar "Rustic letter q"; +beginchar("q", 2u#+hstretch*(3/5x_height#), x_height#, 2/3thick#); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +path p; +p = z4{right}..{up}z3; +z5 = directionpoint pdir of p; +x7= x4+w/2; top y7=0; +x6=0.5[x5,x7]; y6=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; % O shape +draw z5..z6..z7; % the tail +ductus:=false; +penlabels(0,1,2,3,4,5,6,6',7,100); +endchar; % end "q" + +cmchar "Rustic letter r"; +beginchar("r", 2u#+hstretch*(4/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha, beta; +alpha:=thin*(xpart pdir); beta:=thin*(ypart pdir); +pickup quill; +x1=x2=pcshiftx+stem_offset; +top y1=h; y2=0; +lft x7=x2; bot y7=1/2h; +rt x8=5/8w; top y8=y1; +z10=z1; +x9=0.5[x1,x8]; y9=h; +z11=z7 shifted (thin*pdir); +rt x13=w-pcshiftx; bot y13=0; +x12=0.5[x11,x13]; y12=0.7[y11,y13]; +x11l=lft x11 + alpha; y11l=bot y11 + beta; +x11r= rt x11 - alpha; y11r=top y11 - beta; +x12l=0.6[lft x12, x12]; y12l=0.6[bot y12, y12]; +x12r=0.6[rt x12, x12]; y12r=0.6[top y12, y12]; +x14=w-pcshiftx-thin; y14=thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem and foot +draw z7{pdir}..z8{up}..z9{left}..z10; % bowl +pickup stylus; % drawing the leg +filldraw z11l..z12l..{right}z14 & z14{left}..z12r..z11r--cycle; +ductus:=false; +penlabels(1,2,7,8,9,10,11,12,14,100); +endchar; % end "r" + +cmchar "Rustic letter s"; +beginchar("s", 2u#+hstretch*(3/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x7=pcshiftx+extra_fhjut; bot y7=0; +rt x1=w-pcshiftx; top y1=h-thin; +lft x3=pcshiftx+extra_fhjut; y3=0.75h; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +x2=x4; top y2=h; +x5=x1; y5=0.3h; +x6=0.75w; bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4..z5{down}..{-pdir}z6; % S curve +draw_squiggle(7,6,wiggle,srad); % base +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "s" + +cmchar "Rustic letter t"; +beginchar("t", 2u#+hstretch*(2/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w/2; +y1=h; y2=0; +lft x3=pcshiftx; top y3=h; +rt x4=w-pcshiftx; y4=y3; +rt x5=x2; bot y5= bot y6=0; +rt x6=w-pcshiftx; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % the stem +draw_squiggle(3,4,wiggle,srad); % the top crossbar +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "t" + +cmchar "Rustic letter u"; +beginchar("u", 2u#+hstretch*(4/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x5=x6=w-pcshiftx-hookjut-thin; y5=h; y6=-thin; +lft x1= lft x2=pcshiftx+jut; +top y1=h; y2=2thick; +x3=0.5[x1,x5]; bot y3=0; +rt x4=x5; bot y4=0.25thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(5,6); % right stem +draw_hserif(5,6,srad); % its serif +draw_tlserif(1,2,srad); % left stem and serif +draw z2{down}..z3{right}..{pdir}z4; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "u" + +cmchar "Rustic letter v"; +beginchar("v", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z1-z2=whatever*thick_tltobr; +lft x1=pcshiftx+jut; top y1=h; +bot y2=0; +pickup bowpen; +x3=w-pcshiftx-footjut-extra_fhjut; top y3=h; +pickup quill; +x4=lft x2; y4=0; +x5=x3; y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % left part +draw_bow(3,4,bowoff); % right part +draw_head(5); % and its head +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "v" + +cmchar "Rustic letter w"; +beginchar("w", 2u#+hstretch*(8/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z1-z2=whatever*thick_tltobr; +lft x1=pcshiftx+jut; top y1=h; bot y2=0; +pickup bowpen; +x13=w-pcshiftx-footjut-extra_fhjut; top y13=h-thin; +x23=x13; y23=h; % for the head +bot y14=thin; +pickup quill; +z11-z12=z1-z2; +x12-x2=1/3w; y12=y2; +z3-z4=z13-z14; +x4=x2; +x14=x12; +y3=y13; + +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % left and right thick diags +draw_istem(11,12,srad); +draw_bow(3,4,bowoff); % left thin diag +draw_bow(13,14,bowoff); % right thin diag +draw_head(23); % its head +ductus:=false; +penlabels(1,2,3,4,11,12,13,14,23,100); +endchar; % end "w" + +cmchar "Rustic letter x"; +beginchar("x", 2u#+hstretch*(9/10x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +rt x2= w-pcshiftx-jut; bot y2=0; +pickup bowpen; +x3=w-pcshiftx-footjut-extra_fhjut-thin; top y3=h; +x4=pcshiftx+footjut+extra_fhjut+thin; bot y4=0; +x7=x3; y7=h; +x8=x4; y8=0; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw_bow(3,4,bowoff); % thin diagonal +draw_head(7); % its head +draw_foot(8); % its foot +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "x" + +cmchar "Rustic letter y"; +beginchar("y", 2u#+hstretch*(4/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +x2=1/2w; bot y2=1/3h; +pickup bowpen; +x3=w-pcshiftx-footjut-extra_fhjut; top y3=h; +lft x4=x2; bot y4=y2; +pickup quill; +x5=x3; y5=h; +x7=x2; y7=y2; +x8=x7; y8=0; +pickup bowpen; +x10=lft x8; x11=rt x8; +pickup stylus; +bot y10= bot y11=thin; +pickup quill; +%% ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % left stroke +draw_bow(3,4,bowoff); % right stroke +draw_head(5); % its head +draw_foot(8); % the foot +pickup stylus; % the leg +filldraw z7--z10--z11--cycle; +ductus:=false; +penlabels(1,2,3,4,5,7,8,9,100); +endchar; % end "y" + +cmchar "Rustic letter z"; +beginchar("z", 2u#+hstretch*(4/5x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x4=pcshiftx; bot y4=0; +rt x6=w-pcshiftx; y6=y4; +x1=x4; top y1=h; +rt x3 =7/8w-pcshiftx; y3=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_squiggle(1,3,1/2wiggle,srad); % top stroke +draw_squiggle(4,6,1/2wiggle,srad); % bottom stroke +pickup stylus; +draw z4--z3; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustlig.mf new file mode 100644 index 00000000000..0ad33e231d1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustlig.mf @@ -0,0 +1,82 @@ +%% +%% This is file `rustlig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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"; + + +cmchar "Rustic closing quotes"; +beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Rustic opening quotes"; +beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Rustic hyphen"; +beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +draw z1--z2; % bar +penlabels(1,2); +endchar; % end of "-" + + +cmchar "Rustic en dash"; +beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +draw z1--z2; % bar +penlabels(1,2); +endchar; % end of "--" + + +cmchar "Rustic em dash"; +beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +draw z1--z2; % bar +penlabels(1,2); +endchar; % end of "---" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustpunct.mf new file mode 100644 index 00000000000..c63dea25016 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustpunct.mf @@ -0,0 +1,78 @@ +%% +%% This is file `rustpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 "Rustic Comma"; +beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "," + + +cmchar "Rustic Period"; +beginchar(".",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=w/2; y1=h/2; +draw_pdot(1,dot_size); +penlabels(1); +endchar; % end of "." + + +cmchar "Rustic Colon"; +beginchar(":",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=x2=w/2; y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pdot(2,dot_size); +penlabels(1,2); +endchar; % end ":" + + +cmchar "Rustic Semicolon"; +beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pcomma(2,dot_size,comma_width); +penlabels(1,2); +endchar; % end of ";" + + +cmchar "Rustic Apostrophe"; +beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "'" + + +cmchar "Rustic Reverse apostrophe"; +beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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/rusttitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/rusttitle.mf new file mode 100644 index 00000000000..bd19f4afd4a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rusttitle.mf @@ -0,0 +1,297 @@ +%% +%% This is file `rusttitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 rustic_font_setup= + 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,cap_jut); + define_pixels(hookjut,footjut,stem_offset,extra_fhjut,fig_width); + define_whole_pixels(letter_fit); + 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); + let adjust_fit = normal_adjust_fit; + pickup pencircle scaled thin; + stylus:=savepen; + pickup pencircle xscaled thick yscaled thin rotated pangle; + quill:=savepen; + pickup pencircle xscaled thick yscaled thin rotated ((1/2(pangle+90))); + bowpen:=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 rustic_font_setup + +boolean ductus; +ductus:=false; +pair pdir; pdir=dir(pangle); +pair ppdir; ppdir=dir(pangle+90); + +def draw_rusticstem(suffix $, $$)= + numeric alpha, beta; alpha:=0.5thick; + beta:=60; % the ending angle + pair rustic[]; + xpart rustic1=x$$; ypart rustic1=y$$+alpha*sind(beta); + z$a=1/2[z$,rustic1]; + z$b=2/3[z$,rustic1]; + z$c=5/6[z$,rustic1]; + z$d=rustic1; + z$ar=z$a shifted (alpha*up); z$al=z$a shifted (alpha*down); + + rustic2:=z$b shifted (alpha*right); + z$br=rustic2 rotatedaround(z$b,1/4[90,beta]); z$bl=z$br rotatedaround(z$b,180); + + rustic2:=z$c shifted (alpha*right); + z$cr=rustic2 rotatedaround(z$c,1/2[90,beta]); z$cl=z$cr rotatedaround(z$c,180); + + rustic2:=z$d shifted (alpha*right); +%% z$dr=rustic2 rotatedaround(z$d,60); z$dl=z$dr rotatedaround(z$d,180); + rustic3=rustic2 rotatedaround(z$d,beta); + x$dr=xpart rustic3; y$dr=ypart rustic3 - thin; + z$dl=z$dr rotatedaround(z$d,180); + pen oldpen; oldpen:=currentpen; + pickup stylus; + draw z$--z$al; +%% filldraw z$ar..z$br..z$cr..z$dr--z$dl..z$cl..z$bl..z$al--cycle; + filldraw z$ar..z$br..z$cr..z$dr--z$dl..z$bl..z$al--cycle; + pickup oldpen; +%% labels($a,$al,$ar,$b,$bl,$br,$c,$cl,$cr,$dl,$dr); + labels($a,$b,$c,$d,$dl,$dr); +enddef; % end of draw_rusticstem + + +def draw_hserif(suffix $, $$)(expr fr)= + pen oldpen; oldpen:=currentpen; + numeric beta, ajut, bjut; + beta=1-fr; + ajut=fr*jut; bjut=beta*jut; + pair rustic; + numeric tn, ang; ang:=70; + tn:=(sind ang)/(cosd ang); + x$g=x$-hookjut; y$g=y$-(hookjut*tn); % the tip + x$f=x$; y$f=y$g; % on the stem + pickup stylus; +%% filldraw z$g{dir(ang)}..{down}z$f--z$--cycle; + draw z$g--z$; + pickup oldpen; + labels($f,$g); +enddef; % end of draw_hserif + + +def draw_footstem(suffix $, $$)= + draw_rusticstem($, $$); + x$$fl=x$dl; bot y$$fl= y$$; + x$$fr=x$$fl+2footjut; y$$fr=y$$fl; + draw_squiggle($$fl,$$fr,wiggle,srad); + labels($$fl,$$fr); +enddef; % end of draw_footstem + + +def draw_foot(suffix $)= + x$fl=x$-footjut; bot y$fl= y$; + x$fr-x$=x$-x$fl; y$fr=y$fl; + draw_squiggle($fl,$fr,wiggle,srad); + labels($fl,$fr); +enddef; % end of draw_foot + + +def draw_head(suffix $)= + x$hl=x$-footjut; top y$hl= y$; + x$hr-x$=x$-x$hl; y$hr=y$hl; + draw_squiggle($hl,$hr,wiggle,srad); + labels($hl,$hr); +enddef; % end of draw_head + + +def draw_bow(suffix $, $$)(expr fr)= + pen oldpen; oldpen:=currentpen; + z$bm=1/2[z$,z$$]; + l:=length(z$-z$$); + bdir:=angle(z$-z$$); +%% z$bo=z$bm shifted (fr*l*dir(bdir+90)); + z$bo=z$bm shifted (fr*l*dir(bdir-90)); + pickup bowpen; + draw z$..z$bo..z$$; + pickup oldpen; + labels($bm,$bo); +enddef; % end of draw_bow + + +def draw_squiggle(suffix $, $$)(expr w, fr)= + z$si=1/4[z$,z$$]; z$sii=3/4[z$,z$$]; + l:=length(z$-z$$); + bdir:=angle(z$-z$$); +%% z$sio=z$si shifted (w*l*dir(bdir+90)); +%% z$siio=z$sii shifted (w*l*dir(bdir-90)); + z$sio=z$si shifted (w*l*dir(bdir-90)); + z$siio=z$sii shifted (w*l*dir(bdir+90)); + draw z$..z$sio..z$siio..z$$; % the squiggle +%% draw_serif($,$$,fr); +%% draw_serif($$,$,fr); + labels($sio,$siio); +enddef; % end of draw_squiggle + + +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: + if y$=y$$: + if x$<x$$: + top_serif := true; + z$c=z$b shifted (-bjut*pdir); + else: + top_serif := false; + z$c=z$b shifted (bjut*pdir); + fi + else: + top_serif:=false; + z$c=z$b shifted (bjut*pdir); + fi + 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_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_tlserif(suffix $, $$)(expr fr)= + draw_serif($, $$, fr); % the serif + draw z$a--z$$; % the stem +enddef; % end of draw_tlserif + + +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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; + labels($s,$t,$u,$v); +enddef; % end of draw_plq + + +font_coding_scheme:="ASCII minuscules and punctuation"; +mode_setup; +rustic_font_setup; + + +input rustl; % normal letters +input rustu; % capital letters +input rustdig; % arabic digits +input rustpunct; % punctuation +input rustlig; % the several dashes +%%%%input rustp; % ampersand and ?mark + + +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning +%% ligtable "P": "T": "Y": "A" kern kk#; +%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi, +%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#; +%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#, +%% "V" kern k#, "Y" kern k#; +%% ligtable "A": if serifs: "R": fi +%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#, +%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#; +%%ligtable "I": "I" kern -k#; % Richard III +fi + +bye. + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustu.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustu.mf new file mode 100644 index 00000000000..d202b10c96d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/rustu.mf @@ -0,0 +1,637 @@ +%% +%% This is file `rustu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% rustic.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 "Rustic letter A"; +beginchar("A", 2u#+caprat*hstretch*(4/5x_height#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z1-z2=whatever*thick_tltobr; +top y1=h; +rt x2=w-pcshiftx-jut; bot y2=0; +z3=9/10[z2,z1]; +x4=pcshiftx+footjut+extra_fhjut; bot y4=0; +x7=x4; y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % right leg +draw_bow(3,4,bowoff); % left leg +draw_foot(7); % left leg foot +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "A" + +cmchar "Rustic letter B"; +beginchar("B", 2u#+caprat*hstretch*(7/10x_height#), caprat*(11/10x_height#), 0); +adjust_fit(0,0); +pcshiftx := u+hookjut+thin; +pickup quill; +x1=x2=pcshiftx; +y1=h; y2=0; +rt x3=x1; bot y3=thin; +rt x5=w-u; y5 = 1/6h; +x4=0.4[x2,x5]; y4=0; +lft x6=x2; y6=2/3h; +z7=z6; +x8=0.25[x4,x5]; top y8=y1; +x9=0.5[x1,x8]; bot y9=h; +z10=z1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % the stem +draw z3..z4{right}..z5..{dir(pangle+90)}z6; % bottom bowl +draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "B" + +cmchar "Rustic letter C"; +beginchar("C", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +rt x5= rt x6=w-pcshiftx; +top y5=1/5h; +top y6=4/5h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "C" + +cmchar "Rustic letter D"; +beginchar("D", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+hookjut+thin; +top y1=h; y2=0; +rt x3=x1; bot y3=thin; +rt x5=w-u; y5 = 2/5h; +x4=0.4[x2,x5]; y4=0; +x6=x1; top y6=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw z3..z4{right}..z5{up}..z6; % bowl +ductus:=false; +penlabels(0,1,2,3,4,5,6,100); +endchar; % end "D" + +cmchar "Rustic letter E"; +beginchar("E", 2u#+caprat*hstretch*(4/10x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +top y1=h; y2=0; +rt x3=x1; x4=w-u; +top y3=top y4=h; +x5=x3; x6=x4; +y5=y6=3/5h; +x7=x3; x8=x4; +bot y7= bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw_squiggle(3,4,wiggle,srad); % top bar +draw_squiggle(5,6,wiggle,srad); % middle bar +draw_squiggle(7,8,wiggle,srad); % bottom bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "E" + +cmchar "Rustic letter F"; +beginchar("F", 2u#+caprat*hstretch*(4/10x_height#), caprat*(6/5x_height#), 0); +adjust_fit(0,0); +pcshiftx := u +stem_offset; +pickup quill; +x1=x2=pcshiftx; +top y1=h; y2=0; +x3=x1; x4=w-u; +top y3=top y4=h; +x5=x3; x6=x4; +y5=y6=2/3h; +x7=x3; x8=x4; +bot y7= bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem +draw_squiggle(3,4,wiggle,srad); % top bar +draw_squiggle(5,6,wiggle,srad); % middle bar +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "F" + +cmchar "Rustic letter G"; +beginchar("G", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +rt x5= rt x6=w-pcshiftx; +top y5=1/5h; +top y6=4/5h; +lft x7=w/2; y7=h/2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z7..z5{down}..{left}z4..z1..z2..z6; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "G" + +cmchar "Rustic letter H"; +beginchar("H", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = sqyside/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +y5=y6=7/10h; +lft x5=pcshiftx; rt x6=w-pcshiftx; +rt x7=w-pcshiftx; top y7=h; +x8=x7; bot y8=0; +x9=x8-2thin; y9=0.5[y8,y7]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % left stem +draw_hserif(1,2,srad); % its serif +draw_squiggle(5,6,wiggle,srad); % the bar +draw z7..z9..z8; % right stem +ductus:=false; +penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100); +endchar; % end "H" + +cmchar "Rustic letter I"; +beginchar("I", 2u#+caprat*hstretch*(2footjut#+hookjut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem and foot +draw_hserif(1,2,srad); % serif +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "I" + +cmchar "Rustic letter J"; +beginchar("J", 4u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := 3u; +pickup quill; +x1=x2=pcshiftx+2/3(w-4u); +y1=h; y2=0; +rt x4=w-u; top y4=h; +x1-x3 = x4-x1; y3=y4; +rt x5 = lft x3; +top y5=2/5h; +x7=x2; bot y7=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw_squiggle(3,4,wiggle,srad); % top bar +draw z7{left}..{pdir}z5; % bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "J" + +cmchar "Rustic letter K"; +beginchar("K", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +lft x13=pcshiftx; bot y13=0; +x2-x13=x14-x2; y14=y13; +x3=x1; y3=h/2; +x4=x1+y3; top y4=h; +x5=x4-jut; x6-x4=x4-x5; +top y5=top y6=h; +x24=x4; y24=h; +lft x7=x3; bot y7=y3; +rt x9=w-pcshiftx; bot y9=0; +x8=0.5[x7,x9]; y8=0.7[y7,y9]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % the stem +draw_hserif(1,2,srad); % its serif +draw z3--z4; % upper diagonal +draw_head(24); +draw z7..z8..z9; % bottom leg +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "K" + +cmchar "Rustic letter L"; +beginchar("L", 2u#+caprat*hstretch*(1/2x_height#), caprat*(6/5x_height#), 0); +adjust_fit(0,0); +pcshiftx := u+hookjut; +pickup quill; +x1=x2=pcshiftx+thin+hookjut; +y1=h; y2=0; +rt x3=x1; rt x4=w-u; +bot y3= bot y4=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(1,2); % stem +draw_hserif(1,2,srad); % serif +draw_squiggle(3,4,wiggle,srad); % foot +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "Rustic letter M"; +beginchar("M", 2u#+caprat*hstretch*(6/5x_height#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z11-z12=whatever*thick_tltobr; +rt x12=w-pcshiftx-jut; bot y12=0; +top y11=h; +pickup bowpen; +x4=pcshiftx+footjut+extra_fhjut; bot y4=thin; +z3=9/10[z2,z1]; +pickup quill; +x7=x4; y7=0; % for the foot +z13=9/10[z12,z11]; +z3-z4=z13-z14; y4=y14; +z1-z2=z11-z12; % y2=y12; +x12-x2=1/3w; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % right leg +draw_bow(3,4,bowoff); % left leg +draw_foot(7); % left leg foot +draw_istem(11,12,srad); +draw_bow(13,14,bowoff); +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,13,14,100); +endchar; % end "M" + +cmchar "Rustic letter N"; +beginchar("N", 2u#+caprat*hstretch*(9/10x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +y1=h; y2=0; +x5=x6=w-u-hookjut-thin; +y5=y1; y6=y2; +x7=x1; y7=h; +x9=x6; bot y9=0; +x8=0.5[x7,x9]; y8=0.6[y7,y9]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % left stem +draw_rusticstem(5,6); % right stem +draw_hserif(5,6,srad); % its serif +draw z7..z8..z9; % diagonal +draw_serif(9,8,srad); % its bottom serif +ductus:=false; +penlabels(1,2,5,6,7,8,9,100); +endchar; % end "N" + +cmchar "Rustic letter O"; +beginchar("O", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "O" + +cmchar "Rustic letter P"; +beginchar("P", 2u#+caprat*hstretch*(5/10x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=pcshiftx+stem_offset; +top y1=h; y2=0; +lft x7=x2; y7=1/2h; % y7=2/3h; +rt x8=w-pcshiftx; top y8=y1; +z10=z1; +x9=0.5[x1,x8]; y9=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem +draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,7,8,9,10,100); +endchar; % end "P" + +cmchar "Rustic letter Q"; +beginchar("Q", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, + caprat*(2/3thick#)); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +path p; +p = z4{right}..{up}z3; +z5 = directionpoint pdir of p; +x7= x4+w/2; top y7=0; +x6=0.5[x5,x7]; y6=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; % O shape +draw z5..z6..z7; % the tail +ductus:=false; +penlabels(0,1,2,3,4,5,6,6',7,100); +endchar; % end "Q" + +cmchar "Rustic letter R"; +beginchar("R", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha, beta; +alpha:=thin*(xpart pdir); beta:=thin*(ypart pdir); +pickup quill; +x1=x2=pcshiftx+stem_offset; +top y1=h; y2=0; +lft x7=x2; bot y7=1/2h; +rt x8=5/8w; top y8=y1; +z10=z1; +x9=0.5[x1,x8]; y9=h; +z11=z7 shifted (thin*pdir); +rt x13=w-pcshiftx; bot y13=0; +x12=0.5[x11,x13]; y12=0.7[y11,y13]; +x11l=lft x11 + alpha; y11l=bot y11 + beta; +x11r= rt x11 - alpha; y11r=top y11 - beta; +x12l=0.6[lft x12, x12]; y12l=0.6[bot y12, y12]; +x12r=0.6[rt x12, x12]; y12r=0.6[top y12, y12]; +x14=w-pcshiftx-thin; y14=thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % stem and foot +draw z7{pdir}..z8{up}..z9{left}..z10; % bowl +pickup stylus; % drawing the leg +filldraw z11l..z12l..{right}z14 & z14{left}..z12r..z11r--cycle; +ductus:=false; +penlabels(1,2,7,8,9,10,11,12,14,100); +endchar; % end "R" + +cmchar "Rustic letter S"; +beginchar("S", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x7=pcshiftx+extra_fhjut; bot y7=0; +rt x1=w-pcshiftx; top y1=h-thin; +lft x3=pcshiftx+extra_fhjut; y3=0.75h; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +x2=x4; top y2=h; +x5=x1; y5=0.3h; +x6=0.75w; bot y6=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4..z5{down}..{-pdir}z6; % S curve +draw_squiggle(7,6,wiggle,srad); % base +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "S" + +cmchar "Rustic letter T"; +beginchar("T", 2u#+caprat*hstretch*(2/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w/2; +y1=h; y2=0; +lft x3=pcshiftx; top y3=h; +rt x4=w-pcshiftx; y4=y3; +rt x5=x2; bot y5= bot y6=0; +rt x6=w-pcshiftx; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_footstem(1,2); % the stem +draw_squiggle(3,4,wiggle,srad); % the top crossbar +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "T" + +cmchar "Rustic letter U"; +beginchar("U", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x5=x6=w-pcshiftx-hookjut-thin; y5=h; y6=-thin; +lft x1= lft x2=pcshiftx+jut; +top y1=h; y2=2thick; +x3=0.5[x1,x5]; bot y3=0; +rt x4=x5; bot y4=0.25thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_rusticstem(5,6); % right stem +draw_hserif(5,6,srad); % its serif +draw_tlserif(1,2,srad); % left stem and serif +draw z2{down}..z3{right}..{pdir}z4; % the bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "U" + +cmchar "Rustic letter V"; +beginchar("V", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z1-z2=whatever*thick_tltobr; +lft x1=pcshiftx+jut; top y1=h; +bot y2=0; +pickup bowpen; +x3=w-pcshiftx-footjut-extra_fhjut; top y3=h; +pickup quill; +x4=lft x2; y4=0; +x5=x3; y5=h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % left part +draw_bow(3,4,bowoff); % right part +draw_head(5); % and its head +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "V" + +cmchar "Rustic letter W"; +beginchar("W", 2u#+caprat*hstretch*(8/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +z1-z2=whatever*thick_tltobr; +lft x1=pcshiftx+jut; top y1=h; bot y2=0; +pickup bowpen; +x13=w-pcshiftx-footjut-extra_fhjut; top y13=h-thin; +x23=x13; y23=h; % for the head +bot y14=thin; +pickup quill; +z11-z12=z1-z2; +x12-x2=1/3w; y12=y2; +z3-z4=z13-z14; +x4=x2; +x14=x12; +y3=y13; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % left and right thick diags +draw_istem(11,12,srad); +draw_bow(3,4,bowoff); % left thin diag +draw_bow(13,14,bowoff); % right thin diag +draw_head(23); % its head +ductus:=false; +penlabels(1,2,3,4,11,12,13,14,23,100); +endchar; % end "W" + +cmchar "Rustic letter X"; +beginchar("X", 2u#+caprat*hstretch*(9/10x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +rt x2= w-pcshiftx-jut; bot y2=0; +pickup bowpen; +x3=w-pcshiftx-footjut-extra_fhjut-thin; top y3=h; +x4=pcshiftx+footjut+extra_fhjut+thin; bot y4=0; +x7=x3; y7=h; +x8=x4; y8=0; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw_bow(3,4,bowoff); % thin diagonal +draw_head(7); % its head +draw_foot(8); % its foot +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "X" + +cmchar "Rustic letter Y"; +beginchar("Y", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+jut; top y1=h; +x2=1/2w; bot y2=1/3h; +pickup bowpen; +x3=w-pcshiftx-footjut-extra_fhjut; top y3=h; +lft x4=x2; bot y4=y2; +pickup quill; +x5=x3; y5=h; +x7=x2; y7=y2; +x8=x7; y8=0; +pickup bowpen; +x10=lft x8; x11=rt x8; +pickup stylus; +bot y10= bot y11=thin; +pickup quill; +%% ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % left stroke +draw_bow(3,4,bowoff); % right stroke +draw_head(5); % its head +draw_foot(8); % the foot +pickup stylus; % the leg +filldraw z7--z10--z11--cycle; +ductus:=false; +penlabels(1,2,3,4,5,7,8,9,100); +endchar; % end "Y" + +cmchar "Rustic letter Z"; +beginchar("Z", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x4=pcshiftx; bot y4=0; +rt x6=w-pcshiftx; y6=y4; +x1=x4; top y1=h; +rt x3 =7/8w-pcshiftx; y3=y1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_squiggle(1,3,1/2wiggle,srad); % top stroke +draw_squiggle(4,6,1/2wiggle,srad); % bottom stroke +pickup stylus; +draw z4--z3; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "Z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrc10.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrc10.mf new file mode 100644 index 00000000000..350b7676912 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrc10.mf @@ -0,0 +1,81 @@ +%% +%% This is file `sqrc10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 +%% +%%% SQRC10.MF Square Capitals at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="SQRC"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.3; % 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:=5/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/2u#; % unit for 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:=10; % pen angle + ascratio:=1.0; + asc_height#:=ascratio*x_height#; + descratio:=0; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +\sqrcjut# := 2cap_jutstretch*thin#; +\sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 sqrctitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrc17.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrc17.mf new file mode 100644 index 00000000000..532203686ab --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrc17.mf @@ -0,0 +1,81 @@ +%% +%% This is file `sqrc17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 +%% +%%% SQRC17.MF Square Capitals at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="SQRC"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.3; % 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:=5/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/2u#; % unit for 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:=10; % pen angle + ascratio:=1.0; + asc_height#:=ascratio*x_height#; + descratio:=0; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +\sqrcjut# := 2cap_jutstretch*thin#; +\sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 sqrctitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrc7.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrc7.mf new file mode 100644 index 00000000000..e3aec59e542 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrc7.mf @@ -0,0 +1,81 @@ +%% +%% This is file `sqrc7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 +%% +%%% SQRC7.MF Square Capitals at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="SQRC"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.3; % 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:=5/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/2u#; % unit for 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:=10; % pen angle + ascratio:=1.0; + asc_height#:=ascratio*x_height#; + descratio:=0; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +\sqrcjut# := 2cap_jutstretch*thin#; +\sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 sqrctitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb10.mf new file mode 100644 index 00000000000..3f68b7376fe --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb10.mf @@ -0,0 +1,81 @@ +%% +%% This is file `sqrcb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 +%% +%%% SQRCB10.MF Square Capitals Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="SQRCB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.3; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=5/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/2u#; % unit for 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:=10; % pen angle + ascratio:=1.0; + asc_height#:=ascratio*x_height#; + descratio:=0; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +\sqrcjut# := 2cap_jutstretch*thin#; +\sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 sqrctitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb17.mf new file mode 100644 index 00000000000..6646fe34016 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb17.mf @@ -0,0 +1,81 @@ +%% +%% This is file `sqrcb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 +%% +%%% SQRCB17.MF Square Capitals Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="SQRCB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.3; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.2; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=5/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/2u#; % unit for 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:=10; % pen angle + ascratio:=1.0; + asc_height#:=ascratio*x_height#; + descratio:=0; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +\sqrcjut# := 2cap_jutstretch*thin#; +\sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 sqrctitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb7.mf new file mode 100644 index 00000000000..4636102d2de --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb7.mf @@ -0,0 +1,81 @@ +%% +%% This is file `sqrcb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 +%% +%%% SQRCB7.MF Square Capitals Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="SQRCB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.3; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.2; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=5/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/2u#; % unit for 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:=10; % pen angle + ascratio:=1.0; + asc_height#:=ascratio*x_height#; + descratio:=0; + desc_depth#:=descratio*x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(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#; +\sqrcjut# := 2cap_jutstretch*thin#; +\sqrcjutrat := 2; +srad:=0.8; % was 0.5 +trijut#:=0.75jutstretch*thick#; +clubjutfudge:=1/2; +clubjut#:=jutstretch*clubjutfudge*thick#; + 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 sqrctitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcdig.mf new file mode 100644 index 00000000000..a252ff6bbfb --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcdig.mf @@ -0,0 +1,251 @@ +%% +%% This is file `sqrcdig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 "SQRC digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric n[]; +n1 := sqrcjut; +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +%%ductus:=true; +draw z1--z2; +draw (x1-n1,y1)--(x1,y1); +draw (x2,y2)--(x2+n1,y2); +ductus:=false; +penlabels(1,2,100); +endchar; % end "1" + +cmchar "SQRC digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +numeric n[]; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +x6a = rt x6; y6a = y6; +x6b = x6a; y6b = y6a+n2; +x6c = x6a-n2; y6c=y6a; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..{-pdir}z5; % curve +draw z5--z6; % foot +pickup stylus; +filldraw z6a--z6b{down}..{left}z6c--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "SQRC digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +%%lft x6=pcshiftx+3thin; x7=x6; +x6=1/2[x3,x9]; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl +draw z7{right}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "SQRC digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric n[]; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +pickup quill; +rt x1= rt x2= w-pcshiftx-n1; +top y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % vertical +draw (x2,y2)--(x2+n1,y2); +draw z3--z4; % horizontal +draw z1--z3; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "SQRC digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric n[]; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +x1a = rt x1; y1a = y1c = y1; +x1b = x1a; y1b = y1a-n2; +x1c = x1a-n2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % horizontal +draw z2--z3; % vertical +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +pickup stylus; +%%filldraw z1a--z1b{up}..{left}z1c--cycle; +filldraw z1a--z1c{right}..{down}z1b--cycle; +ductus:=false; +penlabels(1,1a,1b,1c,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "SQRC digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "SQRC digit 7"; +beginchar("7", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric n[]; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +pickup quill; +lft x1=pcshiftx; +rt x2=w-pcshiftx; +top y1=top y2=h; +x1a = lft x1; y1a = y1c = y1; +x1b = x1a; y1b = y1a-n2; +x1c = x1a + n2; +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 z1--z2; % top bar +draw z2..z3..z4; +pickup stylus; +filldraw z1a--z1b{up}..{right}z1c--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "7" + +cmchar "SQRC digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "SQRC digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "SQRC digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcl.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcl.mf new file mode 100644 index 00000000000..3136ef442eb --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcl.mf @@ -0,0 +1,836 @@ +%% +%% This is file `sqrcl.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 "SQRC letter a"; +beginchar("a", 2sb#+hstretch*(14/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% legs +x1 = 6/16w; top y1=h; +rt x3 = w-pcshiftx - n1; bot y3= 0; +pickup thinquill; +lft x2 = pcshiftx; bot y2 = 0; +x21 = x2 + n2; y21 = y2; +y22 = y21+n2; z22 = whatever[z2,z1]; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z3; draw (x1-n1,y1)--(x1,y1); draw (x3,y3)--(x3+n1,y3); %% right leg +pickup thinquill; +draw z1--z2; %% left leg +filldraw z2--z21{left}..{z1-z2}z22--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "a" + +cmchar "SQRC letter b"; +beginchar("b", 2sb#+hstretch*(14/13x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% stem +lft x1 = pcshiftx + n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% bottom bowl +lft x21 = pcshiftx; bot y21 = 0; +z22=z2; +lft x27 = rt x12; y27 = y12; +rt x25 = w-pcshiftx; y25 = 1/2[y22,y27]; +pth1 := z21--z22{right}..z25{up}..{left}z27; +%% top bowl +z32 = z27; z37 = z1; +x38 = x21; y38 = y37; +rt x35 = x25; y35 = 1/2[y32,y37]; +pth2 := z38--z37{right}..z35{down}..{left}z27; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw pth1; draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "b" + +cmchar "SQRC letter c"; +beginchar("c", 2sb#+hstretch*(14/13x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{3pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "c" + +cmchar "SQRC letter d"; +beginchar("d", 2sb#+hstretch*(14/13x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; n1 := rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+sqrcjut; top y1=h; +x2 = x1; bot y2 = 0; +%% bowl +lft x3 = pcshiftx; y3 = y1; +z7 = (x3,y2); +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..{down}z5..{left}z2--z7; +if ductus: + pickup stylus; +fi +draw z1--z2; %% stem +draw pth1; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "SQRC letter e"; +beginchar("e", sb#+hstretch*(9/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 = rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+sqrcjut; top y1 = h; +x2 = x1; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3; +x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5; +x7 = x3; y7 = y2; x8 = x4; y8=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw z3--z4; draw z5--z6; draw z7--z8; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,70,100); +endchar; % end "e" + +cmchar "SQRC letter f"; +beginchar("f", 2sb#+hstretch*(9/13x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem +lft x1=lft x2=pcshiftx+sqrcjut; bot y1=h; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3; +x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw z3--z4; draw z5--z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "f" + +cmchar "SQRC letter g"; +beginchar("g", 2sb#+hstretch*(14/13x_height#), + x_height#, 0); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% bar +rt x52 = w - pcshiftx; y52 = 1/2h; +x51 = x52 - 2n1; y51 = y52; +z512 = 1/2[z51,z52]; +x54=x512; bot y54 = 0; +%% bowl +lft x2 = pcshiftx; y2 = 1/2h; +x4 = x512; y4 = 1/4h; +x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h; +x24 = x512; y24 = 3/4h; +pth1 := z24..z1{left}..z2{down}..z3{right}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +%%draw z4--z512; draw z51--z52; +draw z512--z54; draw (x512-n1,y512)--(x512,y512); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,12,13,24,31,32,33,34,35,36,51,52,512,100); +endchar; % end "g" + +cmchar "SQRC letter h"; +beginchar("h", 2sb#+hstretch*(14/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +x100 = 0; +n1 := sqrcjut; +%% stems +lft x1=lft x2=pcshiftx+sqrcjut; +top y1=h; bot y2=0; +rt x3 = w - pcshiftx - sqrcjut; x4 = x3; y3 = y1; y4 = y2; +%% bar +z12 = 7/16[z1,z2]; z34 = 7/16[z3,z4]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw z12--z34; +%% serifs +draw (x1-n1,y1)--(x1,y1); draw (x2,y2)--(x2+n1,y2); +draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "h" + +cmchar "SQRC letter i"; +beginchar("i", 2sb#+hstretch*(thick#+2sqrcjut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x2 = 1/2w; +top y1=h; bot y2=0; +%% serifs +lft x111 = pcshiftx; rt x112 = w-pcshiftx; +x211 = x111; x212 = x112; +draw z1--z2; +%% serifs +draw (x111,y1)--(x112,y1); +draw (x211,y2)--(x212,y2); +ductus:=false; +penlabels(1,2,100); +endchar; % end "i" + +cmchar "SQRC letter j"; +beginchar("j", 2sb#+hstretch*(2thick#+sqrcjut#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2 = x1; y2 = 1/4h; +%% hook +lft x4 = pcshiftx; bot y4 = 0; +pth1 := z4{pdir}..z2{up}; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2{down}..{-pdir}z4; % stem & hook +draw (x1-n1,y1)--z1; +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "j" + +cmchar "SQRC letter k"; +beginchar("k", 2sb#+hstretch*(16/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% stem +lft x1 = pcshiftx+n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% top arm +x3 = rt x12; y3 = y12; +x5 = 1/2[w - pcshiftx, x1]; y5 = y1; +%%pth1 := z3{pdir}..{up}z5; +pth1 := z3--z5; +%% lower arm +z7 = z3; +rt x9 = w-pcshiftx; bot y9 = 0; +pth2 := z7{-ppdir}..{right}z9; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; draw pth2; +draw (x1-n1,y1)--(x1,y1); +draw (x2-n1,y2)--(x2+n1,y2); +draw (x5,y5)--(x5+n1,y5); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "k" + +cmchar "SQRC letter l"; +beginchar("l", 2sb#+hstretch*(9/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +lft x1=pcshiftx+n1; bot y1=h; +x2=x1; bot y2 =0; +x3 = x2; rt x4 = w-pcshiftx; y3 = y4 = y2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; +draw (x1-n1,y1)--(x1,y1); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "l" + +cmchar "SQRC letter m"; +beginchar("m", 2sb#+hstretch*(19/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% thick stem tops +lft x1=pcshiftx+n1; top y1=h; +rt x3 = w - pcshiftx -2n1; y3 = y1; +%% right stem bottom +rt x4 = w - pcshiftx - n1; bot y4 = 0; +%% the V +x24 = 1/2w; bot y24 = 0; +%% left stem top and bottom +x81 = lft x1; y81 = top y1; +pickup thinquill; +lft x11 = x81; top y11 = y81; +lft x2 = pcshiftx; bot y2 = 0; +x2a = x2+n2; y2a = y2; +y2b = y2+n2; z2b = whatever[z2,z11]; +pickup quill; +%% thin middle top and bottom +x83 = lft x3; y83 = top y3; +x824 = rt x24; y824 = bot y24; +pickup thinquill; +lft x13 = x83; top y13 = y83; +rt x124 = x824; bot y124 = y824; +pickup quill; +pth124 := z1{-ppdir}..z24; +pth34 := z3{down}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%% thick legs +draw pth124; draw pth34; +draw (x1-n1,y1)--(x1,y1); draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4); +%% thin legs +pickup thinquill; +draw z11--z2; +filldraw z2--z2a{left}..{z11-z2}z2b--cycle; +%%%%pickup quarterquill; + draw z13--z124; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "m" + +cmchar "SQRC letter n"; +beginchar("n", 2sb#+hstretch*(14/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% diagonal +lft x1=pcshiftx+n1; top y1=h; +rt x4 = w -pcshiftx-n1; bot y4 = 0; +x101 = lft x1; +x104 = rt x4; +pth1 := z1{-ppdir}..z4; +%% stems +pickup thinquill; +lft x21 = x101; top y21 =h; +x22 = x21; bot y22 = 0; +x22a = x22+n2; y22a=y22; +x22b = x22; y22b=y22+n2; +rt x24 = x104; bot y24 = 0; +x23 = x24; top y23 = h; +x23a = x23-n2; x23b = x23+n1; y23a = y23b = y23; +x23c = x23; y23c = y23-n2; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%% diagonal +draw pth1; draw (x1-n1,y1)--(x1,y1); +%% stems +pickup thinquill; +draw z21--z22; +filldraw z22--z22a{left}..{up}z22b--cycle; +draw z23--z24; +filldraw z23--z23a{right}..{down}z23c{up}..{right}z23b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,23,23a,23b,23c,100); +endchar; % end "n" + +cmchar "SQRC letter o"; +beginchar("o", 2sb#+hstretch*(17/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "o" + +cmchar "SQRC letter p"; +beginchar("p", 2sb#+hstretch*(13/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1:= sqrcjut; +%% stem +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +z12 = 1/2[z1,z2]; +%% bowl +lft x3 = pcshiftx; y3 = y1; +x7 = x12; top y7 = y12; +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..z5{down}..{left}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; +%%draw (x2-n1,y2)--(x2+n1,y2); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "p" + +cmchar "SQRC letter q"; +beginchar("q", 2sb#+hstretch*(17/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% bowl +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +pth1 := z1..z4..z3..z2..cycle; +%% tail +n1 := rt x1 - lft x1; +pth2 := z1..z2..z3..z4; +z5 = directionpoint pdir of pth1; +x7 = x3 + 2n1; top y7 = -n1; +pth3 := z5{-ppdir}..{pdir}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw pth3; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "q" + +cmchar "SQRC letter r"; +beginchar("r", 2sb#+hstretch*(15/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1:= sqrcjut; +n3 := sqrcjutrat*sqrcjut; +n2 := 11/15; %% P/R width ratio +%% stem +pickup thinquill; +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +x2a = x2 + n3; y2a = y2; +x2b = x2; y2b = y2+n3; +z12 = 1/2[z1,z2]; +pickup quill; +%% bowl +lft x3 = pcshiftx; top y3 = h; x13 = x1; y13 = y3; +lft x7 = x12; top y7 = y12; +rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z13{right}..z5{down}..{left}z7; +%% leg +z21 = z7; +rt x23 = w-pcshiftx; bot y23 = 0; +pth2 := z21{-ppdir}..{right}z23; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; +pickup thinquill; +draw z1--z2; +filldraw z2--z2a{left}..{up}z2b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "r" + +cmchar "SQRC letter s"; +beginchar("s", 2sb#+hstretch*(15/18x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x3 = x5 = 1/2w; +top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5]; +lft x2 = pcshiftx; rt x4 = w-pcshiftx; +y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5]; +rt x101 = w-pcshiftx; top y101 = y1; +lft x102 = pcshiftx; bot y102 = y5; +pth1 := z101..z1..z2..z3..z4..z5..z102; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "s" + +cmchar "SQRC letter t"; +beginchar("t", 2sb#+hstretch*(10/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% bar +lft x1 = pcshiftx; rt x2=w-pcshiftx; +top y1 = top y2 = h; +pth1 := z1{pdir}..{pdir}z2; +%% stem +z3 = 1/2[z1,z2]; +x4 = x3; bot y4 = 0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % bar +draw z3--z4; % stem +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "t" + +cmchar "SQRC letter u"; +beginchar("u", 2sb#+hstretch*(15/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% left stem +lft x1 = pcshiftx + n1; top y1 = h; +lft x13=pcshiftx; y13=1/3h; +rt x3=w-pcshiftx-n1; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +pth1 := z1..z13{down}..z14{right}..{pdir}z33; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw (x1-n1,y1)--(x1,y1); +draw z3--z4; +draw (x3-n1,y3)--(x3,y3); +draw (x4,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "u" + +cmchar "SQRC letter v"; +beginchar("v", 2sb#+hstretch*(13/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% stem tops +lft x1 = pcshiftx + n1; top y1 = h; +pickup thinquill; +rt x3 = w - pcshiftx; top y3 = h; +x3a = x3-n2; y3a=y3; +x3b = x3; y3b = y3-n2; +pickup quill; +%% bottom +x13 = 10/16[x1,x3]; bot y13 = 0; +x83 = rt x13; y83 = top y13; +pth1 := z1{down}..z13; +pth2 := z3{down}..z83; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw (x1-n1,y1)--(x1,y1); + +pickup thinquill; +draw pth2; +filldraw z3--z3a{right}..{down}z3b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "v" + +cmchar "SQRC letter w"; +beginchar("w", 2sb#+hstretch*(22/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% thick leg tops +lft x1 = pcshiftx + n1; top y1 = h; +x3 = 1/2w; y3 = y1; +%% thin leg top +pickup thinquill; +rt x5 = w-pcshiftx; top y5 = h; +x5a = x5-n2; y5a = y5; +x5b = x5; y5b = y5-n2; +pickup quill; +%% V bottoms +x13 = 1/2[x1,x3]; bot y13 = 0; +x35 = 1/2[x3,x5]; bot y35 = 0; +pth113 := z1{down}..z13; +pth335 := z3{down}..z35; +x83 = x3; y83 = top y3; +x813 = rt x13; y813 = bot y13; +x835 = rt x35; y835 = bot y35; +%% thin legs +pickup thinquill; +rt x113 = x813; bot y113 = y813; +rt x135 = x835; bot y135 = y835; +%%ductus:=true; +if ductus: + pickup stylus; +fi +pickup quill; +draw pth113; draw pth335; draw (x1-n1,y1)--(x1,y1); +pickup thinquill; +draw z113..{up}z3; draw z135..{up}z5; +filldraw z5--z5a{right}..{down}z5b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "w" + +cmchar "SQRC letter x"; +beginchar("x", 2sb#+hstretch*(17/13x_height#), + x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% diag top left to bottom right +lft x1=pcshiftx+n1; top y1 = h; +rt x2 = w - pcshiftx - n1; bot y2 = 0; +%% diag top right to bottom left +pickup thinquill; +rt x3 = w - pcshiftx - n1; top y3 = h; +lft x4 = pcshiftx; bot y4 = 0; +x3a = x3-n2; x3b = x3+n1; y3a = y3b = y3; +y3c = y3-n2; z3c = whatever[z3,z4]; +x4a = x4+n2; y4a = y4; +y4b = y4+n2; z4b = whatever[z4,z3]; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw (x1-n1,y1)--(x1,y1); +draw (x2,y2)--(x2+n1,y2); +pickup thinquill; +draw z3--z4; +filldraw z3--z3a{right}..{z4-z3}z3c{z3-z4}..{right}z3b--cycle; +filldraw z4--z4a{left}..{z3-z4}z4b--cycle; +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 "SQRC letter y"; +beginchar("y", 2sb#+hstretch*(13/13x_height#), + x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% upright +x5 = 1/2w; y5 = 1/2h; +x6 = x5; bot y6 = 0; +%% left stem top +lft x1 = pcshiftx + n1; top y1 = h; +%% right stem +x85 = rt x5; y85 = top y5; +pickup thinquill; +rt x3=w-pcshiftx; top y3 = h; +x4=x85; y4 = y85; +x3a=x3-n2; y3a = y3; +y3b = y3-n2; z3b = whatever[z3,z4]; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem +draw z1--z5; draw (x1-n1,y1)--(x1,y1); % left arm +pickup thinquill; +draw z3--z4; +filldraw z3--z3a{right}..{z4-z3}z3b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "SQRC letter z"; +beginchar("z", 2sb#+hstretch*(13/13x_height#), + x_height#, 0); +adjust_fit(0,0); +numeric n[]; +n1 := sqrcjutrat*sqrcjut; +path pth[]; +pcshiftx := sb; +pickup quill; +%% top bar ends +lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h; +x101 = lft x1; y101 = top y1; +%% bottom bar ends +lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0; +x104 = rt x4; y104 = bot y4; +pickup stylus; +lft x11 = x101; top y11 = y101; +x12 = x11; y12 = y11-n1; +x13 = x11+n1; y13 = y11; +rt x14 = x104; bot y14 = y104; +x15 = x14; y15 = y14 + n1; +x16 = x14 - n1; y16 = y14; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; +draw z2--z3; +pickup stylus; +filldraw z11--z12{up}..{right}z13--cycle; +filldraw z14--z15{down}..{left}z16--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,10o,10i,14,14,16,20o,20i,100); +endchar; % end "z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrclig.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrclig.mf new file mode 100644 index 00000000000..8bafa316954 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrclig.mf @@ -0,0 +1,142 @@ +%% +%% This is file `sqrclig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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"; + + +cmchar "Closing quotes"; +beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_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#),7/8asc_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*(8/13x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup threequarterquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +z31 = z21 shifted (-jut*pdir); +draw z21--z22; +draw z31--z21; +draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "-" + + +cmchar "En dash"; +beginchar(oct"173",sb#+hstretch*(10/13x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup threequarterquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +z31 = z21 shifted (-jut*pdir); +draw z21--z22; +%%draw_roundserif(21,22,srad); +draw z31--z21; +draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "--" + + +cmchar "Em dash"; +beginchar(oct"174",sb#+hstretch*(20/13x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=sb/2; +numeric alpha; alpha:=w/8; +pickup threequarterquill; +lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h; +z31 = z21 shifted (-jut*pdir); +draw z21--z22; +%%draw_roundserif(21,22,srad); +draw z31--z21; +draw_flatserif(22,21,srad); +penlabels(1,2); +endchar; % end of "---" + + +cmchar "SQRC ampersand"; +beginchar("&", sb#+caprat*hstretch*(18/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 = sqrcjut; +%%%% The E +%% stem +lft x1 = pcshiftx+n1; top y1 = h; +x2 = x1; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = 9/20w-pcshiftx; y4=y3; +x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5; +x7 = x3; y7 = y2; x8 = x4; y8=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw z3--z4; draw z5--z6; draw z7--z8; +ductus:=false; +%%%%%%%%% The T + +%% bar +lft x11 = rt x4 + 2pcshiftx; rt x12=w-pcshiftx; +top y11 = top y12 = h; +pth1 := z11{pdir}..{pdir}z12; +%% stem +z13 = 1/2[z11,z12]; +x14 = x13; bot y14 = 0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % bar +draw z13--z14; % stem +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,17,70,100); +%%% end T +endchar; % end "&" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcpunct.mf new file mode 100644 index 00000000000..5c0faf14534 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcpunct.mf @@ -0,0 +1,121 @@ +%% +%% This is file `sqrcpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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#), + 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*(13/13x_height#), + 11/10x_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); +x4 = x5; y4=y5+3/2dot_size; +lft x1 = pcshiftx; y1 = 3/4h; +x2 = 1/2w; top y2 = h; +rt x3 = w-pcshiftx; y3 = 2/3h; + +%%ductus:= true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{down}..z4{down}; +draw_pdot(5, dot_size); +penlabels(1,2,3,4,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=2/3h; y2=1/2dot_size; +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=2/3h; 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#),7/8asc_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#),7/8asc_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/sqrctitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrctitle.mf new file mode 100644 index 00000000000..f9563229ad7 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrctitle.mf @@ -0,0 +1,710 @@ +%% +%% This is file `sqrctitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 sqrcaps_font_setup= % contains special stuff for sqrcaps 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); + 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(sqrcjut); + 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; + + pickup pencircle xscaled 3/8thick yscaled thin rotated pangle; %% 1/4 too small + thinquill := 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 sqrcaps_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_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{down}..{left}z$uv--z$vu{right}..{up}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{down}..{right}z$uv--z$vu{left}..{up}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; +sqrcaps_font_setup; + + +input sqrcl; % lower case +input sqrcu; % capitals +input sqrcpunct; % punctuation +input sqrclig; % the several dashes +input sqrcdig; % arabic digits + + +font_slant slant; font_x_height x_height#; +if monospace: + font_normal_space vstretch*9u#; % no stretching or shrinking + font_quad vstretch*18u#; + font_extra_space vstretch*9u#; +else: + font_normal_space vstretch*6u#+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/sqrcu.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcu.mf new file mode 100644 index 00000000000..d74aaa40e0f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcu.mf @@ -0,0 +1,836 @@ +%% +%% This is file `sqrcu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% sqrcaps.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 "SQRC letter A"; +beginchar("A", 2sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pair pr[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% legs +x1 = 6/16w; top y1=h; +rt x3 = w-pcshiftx - n1; bot y3= 0; +pickup thinquill; +lft x2 = pcshiftx; bot y2 = 0; +x21 = x2 + n2; y21 = y2; +y22 = y21+n2; z22 = whatever[z2,z1]; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z3; draw (x1-n1,y1)--(x1,y1); draw (x3,y3)--(x3+n1,y3); %% right leg +pickup thinquill; +draw z1--z2; %% left leg +filldraw z2--z21{left}..{z1-z2}z22--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100); +endchar; % end "A" + +cmchar "SQRC letter B"; +beginchar("B", 2sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% stem +lft x1 = pcshiftx + n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% bottom bowl +lft x21 = pcshiftx; bot y21 = 0; +z22=z2; +lft x27 = rt x12; y27 = y12; +rt x25 = w-pcshiftx; y25 = 1/2[y22,y27]; +pth1 := z21--z22{right}..z25{up}..{left}z27; +%% top bowl +z32 = z27; z37 = z1; +x38 = x21; y38 = y37; +rt x35 = x25; y35 = 1/2[y32,y37]; +pth2 := z38--z37{right}..z35{down}..{left}z27; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw pth1; draw pth2; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "B" + +cmchar "SQRC letter C"; +beginchar("C", 2sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +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; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z24..z1{left}..z2{down}..z3{right}..z4{3pdir}; +ductus:=false; +penlabels(1,2,3,4,5,6,14,16,17,18,100); +endchar; % end "C" + +cmchar "SQRC letter D"; +beginchar("D", 2sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; n1 := rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+sqrcjut; top y1=h; +x2 = x1; bot y2 = 0; +%% bowl +lft x3 = pcshiftx; y3 = y1; +z7 = (x3,y2); +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..{down}z5..{left}z2--z7; +if ductus: + pickup stylus; +fi +draw z1--z2; %% stem +draw pth1; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "SQRC letter E"; +beginchar("E", sb#+caprat*hstretch*(9/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 = rt x100 - lft x100; +%% stem +lft x1 = pcshiftx+sqrcjut; top y1 = h; +x2 = x1; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3; +x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5; +x7 = x3; y7 = y2; x8 = x4; y8=y7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; % stem +draw z3--z4; draw z5--z6; draw z7--z8; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,17,70,100); +endchar; % end "E" + +cmchar "SQRC letter F"; +beginchar("F", 2sb#+caprat*hstretch*(9/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +%% stem +lft x1=lft x2=pcshiftx+sqrcjut; bot y1=h; bot y2=0; +%% bars +lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3; +x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw z3--z4; draw z5--z6; +ductus:=false; +penlabels(1,2,3,4,5,6,7,14,15,16,100); +endchar; % end "F" + +cmchar "SQRC letter G"; +beginchar("G", 2sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +pair vec[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% bar +rt x52 = w - pcshiftx; y52 = 1/2h; +x51 = x52 - 2n1; y51 = y52; +z512 = 1/2[z51,z52]; +x54=x512; bot y54 = 0; +%% bowl +lft x2 = pcshiftx; y2 = 1/2h; +x4 = x512; y4 = 1/4h; +x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h; +x24 = x512; y24 = 3/4h; +pth1 := z24..z1{left}..z2{down}..z3{right}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +%%draw z4--z512; draw z51--z52; +draw z512--z54; draw (x512-n1,y512)--(x512,y512); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,12,13,24,31,32,33,34,35,36,51,52,512,100); +endchar; % end "G" + +cmchar "SQRC letter H"; +beginchar("H", 2sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +numeric n[]; +x100 = 0; +n1 := sqrcjut; +%% stems +lft x1=lft x2=pcshiftx+sqrcjut; +top y1=h; bot y2=0; +rt x3 = w - pcshiftx - sqrcjut; x4 = x3; y3 = y1; y4 = y2; +%% bar +z12 = 7/16[z1,z2]; z34 = 7/16[z3,z4]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; draw z12--z34; +%% serifs +draw (x1-n1,y1)--(x1,y1); draw (x2,y2)--(x2+n1,y2); +draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "H" + +cmchar "SQRC letter I"; +beginchar("I", 2sb#+caprat*hstretch*(thick#+2sqrcjut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x2 = 1/2w; +top y1=h; bot y2=0; +%% serifs +lft x111 = pcshiftx; rt x112 = w-pcshiftx; +x211 = x111; x212 = x112; +draw z1--z2; +%% serifs +draw (x111,y1)--(x112,y1); +draw (x211,y2)--(x212,y2); +ductus:=false; +penlabels(1,2,100); +endchar; % end "I" + +cmchar "SQRC letter J"; +beginchar("J", 2sb#+caprat*hstretch*(2thick#+sqrcjut#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% stem +rt x1 = w-pcshiftx; top y1 = h; +x2 = x1; y2 = 1/4h; +%% hook +lft x4 = pcshiftx; bot y4 = 0; +pth1 := z4{pdir}..z2{up}; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2{down}..{-pdir}z4; % stem & hook +draw (x1-n1,y1)--z1; +ductus:=false; +penlabels(1,2,3,100); +endchar; % end "J" + +cmchar "SQRC letter K"; +beginchar("K", 2sb#+caprat*hstretch*(16/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% stem +lft x1 = pcshiftx+n1; top y1 = h; +x2 = x1; bot y2 = 0; +z12 = 1/2[z1,z2]; +%% top arm +x3 = rt x12; y3 = y12; +x5 = 1/2[w - pcshiftx, x1]; y5 = y1; +%%pth1 := z3{pdir}..{up}z5; +pth1 := z3--z5; +%% lower arm +z7 = z3; +rt x9 = w-pcshiftx; bot y9 = 0; +pth2 := z7{-ppdir}..{right}z9; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; draw pth2; +draw (x1-n1,y1)--(x1,y1); +draw (x2-n1,y2)--(x2+n1,y2); +draw (x5,y5)--(x5+n1,y5); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,100); +endchar; % end "K" + +cmchar "SQRC letter L"; +beginchar("L", 2sb#+caprat*hstretch*(9/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +lft x1=pcshiftx+n1; bot y1=h; +x2=x1; bot y2 =0; +x3 = x2; rt x4 = w-pcshiftx; y3 = y4 = y2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; +draw (x1-n1,y1)--(x1,y1); +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "L" + +cmchar "SQRC letter M"; +beginchar("M", 2sb#+caprat*hstretch*(19/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% thick stem tops +lft x1=pcshiftx+n1; top y1=h; +rt x3 = w - pcshiftx -2n1; y3 = y1; +%% right stem bottom +rt x4 = w - pcshiftx - n1; bot y4 = 0; +%% the V +x24 = 1/2w; bot y24 = 0; +%% left stem top and bottom +x81 = lft x1; y81 = top y1; +pickup thinquill; +lft x11 = x81; top y11 = y81; +lft x2 = pcshiftx; bot y2 = 0; +x2a = x2+n2; y2a = y2; +y2b = y2+n2; z2b = whatever[z2,z11]; +pickup quill; +%% thin middle top and bottom +x83 = lft x3; y83 = top y3; +x824 = rt x24; y824 = bot y24; +pickup thinquill; +lft x13 = x83; top y13 = y83; +rt x124 = x824; bot y124 = y824; +pickup quill; +pth124 := z1{-ppdir}..z24; +pth34 := z3{down}..z4; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%% thick legs +draw pth124; draw pth34; +draw (x1-n1,y1)--(x1,y1); draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4); +%% thin legs +pickup thinquill; +draw z11--z2; +filldraw z2--z2a{left}..{z11-z2}z2b--cycle; +%%%%pickup quarterquill; + draw z13--z124; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100); +endchar; % end "M" + +cmchar "SQRC letter N"; +beginchar("N", 2sb#+caprat*hstretch*(14/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% diagonal +lft x1=pcshiftx+n1; top y1=h; +rt x4 = w -pcshiftx-n1; bot y4 = 0; +x101 = lft x1; +x104 = rt x4; +pth1 := z1{-ppdir}..z4; +%% stems +pickup thinquill; +lft x21 = x101; top y21 =h; +x22 = x21; bot y22 = 0; +x22a = x22+n2; y22a=y22; +x22b = x22; y22b=y22+n2; +rt x24 = x104; bot y24 = 0; +x23 = x24; top y23 = h; +x23a = x23-n2; x23b = x23+n1; y23a = y23b = y23; +x23c = x23; y23c = y23-n2; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%% diagonal +draw pth1; draw (x1-n1,y1)--(x1,y1); +%% stems +pickup thinquill; +draw z21--z22; +filldraw z22--z22a{left}..{up}z22b--cycle; +draw z23--z24; +filldraw z23--z23a{right}..{down}z23c{up}..{right}z23b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,13,14,23,23a,23b,23c,100); +endchar; % end "N" + +cmchar "SQRC letter O"; +beginchar("O", 2sb#+caprat*hstretch*(17/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +penlabels(1,2,3,4,5,100); +endchar; % end "O" + +cmchar "SQRC letter P"; +beginchar("P", 2sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1:= sqrcjut; +%% stem +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +z12 = 1/2[z1,z2]; +%% bowl +lft x3 = pcshiftx; y3 = y1; +x7 = x12; top y7 = y12; +rt x5 = w-pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z1{right}..z5{down}..{left}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw pth1; +%%draw (x2-n1,y2)--(x2+n1,y2); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "P" + +cmchar "SQRC letter Q"; +beginchar("Q", 2sb#+caprat*hstretch*(17/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% bowl +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +pth1 := z1..z4..z3..z2..cycle; +%% tail +n1 := rt x1 - lft x1; +pth2 := z1..z2..z3..z4; +z5 = directionpoint pdir of pth1; +x7 = x3 + 2n1; top y7 = -n1; +pth3 := z5{-ppdir}..{pdir}z7; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw pth3; +ductus:=false; +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "Q" + +cmchar "SQRC letter R"; +beginchar("R", 2sb#+caprat*hstretch*(15/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1:= sqrcjut; +n3 := sqrcjutrat*sqrcjut; +n2 := 11/15; %% P/R width ratio +%% stem +pickup thinquill; +lft x1=lft x2=pcshiftx+n1; +top y1=h; bot y2=0; +x2a = x2 + n3; y2a = y2; +x2b = x2; y2b = y2+n3; +z12 = 1/2[z1,z2]; +pickup quill; +%% bowl +lft x3 = pcshiftx; top y3 = h; x13 = x1; y13 = y3; +lft x7 = x12; top y7 = y12; +rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7]; +pth1 := z3--z13{right}..z5{down}..{left}z7; +%% leg +z21 = z7; +rt x23 = w-pcshiftx; bot y23 = 0; +pth2 := z21{-ppdir}..{right}z23; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; draw pth2; +pickup thinquill; +draw z1--z2; +filldraw z2--z2a{left}..{up}z2b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,100); +endchar; % end "R" + +cmchar "SQRC letter S"; +beginchar("S", 2sb#+caprat*hstretch*(15/18x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +path pth[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := rt x100 - lft x100; +x1 = x3 = x5 = 1/2w; +top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5]; +lft x2 = pcshiftx; rt x4 = w-pcshiftx; +y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5]; +rt x101 = w-pcshiftx; top y101 = y1; +lft x102 = pcshiftx; bot y102 = y5; +pth1 := z101..z1..z2..z3..z4..z5..z102; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +ductus:=false; +penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100); +endchar; % end "S" + +cmchar "SQRC letter T"; +beginchar("T", 2sb#+caprat*hstretch*(10/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +%% bar +lft x1 = pcshiftx; rt x2=w-pcshiftx; +top y1 = top y2 = h; +pth1 := z1{pdir}..{pdir}z2; +%% stem +z3 = 1/2[z1,z2]; +x4 = x3; bot y4 = 0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; % bar +draw z3--z4; % stem +ductus:=false; +penlabels(1,2,3,4,5,6,11,12,100); +endchar; % end "T" + +cmchar "SQRC letter U"; +beginchar("U", 2sb#+caprat*hstretch*(15/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +%% left stem +lft x1 = pcshiftx + n1; top y1 = h; +lft x13=pcshiftx; y13=1/3h; +rt x3=w-pcshiftx-n1; y3=y1; +x4=x3; bot y4=0; +z33=1/4[z4,z3]; % start of bowl +x14=1/3[x1,x3]; bot y14=0; +pth1 := z1..z13{down}..z14{right}..{pdir}z33; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw (x1-n1,y1)--(x1,y1); +draw z3--z4; +draw (x3-n1,y3)--(x3,y3); +draw (x4,y4)--(x4+n1,y4); +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100); +endchar; % end "U" + +cmchar "SQRC letter V"; +beginchar("V", 2sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% stem tops +lft x1 = pcshiftx + n1; top y1 = h; +pickup thinquill; +rt x3 = w - pcshiftx; top y3 = h; +x3a = x3-n2; y3a=y3; +x3b = x3; y3b = y3-n2; +pickup quill; +%% bottom +x13 = 10/16[x1,x3]; bot y13 = 0; +x83 = rt x13; y83 = top y13; +pth1 := z1{down}..z13; +pth2 := z3{down}..z83; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw pth1; +draw (x1-n1,y1)--(x1,y1); + +pickup thinquill; +draw pth2; +filldraw z3--z3a{right}..{down}z3b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,14,23,26,100); +endchar; % end "V" + +cmchar "SQRC letter W"; +beginchar("W", 2sb#+caprat*hstretch*(22/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +numeric n[]; +path pth[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% thick leg tops +lft x1 = pcshiftx + n1; top y1 = h; +x3 = 1/2w; y3 = y1; +%% thin leg top +pickup thinquill; +rt x5 = w-pcshiftx; top y5 = h; +x5a = x5-n2; y5a = y5; +x5b = x5; y5b = y5-n2; +pickup quill; +%% V bottoms +x13 = 1/2[x1,x3]; bot y13 = 0; +x35 = 1/2[x3,x5]; bot y35 = 0; +pth113 := z1{down}..z13; +pth335 := z3{down}..z35; +x83 = x3; y83 = top y3; +x813 = rt x13; y813 = bot y13; +x835 = rt x35; y835 = bot y35; +%% thin legs +pickup thinquill; +rt x113 = x813; bot y113 = y813; +rt x135 = x835; bot y135 = y835; +%%ductus:=true; +if ductus: + pickup stylus; +fi +pickup quill; +draw pth113; draw pth335; draw (x1-n1,y1)--(x1,y1); +pickup thinquill; +draw z113..{up}z3; draw z135..{up}z5; +filldraw z5--z5a{right}..{down}z5b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100); +endchar; % end "W" + +cmchar "SQRC letter X"; +beginchar("X", 2sb#+caprat*hstretch*(17/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +path pth[]; +numeric n[]; +pcshiftx := sb; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% diag top left to bottom right +lft x1=pcshiftx+n1; top y1 = h; +rt x2 = w - pcshiftx - n1; bot y2 = 0; +%% diag top right to bottom left +pickup thinquill; +rt x3 = w - pcshiftx - n1; top y3 = h; +lft x4 = pcshiftx; bot y4 = 0; +x3a = x3-n2; x3b = x3+n1; y3a = y3b = y3; +y3c = y3-n2; z3c = whatever[z3,z4]; +x4a = x4+n2; y4a = y4; +y4b = y4+n2; z4b = whatever[z4,z3]; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; +draw (x1-n1,y1)--(x1,y1); +draw (x2,y2)--(x2+n1,y2); +pickup thinquill; +draw z3--z4; +filldraw z3--z3a{right}..{z4-z3}z3c{z3-z4}..{right}z3b--cycle; +filldraw z4--z4a{left}..{z3-z4}z4b--cycle; +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 "SQRC letter Y"; +beginchar("Y", 2sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := sb; +path pth[]; +numeric n[]; +pickup quill; +x100 = 0; +n1 := sqrcjut; +n2 := sqrcjutrat*sqrcjut; +%% upright +x5 = 1/2w; y5 = 1/2h; +x6 = x5; bot y6 = 0; +%% left stem top +lft x1 = pcshiftx + n1; top y1 = h; +%% right stem +x85 = rt x5; y85 = top y5; +pickup thinquill; +rt x3=w-pcshiftx; top y3 = h; +x4=x85; y4 = y85; +x3a=x3-n2; y3a = y3; +y3b = y3-n2; z3b = whatever[z3,z4]; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem +draw z1--z5; draw (x1-n1,y1)--(x1,y1); % left arm +pickup thinquill; +draw z3--z4; +filldraw z3--z3a{right}..{z4-z3}z3b--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "SQRC letter Z"; +beginchar("Z", 2sb#+caprat*hstretch*(13/13x_height#), + caprat*x_height#, 0); +adjust_fit(0,0); +numeric n[]; +n1 := sqrcjutrat*sqrcjut; +path pth[]; +pcshiftx := sb; +pickup quill; +%% top bar ends +lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h; +x101 = lft x1; y101 = top y1; +%% bottom bar ends +lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0; +x104 = rt x4; y104 = bot y4; +pickup stylus; +lft x11 = x101; top y11 = y101; +x12 = x11; y12 = y11-n1; +x13 = x11+n1; y13 = y11; +rt x14 = x104; bot y14 = y104; +x15 = x14; y15 = y14 + n1; +x16 = x14 - n1; y16 = y14; +pickup quill; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1--z2; draw z3--z4; +draw z2--z3; +pickup stylus; +filldraw z11--z12{up}..{right}z13--cycle; +filldraw z14--z15{down}..{left}z16--cycle; +ductus:=false; +penlabels(1,2,3,4,5,6,10o,10i,14,14,16,20o,20i,100); +endchar; % end "Z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgoth10.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgoth10.mf new file mode 100644 index 00000000000..c2fe4a19f96 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/tgoth10.mf @@ -0,0 +1,90 @@ +%% +%% This is file `tgoth10.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/tgoth17.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgoth17.mf new file mode 100644 index 00000000000..8b5311f8b55 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/tgoth17.mf @@ -0,0 +1,90 @@ +%% +%% This is file `tgoth17.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/tgoth7.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgoth7.mf new file mode 100644 index 00000000000..50635efb9c8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/tgoth7.mf @@ -0,0 +1,90 @@ +%% +%% This is file `tgoth7.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/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/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" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncl10.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncl10.mf new file mode 100644 index 00000000000..b94914b9b68 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/uncl10.mf @@ -0,0 +1,71 @@ +%% +%% This is file `uncl10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 +%% +%%% UNCL10.MF Computer Uncial at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="UNCL"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.25; % 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.37; + + 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 + + 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:=30; % pen angle + asc_height#:=2x_height#; + desc_depth#:=x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(9/10x_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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate uncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncl17.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncl17.mf new file mode 100644 index 00000000000..8d89d9a9b02 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/uncl17.mf @@ -0,0 +1,71 @@ +%% +%% This is file `uncl17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 +%% +%%% UNCL17.MF Computer Uncial at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="UNCL"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.25; % 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.37; + + 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 + + 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:=30; % pen angle + asc_height#:=2x_height#; + desc_depth#:=x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(9/10x_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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate uncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncl7.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncl7.mf new file mode 100644 index 00000000000..10a530997d6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/uncl7.mf @@ -0,0 +1,71 @@ +%% +%% This is file `uncl7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 +%% +%%% UNCL7.MF Computer Uncial at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="UNCL"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.25; % 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.37; + + 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 + + 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:=30; % pen angle + asc_height#:=2x_height#; + desc_depth#:=x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(9/10x_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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate uncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclb10.mf new file mode 100644 index 00000000000..7e649a3d36d --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/unclb10.mf @@ -0,0 +1,71 @@ +%% +%% This is file `unclb10.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 +%% +%%% UNCLB10.MF Computer Uncial Bold at 10 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="UNCLB"; font_size 10pt#; + + jutstretch:=1.152; + stemstretch:=1.31; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.2; + cap_stemstretch:=1.31; + bfudge:=1.15; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=155/36pt#; + vstretch:=1.37; + + 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 + + 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:=30; % pen angle + asc_height#:=2x_height#; + desc_depth#:=x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(9/10x_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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=8/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate uncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclb17.mf new file mode 100644 index 00000000000..587a897e650 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/unclb17.mf @@ -0,0 +1,71 @@ +%% +%% This is file `unclb17.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 +%% +%%% UNCLB17.MF Computer Uncial Bold at 17 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="UNCLB"; font_size 17.28pt#; + + jutstretch:=1.0; + stemstretch:=1.0; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.0; + cap_stemstretch:=1.0; + bfudge:=1.15; + szfudge:=1.0; + hstretch:=szfudge*bfudge; + carol_height#:=268/36pt#; + vstretch:=1.37; + + 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 + + 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:=30; % pen angle + asc_height#:=2x_height#; + desc_depth#:=x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(9/10x_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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=10/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate uncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclb7.mf new file mode 100644 index 00000000000..f6761b16a4a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/unclb7.mf @@ -0,0 +1,71 @@ +%% +%% This is file `unclb7.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 +%% +%%% UNCLB7.MF Computer Uncial Bold at 7 point design size. +if unknown cmbase: input cmbase fi + +font_identifier:="UNCLB"; font_size 7pt#; + + jutstretch:=1.19; + stemstretch:=1.50; + caprat:=1.25; % ratio of capital height to minuscule height + cap_jutstretch:=1.3; + cap_stemstretch:=1.45; + bfudge:=1.15; + szfudge:=1.18; + hstretch:=szfudge*bfudge; + carol_height#:=108.5/36pt#; + vstretch:=1.37; + + 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 + + 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:=30; % pen angle + asc_height#:=2x_height#; + desc_depth#:=x_height#; + fig_height#:=(0.5[1,caprat])*x_height#; + fig_width#:=hstretch*(9/10x_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; +jut#:=jutstretch*jutfudge*thick#; +srad:=0.5; + o#:=5/36pt#; + +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +monospace:=false; % should all characters have the same width? + +dot_size#:=5thin#; % size of dots +comma_width#:=2.5dot_size#; + +generate uncltitle %% switch to the driver file + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncldig.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncldig.mf new file mode 100644 index 00000000000..37029bebd60 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/uncldig.mf @@ -0,0 +1,218 @@ +%% +%% This is file `uncldig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 "Uncial digit 1"; +beginchar("1", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +y1=h; bot y2=0; +%%ductus:=true; +draw_tstem(1,2,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "1" + +cmchar "Uncial digit 2"; +beginchar("2", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx+o; top y1=h-2thin; +x2=1/2w; top y2= h+o; +rt x3=w-pcshiftx-o; y3=3/4h; +lft x5=pcshiftx; bot y5=0; +rt x6=w-pcshiftx; y6=y5; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(5,6,thin); % foot +draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "2" + +cmchar "Uncial digit 3"; +beginchar("3", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x3=pcshiftx; x10=x3; +rt x5=w-pcshiftx; x8=x5-3thin; +x4=0.5[x3,x5]; +x9=0.5[x10,x8]; +lft x6=pcshiftx+3thin; x7=x6; +bot y3=thin; top y10=h-2thin; +y6=0.5[y3,y10]; y7=y6; +bot y4=-thin; top y9=h+thin; +y5=0.5[y3,y6]; +y8=11/12[y7,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl +draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl +ductus:=false; +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "3" + +cmchar "Uncial digit 4"; +beginchar("4", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +x1=x2=w-pcshiftx-jut; +y1=h; bot y2=0; +lft x3=pcshiftx; y3=0.33h; +rt x4=w-pcshiftx; y4=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); % main stem +draw_wave(3,4,thin); % crossbar +draw z3wl--z1; % diagonal +ductus:=false; +penlabels(1,2,3,4,100); +endchar; % end "4" + +cmchar "Uncial digit 5"; +beginchar("5", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h; +lft x2=pcshiftx; y2=y1; +x3=x2; y3=0.5h+thin; +x4=0.5[x1,x3]; y4=0.5[y3,y5]; +rt x5=w-pcshiftx; y5=0.3h; +x6=w/2; bot y6=0; +lft x7=pcshiftx; bot y7=2thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_wave(2,1,thin); % top squiggle +draw z3{pdir}..z5{down}..z6{left}..z7; % curve +draw z2wl--z3; % vertical +ductus:=false; +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "5" + +cmchar "Uncial digit 6"; +beginchar("6", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +rt x1=w-pcshiftx; top y1=h-2thin; +x2=1/2w; top y2= h; +lft x3=pcshiftx; y3=1/2h; +x4=x2; bot y4=0; +rt x5=w-pcshiftx; y5=1/4h; +lft x6=rt x3; bot y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "6" + +cmchar "Uncial 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 "Uncial digit 8"; +beginchar("8", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +numeric alpha; alpha:=1; +pickup quill; +lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h; +x2=x4=w/2; top y2=h+o; bot y4=-o; +x5=x2; y5=h/2+2o; +lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z5..z11..z4..z13..z5..cycle; +ductus:=false; +penlabels(1,2,3,4,5,11,13,100); +endchar; % end "8" + +cmchar "Uncial digit 9"; +beginchar("9", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +pickup quill; +lft x1=pcshiftx; bot y1=2thin; +x2=1/2w; bot y2= 0; +rt x3=w-pcshiftx; y3=1/2h; +x4=x2; top y4=h; +lft x5=pcshiftx; y5=3/4h; +rt x6=lft x3; top y6=y3; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6; +ductus:=false; +penlabels(1,2,3,4,5,6,100); +endchar; % end "9" + +cmchar "Uncial digit 0"; +beginchar("0", 2u#+fig_width#, fig_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "0" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncll.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncll.mf new file mode 100644 index 00000000000..28299c68a09 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/uncll.mf @@ -0,0 +1,699 @@ +%% +%% This is file `uncll.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 "Uncial letter a"; +beginchar("a", 2u#+hstretch*(x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx+sqxside/3; rt x2=lft x1+2/3sqxside; +y1=h; y2=0; +z3=3/4[z2,z1]; +z5=3/16[z2,z1]; +y4=1/10[y5,y3]; +lft x4=pcshiftx; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % the stem +draw z3{-pdir}..z4{down}..{pdir}z5; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "a" + +cmchar "Uncial letter b"; +beginchar("b", 2u#+hstretch*(x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut/2; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pair uncial; uncial=(qhor,0.5qvert); +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; y2=h/4; +x3=pcshiftx+sqxside/2; bot y3=0; +rt x4=pcshiftx+sqxside; y4=0.3h; +lft x5=x1; bot y5=h/2; +z5'=z5 + thick*uncial; +x6=x4-thick; y6=0.85h; +x7=x1; y7=0.9h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % the stem +draw z2{down}..z3{right}..z4{up}..{-uncial}z5'--z5; % bottom bowl +draw z5--z5'{uncial}..z6{up}..{-pdir}z7; % top bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,5',6,7,8,100); +endchar; % end "b" + +cmchar "Uncial letter c"; +beginchar("c", u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u/2; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; % end "c" + +cmchar "Uncial letter d"; +beginchar("d", 2u#+hstretch*(x_height#), 5/4x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=4/5h; sqxside:=hstretch*sqyside; +y100 = side/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=sqyside/2; +x2=x4=w/2; top y2=sqyside; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +rt x0=pcshiftx+0.5sqxside; top y0=sqyside; +lft x7=pcshiftx+0.5sqxside; +bot y7=sqyside; +lft x8=pcshiftx; y8=y7+thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z0{-pdir}..z1{down}..z4{right}..z3{up}..z7..z8; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "d" + +cmchar "Uncial letter e"; +beginchar("e", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +x7=x1; y7=y1; +%%x8=x7+side+0.5thick; y8=y7; +x8=w-pcshiftx; y8=y7; +x10=x7; y10=y7+3thin; +numeric alpha; alpha:=0.5; % dishing +x9=0.5[x8,x10]; y9=(0.5alpha)[y8,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +pickup stylus; +filldraw z7--z8..z9..z10--cycle; % the bar +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "e" + +cmchar "Uncial letter f"; +beginchar("f", 2u#+hstretch*(jut#+x_height#), x_height#, 2/3x_height#); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; bot y2=-d/2; +x3=x4=x1; y3=h-thick; y4=0; +numeric rise, fall, fjut; +rise:=thick; fall:=0; fjut:=2/3sqxside; +%%ductus:=true; +draw_jstem(1,2,srad,d/2,d/2); +draw_flick(3,rise,fall,fjut); +draw_flick(4,rise,fall,fjut); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "f" + +cmchar "Uncial letter g"; +beginchar("g", u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u/2; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +lft x7=x5-thick; bot y7=y5-3thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +draw z5{down}..{-pdir}z7; % the stem +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "g" + +cmchar "Uncial letter h"; +beginchar("h", 2u#+hstretch*(jut#+thick#+x_height#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h/2; % asc_height is 2x_height !!! +sqxside:=hstretch*sqyside; +y100 = sqyside/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; bot y2=0; +x99=w/2; y99=sqyside/2; +y3=y5=y99; +lft x3= pcshiftx; +%%rt x5=x99+w-pcshiftx; +x5 = x99 + (x99-x3); +x4=x6=x99; top y4=sqyside; bot y6 =0; +path pcirc; pcirc=z6..z5..z4..z3..cycle; +x1'=x2'=x1+0.5thick; y1'=h; y2'=0; +z7' = (z1'--z2') intersectionpoint (subpath(2,3) of pcirc); +x7=x1; y7=y7'; +z99'=z99 - 500ppdir; +z8' = (z99--z99') intersectionpoint subpath(0,1) of pcirc; +x8=x8'; bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; + draw z1'--z2'; draw z99--z99'; draw pcirc; +fi +draw_istem(1,2,srad); +draw z7{pdir}..z4{right}..z5{down}..{-pdir}z8; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100); +endchar; % end "h" + +cmchar "Uncial letter i"; +beginchar("i", 2u#+hstretch*(thick#+2jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +%%ductus:=true; +draw_istem(1,2,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "i" + +cmchar "Uncial letter j"; +beginchar("j", 2u#+hstretch*(thick#+2jut#), x_height#, desc_depth#); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h; sqxside:=sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +%%ductus:=true; +draw_jstem(1,2,srad,2/3sqxside,desc_depth); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "j" + +cmchar "Uncial letter k"; +beginchar("k", 2u#+hstretch*(jut#+4/3x_height#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h/2; % asc_height = 2x_height !!! +sqxside:=hstretch*sqyside; +y100 = side/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; bot y2=0; +numeric rise,fall,fjut; +x3=x1; y3=2/3side; +rise:=1/3sqyside; fall:=-rise/2; fjut:=sqxside; %% fjut:=2/3side; +x4=x3+0.25thick; y4=y3+0.5thick; +x5=x3+side; y5=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); +draw_flick(3,rise,fall,fjut); +draw_tstem(4,5,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "k" + +cmchar "Uncial letter l"; +beginchar("l", 2u#+hstretch*(x_height#+jut#), asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h/2; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; y2=h/4; +x3=0.5[x1,x4]; bot y3=0; +rt x4=w-u; y4=0.1h; +%%ductus:=true; +draw_tlserif(1,2,srad); % the stem +draw z2{down}..z3{right}..{pdir}z4; % the bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "l" + +cmchar "Uncial letter m"; +beginchar("m", 2u#+hstretch*(9/6x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=1/3sqxside; bot y1=0; +lft x2= pcshiftx; y2=h/2; +lft x4=pcshiftx+2/3sqxside; y4=2/3h; +x3=0.5[x2,x4]; top y3=h; +x5=x4; y5=y1; +z6=z4; +numeric rise,fall,mjut; +rise=h-y6; fall=y6; mjut=w-pcshiftx-x6; +%%ductus:=true; +draw z1..z2{up}..z3{right}..{down}z4; % left half +draw_tstem(4,5,srad); % middle stem +draw_hbowl(6,rise,fall,mjut); % right half +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; % end "m" + +cmchar "Uncial letter n"; +beginchar("n", 2u#+hstretch*(jut#+x_height#), x_height#, 0.5x_height#); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=h; +x2=x1; y2=y1-thin; +numeric jjut, jdepth; +jjut=2jut; jdepth=y2+d-thin; +rt x4=pcshiftx+sqxside; y4=y1; +x3=x4; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_jcurve(1,srad,jjut,jdepth); % left stem +draw_istem(4,3,srad); % right stem +draw z1--z3; % diagonal +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "n" + +cmchar "Uncial letter o"; +beginchar("o", u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u/2; +sqyside:=h; +sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "o" + +cmchar "Uncial letter p"; +beginchar("p", 2u#+hstretch*(x_height#+jut#), x_height#, x_height#); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=h; +numeric jjut, jdepth; +jjut=1/3sqxside-thin; jdepth=h+d-thin; +x2=x1; y2=3/4h; %% y2=2/3side; +rt x4=w-u; +lft x5=x1+thick; y5=0; +y4=0.4[y3,y5]; +top y3=h; x3=0.5[x2,x4]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_jcurve(1,srad,jjut,jdepth); % stem +%%draw z2..z3{right}..z4{down}..{-pdir}z5; % bowl +draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "p" + +cmchar "Uncial letter q"; +beginchar("q", 2u#+hstretch*(x_height#), x_height#, x_height#); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +rt x1=w-pcshiftx; top y1=h; +numeric jjut, jdepth; +jjut=2jut; jdepth=h+d-thin; +x2=x1-jjut; y2=y1-jdepth; +numeric rad; rad := w/2; +x0=w/2; y0=h/2; +lft x4=pcshiftx; y4=y0; +x3=x5=x0; top y3=h; bot y5=0; +x7=x0+rad; y7=y0; +path p[]; +p1=z1{down}..{-pdir}z2; % stem +p2=z4{down}..z5{right}..{up}z7; +z6'= p1 intersectionpoint p2; +rt x6=x6'; y6=y6'; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}...{-pdir}z2; % right stem +draw z1--z3..z4{down}..{right}z5..z6; % bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,6',7,100); +endchar; % end "q" + +cmchar "Uncial letter r"; +beginchar("r", 2u#+hstretch*(4/3x_height#), x_height#, 2/3x_height#); +adjust_fit(0,0); +sqyside:=h; sqxside:=hstretch*sqyside; +pcshiftx := u+jut; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=h; +numeric jjut, jdepth; +jjut=1/5sqxside; jdepth=h+d-thin; +x2=x1; y2=3/4h; +rt x4=pcshiftx+3/4sqxside; +lft x5=x1; bot y5=1/6h; +y4=0.4[y3,y5]; +top y3=h; x3=0.5[x2,x4]; +rt x7=w-u; y7=-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_jcurve(1,srad,jjut,jdepth); % stem +draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl +draw z5{-ppdir}..{right}z7; % leg +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "r" + +cmchar "Uncial letter s"; +beginchar("s", 2u#+hstretch*(5/6x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +rt x1=w-pcshiftx; top y1=h-thin; +x2=w/2; top y2=h; +lft x3=pcshiftx; y3=0.75h; +x4=w/2; y4=h/2; +rt x5=w-pcshiftx; y5=0.25h; +x6=w/2; bot y6=0; +lft x7= pcshiftx; bot y7 = thin; +path p[]; +p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7; +pair vec[]; +vec1= direction 0 of p1; +vec2= direction (length p1) of p1; +z11=z1 shifted vec1; +z17=z7 shifted -vec2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw_serif(1,11,srad); +%%draw_serif(7,17,srad); +%%draw z1a..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7a; +draw p1; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,11,17,100); +endchar; % end "s" + +cmchar "Uncial letter t"; +beginchar("t", u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u/2; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +lft x3=pcshiftx; top y3=h-thin; +x4=x2; top y4=h; +rt x5=w-pcshiftx; top y5=h+thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw z3{pdir}..z4{right}..{pdir}z5; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "t" + +cmchar "Uncial letter u"; +beginchar("u", 2u#+hstretch*(x_height#+jut#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x6=pcshiftx+thick; +top y6=h; +lft x7=pcshiftx; y7=h/2; +x8=pcshiftx+0.5sqxside; bot y8=0; +rt x1=w-pcshiftx-jut; y1=h; +x2=x1; bot y2=0; +x5=x1+sqxside-thick; y5=y6; +path p[]; +p1=z1--z2; +p2=z6..z7{down}..z8{right}..z5; +z9= p2 intersectionpoint p1; +pair vec[]; +vec2 = direction 0 of p2; +z16=z6 shifted vec2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..z9; +draw_istem(1,2,srad); % right stem +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "u" + +cmchar "Uncial letter v"; +beginchar("v", 2u#+hstretch*(x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+jut; top y1=h; +lft x2=midx; y2=h/2; +rt x4=midx+sqxside; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +path p[]; +p1=z1..z2{down}..z3{right}..z4{up}..z5; +pair vec[]; +vec1 = direction 0 of p1; +z11=z1 shifted vec1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(1,11,srad); % right half +draw z1a..z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,11,100); +endchar; % end "v" + +cmchar "Uncial letter w"; +beginchar("w", 2u#+hstretch*(5/3x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +numeric midx; midx:= pcshiftx+2/3sqxside; +lft x1=midx+jut; top y1=h; +lft x2=midx; y2=h/2; +rt x4=midx+sqxside; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +path p[]; +p1=z1..z2{down}..z3{right}..z4{up}..z5; +lft x6=pcshiftx+thick; +y6=y1; +lft x7=pcshiftx; y7=y2; +x8=pcshiftx+0.5sqxside; y8=y3; +p2=z6..z7{down}..z8{right}..(z5 shifted -pdir); +z9= p2 intersectionpoint p1; +pair vec[]; +vec1 = direction 0 of p1; +vec2 = direction 0 of p2; +z11=z1 shifted vec1; +z16=z6 shifted vec2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(1,11,srad); % right half +draw z1a..z2{down}..z3{right}..z4{up}..z5; +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..z9; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "w" + +cmchar "Uncial letter x"; +beginchar("x", u#+hstretch*(5/3x_height#), x_height#, 1/3x_height#); +adjust_fit(0,0); +pcshiftx := 0; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx+1/2sqxside; rt x2=w-jut; +y1=h; y2=0; +lft x3=pcshiftx; bot y3=-d; +z4=z3 shifted (jut*right); +z5=z4 shifted (jut*pdir); +rt x8=w-pcshiftx; top y8=h; +z7=z8 shifted (jut*left); +z6=z7 shifted (-jut*pdir); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw z3---z4..z5---z6..z7---z8; % thin diagonal +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "x" + +cmchar "Uncial letter y"; +beginchar("y", 2u#+hstretch*(4/3x_height#), x_height#, 2/3x_height#); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=3/4h; +lft x3=w/2; bot y3=-d; +x2=0.8[x1,x3]; y2=0.5[y1,y3]; +rt x4=w-pcshiftx; y4=y1; +x7=pcshiftx; y7=-d; +path p[]; +p1=z1..z2..z3; +z6= (z7--z4) intersectionpoint p1; +x5=0.4[x6,x4]; y5=0.5[y6,y4]; +x8=x6; y8=h; +if ductus: + pickup stylus; +fi +draw z1..z2..z3; % left stroke +draw z4{left}..z6; % right stroke +draw_pdot(8,dot_size); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "y" + +cmchar "Uncial letter z"; +beginchar("z", 2u#+hstretch*(4/3x_height#), x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x4=pcshiftx; bot y4=0; +rt x6=w-pcshiftx; y6=y4; +x5=0.5[x4,x6]; y5=y4+thin; +x1=x4; top y1=h; +x3=pcshiftx+sqxside; y3=y1; +x2=0.5[x1,x3]; top y2=h-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3; % top stroke +draw z4..z5..z6; % bottom stroke +pickup stylus; +draw z4--z3; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; % end "z" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncllig.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncllig.mf new file mode 100644 index 00000000000..8ae19d7182f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/uncllig.mf @@ -0,0 +1,82 @@ +%% +%% This is file `uncllig.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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"; + + +cmchar "Uncial closing quotes"; +beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Uncial opening quotes"; +beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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 "Uncial hyphen"; +beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +draw z1--z2; % bar +penlabels(1,2); +endchar; % end of "-" + + +cmchar "Uncial en dash"; +beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +draw z1--z2; % bar +penlabels(1,2); +endchar; % end of "--" + + +cmchar "Uncial em dash"; +beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u/2; +pickup quill; +lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2; +draw z1--z2; % bar +penlabels(1,2); +endchar; % end of "---" + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclpunct.mf new file mode 100644 index 00000000000..959d50f0878 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/unclpunct.mf @@ -0,0 +1,78 @@ +%% +%% This is file `unclpunct.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 "Uncial Comma"; +beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "," + + +cmchar "Uncial Period"; +beginchar(".",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=w/2; y1=h/2; +draw_pdot(1,dot_size); +penlabels(1); +endchar; % end of "." + + +cmchar "Uncial Colon"; +beginchar(":",2u#+hstretch*(dot_size#),x_height#,0); +pcshiftx:=u; +x1=x2=w/2; y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pdot(2,dot_size); +penlabels(1,2); +endchar; % end ":" + + +cmchar "Uncial Semicolon"; +beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h; +draw_pdot(1,dot_size); +draw_pcomma(2,dot_size,comma_width); +penlabels(1,2); +endchar; % end of ";" + + +cmchar "Uncial Apostrophe"; +beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h; +draw_pcomma(1,dot_size,comma_width); +penlabels(1); +endchar; % end of "'" + + +cmchar "Uncial Reverse apostrophe"; +beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0); +adjust_fit(0,0); +pcshiftx:=u; +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/uncltitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncltitle.mf new file mode 100644 index 00000000000..88d8bc1fdd8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/uncltitle.mf @@ -0,0 +1,236 @@ +%% +%% This is file `uncltitle.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 uncial_font_setup= % contains special stuff for uncial 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,cap_jut); + define_pixels(fig_width); + define_whole_pixels(letter_fit); + 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); + let adjust_fit = normal_adjust_fit; + pickup pencircle scaled thin; + stylus:=savepen; + pickup pencircle xscaled thick yscaled thin rotated pangle; + quill:=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 uncial_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_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_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 +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_jstem(suffix $, $$)(expr fr, jjut, jdepth)= + draw_serif($, $$, fr); % the serif + lft x$$a=x$$-jjut; bot y$$a=y$$-jdepth; + draw z$a--z$${down}..{-pdir}z$$a; % straight stem and curved ending + labels($$a); +enddef; % end of draw_jstem + + +def draw_jcurve(suffix $)(expr fr, jjut, jdepth)= + z$'= z$ shifted down; + draw_serif($, $', fr); % the serif + lft x$d=x$-jjut; bot y$d=y$-jdepth; + draw z$a{down}...{-pdir}z$d; % curved downwards stem + labels($d); +enddef; % end of draw_jcurve + + +def draw_flick(suffix $)(expr rise, fall, fjut)= + rt x$b = x$+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_hbowl(suffix $)(expr rise, fall, fjut)= + numeric rad; rad=0.5(rise+fall); + x$c=x$+fjut-rad; y$c=y$+rise-rad; + lft x$d=x$c-rad; rt x$f=x$c+rad; y$d=y$f=y$c; + x$e=x$g=x$c; top y$e=y$c+rad; bot y$g=y$c-rad; + z$k = z$c shifted (-rad*ppdir); + path p[]; + p1 = z$e{right}..z$f{down}..{left}z$g; + z$i = (z$c--z$k) intersectionpoint p1; + x$j=x$i; bot y$j = y$c-rad; + draw z$..z$e{right}..z$f{down}..{-pdir}z$j; + labels($c,$d,$e,$f,$g,$i,$j,$k); +enddef; % end of draw_hbowl + + +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_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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--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-ar; + z$u = z$v shifted (sz*right); + pickup stylus; + filldraw z$s--z$t--z$u--z$v--cycle; + labels($s,$t,$u,$v); +enddef; % end of draw_plq + + +font_coding_scheme:="ASCII minuscules and punctuation"; +mode_setup; +uncial_font_setup; + + +input uncll; % minuscules (lower case) +input unclu; % majuscules (capitals) +input unclpunct; % punctuation +input uncllig; % the several dashes +input uncldig; % arabic digits +%%%input unclp; % ampersand and ?mark + + +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning +%% ligtable "P": "T": "Y": "A" kern kk#; +%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi, +%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#; +%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#, +%% "V" kern k#, "Y" kern k#; +%% ligtable "A": if serifs: "R": fi +%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#, +%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#; +%%ligtable "I": "I" kern -k#; % Richard III +fi + +bye. + diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclu.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclu.mf new file mode 100644 index 00000000000..f92af839544 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/bookhands/unclu.mf @@ -0,0 +1,705 @@ +%% +%% This is file `unclu.mf', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% uncial.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 "Uncial letter A"; +beginchar("A", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx+sqxside/3; rt x2=lft x1+2/3sqxside; +y1=h; y2=0; +z3=3/4[z2,z1]; +z5=3/16[z2,z1]; +y4=1/10[y5,y3]; +lft x4=pcshiftx; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % the stem +draw z3{-pdir}..z4{down}..{pdir}z5; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "A" + +cmchar "Uncial letter B"; +beginchar("B", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pair uncial; uncial=(qhor,0.5qvert); +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; y2=h/4; +x3=pcshiftx+sqxside/2; bot y3=0; +rt x4=pcshiftx+sqxside; y4=0.3h; +lft x5=x1; bot y5=h/2; +z5'=z5 + thick*uncial; +x6=x4-thick; y6=0.85h; +x7=x1; y7=0.9h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tlserif(1,2,srad); % the stem +draw z2{down}..z3{right}..z4{up}..{-uncial}z5'--z5; % bottom bowl +draw z5--z5'{uncial}..z6{up}..{-pdir}z7; % top bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,5',6,7,8,100); +endchar; % end "B" + +cmchar "Uncial letter C"; +beginchar("C", u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u/2; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; % end "C" + +cmchar "Uncial letter D"; +beginchar("D", 2u#+caprat*hstretch*(x_height#), caprat*(5/4x_height#), 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=4/5h; sqxside:=hstretch*sqyside; +y100 = side/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=sqyside/2; +x2=x4=w/2; top y2=sqyside; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +rt x0=pcshiftx+0.5sqxside; top y0=sqyside; +lft x7=pcshiftx+0.5sqxside; +bot y7=sqyside; +lft x8=pcshiftx; y8=y7+thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z0{-pdir}..z1{down}..z4{right}..z3{up}..z7..z8; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,100); +endchar; % end "D" + +cmchar "Uncial letter E"; +beginchar("E", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +x7=x1; y7=y1; +%%x8=x7+side+0.5thick; y8=y7; +x8=w-pcshiftx; y8=y7; +x10=x7; y10=y7+3thin; +numeric alpha; alpha:=0.5; % dishing +x9=0.5[x8,x10]; y9=(0.5alpha)[y8,y10]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +pickup stylus; +filldraw z7--z8..z9..z10--cycle; % the bar +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "E" + +cmchar "Uncial letter F"; +beginchar("F", 2u#+caprat*hstretch*(jut#+x_height#), caprat*x_height#, + caprat*(2/3x_height#)); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; bot y2=-d/2; +x3=x4=x1; y3=h-thick; y4=0; +numeric rise, fall, fjut; +rise:=thick; fall:=0; fjut:=2/3sqxside; +%%ductus:=true; +draw_jstem(1,2,srad,d/2,d/2); +draw_flick(3,rise,fall,fjut); +draw_flick(4,rise,fall,fjut); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "F" + +cmchar "Uncial letter G"; +beginchar("G", u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u/2; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2; +x2=x4=w/2; top y2=h; bot y4=0; +x5=x6=x3; +y5=0.2h; +y6=0.75h; +lft x7=x5-thick; bot y7=y5-3thick; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl +draw z5{down}..{-pdir}z7; % the stem +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "G" + +cmchar "Uncial letter H"; +beginchar("H", 2u#+caprat*hstretch*(jut#+thick#+x_height#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h/2; % asc_height is 2x_height !!! +sqxside:=hstretch*sqyside; +y100 = sqyside/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; bot y2=0; +x99=w/2; y99=sqyside/2; +y3=y5=y99; +lft x3= pcshiftx; +%%rt x5=x99+w-pcshiftx; +x5 = x99 + (x99-x3); +x4=x6=x99; top y4=sqyside; bot y6 =0; +path pcirc; pcirc=z6..z5..z4..z3..cycle; +x1'=x2'=x1+0.5thick; y1'=h; y2'=0; +z7' = (z1'--z2') intersectionpoint (subpath(2,3) of pcirc); +x7=x1; y7=y7'; +z99'=z99 - 500ppdir; +z8' = (z99--z99') intersectionpoint subpath(0,1) of pcirc; +x8=x8'; bot y8=0; +%%ductus:=true; +if ductus: + pickup stylus; + draw z1'--z2'; draw z99--z99'; draw pcirc; +fi +draw_istem(1,2,srad); +draw z7{pdir}..z4{right}..z5{down}..{-pdir}z8; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100); +endchar; % end "H" + +cmchar "Uncial letter I"; +beginchar("I", 2u#+hstretch*(thick#+2jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +%%ductus:=true; +draw_istem(1,2,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "I" + +cmchar "Uncial letter J"; +beginchar("J", 2u#+caprat*hstretch*(thick#+2jut#), caprat*x_height#, + caprat*desc_depth#); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h; sqxside:=sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +%%ductus:=true; +draw_jstem(1,2,srad,2/3sqxside,desc_depth); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "J" + +cmchar "Uncial letter K"; +beginchar("K", 2u#+caprat*hstretch*(jut#+4/3x_height#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h/2; % asc_height = 2x_height !!! +sqxside:=hstretch*sqyside; +y100 = side/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; bot y2=0; +numeric rise,fall,fjut; +x3=x1; y3=2/3side; +rise:=1/3sqyside; fall:=-rise/2; fjut:=sqxside; %% fjut:=2/3side; +x4=x3+0.25thick; y4=y3+0.5thick; +x5=x3+side; y5=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); +draw_flick(3,rise,fall,fjut); +draw_tstem(4,5,srad); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "K" + +cmchar "Uncial letter L"; +beginchar("L", 2u#+caprat*hstretch*(x_height#+jut#), caprat*asc_height#, 0); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h/2; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=lft x2=pcshiftx; +top y1=h; y2=h/4; +x3=0.5[x1,x4]; bot y3=0; +rt x4=w-u; +y4=0.1h; +%%ductus:=true; +draw_tlserif(1,2,srad); % the stem +draw z2{down}..z3{right}..{pdir}z4; % the bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,100); +endchar; % end "L" + +cmchar "Uncial letter M"; +beginchar("M", 2u#+caprat*hstretch*(9/6x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=1/3sqxside; bot y1=0; +lft x2= pcshiftx; y2=h/2; +lft x4=pcshiftx+2/3sqxside; y4=2/3h; +x3=0.5[x2,x4]; top y3=h; +x5=x4; y5=y1; +z6=z4; +numeric rise,fall,mjut; +rise=h-y6; fall=y6; mjut=w-pcshiftx-x6; +%%ductus:=true; +draw z1..z2{up}..z3{right}..{down}z4; % left half +draw_tstem(4,5,srad); % middle stem +draw_hbowl(6,rise,fall,mjut); % right half +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; % end "M" + +cmchar "Uncial letter N"; +beginchar("N", 2u#+caprat*hstretch*(jut#+x_height#), caprat*x_height#, + caprat*(0.5x_height#)); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=h; +x2=x1; y2=y1-thin; +numeric jjut, jdepth; +jjut=2jut; jdepth=y2+d-thin; +rt x4=pcshiftx+sqxside; y4=y1; +x3=x4; bot y3=0; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_jcurve(1,srad,jjut,jdepth); % left stem +draw_istem(4,3,srad); % right stem +draw z1--z3; % diagonal +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "N" + +cmchar "Uncial letter O"; +beginchar("O", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2; +x2=x4=w/2; top y2=h+o; bot y4=-o; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3..z4..cycle; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); +endchar; % end "O" + +cmchar "Uncial letter P"; +beginchar("P", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, + caprat*x_height#); +adjust_fit(0,0); +pcshiftx := u+jut; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=h; +numeric jjut, jdepth; +jjut=1/3sqxside-thin; jdepth=h+d-thin; +x2=x1; y2=3/4h; %% y2=2/3side; +rt x4=w-u; +lft x5=x1+thick; y5=0; +y4=0.4[y3,y5]; +top y3=h; x3=0.5[x2,x4]; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_jcurve(1,srad,jjut,jdepth); % stem +%%draw z2..z3{right}..z4{down}..{-pdir}z5; % bowl +draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "P" + +cmchar "Uncial letter Q"; +beginchar("Q", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, caprat*x_height#); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +rt x1=w-pcshiftx; top y1=h; +numeric jjut, jdepth; +jjut=2jut; jdepth=h+d-thin; +x2=x1-jjut; y2=y1-jdepth; +numeric rad; rad := w/2; +x0=w/2; y0=h/2; +lft x4=pcshiftx; y4=y0; +x3=x5=x0; top y3=h; bot y5=0; +x7=x0+rad; y7=y0; +path p[]; +p1=z1{down}..{-pdir}z2; % stem +p2=z4{down}..z5{right}..{up}z7; +z6'= p1 intersectionpoint p2; +rt x6=x6'; y6=y6'; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1{down}...{-pdir}z2; % right stem +draw z1--z3..z4{down}..{right}z5..z6; % bowl +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,6',7,100); +endchar; % end "Q" + +cmchar "Uncial letter R"; +beginchar("R", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, + caprat*(2/3x_height#)); +adjust_fit(0,0); +sqyside:=h; sqxside:=hstretch*sqyside; +pcshiftx := u+jut; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=h; +numeric jjut, jdepth; +jjut=1/5sqxside; jdepth=h+d-thin; +x2=x1; y2=3/4h; +rt x4=pcshiftx+3/4sqxside; +lft x5=x1; bot y5=1/6h; +y4=0.4[y3,y5]; +top y3=h; x3=0.5[x2,x4]; +rt x7=w-u; y7=-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_jcurve(1,srad,jjut,jdepth); % stem +draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl +draw z5{-ppdir}..{right}z7; % leg +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,100); +endchar; % end "R" + +cmchar "Uncial letter S"; +beginchar("S", 2u#+caprat*hstretch*(5/6x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +rt x1=w-pcshiftx; top y1=h-thin; +x2=w/2; top y2=h; +lft x3=pcshiftx; y3=0.75h; +x4=w/2; y4=h/2; +rt x5=w-pcshiftx; y5=0.25h; +x6=w/2; bot y6=0; +lft x7= pcshiftx; bot y7 = thin; +path p[]; +p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7; +pair vec[]; +vec1= direction 0 of p1; +vec2= direction (length p1) of p1; +z11=z1 shifted vec1; +z17=z7 shifted -vec2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +%%draw_serif(1,11,srad); +%%draw_serif(7,17,srad); +%%draw z1a..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7a; +draw p1; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,11,17,100); +endchar; % end "S" + +cmchar "Uncial letter T"; +beginchar("T", u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u/2; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +x1=x2=w/2; +top y1=h; bot y2=0; +lft x3=pcshiftx; top y3=h-thin; +x4=x2; top y4=h; +rt x5=w-pcshiftx; top y5=h+thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_tstem(1,2,srad); +draw z3{pdir}..z4{right}..{pdir}z5; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; % end "T" + +cmchar "Uncial letter U"; +beginchar("U", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x6=pcshiftx+thick; +top y6=h; +lft x7=pcshiftx; y7=h/2; +x8=pcshiftx+0.5sqxside; bot y8=0; +rt x1=w-pcshiftx-jut; y1=h; +x2=x1; bot y2=0; +x5=x1+sqxside-thick; y5=y6; +path p[]; +p1=z1--z2; +p2=z6..z7{down}..z8{right}..z5; +z9= p2 intersectionpoint p1; +pair vec[]; +vec2 = direction 0 of p2; +z16=z6 shifted vec2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..z9; +draw_istem(1,2,srad); % right stem +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "U" + +cmchar "Uncial letter V"; +beginchar("V", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +numeric midx; midx:= pcshiftx; +lft x1=midx+jut; top y1=h; +lft x2=midx; y2=h/2; +rt x4=midx+sqxside; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +path p[]; +p1=z1..z2{down}..z3{right}..z4{up}..z5; +pair vec[]; +vec1 = direction 0 of p1; +z11=z1 shifted vec1; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(1,11,srad); % right half +draw z1a..z2{down}..z3{right}..z4{up}..z5; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,11,100); +endchar; % end "V" + +cmchar "Uncial letter W"; +beginchar("W", 2u#+caprat*hstretch*(5/3x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +numeric midx; midx:= pcshiftx+2/3sqxside; +lft x1=midx+jut; top y1=h; +lft x2=midx; y2=h/2; +rt x4=midx+sqxside; y4=y2; +x3=0.5[x2,x4]; bot y3=0; +x5=x4-thick; y5=y1; +path p[]; +p1=z1..z2{down}..z3{right}..z4{up}..z5; +lft x6=pcshiftx+thick; +y6=y1; +lft x7=pcshiftx; y7=y2; +x8=pcshiftx+0.5sqxside; y8=y3; +p2=z6..z7{down}..z8{right}..(z5 shifted -pdir); +z9= p2 intersectionpoint p1; +pair vec[]; +vec1 = direction 0 of p1; +vec2 = direction 0 of p2; +z11=z1 shifted vec1; +z16=z6 shifted vec2; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_serif(1,11,srad); % right half +draw z1a..z2{down}..z3{right}..z4{up}..z5; +draw_serif(6,16,srad); % left half +draw z6a..z7{down}..z8{right}..z9; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,11,16,100); +endchar; % end "W" + +cmchar "Uncial letter X"; +beginchar("X", u#+caprat*hstretch*(5/3x_height#), caprat*x_height#, + caprat*(1/3x_height#)); +adjust_fit(0,0); +pcshiftx := 0; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx+1/2sqxside; rt x2=w-jut; +y1=h; y2=0; +lft x3=pcshiftx; bot y3=-d; +z4=z3 shifted (jut*right); +z5=z4 shifted (jut*pdir); +rt x8=w-pcshiftx; top y8=h; +z7=z8 shifted (jut*left); +z6=z7 shifted (-jut*pdir); +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw_istem(1,2,srad); % thick diagonal +draw z3---z4..z5---z6..z7---z8; % thin diagonal +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); +endchar; % end "X" + +cmchar "Uncial letter Y"; +beginchar("Y", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, 2/3caprat*x_height#); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x1=pcshiftx; top y1=3/4h; +lft x3=w/2; bot y3=-d; +x2=0.8[x1,x3]; y2=0.5[y1,y3]; +rt x4=w-pcshiftx; y4=y1; +x7=pcshiftx; y7=-d; +path p[]; +p1=z1..z2..z3; +z6= (z7--z4) intersectionpoint p1; +x5=0.4[x6,x4]; y5=0.5[y6,y4]; +x8=x6; y8=h; +if ductus: + pickup stylus; +fi +draw z1..z2..z3; % left stroke +draw z4{left}..z6; % right stroke +draw_pdot(8,dot_size); +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,100); +endchar; % end "Y" + +cmchar "Uncial letter Z"; +beginchar("Z", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +sqyside:=h; sqxside:=hstretch*sqyside; +y100 = h/2; x100 = pcshiftx+y100; % square center +pickup quill; +lft x4=pcshiftx; bot y4=0; +rt x6=w-pcshiftx; y6=y4; +x5=0.5[x4,x6]; y5=y4+thin; +x1=x4; top y1=h; +x3=pcshiftx+sqxside; y3=y1; +x2=0.5[x1,x3]; top y2=h-thin; +%%ductus:=true; +if ductus: + pickup stylus; +fi +draw z1..z2..z3; % top stroke +draw z4..z5..z6; % bottom stroke +pickup stylus; +draw z4--z3; +ductus:=false; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; % end "Z" + |