% EUROSP.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn % EXAMPLE FILE FOR SPECIAL EFFECTS % FILE SHOULD BE RENAMED WHENEVER IT IS MODIFIED! message "EUROSP.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn"; font_identifier:="EUROSP"; font_size 10pt#; u#:=20/36pt#; % values of cmr10 letter_fit#:=0pt#; cap_height#:=246/36pt#; fig_height#:=232/36pt#; x_height#:=155/36pt#; o#:=6/36pt#; % slightly smaller than for cmr10 % Switch to the driver file, but return in time to do the specials. Return:=1; input euromac; % ---------- Font dimensions ---------- font_slant 0; % most symbols are upright font_x_height x_height#; font_normal_space 6u#+2letter_fit#; font_normal_stretch 3u#; font_normal_shrink 2u#; font_quad 18u#+4letter_fit#; font_extra_space 2u#; % ---------- Generating symbols ---------- "Official euro symbol"; BoxHeight#:=cap_height#; C:=1; T:=1; S:=0; beginchar("E",0,BoxHeight#,0); draw_euro; endchar; "Thick"; BoxHeight#:=cap_height#; C:=1; T:=4/3; S:=0; beginchar("a",0,BoxHeight#,0); draw_euro; endchar; "Very thick"; BoxHeight#:=cap_height#; C:=1; T:=5/3; S:=0; beginchar("b",0,BoxHeight#,0); draw_euro; endchar; "Thin"; BoxHeight#:=cap_height#; C:=1; T:=2/3; S:=0; beginchar("c",0,BoxHeight#,0); draw_euro; endchar; "Very thin"; BoxHeight#:=cap_height#; C:=1; T:=1/3; S:=0; beginchar("d",0,BoxHeight#,0); draw_euro; endchar; "Dunhill"; BoxHeight#:=351/251*cap_height#; % Adjust C and T such that width and thickness equal those of the official % euro symbol T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0; C:=T; % first approximation C:=T/WidthFactor(C,T); % second approximation beginchar("e",0,BoxHeight#,0); draw_euro; endchar; "Tall"; BoxHeight#:=2*cap_height#; T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0; C:=T; C:=T/WidthFactor(C,T); beginchar("f",0,BoxHeight#,0); draw_euro; endchar; "Very tall"; BoxHeight#:=3*cap_height#; T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0; C:=T; C:=T/WidthFactor(C,T); beginchar("g",0,BoxHeight#,0); draw_euro; endchar; "Narrow"; BoxHeight#:=cap_height#; C:=1/2; T:=1; S:=0; beginchar("h",0,BoxHeight#,0); draw_euro; endchar; "Very narrow"; BoxHeight#:=cap_height#; C:=1/3; T:=1; S:=0; beginchar("i",0,BoxHeight#,0); draw_euro; endchar; "Wide"; BoxHeight#:=cap_height#; C:=2; T:=1; S:=0; beginchar("j",0,BoxHeight#,0); draw_euro; endchar; "Very wide"; BoxHeight#:=cap_height#; C:=3; T:=1; S:=0; beginchar("k",0,BoxHeight#,0); draw_euro; endchar; "Leaning backward"; BoxHeight#:=cap_height#; C:=1; T:=1; S:=-1/6; beginchar("l",0,BoxHeight#,0); draw_euro; endchar; "Leaning forward"; BoxHeight#:=cap_height#; C:=1; T:=1; S:=1/2; beginchar("m",0,BoxHeight#,0); draw_euro; endchar; "Leaning very forward"; BoxHeight#:=cap_height#; C:=1; T:=1; S:=1; beginchar("n",0,BoxHeight#,0); draw_euro; endchar; "Mirrored"; BoxHeight#:=cap_height#; C:=1; T:=1; S:=0; begingroup; save add_transform; def add_transform = identity % w=box width in pixels reflectedabout ((1/2w,0),(1/2w,h)); enddef; % h=box height in pixels beginchar("o",0,BoxHeight#,0); draw_euro; endchar; endgroup; "Rotated"; BoxHeight#:=cap_height#; C:=1; T:=1; S:=0; begingroup; save add_transform; def add_transform= identity rotatedabout ((1/2w,1/2h),180); enddef; beginchar("p",0,BoxHeight#,0); draw_euro; endchar; endgroup; "Tilted"; BoxHeight#:=cap_height#; C:=1; T:=1; S:=0; begingroup; save add_transform; def add_transform= identity rotatedabout ((LeftMargin+0.638OuterDiameter,1/2h),5); enddef; beginchar("q",0,BoxHeight#,0); draw_euro; endchar; endgroup; bye