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


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

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

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


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

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

%% bar
top y33=n2; n3 := n2 - top y33;
%%lft x31 = n1+pcshiftx;
lft x31 = n1;
rt x32=w-pcshiftx;
%%top y31 = y33-n3; bot y32=y33+n3;
top y31 = y33-n3; y32=y33;
x33=1/2[x31,x32];
pth2 := z31{pdir}..z33..z32{pdir};                % T bar
n31 := n1;     % width of bowl
%%lft x34 = pcshiftx + n1 + 1/8n31;
lft x34 = n1 + 1/8n31;
y34 = 1/2n2;
x35=x33; bot y35 = 0;
rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2;
pth3 := z33..z34{down}..z35{right}..z36{pdir};    % T bowl

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

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


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

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

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

%% bar
top y33=n2; n3 := n2 - top y33;
%%lft x31 = n1+pcshiftx;
lft x31 = n1;
rt x32=w-pcshiftx;
%%top y31 = y33-n3; bot y32=y33+n3;
top y31 = y33-n3; y32=y33;
x33=1/2[x31,x32];
pth2 := z31{pdir}..z33..z32{pdir};                % T bar
n31 := n1;     % width of bowl
%%lft x34 = pcshiftx + n1 + 1/8n31;
lft x34 = n1 + 1/8n31;
y34 = 1/2n2;
x35=x33; bot y35 = 0;
rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2;
pth3 := z33..z34{down}..z35{right}..z36{pdir};    % T bowl

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

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


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


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


cmchar "Hyphen";
beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
adjust_fit(0,0);
pcshiftx:=sb/2;
numeric alpha; alpha:=w/8;
%%pickup quill;
%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
%%x12=rt x2; y12=bot y1+0.5thin;
%%draw_triangle(11,alpha);
%%draw_rutriangle(12,alpha);
%%pickup thickstylus;
pickup halfquill;
lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
draw z21--z22;
draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
penlabels(1,2);
endchar; % end of "-"


cmchar "En dash";
beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
adjust_fit(0,0);
pcshiftx:=sb/2;
numeric alpha; alpha:=w/8;
pickup quill;
%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
%%x12=rt x2; y12=bot y1+0.5thin;
%%draw_triangle(11,alpha);
%%draw_rutriangle(12,alpha);
%%pickup thickstylus;
pickup halfquill;
lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
draw z21--z22;
draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
penlabels(1,2);
endchar; % end of "--"


cmchar "Em dash";
beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
adjust_fit(0,0);
pcshiftx:=sb/2;
numeric alpha; alpha:=w/8;
pickup quill;
%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
%%x12=rt x2; y12=bot y1+0.5thin;
%%draw_triangle(11,alpha);
%%draw_rutriangle(12,alpha);
%%pickup thickstylus;
pickup halfquill;
lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
draw z21--z22;
draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
penlabels(1,2);
endchar; % end of "---"


cmchar "CMIN ampersand";
beginchar("&", 2sb#+hstretch*(5/4x_height#+2jut#), asc_height#, 0);
adjust_fit(0,0);
numeric n[];
path pth[];
pcshiftx:=sb;
pickup quill;
%% alpha looking part
n1 := w-2pcshiftx-jut;    % actual letter width
n2 := h/ascratio;         % x-height
n3 := 16/16n2;              % height of alpha
x1 = w-pcshiftx; bot y1 = 0;
x3 = pcshiftx + 12/16n1; y3 = 1/2n3;  % 10/16 too small
lft x5 = pcshiftx; y5=y3;
x4 = x6 = 1/2[x5,x3];
top y4 = n3; bot y6 = 0;
rt x8 = w-pcshiftx-jut; top y8 = h;
x9 = x8-2jut; x10 = x8+2jut;
y9 = y10 = y8;
pth1 := z1{left}..z3..z4{left}..z5{down}..z6{right}..z3..z8{up};
%% loop
z21 = z5;
z25 = point 1.5 of pth1;
x23 = 1/2[x21,x25];
y23 = 6/8[y4,y8];
pth2 := z21{up}..z23{right}..z25{down};
%%ductus:=true;
if ductus:
  pickup stylus;
fi
draw pth1; draw z9--z10;            % alpha part
draw pth2;                          % loop
penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,21,22,23,24,25);
endchar; % end of "&"

