summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-01-13 22:01:42 +0000
committerKarl Berry <karl@freefriends.org>2007-01-13 22:01:42 +0000
commite4dfb2bc2c91e780528dc801d1bad994e14abaeb (patch)
treef80d54039d441af17078fd89f90dc8f21b900f7b /Master/texmf-dist/fonts/source
parentd13366745921431c4e5321d8b1e85169f0e928f6 (diff)
lamstex fonts nonfree
git-svn-id: svn://tug.org/texlive/trunk@3434 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source')
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams1.mf675
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams2.mf623
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams3.mf902
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams4.mf614
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams5.mf533
5 files changed, 0 insertions, 3347 deletions
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams1.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams1.mf
deleted file mode 100644
index 8dd700d5e4c..00000000000
--- a/Master/texmf-dist/fonts/source/public/lamstex/lams1.mf
+++ /dev/null
@@ -1,675 +0,0 @@
-% LAMS1.MF VERSION 1.0
-% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
-% ALL RIGHTS RESERVED
-
-if unknown cmbase: input cmbase fi
-% replace the macro adjust_fit by version used in earlier cmbase files to
-% avoid division by zero error caused by newer versions of cmbase
-% Patch by Ingo Hadan (Jan 97)
-
-def normal_adjust_fit(expr left_adjustment,right_adjustment) =
- l:=-hround(left_adjustment*hppp)-letter_fit;
- interim xoffset:=-l;
- charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
- r:=l+hround(charwd*hppp)-shrink_fit;
- w:=r-hround(right_adjustment*hppp)-letter_fit;
- enddef;
-
-def mono_adjust_fit(expr left_adjustment,right_adjustment) =
- numeric expansion_factor;
- mono_charwd#=2letter_fit#
- +expansion_factor*(charwd+left_adjustment+right_adjustment);
- forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
- $:=$.#*expansion_factor*hppp; endfor
- l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
- interim xoffset:=-l;
- r:=l+mono_charwd-shrink_fit;
- w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
- charwd:=mono_charwd#; charic:=mono_charic#;
- enddef;
-
-
-font_identifier:="LAMS"; font_size 10pt#;
-
-u#:=20/36pt#; % unit width
-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
-
-body_height#:=270/36pt#; % height of tallest characters
-asc_height#:=360/36pt#; % height of lowercase ascenders
-cap_height#:=246/36pt#; % height of caps
-fig_height#:=232/36pt#; % height of numerals
-x_height#:=155/36pt#; % height of lowercase without ascenders
-math_axis#:=90/36pt#; % axis of symmetry for math symbols
-bar_height#:=87/36pt#; % height of crossbar in lowercase e
-comma_depth#:=70/36pt#; % depth of comma below baseline
-desc_depth#:=0/36pt#; % depth of lowercase descenders
-
-crisp#:=8/36pt#; % diameter of serif corners
-tiny#:=8/36pt#; % diameter of rounded corners
-fine#:=7/36pt#; % diameter of sharply rounded corners
-thin_join#:=7/36pt#; % width of extrafine details
-hair#:=9/36pt#; % lowercase hairline breadth
-stem#:=24/36pt#; % lowercase stem breadth
-curve#:=29/36pt#; % lowercase curve breadth
-ess#:=27/36pt#; % breadth in middle of lowercase s
-flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
-dot_size#:=38/36pt#; % diameter of dots
-cap_hair#:=11/36pt#; % uppercase hairline breadth
-cap_stem#:=30/36pt#; % uppercase stem breadth
-cap_curve#:=35/36pt#; % uppercase curve breadth
-cap_ess#:=33/36pt#; % breadth in middle of uppercase s
-rule_thickness#:=.4pt#; % thickness of lines in math symbols
-
-dish#:=1/36pt#; % amount erased at top or bottom of serifs
-bracket#:=20/36pt#; % vertical distance from serif base to tangent
-jut#:=30/36pt#; % protrusion of lowercase serifs
-cap_jut#:=37/36pt#; % protrusion of uppercase serifs
-beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
-beak#:=70/36pt#; % vertical protrusion of beak serifs
-vair#:=8/36pt#; % vertical diameter of hairlines
-notch_cut#:=10pt#; % maximum breadth above or below notches
-bar#:=11/36pt#; % lowercase bar thickness
-slab#:=11/36pt#; % serif and arm thickness
-cap_bar#:=11/36pt#; % uppercase bar thickness
-cap_band#:=11/36pt#; % uppercase thickness above/below lobes
-cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
-serif_drop#:=4/36pt#; % vertical drop of sloped serifs
-stem_corr#:=1/36pt#; % for small refinements of stem breadth
-vair_corr#:=1/36pt#; % for small refinements of hairline height
-apex_corr#:=0pt#; % extra width at diagonal junctions
-
-o#:=8/36pt#; % amount of overshoot for curves
-apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
-
-slant:=0; % tilt ratio $(\Delta x/\Delta y)$
-fudge:=1; % factor applied to weights of heavy characters
-math_spread:=0; % extra openness of math symbols
-superness:=1/sqrt2; % parameter for superellipses
-superpull:=1/6; % extra openness inside bowls
-beak_darkness:=11/30; % fraction of triangle inside beak serifs
-ligs:=2; % level of ligatures to be included
-
-square_dots:=false; % should dots be square?
-hefty:=false; % should we try hard not to be overweight?
-serifs:=true; % should serifs and bulbs be attached?
-monospace:=false; % should all characters have the same width?
-variant_g:=true; % should an italic-style g be used?
-low_asterisk:=false; % should the asterisk be centered at the axis?
-math_fitting:=true; % should math-mode spacing be used?
-
-mode_setup; font_setup;
-autorounding:=0;
-
-font_slant slant; font_x_height 0#; %x_height#;
-font_quad 18u# if not monospace:+4letter_fit# fi;
-
-% **********************************************
-% Macros and character definitions.
-% **********************************************
-
-def Shaft (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=hround 0; x0=hround w;
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-pickup pencircle scaled rule_thickness;
-draw z1--z0;
-endchar;
-enddef;
-
-Shaft(0,1/6);
-Shaft(13,1/5);
-Shaft(26,1/4);
-Shaft(39,1/3);
-Shaft(52,2/5);
-Shaft(65,1/2);
-Shaft(78,3/5);
-Shaft(91,2/3);
-Shaft(104,3/4);
-
-def DashedShaft (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=w;
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2=hround w;
-y2=h;
-%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
-pickup pencircle scaled rule_thickness;
-draw z1--1/6z2;
-draw 2/6z2--4/6z2;
-draw 5/6z2--z2;
-endchar;
-enddef;
-
-DashedShaft(1,1/6);
-DashedShaft(14,1/5);
-DashedShaft(27,1/4);
-DashedShaft(40,1/3);
-DashedShaft(53,2/5);
-DashedShaft(66,1/2);
-DashedShaft(79,3/5);
-DashedShaft(92,2/3);
-DashedShaft(105,3/4);
-
-
-def UpperHead (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup rule.nib;
-x1=0; x0=w;
-y1=-d; y0= h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-
-UpperHead(2,1/6);
-UpperHead(15,1/5);
-UpperHead(28,1/4);
-UpperHead(41,1/3);
-UpperHead(54,2/5);
-UpperHead(67,1/2);
-UpperHead(80,3/5);
-UpperHead(93,2/3);
-UpperHead(106,3/4);
-
-def LowerHead (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup rule.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l..{z4-z9}z4l---{z9-z4}z4r..z2r--cycle;
-
-endchar;
-enddef;
-
-LowerHead(3,1/6);
-LowerHead(16,1/5);
-LowerHead(29,1/4);
-LowerHead(42,1/3);
-LowerHead(55,2/5);
-LowerHead(68,1/2);
-LowerHead(81,3/5);
-LowerHead(94,2/3);
-LowerHead(107,3/4);
-
-
-
-def UpperTopBarb (expr ChCode, ChHeightFrac)=
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{dir -(90-theta)}..{z1-z0}z0l--z2l--cycle;
-endchar;
-enddef;
-
-UpperTopBarb(4,1/6);
-UpperTopBarb(17,1/5);
-UpperTopBarb(30,1/4);
-UpperTopBarb(43,1/3);
-UpperTopBarb(56,2/5);
-UpperTopBarb(69,1/2);
-UpperTopBarb(82,3/5);
-UpperTopBarb(95,2/3);
-UpperTopBarb(108,3/4);
-
-def UpperBotBarb (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
-endchar;
-enddef;
-
-
-
-UpperBotBarb(5,1/6);
-UpperBotBarb(18,1/5);
-UpperBotBarb(31,1/4);
-UpperBotBarb(44,1/3);
-UpperBotBarb(57,2/5);
-UpperBotBarb(70,1/2);
-UpperBotBarb(83,3/5);
-UpperBotBarb(96,2/3);
-UpperBotBarb(109,3/4);
-
-
-def LowerTopBarb (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{dir -(90-theta)}..{z1-z0}z0l--z2r--cycle;
-endchar;
-enddef;
-
-LowerTopBarb(6,1/6);
-LowerTopBarb(19,1/5);
-LowerTopBarb(32,1/4);
-LowerTopBarb(45,1/3);
-LowerTopBarb(58,2/5);
-LowerTopBarb(71,1/2);
-LowerTopBarb(84,3/5);
-LowerTopBarb(97,2/3);
-LowerTopBarb(110,3/4);
-
-def LowerBotBarb (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta,delta;theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
-endchar;
-enddef;
-
-LowerBotBarb(7,1/6);
-LowerBotBarb(20,1/5);
-LowerBotBarb(33,1/4);
-LowerBotBarb(46,1/3);
-LowerBotBarb(59,2/5);
-LowerBotBarb(72,1/2);
-LowerBotBarb(85,3/5);
-LowerBotBarb(98,2/3);
-LowerBotBarb(111,3/4);
-
-def LowerTopHook (expr ChCode, ChHeightFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled spread yscaled spread;
-%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
-%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup rule.nib;
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-%penstroke z2e..{z4-z9}z4e;
-endchar;
-enddef;
-
-LowerTopHook(8,1/6);
-LowerTopHook(21,1/5);
-LowerTopHook(34,1/4);
-LowerTopHook(47,1/3);
-LowerTopHook(60,2/5);
-LowerTopHook(73,1/2);
-LowerTopHook(86,3/5);
-LowerTopHook(99,2/3);
-LowerTopHook(112,3/4);
-
-def LowerBotHook (expr ChCode, ChHeightFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0= 0;
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
-%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
-%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-%penstroke z2e..{z4-z9}z4e;
-
-endchar;
-enddef;
-
-LowerBotHook(9,1/6);
-LowerBotHook(22,1/5);
-LowerBotHook(35,1/4);
-LowerBotHook(48,1/3);
-LowerBotHook(61,2/5);
-LowerBotHook(74,1/2);
-LowerBotHook(87,3/5);
-LowerBotHook(100,2/3);
-LowerBotHook(113,3/4);
-
-
-
-def UpperTopHook (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
-%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-%penstroke z2e..{z3-z9}z3e;
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-
-UpperTopHook(10,1/6);
-UpperTopHook(23,1/5);
-UpperTopHook(36,1/4);
-UpperTopHook(49,1/3);
-UpperTopHook(62,2/5);
-UpperTopHook(75,1/2);
-UpperTopHook(88,3/5);
-UpperTopHook(101,2/3);
-UpperTopHook(114,3/4);
-
-
-def UpperBotHook (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=w;
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
-%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-%penstroke z2e..{z3-z9}z3e;
-
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-UpperBotHook(11,1/6);
-UpperBotHook(24,1/5);
-UpperBotHook(37,1/4);
-UpperBotHook(50,1/3);
-UpperBotHook(63,2/5);
-UpperBotHook(76,1/2);
-UpperBotHook(89,3/5);
-UpperBotHook(102,2/3);
-UpperBotHook(115,3/4);
-
-
-
-def Squiggle (expr ChCode, ChHeightFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0);
-x0= 0; x1=w;
-y0=-d; y1=h;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-endchar;
-enddef;
-
-Squiggle(12,1/6);
-Squiggle(25,1/5);
-Squiggle(38,1/4);
-Squiggle(51,1/3);
-Squiggle(64,2/5);
-Squiggle(77,1/2);
-Squiggle(90,3/5);
-Squiggle(103,2/3);
-Squiggle(116,3/4);
-
-def RevShaft (expr ChCode,ChWidthFrac,ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-pickup pencircle scaled rule_thickness;
-draw z1--z0;
-endchar;
-enddef;
-
-RevShaft(117,1/6,1);
-
-def RevDashedShaft (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=-d;
-
-%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
-pickup pencircle scaled rule_thickness;
-draw z1--1/6[z1,z2];
-draw 2/6[z1,z2]--4/6[z1,z2];
-draw 5/6[z1,z2]--z2;
-endchar;
-enddef;
-
-
-RevDashedShaft(118,1/6,1);
-
-beginchar(119,0,math_axis#,0);
-adjust_fit(0,0); pickup rule.nib;
-x0=0;
-y0=y2=math_axis;
-x2r=0; % was z2l
-pos2(1.5rule_thickness,180);
-pos3(bar,180); pos4(bar,180);
-z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z9=.381966[.5[z3,z4],z2];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-
-beginchar(120,0,math_axis#,0);
-adjust_fit(0,0); pickup rule.nib;
-x0=0;
-y0=math_axis;
-pos2(1.5rule_thickness,0);
-pos3(bar,0); pos4(bar,0);
-z4=z0+ dir -45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z2r=z0; %was z2l
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-
-endchar;
-
-beginchar(121,0,math_axis#,0);
-adjust_fit(0,0); pickup rule.nib;
-x0=0;
-y0=math_axis;
-pos1(rule_thickness,90);
-pos2(1.5rule_thickness,180);
-pos0(rule_thickness,90);
-pos3(bar,180); pos4(bar,180);
-z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z2r=z0; %was z2l
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{down}..{left}z0l--z2r--cycle;
-endchar;
-
-
-beginchar(122,0,math_axis#,0);
-adjust_fit(0,0); pickup rule.nib;
-x0=0;
-y0=math_axis;
-pos2(1.5rule_thickness,180);
-pos0(rule_thickness,90);
-pos3(bar,180); pos4(bar,180);
-z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z2r=z0; % was z2l
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{up}..{left}z0r--z2r--cycle;
-endchar;
-
-compute_spread(.45x_height#,.55x_height);
-beginchar(123,spread#,math_axis#,0#);
-adjust_fit(0,0); pickup rule.nib;
-x0=0;
-y0=math_axis;
-numeric delta; delta=3u++.24asc_height;
-z4=z0+ dir (90) xscaled spread yscaled spread;
-pickup rule.nib;
-rt x40=hround(w);
-y40=good.y 1/2[y0,y4];
-draw z0{right}..z40..{left}z4;
-endchar;
-
-beginchar(124,spread#,math_axis#,0#);
-adjust_fit(0,0); pickup rule.nib;
-x0=0;
-y0=math_axis;
-z4=z0+ dir (-90) xscaled spread yscaled spread;
-pickup rule.nib;
-rt x40=hround(w);
-y40=good.y 1/2[y0,y4];
-%draw z0..{z4-z0}z40..z4;
-draw z0{right}..z40..{left}z4;
-endchar;
-
-
-beginchar(125,18u#,math_axis#,0#);
-adjust_fit(0,0);
-x0=hround 0; x1=hround(w);
-y0=math_axis; y1=math_axis;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-endchar;
-
-bye.
-
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams2.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams2.mf
deleted file mode 100644
index 49c18c18ef3..00000000000
--- a/Master/texmf-dist/fonts/source/public/lamstex/lams2.mf
+++ /dev/null
@@ -1,623 +0,0 @@
-% LAMS2.MF VERSION 1.0
-% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
-% ALL RIGHTS RESERVED
-
-if unknown cmbase: input cmbase fi
-% replace the macro adjust_fit by version used in earlier cmbase files to
-% avoid division by zero error caused by newer versions of cmbase
-% Patch by Ingo Hadan (Jan 97)
-
-def normal_adjust_fit(expr left_adjustment,right_adjustment) =
- l:=-hround(left_adjustment*hppp)-letter_fit;
- interim xoffset:=-l;
- charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
- r:=l+hround(charwd*hppp)-shrink_fit;
- w:=r-hround(right_adjustment*hppp)-letter_fit;
- enddef;
-
-def mono_adjust_fit(expr left_adjustment,right_adjustment) =
- numeric expansion_factor;
- mono_charwd#=2letter_fit#
- +expansion_factor*(charwd+left_adjustment+right_adjustment);
- forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
- $:=$.#*expansion_factor*hppp; endfor
- l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
- interim xoffset:=-l;
- r:=l+mono_charwd-shrink_fit;
- w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
- charwd:=mono_charwd#; charic:=mono_charic#;
- enddef;
-
-font_identifier:="LAMS"; font_size 10pt#;
-
-u#:=20/36pt#; % unit width
-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
-
-body_height#:=270/36pt#; % height of tallest characters
-asc_height#:=360/36pt#; % height of lowercase ascenders
-cap_height#:=246/36pt#; % height of caps
-fig_height#:=232/36pt#; % height of numerals
-x_height#:=155/36pt#; % height of lowercase without ascenders
-math_axis#:=90/36pt#; % axis of symmetry for math symbols
-bar_height#:=87/36pt#; % height of crossbar in lowercase e
-comma_depth#:=70/36pt#; % depth of comma below baseline
-desc_depth#:=0/36pt#; % depth of lowercase descenders
-
-crisp#:=8/36pt#; % diameter of serif corners
-tiny#:=8/36pt#; % diameter of rounded corners
-fine#:=7/36pt#; % diameter of sharply rounded corners
-thin_join#:=7/36pt#; % width of extrafine details
-hair#:=9/36pt#; % lowercase hairline breadth
-stem#:=24/36pt#; % lowercase stem breadth
-curve#:=29/36pt#; % lowercase curve breadth
-ess#:=27/36pt#; % breadth in middle of lowercase s
-flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
-dot_size#:=38/36pt#; % diameter of dots
-cap_hair#:=11/36pt#; % uppercase hairline breadth
-cap_stem#:=30/36pt#; % uppercase stem breadth
-cap_curve#:=35/36pt#; % uppercase curve breadth
-cap_ess#:=33/36pt#; % breadth in middle of uppercase s
-rule_thickness#:=.4pt#; % thickness of lines in math symbols
-
-dish#:=1/36pt#; % amount erased at top or bottom of serifs
-bracket#:=20/36pt#; % vertical distance from serif base to tangent
-jut#:=30/36pt#; % protrusion of lowercase serifs
-cap_jut#:=37/36pt#; % protrusion of uppercase serifs
-beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
-beak#:=70/36pt#; % vertical protrusion of beak serifs
-vair#:=8/36pt#; % vertical diameter of hairlines
-notch_cut#:=10pt#; % maximum breadth above or below notches
-bar#:=11/36pt#; % lowercase bar thickness
-slab#:=11/36pt#; % serif and arm thickness
-cap_bar#:=11/36pt#; % uppercase bar thickness
-cap_band#:=11/36pt#; % uppercase thickness above/below lobes
-cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
-serif_drop#:=4/36pt#; % vertical drop of sloped serifs
-stem_corr#:=1/36pt#; % for small refinements of stem breadth
-vair_corr#:=1/36pt#; % for small refinements of hairline height
-apex_corr#:=0pt#; % extra width at diagonal junctions
-
-o#:=8/36pt#; % amount of overshoot for curves
-apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
-
-slant:=0; % tilt ratio $(\Delta x/\Delta y)$
-fudge:=1; % factor applied to weights of heavy characters
-math_spread:=0; % extra openness of math symbols
-superness:=1/sqrt2; % parameter for superellipses
-superpull:=1/6; % extra openness inside bowls
-beak_darkness:=11/30; % fraction of triangle inside beak serifs
-ligs:=2; % level of ligatures to be included
-
-square_dots:=false; % should dots be square?
-hefty:=false; % should we try hard not to be overweight?
-serifs:=true; % should serifs and bulbs be attached?
-monospace:=false; % should all characters have the same width?
-variant_g:=true; % should an italic-style g be used?
-low_asterisk:=false; % should the asterisk be centered at the axis?
-math_fitting:=true; % should math-mode spacing be used?
-
-mode_setup; font_setup;
-autorounding:=0;
-
-font_slant slant; font_x_height 0;
-font_quad 18u# if not monospace:+4letter_fit# fi;
-
-slant:=mono_charic#:=0; % the remaining characters will not be slanted
-currenttransform:=identity yscaled aspect_ratio scaled granularity;
-
-% **********************************************
-% Macros and character definitions.
-% **********************************************
-
-def Shaft (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=h;
-%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
-pickup pencircle scaled rule_thickness;
-draw z1--z0;
-penlabels(1,2); endchar;
-enddef;
-
-Shaft(0,1,4/5);
-Shaft(13,1,5/6);
-Shaft(26,1,1);
-Shaft(39,5/6,1);
-Shaft(52,4/5,1);
-Shaft(65,3/4,1);
-Shaft(78,2/3,1);
-Shaft(91,3/5,1);
-Shaft(104,1/2,1);
-
-def DashedShaft (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=h;
-%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
-pickup pencircle scaled rule_thickness;
-draw z1--1/6z2;
-draw 2/6z2--4/6z2;
-draw 5/6z2--z2;
-penlabels(1,2); endchar;
-enddef;
-
-DashedShaft(1,1,4/5);
-DashedShaft(14,1,5/6);
-DashedShaft(27,1,1);
-DashedShaft(40,5/6,1);
-DashedShaft(53,4/5,1);
-DashedShaft(66,3/4,1);
-DashedShaft(79,2/3,1);
-DashedShaft(92,3/5,1);
-DashedShaft(105,1/2,1);
-
-
-def UpperHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-UpperHead(2,1,4/5);
-UpperHead(15,1,5/6);
-UpperHead(28,1,1);
-UpperHead(41,5/6,1);
-UpperHead(54,4/5,1);
-UpperHead(67,3/4,1);
-UpperHead(80,2/3,1);
-UpperHead(93,3/5,1);
-UpperHead(106,1/2,1);
-
-def LowerHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w; x0=0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-LowerHead(3,1,4/5);
-LowerHead(16,1,5/6);
-LowerHead(29,1,1);
-LowerHead(42,5/6,1);
-LowerHead(55,4/5,1);
-LowerHead(68,3/4,1);
-LowerHead(81,2/3,1);
-LowerHead(94,3/5,1);
-LowerHead(107,1/2,1);
-
-
-
-
-
-def UpperTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{dir -(90-theta)}..{z1-z0}z0l--z2l--cycle;
-endchar;
-enddef;
-
-UpperTopBarb(4,1,4/5);
-UpperTopBarb(17,1,5/6);
-UpperTopBarb(30,1,1);
-UpperTopBarb(43,5/6,1);
-UpperTopBarb(56,4/5,1);
-UpperTopBarb(69,3/4,1);
-UpperTopBarb(82,2/3,1);
-UpperTopBarb(95,3/5,1);
-UpperTopBarb(108,1/2,1);
-
-
-def UpperBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
-endchar;
-enddef;
-
-UpperBotBarb(5,1,4/5);
-UpperBotBarb(18,1,5/6);
-UpperBotBarb(31,1,1);
-UpperBotBarb(44,5/6,1);
-UpperBotBarb(57,4/5,1);
-UpperBotBarb(70,3/4,1);
-UpperBotBarb(83,2/3,1);
-UpperBotBarb(96,3/5,1);
-UpperBotBarb(109,1/2,1);
-
-
-def LowerTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{dir -(90-theta)}..{z1-z0}z0l--z2r--cycle;
-endchar;
-enddef;
-
-
-LowerTopBarb(6,1,4/5);
-LowerTopBarb(19,1,5/6);
-LowerTopBarb(32,1,1);
-LowerTopBarb(45,5/6,1);
-LowerTopBarb(58,4/5,1);
-LowerTopBarb(71,3/4,1);
-LowerTopBarb(84,2/3,1);
-LowerTopBarb(97,3/5,1);
-LowerTopBarb(110,1/2,1);
-
-def LowerBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta,delta;theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
-endchar;
-enddef;
-
-
-LowerBotBarb(7,1,4/5);
-LowerBotBarb(20,1,5/6);
-LowerBotBarb(33,1,1);
-LowerBotBarb(46,5/6,1);
-LowerBotBarb(59,4/5,1);
-LowerBotBarb(72,3/4,1);
-LowerBotBarb(85,2/3,1);
-LowerBotBarb(98,3/5,1);
-LowerBotBarb(111,1/2,1);
-
-def LowerTopHook (expr ChCode, ChWidthFrac,ChHeightFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled spread yscaled spread;
-%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
-%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup rule.nib;
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-%penstroke z2e..{z4-z9}z4e;
-
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-LowerTopHook(8,1,4/5);
-LowerTopHook(21,1,5/6);
-LowerTopHook(34,1,1);
-LowerTopHook(47,5/6,1);
-LowerTopHook(60,4/5,1);
-LowerTopHook(73,3/4,1);
-LowerTopHook(86,2/3,1);
-LowerTopHook(99,3/5,1);
-LowerTopHook(112,1/2,1);
-
-def LowerBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
-%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
-%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-%penstroke z2e..{z4-z9}z4e;
-
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-LowerBotHook(9,1,4/5);
-LowerBotHook(22,1,5/6);
-LowerBotHook(35,1,1);
-LowerBotHook(48,5/6,1);
-LowerBotHook(61,4/5,1);
-LowerBotHook(74,3/4,1);
-LowerBotHook(87,2/3,1);
-LowerBotHook(100,3/5,1);
-LowerBotHook(113,1/2,1);
-
-
-
-def UpperTopHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
-%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-%penstroke z2e..{z3-z9}z3e;
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-UpperTopHook(10,1,4/5);
-UpperTopHook(23,1,5/6);
-UpperTopHook(36,1,1);
-UpperTopHook(49,5/6,1);
-UpperTopHook(62,4/5,1);
-UpperTopHook(75,3/4,1);
-UpperTopHook(88,2/3,1);
-UpperTopHook(101,3/5,1);
-UpperTopHook(114,1/2,1);
-
-
-def UpperBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
-%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-%penstroke z2e..{z3-z9}z3e;
-
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-UpperBotHook(11,1,4/5);
-UpperBotHook(24,1,5/6);
-UpperBotHook(37,1,1);
-UpperBotHook(50,5/6,1);
-UpperBotHook(63,4/5,1);
-UpperBotHook(76,3/4,1);
-UpperBotHook(89,2/3,1);
-UpperBotHook(102,3/5,1);
-UpperBotHook(115,1/2,1);
-
-
-
-def Squiggle (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0);
-x0= 0; x1=(w);
-y0=-d; y1=h;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-penlabels(1,2); endchar;
-enddef;
-
-Squiggle(12,1,4/5);
-Squiggle(25,1,5/6);
-Squiggle(38,1,1);
-Squiggle(51,5/6,1);
-Squiggle(64,4/5,1);
-Squiggle(77,3/4,1);
-Squiggle(90,2/3,1);
-Squiggle(103,3/5,1);
-Squiggle(116,1/2,1);
-
-beginchar(117,0,math_axis#,0);
-adjust_fit(0,0); pickup crisp.nib;
-x0=0;
-y0=math_axis;
-pos2(1.5rule_thickness,0);
-pos3(bar,0); pos4(bar,0);
-z4=z0+ dir -45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z2r=z0; %was z2l
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-
-beginchar(118,0,math_axis#,0);
-adjust_fit(0,0); pickup crisp.nib;
-x0=0;
-y0=math_axis;
-pos2(1.5rule_thickness,180);
-pos3(bar,180); pos4(bar,180);
-z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-
-beginchar(119,0,math_axis#,0);
-adjust_fit(0,0); pickup crisp.nib;
-x0=0;
-y0=math_axis;
-pos2(1.5rule_thickness,0);
-pos3(bar,0); pos4(bar,0);
-pos0(rule_thickness,90);
-z4=z0+ dir -45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{down}..{right}z0l--z2r--cycle;
-endchar;
-
-beginchar(120,0,math_axis#,0);
-adjust_fit(0,0); pickup crisp.nib;
-x0=0;
-y0=math_axis;
-pos0(rule_thickness,90);
-pos2(1.5rule_thickness,0);
-pos3(bar,0); pos4(bar,0);
-z4=z0+ dir -45 scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{up}..{right}z0r--z2r--cycle;
-endchar;
-
-compute_spread(.45x_height#,.55x_height);
-beginchar(121,spread#,math_axis#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x0=w;
-y0=math_axis;
-z4=z0+ dir (90) xscaled spread yscaled spread;
-pickup rule.nib;
-lft x40=0;
-y40=good.y 1/2[y0,y4];
-draw z0{left}..z40..{right}z4;
-endchar;
-
-beginchar(122,spread#,math_axis#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x0=w;
-y0=math_axis;
-z4=z0+ dir (-90) xscaled spread yscaled spread;
-pickup rule.nib;
-lft x40=0;
-y40=good.y 1/2[y0,y4];
-draw z0{left}..z40..{right}z4;
-endchar;
-
-bye.
-
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams3.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams3.mf
deleted file mode 100644
index 1a0bb214e61..00000000000
--- a/Master/texmf-dist/fonts/source/public/lamstex/lams3.mf
+++ /dev/null
@@ -1,902 +0,0 @@
-% LAMS3.MF VERSION 1.0
-% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
-% ALL RIGHTS RESERVED
-
-if unknown cmbase: input cmbase fi
-% replace the macro adjust_fit by version used in earlier cmbase files to
-% avoid division by zero error caused by newer versions of cmbase
-% Patch by Ingo Hadan (Jan 97)
-
-def normal_adjust_fit(expr left_adjustment,right_adjustment) =
- l:=-hround(left_adjustment*hppp)-letter_fit;
- interim xoffset:=-l;
- charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
- r:=l+hround(charwd*hppp)-shrink_fit;
- w:=r-hround(right_adjustment*hppp)-letter_fit;
- enddef;
-
-def mono_adjust_fit(expr left_adjustment,right_adjustment) =
- numeric expansion_factor;
- mono_charwd#=2letter_fit#
- +expansion_factor*(charwd+left_adjustment+right_adjustment);
- forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
- $:=$.#*expansion_factor*hppp; endfor
- l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
- interim xoffset:=-l;
- r:=l+mono_charwd-shrink_fit;
- w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
- charwd:=mono_charwd#; charic:=mono_charic#;
- enddef;
-
-font_identifier:="LAMS"; font_size 10pt#;
-
-u#:=20/36pt#; % unit width
-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
-
-body_height#:=270/36pt#; % height of tallest characters
-asc_height#:=360/36pt#; % height of lowercase ascenders
-cap_height#:=246/36pt#; % height of caps
-fig_height#:=232/36pt#; % height of numerals
-x_height#:=155/36pt#; % height of lowercase without ascenders
-math_axis#:=90/36pt#; % axis of symmetry for math symbols
-bar_height#:=87/36pt#; % height of crossbar in lowercase e
-comma_depth#:=70/36pt#; % depth of comma below baseline
-desc_depth#:=0/36pt#; % depth of lowercase descenders
-
-crisp#:=8/36pt#; % diameter of serif corners
-tiny#:=8/36pt#; % diameter of rounded corners
-fine#:=7/36pt#; % diameter of sharply rounded corners
-thin_join#:=7/36pt#; % width of extrafine details
-hair#:=9/36pt#; % lowercase hairline breadth
-stem#:=24/36pt#; % lowercase stem breadth
-curve#:=29/36pt#; % lowercase curve breadth
-ess#:=27/36pt#; % breadth in middle of lowercase s
-flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
-dot_size#:=38/36pt#; % diameter of dots
-cap_hair#:=11/36pt#; % uppercase hairline breadth
-cap_stem#:=30/36pt#; % uppercase stem breadth
-cap_curve#:=35/36pt#; % uppercase curve breadth
-cap_ess#:=33/36pt#; % breadth in middle of uppercase s
-rule_thickness#:=.4pt#; % thickness of lines in math symbols
-
-dish#:=1/36pt#; % amount erased at top or bottom of serifs
-bracket#:=20/36pt#; % vertical distance from serif base to tangent
-jut#:=30/36pt#; % protrusion of lowercase serifs
-cap_jut#:=37/36pt#; % protrusion of uppercase serifs
-beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
-beak#:=70/36pt#; % vertical protrusion of beak serifs
-vair#:=8/36pt#; % vertical diameter of hairlines
-notch_cut#:=10pt#; % maximum breadth above or below notches
-bar#:=11/36pt#; % lowercase bar thickness
-slab#:=11/36pt#; % serif and arm thickness
-cap_bar#:=11/36pt#; % uppercase bar thickness
-cap_band#:=11/36pt#; % uppercase thickness above/below lobes
-cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
-serif_drop#:=4/36pt#; % vertical drop of sloped serifs
-stem_corr#:=1/36pt#; % for small refinements of stem breadth
-vair_corr#:=1/36pt#; % for small refinements of hairline height
-apex_corr#:=0pt#; % extra width at diagonal junctions
-
-o#:=8/36pt#; % amount of overshoot for curves
-apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
-
-slant:=0; % tilt ratio $(\Delta x/\Delta y)$
-fudge:=1; % factor applied to weights of heavy characters
-math_spread:=0; % extra openness of math symbols
-superness:=1/sqrt2; % parameter for superellipses
-superpull:=1/6; % extra openness inside bowls
-beak_darkness:=11/30; % fraction of triangle inside beak serifs
-ligs:=2; % level of ligatures to be included
-
-square_dots:=false; % should dots be square?
-hefty:=false; % should we try hard not to be overweight?
-serifs:=true; % should serifs and bulbs be attached?
-monospace:=false; % should all characters have the same width?
-variant_g:=true; % should an italic-style g be used?
-low_asterisk:=false; % should the asterisk be centered at the axis?
-math_fitting:=true; % should math-mode spacing be used?
-
-mode_setup; font_setup;
-autorounding:=0;
-
-font_slant slant; font_x_height 0;
-font_quad 18u# if not monospace:+4letter_fit# fi;
-
-slant:=mono_charic#:=0; % the remaining characters will not be slanted
-currenttransform:=identity yscaled aspect_ratio scaled granularity;
-
-def Shaft (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=h;
-pickup pencircle scaled rule_thickness;
-draw z1--z0;
-penlabels(1,2); endchar;
-enddef;
-
-Shaft(0,2/5,1);
-Shaft(13,1/3,1);
-Shaft(26,1/4,1);
-Shaft(39,1/5,1);
-Shaft(52,1/6,1);
-
-def DashedShaft (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=h;
-pickup pencircle scaled rule_thickness;
-draw z1--1/6z2;
-draw 2/6z2--4/6z2;
-draw 5/6z2--z2;
-penlabels(1,2); endchar;
-enddef;
-
-DashedShaft(1,2/5,1);
-DashedShaft(14,1/3,1);
-DashedShaft(27,1/4,1);
-DashedShaft(40,1/5,1);
-DashedShaft(53,1/6,1);
-
-def UpperHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-UpperHead(2,2/5,1);
-UpperHead(15,1/3,1);
-UpperHead(28,1/4,1);
-UpperHead(41,1/5,1);
-UpperHead(54,1/6,1);
-
-def LowerHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0= 0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-LowerHead(3,2/5,1);
-LowerHead(16,1/3,1);
-LowerHead(29,1/4,1);
-LowerHead(42,1/5,1);
-LowerHead(55,1/6,1);
-
-
-def UpperTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{dir -(90-theta)}..{z1-z0}z0l--z2l--cycle;
-endchar;
-enddef;
-
-
-
-
-
-
-UpperTopBarb(4,2/5,1);
-UpperTopBarb(17,1/3,1);
-UpperTopBarb(30,1/4,1);
-UpperTopBarb(43,1/5,1);
-UpperTopBarb(56,1/6,1);
-
-def UpperBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=-d; y0=h;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
-endchar;
-enddef;
-UpperBotBarb(5,2/5,1);
-UpperBotBarb(18,1/3,1);
-UpperBotBarb(31,1/4,1);
-UpperBotBarb(44,1/5,1);
-UpperBotBarb(57,1/6,1);
-
-
-def LowerTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{dir -(90-theta)}..{z1-z0}z0l--z2r--cycle;
-endchar;
-enddef;
-
-
-
-LowerTopBarb(6,2/5,1);
-LowerTopBarb(19,1/3,1);
-LowerTopBarb(32,1/4,1);
-LowerTopBarb(45,1/5,1);
-LowerTopBarb(58,1/6,1);
-
-def LowerBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=h; y0=-d;
-numeric theta,delta;theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
-endchar;
-enddef;
-
-
-LowerBotBarb(7,2/5,1);
-LowerBotBarb(20,1/3,1);
-LowerBotBarb(33,1/4,1);
-LowerBotBarb(46,1/5,1);
-LowerBotBarb(59,1/6,1);
-
-def LowerTopHook (expr ChCode, ChWidthFrac,ChHeightFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled spread yscaled spread;
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup rule.nib;
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-LowerTopHook(8,2/5,1);
-LowerTopHook(21,1/3,1);
-LowerTopHook(34,1/4,1);
-LowerTopHook(47,1/5,1);
-LowerTopHook(60,1/6,1);
-
-def LowerBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=h; y0=-d;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-LowerBotHook(9,2/5,1);
-LowerBotHook(22,1/3,1);
-LowerBotHook(35,1/4,1);
-LowerBotHook(48,1/5,1);
-LowerBotHook(61,1/6,1);
-
-def UpperTopHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
-%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-%penstroke z2e..{z3-z9}z3e;
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-UpperTopHook(10,2/5,1);
-UpperTopHook(23,1/3,1);
-UpperTopHook(36,1/4,1);
-UpperTopHook(49,1/5,1);
-UpperTopHook(62,1/6,1);
-
-def UpperBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
-%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-%penstroke z2e..{z3-z9}z3e;
-
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-UpperBotHook(11,2/5,1);
-UpperBotHook(24,1/3,1);
-UpperBotHook(37,1/4,1);
-UpperBotHook(50,1/5,1);
-UpperBotHook(63,1/6,1);
-
-def Squiggle (expr ChCode, ChWidthFrac, ChHeightFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
-adjust_fit(0,0);
-x0= 0; x1=(w);
-y0=-d; y1=h;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-penlabels(1,2); endchar;
-enddef;
-
-Squiggle(12,2/5,1);
-Squiggle(25,1/3,1);
-Squiggle(38,1/4,1);
-Squiggle(51,1/5,1);
-Squiggle(64,1/6,1);
-
-def RevShaft (expr ChCode,ChHeightFrac,ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-pickup pencircle scaled rule_thickness;
-draw z1--z0;
-penlabels(1,2); endchar;
-enddef;
-
-RevShaft(65,0,1/6);
-RevShaft(78,0,1/5);
-RevShaft(91,0,1/4);
-RevShaft(104,0,1/3);
-
-
-def RevDashedShaft (expr ChCode, ChHeightFrac, ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=-d;
-pickup pencircle scaled rule_thickness;
-draw z1--1/6z2;
-draw 2/6z2--4/6z2;
-draw 5/6z2--z2;
-penlabels(1,2); endchar;
-enddef;
-
-RevDashedShaft(66,0,1/6);
-RevDashedShaft(79,0,1/5);
-RevDashedShaft(92,0,1/4);
-RevDashedShaft(105,0,1/3);
-
-def RevUpperHead (expr ChCode, ChHeightFrac, ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-RevUpperHead(67,0,1/6);
-RevUpperHead(80,0,1/5);
-RevUpperHead(93,0,1/4);
-RevUpperHead(106,0,1/3);
-
-def RevLowerHead (expr ChCode, ChHeightFrac, ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0= 0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-RevLowerHead(68,0,1/6);
-RevLowerHead(81,0,1/5);
-RevLowerHead(94,0,1/4);
-RevLowerHead(107,0,1/3);
-
-def RevUpperTopBarb (expr ChCode, ChHeightFrac, ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{dir (270+theta)}..{z1-z0}z0l--z2l--cycle;
-endchar;
-enddef;
-
-RevUpperTopBarb(69,0,1/6);
-RevUpperTopBarb(82,0,1/5);
-RevUpperTopBarb(95,0,1/4);
-RevUpperTopBarb(108,0,1/3);
-
-def RevUpperBotBarb (expr ChCode,ChHeightFrac,ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
-
-endchar;
-enddef;
-
-RevUpperBotBarb(70,0,1/6);
-RevUpperBotBarb(83,0,1/5);
-RevUpperBotBarb(96,0,1/4);
-RevUpperBotBarb(109,0,1/3);
-
-def RevLowerTopBarb (expr ChCode, ChHeightFrac, ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=-d; y0=h;
-
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{dir (180+90+theta)}..{z1-z0}z0l--z2r--cycle;
-endchar;
-enddef;
-
-RevLowerTopBarb(71,0,1/6);
-RevLowerTopBarb(84,0,1/5);
-RevLowerTopBarb(97,0,1/4);
-RevLowerTopBarb(110,0,1/3);
-
-
-def RevLowerBotBarb (expr ChCode, ChHeightFrac,ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=-d; y0=h;
-numeric theta,delta;theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
-
-endchar;
-enddef;
-
-RevLowerBotBarb(72,0,1/6);
-RevLowerBotBarb(85,0,1/5);
-RevLowerBotBarb(98,0,1/4);
-RevLowerBotBarb(111,0,1/3);
-
-def RevLowerTopHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled spread yscaled spread;
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup rule.nib;
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-
-RevLowerTopHook(73,0,1/6);
-RevLowerTopHook(86,0,1/5);
-RevLowerTopHook(99,0,1/4);
-RevLowerTopHook(112,0,1/3);
-
-
-def RevLowerBotHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
-%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
-%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-%penstroke z2e..{z4-z9}z4e;
-
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-RevLowerBotHook(74,0,1/6);
-RevLowerBotHook(87,0,1/5);
-RevLowerBotHook(100,0,1/4);
-RevLowerBotHook(113,0,1/3);
-
-def RevUpperTopHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-
-RevUpperTopHook(75,0,1/6);
-RevUpperTopHook(88,0,1/5);
-RevUpperTopHook(101,0,1/4);
-RevUpperTopHook(114,0,1/3);
-
-def RevUpperBotHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-RevUpperBotHook(76,0,1/6);
-RevUpperBotHook(89,0,1/5);
-RevUpperBotHook(102,0,1/4);
-RevUpperBotHook(115,0,1/3);
-
-
-
-def RevSquiggle (expr ChCode, ChHeightFrac,ChDepthFrac)=
-
-beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
-adjust_fit(0,0);
-x0= 0; x1=(w);
-y0=h; y1=-d;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-penlabels(1,2); endchar;
-enddef;
-
-
-RevSquiggle(77,0,1/6);
-RevSquiggle(90,0,1/5);
-RevSquiggle(103,0,1/4);
-RevSquiggle(116,0,1/3);
-
-
-beginchar(117,0,0,0);
-adjust_fit(0,0); pickup rule.nib;
-lft x0 =0;
-y0=0;
-lft x2=0;
-y2=y0;
-pos2(1.5rule_thickness,90);
-pos3(bar,90); pos4(bar,90);
-z4=z0+ dir (270-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir (270+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-
-beginchar(118,0,10/3pt#,0);
-adjust_fit(0,0); pickup rule.nib;
-lft x0 =0; y0=0;
-lft x2=0; y2=y0;
-pos2(1.5rule_thickness,270);
-pos3(bar,270); pos4(bar,270);
-z4=z0+ dir (90-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir (90+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-
-beginchar(119,0,0,0);
-adjust_fit(0,0); pickup rule.nib;
-lft x0 =0;
-y0=0;
-lft x2=0;
-y2=y0;
-pos0(rule_thickness,0);
-pos2(1.5rule_thickness,90);
-pos3(bar,90); pos4(bar,80);
-z4=z0+ dir (270-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir (270+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{right}..{down}z0r--z2l--cycle;
-endchar;
-
-beginchar(120,0,0,0);
-adjust_fit(0,0); pickup rule.nib;
-lft x0 =0;
-y0=0;
-lft x2=0;
-y2=0;
-pos0(rule_thickness,0);
-pos2(1.5rule_thickness,90);
-pos3(bar,90); pos4(bar,80);
-z4=z0+ dir (270-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir (270+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{left}..{down}z0l--z2l--cycle;
-endchar;
-
-compute_spread(.45x_height#,.55x_height);
-beginchar(121,0,10/3pt#,0#);
-adjust_fit(0,0); pickup rule.nib;
-lft x0=0;
-y0=0;
-z4=z0+ dir 180 xscaled spread yscaled spread;
-pickup rule.nib;
-top z40= 1/2[z0,z4] + dir 90 xscaled 2.5u yscaled 2.5u;
-draw z0{up}..{z4-z0}z40..{down}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-
-compute_spread(.45x_height#,.55x_height);
-beginchar(122,0,10/3pt#,0#);
-adjust_fit(0,0); pickup rule.nib;
-lft x0=0;
-y0=0;
-z4=z0- dir 180 xscaled spread yscaled spread;
-pickup rule.nib;
-top z40= 1/2[z0,z4] + dir 90 xscaled 2.5u yscaled 2.5u;
-draw z0{up}..{z4-z0}z40..{down}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-
-
-beginchar(123,0,18u#,0#);
-adjust_fit(0,0);
-pickup rule.nib;
-lft x0=lft x1=0;
-y0=-d; y1=h;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-penlabels(1,2); endchar;
-bye. (3u++.24asc_height)+eps-rule_thickness
-
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams4.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams4.mf
deleted file mode 100644
index f86836c8bba..00000000000
--- a/Master/texmf-dist/fonts/source/public/lamstex/lams4.mf
+++ /dev/null
@@ -1,614 +0,0 @@
-% LAMS4.MF VERSION 1.0
-% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
-% ALL RIGHTS RESERVED
-
-if unknown cmbase: input cmbase fi
-% replace the macro adjust_fit by version used in earlier cmbase files to
-% avoid division by zero error caused by newer versions of cmbase
-% Patch by Ingo Hadan (Jan 97)
-
-def normal_adjust_fit(expr left_adjustment,right_adjustment) =
- l:=-hround(left_adjustment*hppp)-letter_fit;
- interim xoffset:=-l;
- charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
- r:=l+hround(charwd*hppp)-shrink_fit;
- w:=r-hround(right_adjustment*hppp)-letter_fit;
- enddef;
-
-def mono_adjust_fit(expr left_adjustment,right_adjustment) =
- numeric expansion_factor;
- mono_charwd#=2letter_fit#
- +expansion_factor*(charwd+left_adjustment+right_adjustment);
- forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
- $:=$.#*expansion_factor*hppp; endfor
- l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
- interim xoffset:=-l;
- r:=l+mono_charwd-shrink_fit;
- w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
- charwd:=mono_charwd#; charic:=mono_charic#;
- enddef;
-
-font_identifier:="LAMS"; font_size 10pt#;
-
-u#:=20/36pt#; % unit width
-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
-
-body_height#:=270/36pt#; % height of tallest characters
-asc_height#:=360/36pt#; % height of lowercase ascenders
-cap_height#:=246/36pt#; % height of caps
-fig_height#:=232/36pt#; % height of numerals
-x_height#:=155/36pt#; % height of lowercase without ascenders
-math_axis#:=90/36pt#; % axis of symmetry for math symbols
-bar_height#:=87/36pt#; % height of crossbar in lowercase e
-comma_depth#:=70/36pt#; % depth of comma below baseline
-desc_depth#:=0/36pt#; % depth of lowercase descenders
-
-crisp#:=8/36pt#; % diameter of serif corners
-tiny#:=8/36pt#; % diameter of rounded corners
-fine#:=7/36pt#; % diameter of sharply rounded corners
-thin_join#:=7/36pt#; % width of extrafine details
-hair#:=9/36pt#; % lowercase hairline breadth
-stem#:=24/36pt#; % lowercase stem breadth
-curve#:=29/36pt#; % lowercase curve breadth
-ess#:=27/36pt#; % breadth in middle of lowercase s
-flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
-dot_size#:=38/36pt#; % diameter of dots
-cap_hair#:=11/36pt#; % uppercase hairline breadth
-cap_stem#:=30/36pt#; % uppercase stem breadth
-cap_curve#:=35/36pt#; % uppercase curve breadth
-cap_ess#:=33/36pt#; % breadth in middle of uppercase s
-rule_thickness#:=.4pt#; % thickness of lines in math symbols
-
-dish#:=1/36pt#; % amount erased at top or bottom of serifs
-bracket#:=20/36pt#; % vertical distance from serif base to tangent
-jut#:=30/36pt#; % protrusion of lowercase serifs
-cap_jut#:=37/36pt#; % protrusion of uppercase serifs
-beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
-beak#:=70/36pt#; % vertical protrusion of beak serifs
-vair#:=8/36pt#; % vertical diameter of hairlines
-notch_cut#:=10pt#; % maximum breadth above or below notches
-bar#:=11/36pt#; % lowercase bar thickness
-slab#:=11/36pt#; % serif and arm thickness
-cap_bar#:=11/36pt#; % uppercase bar thickness
-cap_band#:=11/36pt#; % uppercase thickness above/below lobes
-cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
-serif_drop#:=4/36pt#; % vertical drop of sloped serifs
-stem_corr#:=1/36pt#; % for small refinements of stem breadth
-vair_corr#:=1/36pt#; % for small refinements of hairline height
-apex_corr#:=0pt#; % extra width at diagonal junctions
-
-o#:=8/36pt#; % amount of overshoot for curves
-apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
-
-slant:=0; % tilt ratio $(\Delta x/\Delta y)$
-fudge:=1; % factor applied to weights of heavy characters
-math_spread:=0; % extra openness of math symbols
-superness:=1/sqrt2; % parameter for superellipses
-superpull:=1/6; % extra openness inside bowls
-beak_darkness:=11/30; % fraction of triangle inside beak serifs
-ligs:=2; % level of ligatures to be included
-
-square_dots:=false; % should dots be square?
-hefty:=false; % should we try hard not to be overweight?
-serifs:=true; % should serifs and bulbs be attached?
-monospace:=false; % should all characters have the same width?
-variant_g:=true; % should an italic-style g be used?
-low_asterisk:=false; % should the asterisk be centered at the axis?
-math_fitting:=true; % should math-mode spacing be used?
-
-mode_setup; font_setup;
-autorounding:=0;
-
-font_slant slant; font_x_height 0;
-font_quad 18u# if not monospace:+4letter_fit# fi;
-
-slant:=mono_charic#:=0; % the remaining characters will not be slanted
-currenttransform:=identity yscaled aspect_ratio scaled granularity;
-
-
-def RevShaft (expr ChCode,ChWidthFrac,ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-pickup pencircle scaled rule_thickness;
-draw z1--z0;
-penlabels(1,2); endchar;
-enddef;
-
-
-def RevDashedShaft (expr ChCode, ChWidthFrac, ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=-d;
-pickup pencircle scaled rule_thickness;
-draw z1--1/6[z1,z2];
-draw 2/6[z1,z2]--4/6[z1,z2];
-draw 5/6[z1,z2]--z2;
-penlabels(1,2); endchar;
-enddef;
-
-
-def RevUpperHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0, ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled delta;
-z3=z0+ dir -(180+(45-theta)) scaled delta;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-
-def RevLowerHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0= 0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled delta;
-z3=z0+ dir -(45-theta) scaled delta;
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-def RevUpperTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{dir (270+theta)}..{z1-z0}z0l--z2l--cycle;
-endchar;
-enddef;
-
-
-def RevUpperBotBarb (expr ChCode,ChWidthFrac,ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
-
-endchar;
-
-enddef;
-
-
-def RevLowerTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{dir (180+90+theta)}..{z1-z0}z0l--z2r--cycle;
-endchar;
-
-enddef;
-
-
-def RevLowerBotBarb (expr ChCode, ChWidthFrac,ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=-d; y0=h;
-numeric theta,delta;theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
-
-endchar;
-
-enddef;
-
-def RevLowerTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled spread yscaled spread;
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup rule.nib;
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-
-
-def RevLowerBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
-%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
-%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-%penstroke z2e..{z4-z9}z4e;
-
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-def RevUpperTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=(w);
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-
-def RevUpperBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-
-def RevSquiggle (expr ChCode, ChWidthFrac,ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0);
-x0= 0; x1=(w);
-y0=h; y1=-d;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-penlabels(1,2); endchar;
-enddef;
-
-
-RevShaft(0,1,2/5);
-RevShaft(13,1,1/2);
-RevShaft(26,1,3/5);
-RevShaft(39,1,2/3);
-RevShaft(52,1,3/4);
-RevShaft(65,1,4/5);
-RevShaft(78,1,5/6);
-RevShaft(91,1,1);
-RevShaft(104,5/6,1);
-
-RevDashedShaft(1,1,2/5);
-RevDashedShaft(14,1,1/2);
-RevDashedShaft(27,1,3/5);
-RevDashedShaft(40,1,2/3);
-RevDashedShaft(53,1,3/4);
-RevDashedShaft(66,1,4/5);
-RevDashedShaft(79,1,5/6);
-RevDashedShaft(92,1,1);
-RevDashedShaft(105,5/6,1);
-
-RevUpperHead(2,1,2/5);
-RevUpperHead(15,1,1/2);
-RevUpperHead(28,1,3/5);
-RevUpperHead(41,1,2/3);
-RevUpperHead(54,1,3/4);
-RevUpperHead(67,1,4/5);
-RevUpperHead(80,1,5/6);
-RevUpperHead(93,1,1);
-RevUpperHead(106,5/6,1);
-
-RevLowerHead(3,1,2/5);
-RevLowerHead(16,1,1/2);
-RevLowerHead(29,1,3/5);
-RevLowerHead(42,1,2/3);
-RevLowerHead(55,1,3/4);
-RevLowerHead(68,1,4/5);
-RevLowerHead(81,1,5/6);
-RevLowerHead(94,1,1);
-RevLowerHead(107,5/6,1);
-
-
-RevUpperTopBarb(4,1,2/5);
-RevUpperTopBarb(17,1,1/2);
-RevUpperTopBarb(30,1,3/5);
-RevUpperTopBarb(43,1,2/3);
-RevUpperTopBarb(56,1,3/4);
-RevUpperTopBarb(69,1,4/5);
-RevUpperTopBarb(82,1,5/6);
-RevUpperTopBarb(95,1,1);
-RevUpperTopBarb(108,5/6,1);
-
-
-RevUpperBotBarb(5,1,2/5);
-RevUpperBotBarb(18,1,1/2);
-RevUpperBotBarb(31,1,3/5);
-RevUpperBotBarb(44,1,2/3);
-RevUpperBotBarb(57,1,3/4);
-RevUpperBotBarb(70,1,4/5);
-RevUpperBotBarb(83,1,5/6);
-RevUpperBotBarb(96,1,1);
-RevUpperBotBarb(109,5/6,1);
-
-
-RevLowerTopBarb(6,1,2/5);
-RevLowerTopBarb(19,1,1/2);
-RevLowerTopBarb(32,1,3/5);
-RevLowerTopBarb(45,1,2/3);
-RevLowerTopBarb(58,1,3/4);
-RevLowerTopBarb(71,1,4/5);
-RevLowerTopBarb(84,1,5/6);
-RevLowerTopBarb(97,1,1);
-RevLowerTopBarb(110,5/6,1);
-
-
-
-RevLowerBotBarb(7,1,2/5);
-RevLowerBotBarb(20,1,1/2);
-RevLowerBotBarb(33,1,3/5);
-RevLowerBotBarb(46,1,2/3);
-RevLowerBotBarb(59,1,3/4);
-RevLowerBotBarb(72,1,4/5);
-RevLowerBotBarb(85,1,5/6);
-RevLowerBotBarb(98,1,1);
-RevLowerBotBarb(111,5/6,1);
-
-
-RevLowerTopHook(8,1,2/5);
-RevLowerTopHook(21,1,1/2);
-RevLowerTopHook(34,1,3/5);
-RevLowerTopHook(47,1,2/3);
-RevLowerTopHook(60,1,3/4);
-RevLowerTopHook(73,1,4/5);
-RevLowerTopHook(86,1,5/6);
-RevLowerTopHook(99,1,1);
-RevLowerTopHook(112,5/6,1);
-
-RevLowerBotHook(9,1,2/5);
-RevLowerBotHook(22,1,1/2);
-RevLowerBotHook(35,1,3/5);
-RevLowerBotHook(48,1,2/3);
-RevLowerBotHook(61,1,3/4);
-RevLowerBotHook(74,1,4/5);
-RevLowerBotHook(87,1,5/6);
-RevLowerBotHook(100,1,1);
-RevLowerBotHook(113,5/6,1);
-
-
-RevUpperTopHook(10,1,2/5);
-RevUpperTopHook(23,1,1/2);
-RevUpperTopHook(36,1,3/5);
-RevUpperTopHook(49,1,2/3);
-RevUpperTopHook(62,1,3/4);
-RevUpperTopHook(75,1,4/5);
-RevUpperTopHook(88,1,5/6);
-RevUpperTopHook(101,1,1);
-RevUpperTopHook(114,5/6,1);
-
-
-RevUpperBotHook(11,1,2/5);
-RevUpperBotHook(24,1,1/2);
-RevUpperBotHook(37,1,3/5);
-RevUpperBotHook(50,1,2/3);
-RevUpperBotHook(63,1,3/4);
-RevUpperBotHook(76,1,4/5);
-RevUpperBotHook(89,1,5/6);
-RevUpperBotHook(102,1,1);
-RevUpperBotHook(115,5/6,1);
-
-RevSquiggle(12,1,2/5);
-RevSquiggle(25,1,1/2);
-RevSquiggle(38,1,3/5);
-RevSquiggle(51,1,2/3);
-RevSquiggle(64,1,3/4);
-RevSquiggle(77,1,4/5);
-RevSquiggle(90,1,5/6);
-RevSquiggle(103,1,1);
-RevSquiggle(116,5/6,1);
-
-beginchar(117,0,0,0);
-adjust_fit(0,0); pickup crisp.nib;
-numeric delta; delta=3u++.24asc_height;
-pickup rule.nib;
-lft x0=0;
-y0=0;
-lft x2=0;
-y2=y0; %top
-pos2(1.5rule_thickness,270);
-pos3(bar,270); pos4(bar,270);
-z4=z0+ dir (90-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir (90+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-
-endchar;
-
-beginchar(118,0,0,10/3pt#);
-adjust_fit(0,0); pickup rule.nib;
-numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-lft x0=0;
-y0=0;
-lft x2=0;
-y2=y0; %top
-pos2(1.5rule_thickness,90);
-pos3(bar,90); pos4(bar,90);
-z4=z0+ dir (270-45) xscaled (delta+eps) yscaled (delta+eps);
-z3=z0+ dir (270+45) xscaled (delta+eps) yscaled (delta+eps);
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-
-beginchar(119,0,0,0);
-adjust_fit(0,0); pickup rule.nib;
-numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-lft x0=0;
-y0=0;
-lft x2=0;
-y2=y0;
-pos0(rule_thickness,0);
-pos2(1.5rule_thickness,270);
-pos3(bar,270); pos4(bar,270);
-z4=z0+ dir (90-45) xscaled (delta+eps) yscaled (delta+eps);
-z3=z0+ dir (90+45) xscaled (delta+eps) yscaled (delta+eps);
-z9=.381966[.5[z3,z4],z0];
-
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{right}..{up}z0r--z2l--cycle;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-
-beginchar(120,0,0,0);
-adjust_fit(0,0); pickup rule.nib;
-numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-lft x0=0;
-y0=0;
-lft x2=y0; y2=0;
-pos0(rule_thickness,0);
-pos2(1.5rule_thickness,270);
-pos3(bar,270); pos4(bar,270);
-z4=z0+ dir (90-45) xscaled (delta+eps) yscaled (delta+eps);
-z3=z0+ dir (90+45) xscaled (delta+eps) yscaled (delta+eps);
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{left}..{up}z0l--z2l--cycle;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-
-compute_spread(.45x_height#,.55x_height);
-beginchar(121,0,0,10/3pt#);
-adjust_fit(0,0); pickup rule.nib;
-lft x0=0;
-y0=0;
-z4=z0+ dir 180 xscaled spread yscaled spread;
-bot z40= 1/2[z0,z4] + dir 270 xscaled 2.5u yscaled 2.5u;
-draw z0{down}..{z4-z0}z40..{up}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-
-compute_spread(.45x_height#,.55x_height);
-beginchar(122,0,0,10/3pt#);
-adjust_fit(0,0); pickup rule.nib;
-lft x0=0;
-y0=0;
-z4=z0 - dir 180 xscaled spread yscaled spread;
-bot z40= 1/2[z0,z4] + dir 270 xscaled 2.5u yscaled 2.5u;
-%draw z0{down}..{z4-z0}z40..{up}z4;
-draw z0{down}..{z4-z0}z40..{up}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-bye.
-
-
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams5.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams5.mf
deleted file mode 100644
index 02f3eec76b9..00000000000
--- a/Master/texmf-dist/fonts/source/public/lamstex/lams5.mf
+++ /dev/null
@@ -1,533 +0,0 @@
-% LAMS5.MF VERSION 1.0
-% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
-% ALL RIGHTS RESERVED
-
-if unknown cmbase: input cmbase fi
-% replace the macro adjust_fit by version used in earlier cmbase files to
-% avoid division by zero error caused by newer versions of cmbase
-% Patch by Ingo Hadan (Jan 97)
-
-def normal_adjust_fit(expr left_adjustment,right_adjustment) =
- l:=-hround(left_adjustment*hppp)-letter_fit;
- interim xoffset:=-l;
- charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
- r:=l+hround(charwd*hppp)-shrink_fit;
- w:=r-hround(right_adjustment*hppp)-letter_fit;
- enddef;
-
-def mono_adjust_fit(expr left_adjustment,right_adjustment) =
- numeric expansion_factor;
- mono_charwd#=2letter_fit#
- +expansion_factor*(charwd+left_adjustment+right_adjustment);
- forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
- $:=$.#*expansion_factor*hppp; endfor
- l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
- interim xoffset:=-l;
- r:=l+mono_charwd-shrink_fit;
- w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
- charwd:=mono_charwd#; charic:=mono_charic#;
- enddef;
-
-font_identifier:="LAMS"; font_size 10pt#;
-
-u#:=20/36pt#; % unit width
-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
-
-body_height#:=270/36pt#; % height of tallest characters
-asc_height#:=360/36pt#; % height of lowercase ascenders
-cap_height#:=246/36pt#; % height of caps
-fig_height#:=232/36pt#; % height of numerals
-x_height#:=155/36pt#; % height of lowercase without ascenders
-math_axis#:=90/36pt#; % axis of symmetry for math symbols
-bar_height#:=87/36pt#; % height of crossbar in lowercase e
-comma_depth#:=70/36pt#; % depth of comma below baseline
-desc_depth#:=0/36pt#; % depth of lowercase descenders
-
-crisp#:=8/36pt#; % diameter of serif corners
-tiny#:=8/36pt#; % diameter of rounded corners
-fine#:=7/36pt#; % diameter of sharply rounded corners
-thin_join#:=7/36pt#; % width of extrafine details
-hair#:=9/36pt#; % lowercase hairline breadth
-stem#:=24/36pt#; % lowercase stem breadth
-curve#:=29/36pt#; % lowercase curve breadth
-ess#:=27/36pt#; % breadth in middle of lowercase s
-flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
-dot_size#:=38/36pt#; % diameter of dots
-cap_hair#:=11/36pt#; % uppercase hairline breadth
-cap_stem#:=30/36pt#; % uppercase stem breadth
-cap_curve#:=35/36pt#; % uppercase curve breadth
-cap_ess#:=33/36pt#; % breadth in middle of uppercase s
-rule_thickness#:=.4pt#; % thickness of lines in math symbols
-
-dish#:=1/36pt#; % amount erased at top or bottom of serifs
-bracket#:=20/36pt#; % vertical distance from serif base to tangent
-jut#:=30/36pt#; % protrusion of lowercase serifs
-cap_jut#:=37/36pt#; % protrusion of uppercase serifs
-beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
-beak#:=70/36pt#; % vertical protrusion of beak serifs
-vair#:=8/36pt#; % vertical diameter of hairlines
-notch_cut#:=10pt#; % maximum breadth above or below notches
-bar#:=11/36pt#; % lowercase bar thickness
-slab#:=11/36pt#; % serif and arm thickness
-cap_bar#:=11/36pt#; % uppercase bar thickness
-cap_band#:=11/36pt#; % uppercase thickness above/below lobes
-cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
-serif_drop#:=4/36pt#; % vertical drop of sloped serifs
-stem_corr#:=1/36pt#; % for small refinements of stem breadth
-vair_corr#:=1/36pt#; % for small refinements of hairline height
-apex_corr#:=0pt#; % extra width at diagonal junctions
-
-o#:=8/36pt#; % amount of overshoot for curves
-apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
-
-slant:=0; % tilt ratio $(\Delta x/\Delta y)$
-fudge:=1; % factor applied to weights of heavy characters
-math_spread:=0; % extra openness of math symbols
-superness:=1/sqrt2; % parameter for superellipses
-superpull:=1/6; % extra openness inside bowls
-beak_darkness:=11/30; % fraction of triangle inside beak serifs
-ligs:=2; % level of ligatures to be included
-
-square_dots:=false; % should dots be square?
-hefty:=false; % should we try hard not to be overweight?
-serifs:=true; % should serifs and bulbs be attached?
-monospace:=false; % should all characters have the same width?
-variant_g:=true; % should an italic-style g be used?
-low_asterisk:=false; % should the asterisk be centered at the axis?
-math_fitting:=true; % should math-mode spacing be used?
-
-mode_setup; font_setup;
-autorounding:=0;
-
-font_slant slant; font_x_height 0;
-font_quad 18u# if not monospace:+4letter_fit# fi;
-
-slant:=mono_charic#:=0; % the remaining characters will not be slanted
-currenttransform:=identity yscaled aspect_ratio scaled granularity;
-
-
-def RevShaft (expr ChCode,ChWidthFrac,ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-pickup pencircle scaled rule_thickness;
-draw z1--z0;
-penlabels(1,2); endchar;
-enddef;
-
-
-def RevDashedShaft (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
-x2= w;
-y2=-d;
-pickup pencircle scaled rule_thickness;
-draw z1--1/6[z1,z2];
-draw 2/6[z1,z2]--4/6[z1,z2];
-draw 5/6[z1,z2]--z2;
-penlabels(1,2); endchar;
-enddef;
-
-
-def RevUpperHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled delta;
-z3=z0+ dir -(180+(45-theta)) scaled delta;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-endchar;
-enddef;
-
-
-def RevLowerHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0= 0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled delta;
-z3=z0+ dir -(45-theta) scaled delta;
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-def RevUpperTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2r{dir (270+theta)}..{z1-z0}z0l--z2l--cycle;
-endchar;
-enddef;
-
-
-def RevUpperBotBarb (expr ChCode,ChWidthFrac,ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=0; x0=w;
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
-
-endchar;
-
-enddef;
-
-
-def RevLowerTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
-filldraw z2l{dir (180+90+theta)}..{z1-z0}z0l--z2r--cycle;
-endchar;
-
-enddef;
-
-
-def RevLowerBotBarb (expr ChCode, ChWidthFrac,ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=w ; x0=0;
-y1=-d; y0=h;
-numeric theta,delta;theta=angle(z1-z0);
-pos1(rule_thickness,90+theta);
-pos0(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup crisp.nib;
-filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
-filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
-
-endchar;
-
-enddef;
-
-
-
-def RevLowerTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=-d; y0=h;
-numeric theta; theta=angle(z1-z0);
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled spread yscaled spread;
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-pickup rule.nib;
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-
-
-def RevLowerBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-compute_spread(.45x_height#,.55x_height);
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1=(w) ; x0= 0;
-y1=-d; y0=h;
-numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
-if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
-pos1(rule_thickness,-90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
-%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
-%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
-pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
-z2l=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-%penstroke z2e..{z4-z9}z4e;
-
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-def RevUpperTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-endchar;
-enddef;
-
-def RevUpperBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0); pickup crisp.nib;
-x1= 0; x0=(w);
-y1=h; y0=-d;
-numeric theta; theta=angle(z0-z1);
-pos1(rule_thickness,90+theta);
-pos2(1.5rule_thickness,theta);
-pos3(bar,theta); pos4(bar,theta);
-z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
-z2r=z0;
-z9=.381966[.5[z3,z4],z0];
-z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
-pickup rule.nib;
-draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
-penlabels(0,1,2,3,4,5,6,9); endchar;
-enddef;
-
-
-def RevSquiggle (expr ChCode, ChWidthFrac,ChDepthFrac)=
-
-beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
-adjust_fit(0,0);
-x0= 0; x1=(w);
-y0=h; y1=-d;
-numeric theta,delta; theta=angle(z1-z0);
-delta=3u;
-z2=.5/6[z0,z1];
-z8=5.5/6[z0,z1];
-z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
-z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
-
-pickup pencircle scaled rule_thickness;
-draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
-penlabels(1,2); endchar;
-enddef;
-
-RevShaft(0,4/5,1);
-RevShaft(13,3/4,1);
-RevShaft(26,2/3,1);
-RevShaft(39,3/5,1);
-RevShaft(52,1/2,1);
-RevShaft(65,2/5,1);
-RevShaft(78,1/3,1);
-RevShaft(91,1/4,1);
-RevShaft(104,1/5,1);
-
-
-RevDashedShaft(1,4/5,1);
-RevDashedShaft(14,3/4,1);
-RevDashedShaft(27,2/3,1);
-RevDashedShaft(40,3/5,1);
-RevDashedShaft(53,1/2,1);
-RevDashedShaft(66,2/5,1);
-RevDashedShaft(79,1/3,1);
-RevDashedShaft(92,1/4,1);
-RevDashedShaft(105,1/5,1);
-
-
-RevUpperHead(2,4/5,1);
-RevUpperHead(15,3/4,1);
-RevUpperHead(28,2/3,1);
-RevUpperHead(41,3/5,1);
-RevUpperHead(54,1/2,1);
-RevUpperHead(67,2/5,1);
-RevUpperHead(80,1/3,1);
-RevUpperHead(93,1/4,1);
-RevUpperHead(106,1/5,1);
-
-RevLowerHead(3,4/5,1);
-RevLowerHead(16,3/4,1);
-RevLowerHead(29,2/3,1);
-RevLowerHead(42,3/5,1);
-RevLowerHead(55,1/2,1);
-RevLowerHead(68,2/5,1);
-RevLowerHead(81,1/3,1);
-RevLowerHead(94,1/4,1);
-RevLowerHead(107,1/5,1);
-
-RevUpperTopBarb(4,4/5,1);
-RevUpperTopBarb(17,3/4,1);
-RevUpperTopBarb(30,2/3,1);
-RevUpperTopBarb(43,3/5,1);
-RevUpperTopBarb(56,1/2,1);
-RevUpperTopBarb(69,2/5,1);
-RevUpperTopBarb(82,1/3,1);
-RevUpperTopBarb(95,1/4,1);
-RevUpperTopBarb(108,1/5,1);
-
-RevUpperBotBarb(5,4/5,1);
-RevUpperBotBarb(18,3/4,1);
-RevUpperBotBarb(31,2/3,1);
-RevUpperBotBarb(44,3/5,1);
-RevUpperBotBarb(57,1/2,1);
-RevUpperBotBarb(70,2/5,1);
-RevUpperBotBarb(83,1/3,1);
-RevUpperBotBarb(96,1/4,1);
-RevUpperBotBarb(109,1/5,1);
-
-RevLowerTopBarb(6,4/5,1);
-RevLowerTopBarb(19,3/4,1);
-RevLowerTopBarb(32,2/3,1);
-RevLowerTopBarb(45,3/5,1);
-RevLowerTopBarb(58,1/2,1);
-RevLowerTopBarb(71,2/5,1);
-RevLowerTopBarb(84,1/3,1);
-RevLowerTopBarb(97,1/4,1);
-RevLowerTopBarb(110,1/5,1);
-
-
-RevLowerBotBarb(7,4/5,1);
-RevLowerBotBarb(20,3/4,1);
-RevLowerBotBarb(33,2/3,1);
-RevLowerBotBarb(46,3/5,1);
-RevLowerBotBarb(59,1/2,1);
-RevLowerBotBarb(72,2/5,1);
-RevLowerBotBarb(85,1/3,1);
-RevLowerBotBarb(98,1/4,1);
-RevLowerBotBarb(111,1/5,1);
-
-RevLowerTopHook(8,4/5,1);
-RevLowerTopHook(21,3/4,1);
-RevLowerTopHook(34,2/3,1);
-RevLowerTopHook(47,3/5,1);
-RevLowerTopHook(60,1/2,1);
-RevLowerTopHook(73,2/5,1);
-RevLowerTopHook(86,1/3,1);
-RevLowerTopHook(99,1/4,1);
-RevLowerTopHook(112,1/5,1);
-
-
-RevLowerBotHook(9,4/5,1);
-RevLowerBotHook(22,3/4,1);
-RevLowerBotHook(35,2/3,1);
-RevLowerBotHook(48,3/5,1);
-RevLowerBotHook(61,1/2,1);
-RevLowerBotHook(74,2/5,1);
-RevLowerBotHook(87,1/3,1);
-RevLowerBotHook(100,1/4,1);
-RevLowerBotHook(113,1/5,1);
-
-
-RevUpperTopHook(10,4/5,1);
-RevUpperTopHook(23,3/4,1);
-RevUpperTopHook(36,2/3,1);
-RevUpperTopHook(49,3/5,1);
-RevUpperTopHook(62,1/2,1);
-RevUpperTopHook(75,2/5,1);
-RevUpperTopHook(88,1/3,1);
-RevUpperTopHook(101,1/4,1);
-RevUpperTopHook(114,1/5,1);
-
-RevUpperBotHook(11,4/5,1);
-RevUpperBotHook(24,3/4,1);
-RevUpperBotHook(37,2/3,1);
-RevUpperBotHook(50,3/5,1);
-RevUpperBotHook(63,1/2,1);
-RevUpperBotHook(76,2/5,1);
-RevUpperBotHook(89,1/3,1);
-RevUpperBotHook(102,1/4,1);
-RevUpperBotHook(115,1/5,1);
-
-
-RevSquiggle(12,4/5,1);
-RevSquiggle(25,3/4,1);
-RevSquiggle(38,2/3,1);
-RevSquiggle(51,3/5,1);
-RevSquiggle(64,1/2,1);
-RevSquiggle(77,2/5,1);
-RevSquiggle(90,1/3,1);
-RevSquiggle(103,1/4,1);
-RevSquiggle(116,1/5,1);
-
-
-RevUpperHead(117,1/6,1);
-RevLowerHead(118,1/6,1);
-RevUpperTopBarb(119,1/6,1);
-RevUpperBotBarb(120,1/6,1);
-RevLowerTopBarb(121,1/6,1);
-RevLowerBotBarb(122,1/6,1);
-RevLowerTopHook(123,1/6,1);
-RevLowerBotHook(124,1/6,1);
-RevUpperTopHook(125,1/6,1);
-RevUpperBotHook(126,1/6,1);
-RevSquiggle(127,1/6,1);
-bye.
-
-