% Ayn and Hamza (smooth and rough breathing) for Computer Modern % These letters were originally coded by P. A. MacKay in December, 1986, % Ayn and Hamza are based on the comma supplied in {\tt cmbase.mf}, % but the jut is increased, the tail is tucked in more tightly, and the % bulb is uppermost in both cases. Ayn is NOT the mirror image of Hamza in % slanted or italic fonts, thanks to a little magic with |currenttransform|. % Character codes \0043 and \0100 are generated. % if |izafet_dot| is known, character \0175 (dot at |bar_height|) is generated if unknown accsub: input accsub fi % needed for |izafet_dot| newinternal pslant,nslant; pslant:=slant; nslant:=-slant; cmchar "Rough breathing or `Ayn"; beginchar(oct"043",5u#,min(asc_height#,10/7x_height#),0); % height of i-dot italcorr asc_height#*slant+.5dot_size#-2u#; adjust_fit(0,0); currenttransform:=identity slanted nslant yscaled aspect_ratio scaled granularity; % build italic with reverse slant x1-.325dot_size=hround(.5w-.325dot_size); y1+.325dot_size=h; % smaller bulb if monospace: comma(1,a,.65dot_size,.35u,vround .85comma_depth); % large comma else: comma(1,a,.65dot_size,1.6u,.85comma_depth); fi % comma; increased jut currentpicture:=currentpicture reflectedabout ((.5[l,r],h),(.5[l,r],0)); currenttransform:=identity slanted pslant yscaled aspect_ratio scaled granularity; % restore normal font slant penlabels(1); endchar; cmchar "Smooth breathing or Hamza"; beginchar(oct"100",5u#,min(asc_height#,10/7x_height#),0); % height of i-dot italcorr asc_height#*slant+.5dot_size#-2u#; adjust_fit(0,0); x1-.325dot_size=hround(.5w-.325dot_size); y1+.325dot_size=h; % smaller bulb if monospace: comma(1,a,.65dot_size,.35u,vround .85comma_depth); % large comma else: comma(1,a,.65dot_size,1.6u,.85comma_depth); fi % comma; increased jut penlabels(1); endchar; iff known izafet_dot: cmchar "Period raised to bar height"; dot_sharp_values; beginchar(izafet_dot,4.5u#,x_height#,0); adjust_fit(0,0); pickup fine.nib; define_whole_blacker_pixels(dot_diam); pos1(dot_diam,0); pos2(dot_diam,90); lft x1l=hround(.5w-.5dot_diam); y1+.5dot_diam=vround(bar_height+.5dot_diam); z1=z2; dot(1,2); penlabels(1,2); endchar;