% magrcaps.mf 1.2.0 1994/10/11 -- caps in greek and not latin
% Copyright 1994 P. Damian Cugley

%%% @METAFONT-file {
%%%   filename       = "magrcaps.mf",
%%%   version        = "1.2.0",
%%%   date           = "1994/10/11",
%%%   package        = "Malvern 1.2",
%%%   author         = "P. Damian Cugley",
%%%   email          = "damian.cugley@comlab.ox.ac.uk",
%%%   address        = "Oxford University Computing Laboratory,
%%%                     Parks Road, Oxford  OX1 3QD, UK",
%%%   codetable      = "USASCII",
%%%   keywords       = "Malvern, METAFONT, font, typefont, TeX",
%%%   supported      = "Maybe",
%%%   abstract       = "Greek cap. character programs for the Malvern
%%%                     font family.",
%%%   dependencies   = "other program files",
%%% }

%  See the Malvern Handbook (maman.tex) for more info about Malvern.
%  This software is available freely but without warranty.
%  See the file COPYING for details.

%{{{ magrcaps.mf

set_cap_widths;

if testing: endinput fi

"Greep capital Gamma"; do_EFL(code.gr.cap.gamma, true, 0, 0, false);
%{{{   Delta, Lambda

"Greek capital Delta";
ma_cap(code.gr.cap.delta, wide_wd# + 3pn_adj#)(1/3,1/3);
    A_body(false, true);
endchar;

"Greek capital Lambda";
ma_cap(code.gr.cap.lambda, wide_wd# + 3pn_adj#)(1/3,1/3);
    A_body(false, false);
endchar;

%}}}
%{{{   Theta, Koppa

"Greek Capital Theta"; 
ma_char(code.gr.cap.theta, O_wd#, height#, 0v#)(O_sp, O_sp);
    draw_O;
    y1bar = y2bar = good.y 0.505h;
    lft x1bar = w - rt x2bar = max(1/5[l,r], rt x2 + 1/2u);
    draw z1bar -- z2bar;
    labels(1bar, 2bar);
    set_ic_O;
endchar;

iff known code.gr.cap.koppa: "Greek Capital Koppa";
ma_char(code.gr.cap.koppa, O_wd#, height#, desc_dp#)(O_sp, O_sp);
    if 1/2w <> good.x 1/2w: change_width; fi
    draw_O;     set_ic_O;
    z1stroke = good.top (1/2w, 1/3h);
    bot y2stroke = -d; x2stroke = x1stroke;
    draw z1stroke -- z2stroke;
    labels(1stroke, 2stroke);
endchar;

%}}}
%{{{   Xi

iff known code.gr.cap.xi1: "eccentric Greek capital Xi";
ma_cap(code.gr.cap.xi1, medium_wd# + 2pn_adj#)(1/2,1/2);
    lft x1 = lft x5 = w - rt x2 = w - rt x6 = l;
    top y1 = top y2 = h; bot y5 = bot y6 = -d;
    y3 = y4 = good.y 0.55[-d, h];
    lft x3 = w - rt x4 = max(lft x1 + 1/2u, 1/5[l,r]);
    draw z1 -- z2 -- bot z2 
    	-- top z3 -- z3 -- z4 -- bot z4
    	-- top z5 -- z5 -- z6;
    labels(range 1 thru 6); set_ic_tr;
endchar;

iff known code.gr.cap.xi: "Greek capital Xi";
ma_cap(code.gr.cap.xi, medium_wd# + 2pn_adj#)(1/2,1/2);
    lft x1 = lft x5 = w - rt x2 = w - rt x6 = l;
    top y1 = top y2 = h; bot y5 = bot y6 = -d;
    y3 = y4 = good.y 0.55[-d, h];
    lft x3 = w - rt x4 = max(lft x1 + 1/2u, 1/5[l,r]);
    draw z1 -- z2;
    draw z3 -- z4;
    draw z5 -- z6;
    labels(range 1 thru 6); set_ic_tr;
endchar;

%}}}
%{{{   Pi

ma_cap(code.gr.cap.pi, medium_wd# + 2pn_adj#)(1,1);
    lft x1 = lft x2 = w - rt x3 = w - rt x4 = l;
    top y2 = top y3 = h; bot y1 = bot y4 = -d - o;
    draw z1 -- z2 -- z3 -- z4;
    set_ic_tr;
    labels(1,2,3,4);
endchar;

%}}}
%{{{   Sigma

ma_cap(code.gr.cap.sigma, medium_wd# + 2pn_adj#)(1/3,1/2);
    rt x1 = rt x5 = r; lft x2 = lft x4 = l;
    top y1 = top y2 = h; bot y4 = bot y5 = -d;
    y3 = 0.54[y4, y2]; x3 = good.x 0.7[x2, x1];
    draw z1 -- z2 -- bot z2 -- z3 -- top z4 -- z4 -- z5;
    labels(1, 2, 3, 4, 5);
    set_ic_tr;
endchar;

%}}}
%{{{   Upsilon

iff known code.gr.cap.upsilon:
ma_cap(code.gr.cap.upsilon, medium_wd# + 2pn_adj#)(1/2,1/2); 
    draw_Y(0.55[-d, h]); set_ic_tr; 
endchar;

iff known code.gr.cap.upsilon1:
ma_cap(code.gr.cap.upsilon1, medium_wd# + 2pn_adj#)(1/3,1/3);
    if 1/2w <> good.x (1/2w): change_width; fi
    x2stem = x1stem = 1/2w;
    bot y2stem = d - o; y1stem = 0.475[-d, h];
    lft x1arm = l; top y2arm = h; 
    y1arm = bot y2arm; x2arm = rt x1arm;
    y3arm = y1arm; lft x3arm = rt x2arm;
    path p; p = z1arm ... z2arm ... z3arm{z1stem - z2arm} ... z1stem;
    draw p; draw p reflectedabout(z1stem, z2stem);
    draw z1stem -- z2stem; 
    labels(1stem, 2stem, 1arm, 2arm); set_ic_tr;
endchar;

%}}}
%{{{   Phi, Psi

def PhiPsi(expr pp) = 
    if 0.5w <> good.x 0.5w: change_width; fi
    top z1stem = (1/2w, h + o); bot z2stem = (1/2w, -d - o);
    top y1a = top y1b = bot y3a + 8v = bot y3b + 8v
    	= vround (1/2[-d, h] + 4v);
    x1a = x3a = lft x1stem; x1b = x3b = rt x1stem;
    lft x2a = w - rt x2b = l; y2a = y2b = 1/2[y1a, y3a];
    forsuffixes $ = a,b:
    	draw 
    	    if pp: z1${(x2$ - x1$, 0)}
    	    	... (1/sqrt2)[(x1$, y2$), (x2$, y1$)]{z2$ - z1$}
    	    else: (x2$, y1$)
    	    fi
    	    ... z2${down}
    	    ... (1/sqrt2)[(x3$, y2$), (x2$, y3$)]{z3$ - z2$}
    	    ... z3${(x3$ - x2$, 0)};
    endfor;
    draw z1stem -- z2stem;
    labels(1stem, 2stem);
enddef;

"Greek capital Phi"; ma_cap(code.gr.cap.phi, 8u# + pn.wd#)(1/2, 1/2); PhiPsi(true); endchar;
"Greek capital Psi"; ma_cap(code.gr.cap.psi, 6u# + 3pn.wd#)(1/2, 1/2); PhiPsi(false); endchar;
%}}}
%{{{   Omega

%	    6
%	 5     7
%      4	 8
%
%	 3     9
%      1   2   10 11

"Greek Capital Omega";
ma_char(code.gr.cap.omega, O_wd#, height#, 0v#)(O_sp, O_sp);
    lft x1 = w - rt x11 = lft x4 = w - rt x8 = l;
    bot y1 = bot y2 = bot y10 = bot y11 = -d;  top y6 = h + o;
    x6 = 1/2[l,r];
    rt x2 = w - lft x10 = hround min(1/2w - 1/2u, 1/3[l,r]);
    y4 = y8 = 0.52[top y2, y6]; 
    numeric super; super = 1/sqrt2;
    z5 = super[(x6, y4), (x4, y6)]; z7 = super[(x6, y8), (x8, y6)];
    x3 = x5; x9 = x7;
    1/2[y3, y5] = 1/2[y9, y7] = y4;
    draw z1 -- z2 --- top z2 
	... z3{z6 - z8} ... z4 ... z5{z6 - z4} ... z6 ... z7{z8 - z6} ... z8 
	... z9{z4 - z6} ... top z10 --- z10 -- z11;
    labels(range 1 thru 11);
    set_ic_O;
endchar;


%}}}
%{{{   Digamma/Wau

if known code.gr.cap.digamma:
    do_EFL(code.gr.cap.digamma, true, 0, 5/6, false);
fi

%}}}   Digamma
%{{{   Lunate Sigma

iff known code.gr.cap.sigma1: "Capital Greek lunate Sigma";
ma_cap(code.gr.cap.sigma1, medium_wd# + pn_adj#)(1/2,1/3);
    draw_C(l, h, r, -d) 0; set_ic_tr; 
endchar;

%}}}   Lunate Sigma

greek_names := 1;
input maglcaps

%}}} magrcaps.mf

%Local variables:
%fold-folded-p: t
%End: