%%
%% This is file `hminlig.mf',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% humanist.dtx  (with options: `lig')
%% 
%%  Copyright 1999 Peter R. Wilson
%% 
%%  This program is provided under the terms of the
%%  LaTeX Project Public License distributed from CTAN
%%  archives in directory macros/latex/base/lppl.txt.
%% 
%% Author: Peter Wilson (CUA)
%%         now at: peter.r.wilson@boeing.com
%% 


ligtable "`": "`"=:oct"134";
ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;

ligtable "-": "-"=:oct"173";
ligtable oct"173": "-"=:oct"174";

ligtable "c": "t"=:oct"014";
ligtable "s": "t"=:oct"015";


cmchar "The ct ligature";
beginchar(oct"014", 2sb#+hstretch*(20/11x_height#),
                    asc_height#, 0);
adjust_fit(0,0);
pcshiftx := sb;
numeric n[];
path pth[];
pair vc[];
pickup quill;

%%%%%%%%%%% C

n1:=1/2(w-2pcshiftx);     % actual letter width
n2 := h/ascratio;         % x-height
x1=pcshiftx + 1/2n1; top y1 = n2;
lft x2 = pcshiftx; y2 = 1/2n2;
x3 = x1; bot y3 = 0;
rt x4 = n1; y4 = 1/4n2;
x6 = x4;
%%y6 = 3/4n2;
top y6 = y1;
pth1 := z6..z1{left}..z2{down}..z3{right}..z4{pdir};

%%%%%%%%%%%%% T

%% bar
top y33=n2; n3 := n2 - top y33;
%%lft x31 = n1+pcshiftx;
lft x31 = n1;
rt x32=w-pcshiftx;
%%top y31 = y33-n3; bot y32=y33+n3;
%%top y31 = y33-n3; y32=y33;
y31 = y32 = y33;
x33=1/2[x31,x32];
pth2 := z31--z32;                                  % T bar

n4 := top y33 - y33;
x34 = x33; bot y34 = 2n4;
rt x36 = w - pcshiftx; bot y36 = n4;
x35 = 1/2[x34,x36]; bot y35 = 0;
pth3 := z33--z34..z35..z36;                         % T stem

%%%%%%%%%%%%%%%%% Ligature

z51=z6;
z55=z33;
x53 = 1/2[x51,x55];
top y53 = h;
vc51 := direction 0 of pth1;
vc55 := direction 0 of pth3;
pth4 := z51{vc51}..z53{right}..z55{vc55}; % loop
%%ductus:=true;
if ductus:
  pickup stylus;
fi
draw pth1;           % C
draw pth2;           % T bar
draw pth3;           % T bowl
draw pth4;           % ligature loop
ductus:=false;
penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
endchar; % end of "ct"


cmchar "The st ligature";
beginchar(oct"015", 2sb#+hstretch*(15/11x_height#+jut#),
                    asc_height#, 0);
adjust_fit(0,0);
pcshiftx := sb;
numeric n[];
path pth[];
pair vc[];
pickup quill;
%%%%%%%%%%% S

n1:=3/7(w-2pcshiftx-jut);     % actual letter width
n2 := h/ascratio;         % x-height

%% stem
lft x1=lft x2=pcshiftx+jut; top y1=n2; bot y2=0;
%% flick
x4=x2; y4 = 1/2n1;
%%%%%%%%%%%%% T

%% bar
top y33=n2; n3 := n2 - top y33;
%%lft x31 = n1+pcshiftx;
lft x31 = n1;
rt x32=w-pcshiftx;
%%top y31 = y33-n3; bot y32=y33+n3;
%%top y31 = y33-n3; y32=y33;
y31 = y32 = y33;
x33=1/2[x31,x32];
pth2 := z31--z32;                                  % T bar

n4 := top y33 - y33;
x34 = x33; bot y34 = 2n4;
rt x36 = w - pcshiftx; bot y36 = n4;
x35 = 1/2[x34,x36]; bot y35 = 0;
pth3 := z33--z34..z35..z36;                         % T stem

%%%%%%%%%%%%%%%%% Ligature

z51=z4;
z55=z33;
x53 = 5/8[x51,x55];
top y53 = h;
vc51 := up;
vc55 := direction 0 of pth3;
pth4 := z51{vc51}...z53{right}..z55{vc55}; % loop
%%ductus:=true;
if ductus:
  pickup stylus;
fi
draw z1--z2;         % S stem
draw_flatserif(1,2,srad);
draw_roundserif(2,1,srad);
draw pth2;           % T bar
draw pth3;           % T bowl
draw pth4;           % ligature loop
ductus:=false;
penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
endchar; % end of "st"


cmchar "Closing quotes";
beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_height#,0);
adjust_fit(0,0);
pcshiftx:=sb;
x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
x2=x1-(2hstretch*dot_size);
draw_pcomma(1,dot_size,comma_width);  % right
draw_pcomma(2,dot_size,comma_width);  % left
penlabels(1,2);
endchar; % end of "''"


cmchar "Opening quotes";
beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_height#,0);
adjust_fit(0,0);
pcshiftx:=sb;
x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
x2=x1+(2hstretch*dot_size);
draw_plq(1,dot_size,comma_width); % left
draw_plq(2,dot_size,comma_width); % right
penlabels(1,2);
endchar; % end of "``"


cmchar "Hyphen";
beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
adjust_fit(0,0);
pcshiftx:=sb/2;
numeric alpha; alpha:=w/8;
pickup threequarterquill;
lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
z31 = z21 shifted (-jut*pdir);
draw z21--z22;
draw z31--z21;
draw_flatserif(22,21,srad);
penlabels(1,2);
endchar; % end of "-"


cmchar "En dash";
beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
adjust_fit(0,0);
pcshiftx:=sb/2;
numeric alpha; alpha:=w/8;
pickup threequarterquill;
lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
z31 = z21 shifted (-jut*pdir);
draw z21--z22;
%%draw_roundserif(21,22,srad);
draw z31--z21;
draw_flatserif(22,21,srad);
penlabels(1,2);
endchar; % end of "--"


cmchar "Em dash";
beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
adjust_fit(0,0);
pcshiftx:=sb/2;
numeric alpha; alpha:=w/8;
pickup threequarterquill;
lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
z31 = z21 shifted (-jut*pdir);
draw z21--z22;
%%draw_roundserif(21,22,srad);
draw z31--z21;
draw_flatserif(22,21,srad);
penlabels(1,2);
endchar; % end of "---"


cmchar "HMIN ampersand";
beginchar("&", 2sb#+hstretch*(15/11x_height#+2jut#), asc_height#, 0);
adjust_fit(0,0);
numeric n[];
path pth[];
pcshiftx:=sb;
pickup quill;
%% alpha looking part
n1 := w-2pcshiftx-jut;    % actual letter width
n2 := h/ascratio;         % x-height
n3 := 16/16n2;            % height of alpha
rt x1 = w-pcshiftx; bot y1=0;

x3 = pcshiftx + 12/16n1; y3 = 1/2n2;

lft x5 = pcshiftx + thick; y5 = 1/2[n2,h];
rt x7 = lft x5 + 1/2n1; y7 = y5;
x6 = 1/2[x5,x7]; top y6 = h;

lft x9 = pcshiftx; y9 = 1/2n2;
rt x10 = pcshiftx + 1/2n1; bot y10 = 0;

rt x12 = w - pcshiftx; y12 = y7;

x4 = x6; y4 = 1/2[y9,y5];

pth1 = z1..z4..z5{up}..z6{right}..z7{down}..z9{down}..z10{right}..{up}z12;

%%ductus:=true;
if ductus:
  pickup stylus;
fi
draw pth1;
ductus:=false;
penlabels(1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,21,22,23,24,25);
endchar; % end of "&"

