% % lgrucl.mf % %% Cyrillic font container with T2 encoding beta-support % % This file is future part of lxfonts package % Version 3.5 // Patchlevel=1 % (c) O.Lapko % % This package is freeware product under conditions similar to % those of D. E. Knuth specified for the Computer Modern family of fonts. % In particular, only the authors are entitled to modify this file % (and all this package as well) and to save it under the same name. % % Content: % % Lowercase Russian letters with shape for Concrete Mathematic % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % List of letternames % % d % zh % k % l % ya % LHver_check(3,5); % like |version_check| in ec begingroup def is_egyptian = % |false| for most of the CM fonts, except funny fonts; % |true| for the CC fonts (serifs and (1.4max(fine#,crisp#, tiny#)stem#)) %added or (vair#>.52cap_stem#) enddef; lhchar "Lowercase Russian letter d (`concrete' form)"; cyrchar(d,10u#-.5width_adj# %en_width# ,x_height#,sbeak#); adjust_fit(serif_fit# if not serifs:+\\.5(stem#-u#),.5(stem#-u#)+ else:,fi\\ serif_fit#); %dl_adj numeric left_stem,right_stem,outer_jut,alpha; right_stem=stem-stem_corr; left_stem=min(hair if hefty: -3stem_corr fi,right_stem); outer_jut=.75jut; x4r=r-letter_fit-outer_jut- if serifs:.25 else:.5 fi u; x1l=w-x4r; y1=y4=0; x2-x1=x4-x3; if serifs: x3l=x2r+((x1r-x4l)*(vair/(h-vair))) if not is_egyptian:-.25left_stem fi else: x3r=x2r+apex_corr fi; y2=y3=h if not serifs:+apex_o+apex_oo fi; alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr); penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0); penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0); if serifs: numeric left_jut; left_jut=jut+left_stem; pickup tiny.nib; x5r=x3r; top y5=h; pos5(max(currentbreadth+eps,alpha*right_stem),0); fill stroke if is_egyptian: z1e--z2e else: z1e{(x2+2(stem-hair),y2)-z1}...{z2-(x1+.5(stem-hair),y1)}z2e fi; fill stroke z3e--z4e; x4:=x4r; if is_egyptian: else: x2:=x2+1.5(stem-hair); fi save slab; slab:=Vround(vair-vair_corr); serif(5,4,a,0,-left_jut); % upper serif else: z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if y0x_height+jut adjust_fit(if serifs:serif_fit# else:0 fi,serif_fit#); % lowerc_ya; pickup tiny.nib; pos1(stem',0); pos2(stem',0); rt x1r=rt x2r=hround(w-2.5u+.5stem'); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem penpos3(vair,90); penpos4(vair,90); penpos5(curve if hefty:-3stem_corr fi,180); y6r=y7r=hround (if serifs:.52h else:.5h fi-.6[thin_join,vair]/2); y6l=y7l=y6r+.6[thin_join,vair]; y6=y7=.5[y6l,y6r];% z3r=top z1; y4=y3; y5=.52[y6r,y4r]+eps; x7l=x7r=x2; x4+.25u=x6l=x6r; x4=.5w if serifs:+.25u else:-.25u fi; x5r=hround min(1.25u,2u-.5curve)+eps; x4l:=x4+.125curve; x6l:=x6l+.125curve; fill stroke {{interim superness:=more_super; z7e..pulled_arc.e(6,5) & pulled_arc.e(5,4)..z3e}}; % lobe numeric stem[],alpha,right_jut; right_jut=if serifs:.7jut else:.4tiny fi; stem1=max(tiny.breadth,hround(fudged.stem-3stem_corr)); lft x9l=hround(l+letter_fit+.3u+right_jut)-eps; bot y9=0; alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1); penpos9(alpha*(stem1-tiny),0); x8=x6l-if serifs:.75u else:.25u fi; y8=y6; if serifs: numeric theta; theta=angle(y1-y9,x9l-x1); y9'r=max(hair,.5stem); z9'l=z9'r+whatever*dir theta; else: y9'l=y9'r=0; fi z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9); z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9); z8=z9'+whatever*(z1-z9); penpos8(if serifs: alpha*stem1 else: stem fi-2stem_corr,0); if serifs: pickup if is_egyptian: crisp else: fine fi nib; lft x10=tiny.lft x9l-right_jut; if is_egyptian: y10r=0; penpos10(vair',-90); else: y10=-o; penpos10(max(fine.breadth+eps,hair-fine),-90); fi fill z8l if is_egyptian: ---z9'l...{z9l-z9r}(.35[x9l,x10l],y10l)-- else: {.5[z9l,z9]-z8l}...{z8l-z8r} fi z10l..(lft x10l,bot y10l)--(lft x10r,top y10r)..z10r if is_egyptian: --(.35[x9r,x10r],y10r){z9r-z9l}...z9'r--- else: {z8r-z8l}...{z8l-.5[z9l,z9]} fi z8r--cycle; % lower diagonal numeric inner_jut; if lft x2l-jut-.5u+1>=rt x9r+jut: inner_jut=jut; else: lft x2l-jut-.5u+1=rt x9r+inner_jut; fi save slab; slab:=Vround(vair-vair_corr); nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif slab:=vair; dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower serif else: fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; fi % diagonal penlabels(0,1,2,3,4,5,6,7,8,9,9',10); endchar; endgroup; endinput; %end of file