metafont
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

vcupper.mf
text/plain

Download raw (11.4 KB)

% upper case:
slant := upperslant;
currenttransform := identity slanted slant;

beginchar("A", 2.75sw#, ch#, 0); "the letter A";
pickup lower_pen;
lft.x1=w-rt.x5=0; x2=1.25tw; w-x4=tw; 
x3= if modern: .56[x2,x4]
else: x4-(y3-y4)*upperslant
fi;
top.y1=bot.y2=bot.y4=0; top.y3=h; y5=3/4th;
path p;
p=z1{right}..z2..tension3..z3---z4...{dir35}z5;
draw if modern: subpath(0.5,3.37) of fi p;
z7=(subpath(2,3) of p) horintersection 1/3h;
y6=y7; rt.x6=x2+.25s;
draw if modern: subpath(0.18,1) of fi z6..z7;
end_char;

beginchar("B", 2.25sw#, ch#, 0); "the letter B";
pickup lower_pen;
x1=x2+tw=1.5tw; x3=w-2.35tw; x4=.53[x2,x3];
x1'=x1''=tw; y1'=h-4.5th; y1''=4.5th;
top.y1=h; y2=-th; top.y3=h; y4=.56h; bot.y5=0;
z5=(z1''{down}...z2{dir215}) horintersection y5;
path curve; 
curve=z1{dir215}...z1'{down}..z1''{down}..z5..z2{dir215}
      ..z3{right}..{left}z4 & z4{right}..tension.75..{dir155}z5;

draw subpath(0.1,3) of curve;
draw if modern: subpath(4.9,7) else: subpath(4.87,7) fi of curve;
end_char;

beginchar("C", 2.75sw#, ch#, 0); "the letter C";
pickup lower_pen;
lft.x1=0; x4=tw; x2-3s=x3-2s=x5=w/2; x6=w-.5tw;
y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.5h;
path curve;
curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6;
draw if modern: subpath(1.25,5) else: subpath(1,5) fi of curve;
end_char;

beginchar("D", 2.5sw#, ch#,0); "the letter D";
pickup lower_pen;
x1=x2+tw=x1'+.5tw; x3=x1+1.1tw; rt.x4=w-.25s;
x1'=x1''=1.1tw; y1'=h-4.25th; y1''=4.25th;
top.y1=h; y2=-th; top.y3=h; y4=.53h; bot.y5=0;
z5=(z1''{down}...z2{dir215}) horintersection y5;
lft.z3'=(.1s, h-th);
path stem, curve; 
stem=z1{dir215}...z1'{down}..z1''{down}..z5;
curve=z3'{dir36}..z1..z3...z4{down}..tension.85..{dir164}z5;
draw stem;
draw if modern: subpath(.25,4) of fi curve;
end_char;

beginchar("E", 2.5sw#, ch#, 0); "the letter E";
pickup lower_pen;
lft.x1=0; x4=tw; x2-3s=x3-2s=x5=w/2; x6=w-.5tw;
y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.5h;
path curve;
curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6;
draw if modern: subpath(1.25,5) else: subpath(1.15,5) fi of curve;
y7=y8; x7=.5tw; y7=.52h;
x8=w-1.25tw;
draw z7--z8;
end_char;

beginchar("F", 2.5sw#, ch#, 0); "the letter F";
pickup lower_pen;
x1=x2=.475w; y2=0;
lft.x3=0; y3=-2/3dh; top.y1=h;
path p;
p=z1..z2{down}...{dir150}z3;
lft.x4=.2tw; x5=.26w; x6=.8w; rt.x7=w-.1s;
y4=h-4.5th; top.y5+.15s=top.y6=h; y7=h; 
path curve; 
curve=z4{dir125}..z5..tension1.25..z1---z6...z7;
draw if modern: subpath(0,1.7) of fi p;
draw if modern: subpath(.6,3.65) of fi curve;
y7'=y8;
x7'=w/3; y7'=.55[y3,y1];
x8=w-.77tw;
draw if modern: subpath(.09,.9) of fi (z7'--z8);
end_char;

beginchar("G", 2.75sw#, ch#, 0); "the letter G";
pickup lower_pen;
lft.x1=0; x4=3/4tw; x2-3s=x3-2s=x5=w/2; x6=w-.7tw;
x8=x6; x7-s=w/2;
y7=y8-.18th=2/3xh;
y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.48h;
path curve, second;
curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6;
second= z7{dir14}...z8 softjoin z8{dir260}..{down}z6;
draw if modern: subpath(1.3,5) else: subpath(1.15,5) fi of curve;
draw second;
end_char;

beginchar("H", 2.65sw#, ch#, 0); "the letter H";
pickup lower_pen;
x1=x2=x3+.75s=1.5tw; y2=3th;
bot.y3=0; top.y1=h;
y1'=h-1.25th; z1-z1'=whatever*dir25;
path p,q;
p=z1'..tension11..z1{down}..z2{down}...{dir200}z3;
draw if modern: subpath(.75,2.95) of fi p;
rt.x4=w-1/3s; x5+1/2s=x6=w-1.2tw; rt.x7=w-.5s;
top.y4=h; y5=.52h; bot.y6=0; y7=th;
q=z4{dir169}...z5{down}...{right}z6...{dir35}z7;
draw if modern: subpath(.12,2.2) of fi q;
y8=y5; x8=.8tw; draw if modern: subpath(.05,1) of fi (z8--z5);
if not.modern: 
cap_bot_serif(x2);
fi
end_char;

beginchar("I", 1.5sw#, ch#, 0); "the letter I";
pickup lower_pen;
x1=x2=x3+.75s=w/2 +.25s; y2=3th;
bot.y3=0; top.y1=h;
path p;
p=z1..z2{down}...{dir200}z3;
draw if modern: subpath(0,1.95) of fi p;
if not.modern: 
cap_top_serif(x2,1.18tw);
cap_bot_serif(x2);
fi
end_char;

beginchar("J", 1.5sw#, ch#, 0); "the letter J";
pickup lower_pen;
x1=x2=w/2 +.25s; y2=0; rt.x3=-s;
y3=-2/3dh; top.y1=h;
path p;
p=z1..z2{down}...{dir150}z3;
draw if modern: subpath(0,1.95) of fi p;
if not.modern: 
cap_top_serif(x2,1.18tw);
fi
end_char;

beginchar("K", 2.5sw#, ch#, 0); "the letter K";
pickup lower_pen;
x1=x2=x3+.75s=1.5tw; y2=3th;
bot.y3=0; top.y1=h;
y1'=h-1.25th; z1-z1'=whatever*dir25;
path p;
p=z1'..tension11..z1{down}..z2{down}...{dir200}z3;
draw if modern: subpath(0.7,2.95) of fi p;
pickup lower_pen;
x4=w-tw; lft.x5=rt.x2; x6=w+1.5tw;
y4=h; y5=.53h; y6=-1.33th;
path q;
q=z4{dir-80}..{dir225}z5 & z5{dir-49}..tension if modern: 1.4 else: 1.2 fi
        ..{dir35}z6;
draw if modern: subpath(0.04,1.66) of fi q;
if not.modern:
cap_bot_serif(x2);
fi
end_char;

beginchar("L", 2.25sw#, ch#, 0); "the letter L";
pickup lower_pen;
x3'-.5s=x4'=1.1tw; x2-s=x3=w/2+1s; lft.x5=0.5s; x6=w-.5tw; x6'=w-2tw;
y2=.7h; y3=h; y5=bot.y5'=bot.y6'=0; 
y6=1.5th; y4'=2th; y3'=h-2.5th;
path p, q;
p=z2{dir35}..z3{left}..tension.95..z3'..
      tension if modern: 1.9 else: 1.5 fi ..z4'..z5{dir205};
z5'=p horintersection y5';
q = z5'{dir if modern: 10 else: 15 fi}..z6'{right}..{dir80}z6;
draw if modern: subpath(1.33,3.8) else: subpath(0,4) fi of p;
draw if modern: subpath(0,1.8) of fi q;
labels(3',4');
end_char;

beginchar("M", 3.5sw#, ch#, 0); "the letter M";
pickup lower_pen;
lft.x1=.1s; x3=w/2+1/4s; x2-.5s=w-x4=1.8tw; rt.x6=w-.15s; x5=w-tw;  
bot.y1=0; bot.y3=
bot.y5=0; y6=th; top.y2=y4=h;
x1'=1.15tw; y1'=th;
z2'=(1.3tw,h);
path p,q;
p = z1{dir-55}..z1'..tension1.4..{dir78}z2;
q = z2'{dir40}.. z2{dir-62}..tension if modern: 1.9 else: 1.7 fi ..z3{down}
    & z3{dir89}..tension1.15..z4{dir70}
    & z4{dir280}..tension if modern: 6 else: 5 fi ..z5{right}..z6;
draw if modern: subpath(.36,2) of fi p;
draw if modern: subpath(.8,4.3) of fi q;
end_char;

beginchar("N", 2.75sw#, ch#, 0); "the letter N";
pickup lower_pen;
lft.x1=.2s; x4=w; x2=1.5tw; x3=w-1.2tw;
bot.y1=0; bot.y3=.66s; top.y2=y4=h+.1s;
x1'=1.25tw; y1'=.5th; z2'=(.75tw,h);
bot.rt.z3'=(w,0); z4'=(w-1.15tw, h-1.2th);
path p,m,mt,q;
p = z1{dir-56}..z1'...{up}z2 ;
q = z3{dir96}..tension2..z4'...{dir-22}z4;
m = z2'{dir40} .. z2{dir-55}..tension if modern: 1.15 else: 1.05 fi ..z3
    ..{dir30}z3';
draw if modern: subpath(.67,2) of fi p;
draw if modern: subpath(.83,2.5) of fi m;
draw if modern: subpath(0,1.4) of fi q;
end_char;

beginchar("O", 2.75sw#, ch#, 0); "the letter O";
pickup lower_pen;
numeric dev; dev=3/4s;
rt.x1=w-s; lft.x3=s; 
x2-dev=x4+dev=w/2; 
y1-dev=y3+dev=.52h;
top.y2=h; bot.y4=0;
draw superellipse(z1,z2,z3,z4,.74);
end_char;

beginchar("P", 2.25sw#, ch#, 0); "the letter P";
pickup lower_pen;
x1=x2=x3+.75s=1.5tw; y2=3th;
bot.y3=0; top.y1=h;
path p;
p=z1..z2{down}...{dir200}z3;
lft.x4=.1s; x5=.55w; x6=w-.6tw; lft.x7=rt.x1+.1s;
y4=h-th; top.y5=h; y6=.74h; y7=.45h;
path curve; 
curve=z4{dir36}..z1..z5..{down}z6..{dir158}z7;
draw p;
draw if modern: subpath(.55,4) of fi curve;
if not.modern: 
cap_bot_serif(x2);
fi
end_char;

beginchar("Q", 2.75sw#, ch#, 0); "the letter Q";
pickup lower_pen;
numeric dev; dev=3/4s;
rt.x1=w-s; lft.x3=s; 
x2-dev=x4+dev=w/2; 
y1-dev=y3+dev=.52h;
top.y2=h; bot.y4=0;
path p,q;
p=superellipse(z1,z2,z3,z4,.74);
z5 = (1.2tw,-th); z4'=(x4,0);
z6 = (w+1.5tw,-1.33th); q=z5{dir30}..z4'{right}..{dir35}z6;
draw p; draw if modern: subpath(.35,1.7) of fi q;
end_char;

beginchar("R", 2.5sw#, ch#, 0); "the letter R";
pickup lower_pen;
x1=x2=x3+.75s=1.5tw; y2=3th;
bot.y3=0; top.y1=h;
path p;
p=z1..z2{down}...{dir200}z3;
lft.x4=0; x5=.55w; x6=w-1.33tw; lft.x7=rt.x1+.1s;
y4=h-th; top.y5=h; y6=.77h; y7=.52h;
x9=w+ if twisted: .3 else: 1.5 fi tw; 
y9=if twisted: 1.95th else: -1.33th fi; 
x7'= if twisted:.5 else:.36 fi[x7,x9];
y7'= if twisted: .77 else:.36 fi[y7,y9];
path curve; 
curve=z4..z1..z5..{down}z6..z7 & z7{dir-10}..if modern: tension.8.. fi
      z7'..if twisted: tension.77..{dir85} else:{dir36} fi z9;
draw p;
draw if modern: if twisted: subpath(.55,5.7) else: subpath(.55,5.4) fi of fi 
curve;
if not.modern: cap_bot_serif(x2); fi
end_char;

beginchar("S", 2.35sw#, ch#, 0); "the letter S";
pickup lower_pen;
x1=x2=w/2; if modern: top. else: fi y1=h; bot.y2=0;
x3=1.25tw; rt.x4=w-.5s; y3=.78h; y4=.3h;
x5=w-1.2tw; lft.x6=0.75s; y5=y3+1.15th; y6=y4-1.75th;
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;
end_char;

beginchar("T", 2.5sw#, ch#, 0); "the letter T";
pickup lower_pen;
x1=x2=x3+.75s=.56w; y2=3th;
bot.y3=0; top.y1=h;
path p;
p=z1..z2{down}...{dir200}z3;
lft.x4=.2tw; x5=.26w; x6=.8w; rt.x7=w-.1s;
y4=h-4.5th; top.y5+.15s=top.y6=h; y7=h; 
path curve; 
curve=z4{dir125}..z5..tension1.25..z1---z6...z7;
draw p;
draw if modern: subpath(.62,3.53) of fi curve;
if not.modern: 
cap_bot_serif(x2);
fi
end_char;

beginchar("U", 2.6sw#, ch#, 0); "the letter U";
pickup lower_pen;
x3=2.1tw; x4=x5=w-1.1tw; x1=if modern: 1.5 else:2 fi tw; rt.x6=w;
lft.x1'=s; y1'=.4h;
top.y4=h; bot.y3=bot.y5=0;
top.y1=h; y6=1.25th;
x4'=x4-.25s; y4'=xh-s;
y2'=h-.85th; z4-z2'=whatever*dir22;
path lstem, rstem;
lstem=z1..{down}z1'..z3{right}..tension1.2..{dir80}z4';
rstem=z2'..tension11..z4{down}..z4'..tension5.5..z5{right}..
            tension1.2..{dir36}z6;
draw lstem;
draw if modern: subpath(.67,3.3) of fi rstem;
if not.modern: cap_top_serif(x1-.2tw,.2tw); fi
labels(4');
end_char;

beginchar("V", 2.6sw#, ch#, 0); "the letter V";
pickup lower_pen;
x4-x5=.85tw;
x1=if modern:1.25 else: 2 fi tw; rt.x4=w-.85tw; x3=1/3[x1,x4];
top.y4=h; top.y1=h; y5=h-1.5th; bot.y3=0;
path stem;
stem =z1{dir200}..tension3..
     z3{right}..tension2.5..z4{left}..tension1.5..z5;
draw if modern: subpath(0,2.1) of fi stem;
if not.modern: cap_top_serif(x1-.2tw,.2tw); fi
end_char;

beginchar("W", 3.25sw#, ch#, 0); "the letter W";
pickup lower_pen;
x7-x8=.9tw;
x1=if modern:1.25 else: 2 fi tw; rt.x7=w-.85tw; x3=1/3[x1,x4];
x7-x4=x6-x3=x4-x1;
top.y7=top.y1=h; y8=h-1.5th; bot.y3=bot.y6=0; y4=xh+s;
path lstem, rstem;
lstem=z1{dir200}..tension3..
    z3{right}..tension2.25..z4{dir125}; 
rstem=z4{dir-10}..tension6..z6{right}..tension2.5..z7{left}..tension1.5..z8;
draw if modern: subpath(0,2.9) of fi lstem;
draw if modern: subpath(0.1,2.15) of fi rstem;
if not.modern: cap_top_serif(x1-.2tw,.2tw); fi
end_char;

beginchar("X", 2.65sw#, ch#, 0); "the letter X";
pickup lower_pen;
x1=1.3tw; lft.x5=.5s; x6=1tw; lft.x1'=.275tw;
x7=w-1.25tw; rt.x8=w-s; rt.x4=w-1/3s; x3=w-1.25tw;
top.y7=h; top.y1=h; y8=h-1.25th; y1'=h-th;
y5=y4=1.25th; 0=bot.y6=bot.y3;
path nwso, swno;
nwso=z1'..z1{right}..tension if modern:8 else: 6 fi
      ..{right}z3...{dir35}z4;
swno=z5..tension2..z6{right}..tension2.5..{right}z7...{dir-65}z8;
draw if modern: subpath(.7,2.3) of fi nwso;
draw if modern: subpath(.8,2.2) of fi swno;
end_char;

beginchar("Y", 2.5sw#, ch#, 0); "the letter Y";
pickup lower_pen;
x2=w/2; lft.x1=w-rt.x3=.25s;
bot.y2=0; top.y1=top.y3=h;
z8=(x2,.4xh);
path lp,rp;
lp=z1{dir35}..tension1.625..{dir267}z8---z2;
rp=z8{up}..tension1.45..{dir-20}z3;
draw if modern: subpath(.08,2) of fi lp;
draw if modern: subpath(0,.9) of fi rp;
if not.modern: cap_bot_serif(x2); fi
end_char;

beginchar("Z", 2.35sw#, ch#, 0); "the letter Z";
pickup lower_pen;
lft.x1=lft.x4=0.25tw; rt.x3+1/3tw=w; 
x2=1.25tw; 
top.y2=top.y3=h; y1=h-1.5th; bot.y4=0;
z6=(w+1.5tw, -1.33th);
path stem;
stem=z1{dir38}...z2..
     if modern: tension 1.2 else: tension.85 fi ..
     {dir40}z3 &  z3..tension6.. {dir265}z4 &
     z4{dir35}..{dir35}z6;
draw if modern: subpath(.25,3.77) of fi stem;
y7=y8=.55h; x7+.75tw=x8-.925tw=w/2;
draw z7--z8;
end_char;