%% upsilon.mf
  %% Copyright 2005 Laurie Field
  %
  % This work is LFB, version 1.0.
  %
  % This work may be distributed and/or modified under the
  % conditions of the LaTeX Project Public License, either version 1.3
  % of this license or (at your option) any later version.
  % The latest version of this license is in
  %   http://www.latex-project.org/lppl.txt
  % and version 1.3 or later is part of all distributions of LaTeX
  % version 2003/12/01 or later.
  %
  % This work has the LPPL maintenance status "maintained".
  % 
  % This Current Maintainer of this work is Laurie Field.
  %
  % This work consists of the files:
  %   
  %   example.tex
  %   lfbacc.tex
  %   
  %   accents.mf
  %   alpha.mf
  %   beta.mf
  %   capitals.mf
  %   charmap.mf
  %   delta.mf
  %   epsilon.mf
  %   eta.mf
  %   gamma.mf
  %   iota.mf
  %   kappa.mf
  %   khi.mf
  %   lambda.mf
  %   lfb.mf
  %   lfb5.mf
  %   lfb6.mf
  %   lfb7.mf
  %   lfb8.mf
  %   lfb9.mf
  %   lfb10.mf
  %   lfb11.mf
  %   lfb12.mf
  %   lfbb5.mf
  %   lfbb6.mf
  %   lfbb7.mf
  %   lfbb8.mf
  %   lfbb9.mf
  %   lfbb10.mf
  %   lfbb11.mf
  %   lfbb12.mf
  %   ligature.mf
  %   mu.mf
  %   nu.mf
  %   omega.mf
  %   omikron.mf
  %   others.mf
  %   phi.mf
  %   pi.mf
  %   psi.mf
  %   rho.mf
  %   serifs.mf
  %   sigma.mf
  %   sigmafin.mf
  %   tau.mf
  %   theta.mf
  %   upsilon.mf
  %   xi.mf
  %   zeta.mf
  %   
  % and the derived files:
  %   
  %   lfb5.tfm
  %   lfb6.tfm
  %   lfb7.tfm
  %   lfb8.tfm
  %   lfb9.tfm
  %   lfb10.tfm
  %   lfb11.tfm
  %   lfb12.tfm
  %   lfbb5.tfm
  %   lfbb6.tfm
  %   lfbb7.tfm
  %   lfbb8.tfm
  %   lfbb9.tfm
  %   lfbb10.tfm
  %   lfbb11.tfm
  %   lfbb12.tfm
  %   
  %   lfb5.600pk
  %   lfb6.600pk
  %   lfb7.600pk
  %   lfb8.600pk
  %   lfb9.600pk
  %   lfb10.600pk
  %   lfb11.600pk
  %   lfb12.600pk
  %   lfbb5.600pk
  %   lfbb6.600pk
  %   lfbb7.600pk
  %   lfbb8.600pk
  %   lfbb9.600pk
  %   lfbb10.600pk
  %   lfbb11.600pk
  %   lfbb12.600pk
  %

width#:=7u#;
extra#:=2.5letterspace#;
define_pixels(width, extra);
     
def gen_letter =
	penpos1(medium, 225);
	penpos2(medthin, 90);
	penpos3(thick, 0);
	penpos4(thick, 0);
	penpos5(medthin, 90);
	penpos6(thin, 135);
	penpos7(medthick, -150);
	penpos8(xthick, -110);
	
	y2r=x_height;
	y1l=y2l-thick;
	y3=y2l-thin;
	y4=y3-2u;
	y5l=0;
	y6l=y5r;
	y7l=y8r-thick;
	y8l=x_height;
	x1r=0;
	x2=x1+medium;
	x4l=x3l=x2+thin;
	x5=(x3l/2+width)/2;
	x7r=width-medthin;
	x8l=x6l=width-1u;
	z9=z8+((z8l-z8) rotated 90);
	
	fill z1l..tension 1.8..z2l..z3l---z4l..z5l..z6l..z7l..z8l..z9
		..z8r..z7r..tension 1.1..z6r..z5r..z4r---z3r..z2r
		..tension 1.5..z1r--cycle;
	
	numeric accent_centre;
	accent_centre=x5;
enddef;

beginchar(upsilon, width#+extra#, x_height#, 0);
gen_letter; penlabels(1,2,3,4,5,6,7,8,9);
endchar;

beginchar(upsilon_acc+smooth, width#+extra#, ascender#, 0);
gen_letter; acc_smooth;
endchar;

beginchar(upsilon_acc+rough, width#+extra#, ascender#, 0);
gen_letter; acc_rough;
endchar;

beginchar(upsilon_acc+acute, width#+extra#, ascender#, 0);
gen_letter; acc_acute;
endchar;

beginchar(upsilon_acc+grave, width#+extra#, ascender#, 0);
gen_letter; acc_grave;
endchar;

beginchar(upsilon_acc+circ, width#+extra#, ascender#, 0);
gen_letter; acc_circ;
endchar;

beginchar(upsilon_acc+smoothacute, width#+extra#, ascender#, 0);
gen_letter; acc_smoothacute;
endchar;

beginchar(upsilon_acc+smoothgrave, width#+extra#, ascender#, 0);
gen_letter; acc_smoothgrave;
endchar;

beginchar(upsilon_acc+smoothcirc, width#+extra#, ascender#, 0);
gen_letter; acc_smoothcirc;
endchar;

beginchar(upsilon_acc+roughacute, width#+extra#, ascender#, 0);
gen_letter; acc_roughacute;
endchar;

beginchar(upsilon_acc+roughgrave, width#+extra#, ascender#, 0);
gen_letter; acc_roughgrave;
endchar;

beginchar(upsilon_acc+roughcirc, width#+extra#, ascender#, 0);
gen_letter; acc_roughcirc;
endchar;

beginchar(upsilon_acc+diaer, width#+extra#, ascender#, 0);
gen_letter; acc_diaer;
endchar;

beginchar(upsilon_acc+diaeracute, width#+extra#, ascender#, 0);
gen_letter; acc_diaeracute;
endchar;

beginchar(upsilon_acc+diaergrave, width#+extra#, ascender#, 0);
gen_letter; acc_diaergrave;
endchar;

beginchar(upsilon_acc+breve, width#+extra#, ascender#-macronbreveshorter#, 0);
gen_letter; acc_breve;
endchar;

beginchar(upsilon_acc+macron, width#+extra#, ascender#-macronbreveshorter#, 0);
gen_letter; acc_macron;
endchar;