You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
7.5 KiB
172 lines
7.5 KiB
%% filename: serbspu.mf
|
|
%% version: 2.2
|
|
%% date: 1995/01/04
|
|
%%
|
|
%% American Mathematical Society
|
|
%% Technical Support
|
|
%% Publications Technical Group
|
|
%% 201 Charles Street
|
|
%% Providence, RI 02904
|
|
%% USA
|
|
%% tel: (401) 455-4080
|
|
%% (800) 321-4267 (USA and Canada only)
|
|
%% fax: (401) 331-3842
|
|
%% email: tech-support@ams.org
|
|
%%
|
|
%% Copyright 1995 Humanities and Arts Computing Center, University of
|
|
%% Washington.
|
|
%%
|
|
%% Unlimited copying and redistribution of this file are permitted as
|
|
%% long as this file is not modified. Modifications, and distribution
|
|
%% of modified versions, are permitted, but only if the resulting file
|
|
%% is renamed.
|
|
%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%This is serbspu.mf containing serbian and other letters with offsets
|
|
%of 8 between upper and lower case.
|
|
%spu = separate upper and lower case.
|
|
|
|
cmchar "The Ukrainian letter I";
|
|
beginchar(oct"004",max(6u#,4u#+cap_stem#),cap_height#,0);
|
|
italcorr cap_height#*slant-.25u#;
|
|
adjust_fit(cap_serif_fit#,cap_serif_fit#);
|
|
pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
|
|
lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
|
|
filldraw stroke z1e--z2e; % stem
|
|
if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
|
|
dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
|
|
math_fit(0,.5ic#); penlabels(1,2); endchar;
|
|
|
|
cmchar "The Serbian letter Soft DJ (looks like Th with a tail)";
|
|
beginchar(oct"006",15.5u#-width_adj#,cap_height#,0);
|
|
italcorr cap_height#*slant-beak_jut#-.25u#;
|
|
adjust_fit(0,0);
|
|
% c part
|
|
h:=x_height; w:=6.5u;
|
|
pickup fine.nib; pos2(vair',90); pos4(vair',270);
|
|
x2=x4=.5(w+u); top y2r=vround h; bot y4r=0;
|
|
pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
|
|
if serifs: pos1(hair,0); pos0(flare,0);
|
|
y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
|
|
rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
|
|
pos5(hair,0); lft x5l=w+1.5u; %rt x5r=hround(w+1.5u);
|
|
% y5=max(good.y(.5bar_height-.9),y4l+vair');
|
|
y5=.875y3;
|
|
(x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
|
|
filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
|
|
& pulled_super_arc.e(3,4)(.5superpull)
|
|
& pulled_super_arc.e(4,5)(.5superpull);
|
|
% ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
|
|
else: pos1(4/7[vair',flare],80);
|
|
rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
|
|
filldraw stroke term.e(2,1,right,.8,4); % upper terminal
|
|
%pos5(.6[vair',flare],275);
|
|
pos5(.6[vair',flare],360);
|
|
lft x5l=w+1.5u; %rt x5r=hround(w-.5u);
|
|
% y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
|
|
y5=.625y3;
|
|
% forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
|
|
% if angle direction 1 of p.e>75:
|
|
% p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
|
|
filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
|
|
& pulled_super_arc.e(3,4)(.5superpull)
|
|
& pulled_super_arc.e(4,5)(.5superpull); fi
|
|
%& p.e; fi % arc and lower terminal
|
|
x99=.5w; y99=.5h; flip(99);
|
|
currentpicture:=nullpicture; clearxy;
|
|
% T part
|
|
h:=vround(cap_height-2stem_corr); w:=13u;
|
|
pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
|
|
lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
|
|
filldraw stroke z1e--z2e; % stem
|
|
pickup crisp.nib; pos3(slab,90); pos4(hair,0);
|
|
top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.5beak)-eps;
|
|
arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
|
|
pos5(hair,180); x5=w-x4; y5=y4;
|
|
arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
|
|
if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,cap_jut); % lower serif
|
|
nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.325cap_jut); fi % upper bracketing
|
|
addto currentpicture also V shifted(x2r+1.5u,0);
|
|
math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
|
|
|
|
cmchar "The Serbian letter Soft T";
|
|
beginchar(oct"007",13u#,cap_height#,0);
|
|
italcorr cap_height#*slant-beak_jut#-.25u#;
|
|
adjust_fit(0,.75u#);
|
|
h:=vround(h-2stem_corr);
|
|
pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
|
|
lft x1l=lft x2l=hround(.5w-.5cap_stem-u); top y1=h; bot y2=0;
|
|
filldraw stroke z1e--z2e; % stem
|
|
pickup crisp.nib; pos3(slab,90); pos4(hair,0);
|
|
top y3r=h; x3=x1; rt x4r=hround(w-1.65u); y4=good.y(y3l-.5beak)-eps;
|
|
arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
|
|
pos5(hair,180); x5=w-x4-u; y5=y4;
|
|
arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
|
|
if serifs: dish_serif(2,1,c,1/3,cap_jut,d,1/3,.75cap_jut); % lower serif
|
|
nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
|
|
pickup tiny.nib;
|
|
pos33(stem,0); x33=hround(w-2.5u+.5stem);
|
|
h_stroke(2,q,33,34);
|
|
dish_serif(34,33,g,1/3,.75cap_jut,h,1/3,.75cap_jut);
|
|
math_fit(-.75cap_height#*slant,ic#-2.5u#);
|
|
penlabels(1,2,3,4,5,6,33,34); endchar;
|
|
|
|
cmchar "The Russian letter YO (looks like E umlaut)";
|
|
beginchar(oct"023",12u#-width_adj#,cap_height#,0);
|
|
% note height not adjusted for umlaut
|
|
italcorr cap_height#*slant-beak_jut#-.5u#;
|
|
adjust_fit(cap_serif_fit#,0);
|
|
h:=vround(h-stem_corr);
|
|
pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
|
|
lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
|
|
filldraw stroke z1e--z2e; % stem
|
|
pickup crisp.nib; pos3(slab,90); pos4(hair,0);
|
|
top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
|
|
arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
|
|
pos5(cap_bar,-90); pos6(hair,0);
|
|
top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
|
|
pos0(cap_bar,90); pos7(hair,0);
|
|
z0=z5; x6=x7; y6-y5l=y0l-y7;
|
|
if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
|
|
rt x9r=hround(w-.5u);
|
|
else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
|
|
arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
|
|
pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
|
|
bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
|
|
arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
|
|
if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
|
|
nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
|
|
x51=.5w; y51=h; umlaut(51,q);
|
|
math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
|
|
|
|
cmchar "The Old Russian letter YATZ";
|
|
beginchar(oct"043",12.5u#,body_height#,0);
|
|
italcorr .75cap_height#*slant-.5u#;
|
|
adjust_fit(2u#+cap_serif_fit#,0);
|
|
numeric left_stem,right_curve,middle_weight;
|
|
left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
|
|
pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
|
|
lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
|
|
filldraw stroke z1e--z2e; % stem
|
|
penpos3(cap_band,90); penpos4(cap_band,90);
|
|
penpos6(middle_weight,-90); penpos7(middle_weight,-90);
|
|
penpos8(middle_weight,90); penpos9(middle_weight,90);
|
|
penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
|
|
penpos11(cap_band,-90); penpos12(cap_band,-90);
|
|
z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
|
|
z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
|
|
x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
|
|
x5r=hround(w-1.5u); x10r=hround(w-u);
|
|
if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
|
|
else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
|
|
x4l:=x4l-.5u; x9l:=x9l-.5u; fi
|
|
x6l:=x6l-.5u; x11l:=x11l-.5u;
|
|
fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
|
|
if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
|
|
nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
|
|
pos53(slab,90); pos54(hair,0);
|
|
top y53r=.85h; x53=x1; rt x54r=hround(w-2.65u); y54=good.y(y53l-.5beak)-eps;
|
|
arm(53,54,m,beak_darkness,.7beak_jut); % right arm and beak
|
|
pos55(hair,180); x55=w-x54-4u; y55=y54;
|
|
arm(53,55,p,beak_darkness,-.7beak_jut); % left arm and beak
|
|
math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
|
|
|