%% %% 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 "&"