metafont
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

vcaltlig.mf
text/plain

Download raw (3.0 KB)

% vcaltlig.mf ligatures for vicentino fonts
% kraml 1992
slant := lowerslant;
currenttransform := identity slanted slant;


beginchar(char11, 2sw#+1.5tw#, xh#, 0); "the st ligature";
pickup lower_pen;
x1=x2=.5sw+.5tw; top.y1=h; bot.y2=0;
x3=.75tw; rt.x4=sw+tw; y3=.76h; y4=.3h;
x5=sw+.3tw; lft.x6=.6s; y5=y3+.55th; y6=y4-3/4th;
path trial,p;
trial = z3{down}..tension1.1..{down}z4;
z7 = trial intersectionpoint (z6{up}..{up}z5);
p = z7..tension1.3..z5..z1{left}..z3{down}..tension1.1..
z4{down}..z2{left}..z6..tension2.5..cycle;
draw subpath if modern:(.77,6.11) else: (.75,6.23) fi of p;
% t part
x11=x12=w-1.26tw; rt.x13=w; y11=h+2.5th; bot.y12=0; y13=th;
y14=y15=xh-th; lft.x14=sw+1tw; x15=x13;
path stem;
stem=z11{curl0}..tension7..z12..tension2..{dir40}z13;
draw if modern: subpath(0,1.6) of fi stem;
draw z14--z15;
% connection
x19=.66sw; y19=h+th;
path conn; conn=subpath(0,1) of p & z5{up}...z19{dir79}
      ..tension.9 ..{dir59}z11;
if not.modern: pickup cap_serif_pen; fi
draw if modern: subpath(1.1,2.93) else: subpath(1.15,2.8) fi of conn;
labels(19);
end_char;

beginchar(char12, 2sw#+1.5tw#, xh#, 0); "the ct ligature";
pickup lower_pen;
numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.5s;
rt x1=2axis-.5s; lft x3=.5s; 
x2-dev=x4+dev=axis; 
y1-dev=y3+dev=.52h;
top.y2=h; bot y4=0;
rt.x5+.25s=rt.x6=sw+tw-.2s; y5=3/4h; y6=th;
path p,q ; p= superellipse(z1,z2,z3,z4,0.73);
q= z5..{left}z2 & subpath(2,6) of p & z4{right}..{dir36}z6;
draw q;
% t part
x11=x12=w-1.26tw; rt.x13=w; y11=h+2.5th; bot.y12=0; y13=th;
y14=y15=xh-th; lft.x14=sw+1tw; x15=x13;
path stem;
stem=z11{curl0}..tension7..z12..tension2..{dir40}z13;
draw if modern: subpath(0,1.6) of fi stem;
draw z14--z15;
% connection
x19=.72sw; y19=h+th;
path conn; conn=z2{left}..z19{dir79}
      ..tension.9 ..{dir59}z11;
if not.modern: pickup cap_serif_pen; fi
draw if modern: subpath(0.1,1.93) else: subpath(0.1,1.8) fi of conn;
labels(19);
end_char;

beginchar(char13, 3sw#+tw#, xh#, 0); "the sp ligature";
pickup lower_pen;
x1=x2=.5sw+.5tw; top.y1=h; bot.y2=0;
x3=.75tw; rt.x4=sw+tw; y3=.76h; y4=.3h;
x5=sw+.3tw; lft.x6=.6s; y5=y3+.55th; y6=y4-3/4th;
path trial,p;
trial = z3{down}..tension1.1..{down}z4;
z7 = trial intersectionpoint (z6{up}..{up}z5);
p = z7..tension1.3..z5..z1{left}..z3{down}..tension1.1..
z4{down}..z2{left}..z6..tension2.5..cycle;
draw subpath if modern:(.77,6.11) else: (.75,6.23) fi of p;
% p part
x11=x12=w-sw-tw; y11=h+2.55th; bot.y12=-dh+1.3th;
lft.x13=w-sw-2.25tw; y13=h-th; top.y14=h; x14=x15=w-.5sw-tw; bot.y15=0;
rt.x14'=w-.5s; y14'=.525h;
rt.x12'=lft.x13; bot.y12'=-dh;  
path stem, bowl; stem = z11{dir240}..tension3.3..{dir255}z12..{dir170}z12' ;
z16 = stem horintersection 1.25th;
draw if modern: subpath(0,1.8) of fi stem;
bowl=z13{dir35}...z14{right}..z14'{down}..z15{left}..{dir105}z16;
draw if modern: subpath(0.15,4) of fi bowl;
% connection
x19=.66sw; y19=h+th;
if not.modern: pickup cap_serif_pen;fi
path conn; conn=subpath(0,1) of p & z5{up}...z19{dir79}
      ..tension.9..{dir59}z11;
draw if modern: subpath(1.1,2.93) else: subpath(1.15,2.8) fi of  conn;
labels(19);
end_char;