diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/cb/cbaccent.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/cb/cbaccent.mf | 638 |
1 files changed, 0 insertions, 638 deletions
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbaccent.mf b/Master/texmf-dist/fonts/source/public/cb/cbaccent.mf deleted file mode 100644 index 09ea74658c1..00000000000 --- a/Master/texmf-dist/fonts/source/public/cb/cbaccent.mf +++ /dev/null @@ -1,638 +0,0 @@ -% Copyright (C) 1997, 1999, 2001, 2002 Claudio Beccari -% file cbaccent.mf v.2.0f 2001/04/09 -% Added cap-cedilla and sloping sides of nexus 2001/02/25 -% modified circumflex for the cbleipzig fonts 2001/04/22 -% -% The accent macros that follow are used by all the vowel macros for -% generating the ligatures; they mostly come from Computer Modern. -% -% CB added the tests on boolean monotoniko whose value is set either by the -% driver files or it is false by default. Fixed the currentbreadth problem, -% and changed several dimensions so as to work well with different parameter -% settings. -% -% Several accents were completely redesigned, in particular grave and acute -% and their combinations with diaeresis or breaths are such that do not -% change according to the letter they accompany; in a different way -% also the circumflex and the diaeresis have been modified accordingly. -% -% Booleans monotoniko and toniko are remains of a previous test version -% where the monotoniko accent was the single one for modern Greek designed as -% a vertical stroke; thanks to Apostolos Syropoulos this feature has been -% eliminated. -% (1999) CB added definitions for adscript iota to be used with upper -% case Alpha, Eta and Omega, and for the corresponding small cap variants. -boolean toniko, squeeze; -% minimum distance between vowel and accent -def separator=max(1,vround(x_height/10)) enddef; -def grave(expr center) = -numeric acc_sgn,acc_displ; acc_displ:=center; -if monotoniko: - acc_sgn:=0; -else: - acc_sgn:=+1; -fi -generate_grave; -enddef; -def acute(expr center) = -numeric acc_sgn,acc_displ; acc_displ:=center; -if monotoniko: - acc_sgn:=0; -else: - acc_sgn:=-1; -fi -generate_grave; -enddef; -% The next definition draws both the grave (as its name suggests) and the -% acute accents, the difference being the value of acc_sgn, where -% acc_sgn=+1 tilts the accent to the left (grave) -% acc_sgn=-1 tilts the accent to the right (acute) -% acc_sgn=0 does not tilt the accent (monotoniko) -vardef generate_grave= - numeric accent_tilt, alto, basso; accent_tilt:=if cbleipzig or cbroman:20else:30fi; - alto:=h; basso:=vround .8[h,x_height]; - 1/3[x22,x21]=acc_displ; -if serifs: pickup crisp.nib; - accent_tilt:= acc_sgn*(accent_tilt+angle(alto-basso,.5currentbreadth)); - pos22(max(stem/5,currentbreadth+eps),accent_tilt); pos21(stem,accent_tilt); - if monotoniko: - bot y22=basso; top y21=alto; x22-x21=(alto-basso)*sind accent_tilt; - else: - bot y22=basso; top y21+.5stem=alto; - z21-z22=whatever*dir(90+accent_tilt); - fi - filldraw circ_stroke z21e--z22e; % diagonal -else: pickup fine.nib; - accent_tilt:= acc_sgn*accent_tilt; - pos21(stem,0); pos22(vair,0); - top y21=alto; bot y22=basso; x22-x21=(alto-basso)*sind accent_tilt; - filldraw stroke z21e--z22e; % diagonal -fi -penlabels(21,22); -currentbreadth:=0; -enddef; -def circumflex(expr center)= -if monotoniko: - grave(center); -else: - generate_circumflex(center); -fi -enddef; -def generate_circumflex(expr center)= -numeric mid_width; -if slitex: % for slides it looks like a cap - mid_width=vair; - pos21(vair,-180); pos23(vair,0); y21=y23; - lft x21r=hround(center-if monospace and (w<6u):1.5u else:max(3u,2w/5)fi); - .5[rt x23r,lft x21r]=center; - x22=center; pos22(mid_width,90); - bot y23=vround(max(h-2mid_width,x_height+mid_width)); - top y22r=h+o; - if bot y23>=top y22r: bot y23:= top y22r-mid_width; fi - filldraw stroke z21e{up}...z22e...{down}z23e; -elseif cbleipzig: - h':=if h=Circ_ht:h else:10/7x_height fi; - numeric theta; theta=angle(1/6(6u-vair),1/4(asc_height-x_height)); - pickup crisp.nib; - mid_width=.4[vair,stem]; - pos[21](vair,theta+90); - pos[22](vair,theta+90); - pos[23](vair,theta+90); - pos[24](vair,theta+90); - z[22]-z[21]= z[24]-z[23]=(mid_width-crisp)*dir theta; - lft x[21]r=hround(center-max(3u,w/2-2.5u)); - rt x[24]l=hround(center+max(3u,w/2-2.5u)); - top y[24]r=h'; - pair delta; - ypart delta=3(y[23]l-y[21]l); - delta=whatever*dir theta; - numeric deltay; deltay=vround(Circ_ht-(y24r-y23r)-(.4(bot y[21]l-top y[21]r)+2/3[x_height,Circ_ht])); - bot y[21]l=y23l-deltay; - %if h=Circ_ht: - % vround(bot y[21]l-top y[21]r+min(2/3[x_height,Circ_ht],y[23]l-.25vair)); - %else: - % vround(y[23]l-.5dot_size) - %fi; - filldraw z[21]l..controls(z[21]l+delta)and(z[23]l-delta)..z[23]l..z[24]l--z[24]r.. - controls(z[24]r-delta)and(z[22]r+delta)..z[22]r..z[21]r--cycle; % stroke -else: - mid_width:=if squeeze:.3 else: .5 fi [vair,stem]; - pickup fine.nib; - pos21(hround(mid_width-eps),180); - pos22(vair,90); - pos23(mid_width,45); - pos24(vair,90); - pos25(hround(mid_width-eps),180); - lft x21r=hround(center-if monospace: - if(w<5u):1.5u else:max(3u,w/3)fi - else: - max(3u,w/3) - fi); - .5[rt x25l,lft x21r]=center; - (x22-x21)=x23-x22=x24-x23=(x25-x24); - if h=Circ_ht: - bot y21l=bot y24l=vround(.45[h,x_height+.5mid_width]); - else: - bot y21l=bot y24l=vround(max(.5[h,x_height],x_height if not SansSerif:+o fi+separator)); - fi - top y22r=top y25r=h; - y23=.5[y22,y24]; - filldraw stroke z21e{up}...z22e{right}..z23e..{right}z24e...{up}z25e; % stroke -fi -penlabels(21,22,23,24,25); -currentbreadth:=0; -enddef; -vardef diaeresis(expr center)= - generate_diaeresis(center,dot_size,dot_size+1.75u,h,x_height+separator); -enddef; -vardef diaeresis_acute(expr center)= - acute(center); - generate_diaeresis(center,6/8dot_size,13/8dot_size if cbleipzig or SansSerif:+u fi,.5[h,x_height],x_height+separator); -enddef; -vardef diaeresis_grave(expr center)= - grave(center); - generate_diaeresis(center,6/8dot_size,13/8dot_size if cbleipzig or SansSerif:+u fi,.5[h,x_height],x_height+separator); -enddef; -vardef diaeresis_circumflex(expr center)= - if monotoniko: - grave(center); - generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator); - else: - generate_circumflex(center); - numeric sp_bottom, sp_top; - if (not slitex): - sp_top=vround(.15[bot y21l,x_height]); - sp_top+sp_bottom=bot y21l+x_height; - else: - sp_top=vround(.5[bot y21l,bot y22l]-separator); - sp_bottom=vround(x_height+separator); - fi - generate_diaeresis(center,6/8dot_size,11/8dot_size if cbleipzig:+u fi,sp_top,sp_bottom); - fi -enddef; -vardef generate_diaeresis(expr center,target_dot_diam,sep,eff_h,base)= -pickup tiny.nib; numeric dot_diam; -dot_diam:=max(tiny.breadth,hround(target_dot_diam)); -pos31(dot_diam,0); pos32(dot_diam,90); x31=x32; top y32r=vround(eff_h); -if bot y32l<base: y32l:=min(y32r-eps,base+.5currentbreadth); fi -y31=.5[y32l,y32r]; -pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34; -if sep>=0 : - center=.5[x31,x33]; x33-x31=sep; -else: - y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r]; - rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w); - lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w); -fi -dot(31,32); dot(33,34); -penlabels(31,32,33,34,35); -currentbreadth:=0; -enddef; -def rough(suffix $,@)(expr dot_size,depth,shear) = - if (not monotoniko): - pickup fine.nib; pos$(dot_size,90); - if square_dots: - pos$'(dot_size,180); z$'=z$; dot($',$); % squarish dot - comma_join_:=max(fine.breadth,floor .7dot_size); - comma_bot_:=max(fine.breadth,floor .5dot_size); - pos@0(comma_join_,180); pos@1(comma_join_,180); - pos@2(comma_bot_,180); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth; - x@0r=x@1r=x$'r; lft x@2r=good.x(x$-eps); - filldraw stroke z@0e--z@1e..z@2e; % tail - else: - tail_thick:=if cbleipzig: - max(.4dot_size,currentbreadth+eps); - elseif SansSerif: - max(dot_size/2,currentbreadth+eps); - else: - if (fine>.2dot_size):floor(min(fine.breadth,vair)) - else:max(vair/2,currentbreadth+eps)fi - fi; - pos@1(tail_thick,90); pos@2(tail_thick,180); pos@3(tail_thick,-90); - z@1r=z$r; lft x@2r=hround(x$-.5depth+.5shear if (cbleipzig and (top y$r<Circ_ht)):-.2dot_size fi); - x@3+.5tail_thick=x$+.5dot_size+shear; - y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth); - y_:=ypart((z@1{left}...z@2{down}...z@3) - intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi - filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot - if monospace: % tail - draw z@1{left}...z@2{down}...{right}z@3; - else: - filldraw stroke z@1e{left}...z@2e{down}...{right}z@3e; - fi - fi - penlabels(@1,@2,@3,$); - fi - currentbreadth:=0; - enddef; -def smooth(suffix $,@)(expr dot_size,depth,shear) = - if not monotoniko: - pickup fine.nib; pos$(dot_size,90); - if square_dots: - pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot - comma_join_:=max(fine.breadth,floor .7dot_size); - comma_bot_:=max(fine.breadth,floor .5dot_size); - pos@0(comma_join_,0); pos@1(comma_join_,0); - pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth; - x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps); - filldraw stroke z@0e--z@1e..z@2e; % tail - else: - tail_thick:=if cbleipzig: - max(.4dot_size,currentbreadth+eps); - elseif SansSerif: - max(dot_size/2,currentbreadth+eps); - else: - if (fine>.2dot_size):floor(min(fine.breadth,vair)) - else:max(vair/2,currentbreadth+eps)fi - fi; - pos@1(tail_thick,90); pos@2(tail_thick,0); pos@3(tail_thick,-90); - z@1r=z$r; rt x@2r=hround(x$+.5depth+.5shear if (cbleipzig and (top y$r<Circ_ht)):+.3dot_size fi); - x@3-.5tail_thick=hround(x$-.5dot_size+shear); - y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth); - y_:=ypart((z@1{right}...z@2{down}...z@3) - intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi - filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot - if monospace: % tail - draw z@1{right}...z@2{down}...{left}z@3; - else: - filldraw stroke z@1e{right}...z@2e{down}...{left}z@3e; - fi - fi - penlabels(@1,@2,@3,$); - fi - currentbreadth:=0; - enddef; -vardef spirit(expr center) text type= -numeric sp_bottom, sp_height; -sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator); -numeric dot_diam#; dot_diam# = if SansSerif:1else:3/4fi dot_size#; -define_whole_blacker_pixels(dot_diam); -dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height))); -x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam); -y31+.5dot_diam=h; -if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0); -penlabels(31); -enddef; -vardef spirit_acute(expr center) text type = -numeric sp_bottom, sp_height, sp_box; -sp_box:=if cbleipzig:.95else:.8*fi(h-x_height); -sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator); -numeric dot_diam#; dot_diam# = if SansSerif:1else:3/4fi dot_size#; -define_whole_blacker_pixels(dot_diam); -dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height))); -if monotoniko: - grave(center); -else: - acute(center+if slitex:6/20 else:4/20fi sp_box); - if 1type0: - x31=hround(lft x22l-if serifs:if cbleipzig:.51else:.5fi - elseif slitex: .2 - else:.4 - fi sp_box);% smooth acute - else: - x31+.5dot_diam= - hround(lft x22l if serifs:-1/20 - elseif slitex: -2/20 - else:+1/20 - fi sp_box); % rough acute - fi - y31+.5dot_diam=h; - if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0); -fi -enddef; -vardef spirit_grave(expr center) text type = -numeric sp_bottom, sp_height,sp_box; -sp_box:=.8*(h-x_height); -sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator); -numeric dot_diam#; dot_diam# = if SansSerif:1else:3/4fi dot_size#; -define_whole_blacker_pixels(dot_diam); -dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height))); -if monotoniko: - grave(center); -else: - grave(center+if serifs:if cbleipzig or cbroman:9else:11fi elseif slitex:10 else:9fi/20sp_box); - if 1type0: - x31=hround(lft x21l-.5sp_height if serifs:- 1/10sp_box fi); %smooth grave - else: - x31+.5dot_diam=hround(lft x21l if serifs or slitex:-3/20sp_box fi); % rough grave - fi - y31+.5dot_diam=h; - if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0); -fi -enddef; -vardef spirit_circumflex(expr center) text type= -if monotoniko: - grave(center); -else: - generate_circumflex(center); - numeric sp_bottom, sp_height, sp_top, box_top; - box_top=bot if slitex: y22l else: y23l if cbleipzig:-.5u fi fi; - sp_top=sp_bottom+sp_height=vround(.15[box_top,x_height]); - sp_bottom=x_height+separator; - numeric dot_diam#; dot_diam# = 5/8dot_size#; - define_whole_blacker_pixels(dot_diam); - pickup fine.nib; - dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height-eps))); - x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam); - y31+.5dot_diam=vround(sp_top); - if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0); -fi -penlabels(31); -enddef; -def iota_sub(expr pos_stem) = -if not monotoniko: - if known pic.iota: - addto currentpicture also pic.iota shifted (hround(pos_stem),0); - else: - picture temp_picture; temp_picture=currentpicture; clearit; - if cursive and serifs and not (monospace or small_caps): - pickup pencircle xscaled stem yscaled hair; - x51=0; - top y51=vround(-o-separator); - x52=x51; - bot y52=vround(-desc_depth); - draw z52--z51; - pickup pencircle scaled hair; - y53=y52+1/2hair; - lft x53=hround(x52+u); - draw z53--(z52+(.5u,0))--z52; - elseif cbleipzig or cbroman: - pos50(stem,0);x50=0;top y50+.5stem=vround(-o-.5separator); - pos51(stem,0) ; x51=x50; y51=y53; - x52r=.5[x51r,x53r];x52l=.5[x51l,x53l]; - bot y52l=vround(-desc_depth); y52r-y52l=.3[hair,stem]; z52=.5[z52r,z52l]; - pos53(hair,if cbroman:135else:180fi); - lft x53r=hround(x51r+3u/4);y53l=y52r+min(u/2,hair); - filldraw double_circ_stroke z50e---z51e{down}...{right}z52e...{up}z53e; - else: - if small_caps: - numeric iota_stem; iota_stem:=.5[vair,stem]; - pickup tiny.nib; pos51(iota_stem,0); pos52(iota_stem,0); - lft x51l=lft x52l=hround(-.5iota_stem); - top y51 - bot y52= 1.2iota_dp; - .5[top y51,bot y52]=0; - filldraw stroke z51e--z52e; % stem - if serifs or slitex: - if monospace: - dish_serif(51,52,a,1/3,.3jut,b,1/3,.3jut); % upper serif - dish_serif(52,51,c,1/3,.3jut,d,1/3,.3jut); % lower serif - else: - numeric s_jut; s_jut :=if slitex: .5iota_stem else:.5jut fi; - dish_serif(51,52,a,1/3,s_jut,b,1/3,s_jut); % upper serif - dish_serif(52,51,c,1/3,s_jut,d,1/3,s_jut); % lower serif - fi - fi - else: - pickup fine.nib; - x51=0; pos51(stem,180); top y51=vround(-o-separator); - x52=x51; pos52(stem,180); bot y52=-iota_dp; - filldraw circ_stroke z52e--z51e; - fi - fi - if not working_hard : picture pic.iota; pic.iota=currentpicture; fi - currentpicture:=currentpicture shifted (hround(pos_stem),0); - addto currentpicture also temp_picture; - fi -fi -penlabels(51,52,53); -currentbreadth:=0; -enddef; -def Iota_sub(expr pos_stem) = -if not monotoniko: - if known pic.Iota: - addto currentpicture also pic.Iota shifted (hround(pos_stem),0); - else: - picture temp_picture; temp_picture=currentpicture; clearit; - numeric I_stem; I_stem:=.6[hair,stem]; - pickup tiny.nib; pos51(I_stem,0); pos52(I_stem,0); - lft x51l=lft x52l=hround(-.5I_stem); - top y51 - bot y52=2(iota_dp-separator);.5[top y51,bot y52]=0; - filldraw stroke z51e--z52e; % stem - if serifs or slitex: - if monospace: - dish_serif(51,52,a,1/3,.3jut,b,1/3,.3jut); % upper serif - dish_serif(52,51,c,1/3,.3jut,d,1/3,.3jut); % lower serif - else: - dish_serif(51,52,a,1/3,.7jut,b,1/3,.7jut); % upper serif - dish_serif(52,51,c,1/3,.7jut,d,1/3,.7jut); % lower serif - fi - fi - picture pic.Iota; pic.Iota=currentpicture; - currentpicture:=currentpicture shifted (hround(pos_stem),0); - addto currentpicture also temp_picture; - fi % endfi " known pic.Iota" -fi %endfi "not monotoniko" -currentbreadth:=0; -enddef; -cmchar "Adscript Iota"; -beginchar(oct"010",if monospace:9else:4fi u#,x_height#,desc_depth#); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -Iota_sub(.5w); monotoniko:=toniko; -endchar;% "Adscript Iota" -numeric acc_width#; acc_width#:=if monotoniko: 4u# else:9u# fi; -cmchar "Grave accent"; -beginchar("`",if monospace:9else:3fi u#,acc_ht#,0); -adjust_fit(0,0); -numeric center; -numeric acc_sgn; acc_sgn:=+1; -grave(if monospace:19/36else:2/3fi w); -endchar;% "Grave accent" -cmchar "Acute accent"; -beginchar("'",if monospace:9else:3fi u#,acc_ht#,0); -adjust_fit(0,0); -numeric center; -numeric acc_sgn; acc_sgn:=-1; -acute(if monospace:17/36else:1/3fi w); -endchar;% "Acute accent" -cmchar "Circumflex accent"; -beginchar("~",if monospace:9else:6fi u#,circ_ht#,0); -adjust_fit(0,0); -numeric center; -numeric mid_width; -squeeze:=false; -generate_circumflex(w/2); -penlabels(21,22,23,24,25); -currentbreadth:=0; -endchar;% "Circumflex accent" -cmchar "Diaeresis"; -beginchar(oct"042",if monospace:9else:4fi u#,circ_ht#,0); -adjust_fit(0,0); -numeric dot_diam, center, sep; -sep:=4u-tiny; center:=.5w; -dot_diam:=max(tiny.breadth,hround(dot_size)); -pos31(dot_diam,0); pos32(dot_diam,90); x31=x32; -y32=.5[x_height+separator,circ_ht]; -y31=.5[y32l,y32r]; -pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34; -if sep>0 : - center=.5[x31,x33]; x33-x31=sep; -else: - y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r]; - rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w); - lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w); -fi -dot(31,32); dot(33,34); -penlabels(31,32,33,34,35); -endchar;% "Diaeresis" -cmchar "Rough breathing"; -beginchar("<",if monospace:9else:4fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -spirit(.5w)<; monotoniko:=toniko; -endchar;% "Rough breathing" -cmchar "Smooth breathing"; -beginchar(">",if monospace:9else:4fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -spirit(.5w)>; monotoniko:=toniko; -endchar;% "Smooth breathing" -cmchar "Rough breathing with acute"; -beginchar(oct"126",if monospace:9else:5fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -spirit_acute(.5w)<; monotoniko:=toniko; -endchar;% "Rough breathing with acute" -cmchar "Rough breathing with grave"; -beginchar(oct"103",if monospace:9else:5fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -spirit_grave(.5w)<; monotoniko:=toniko; -endchar;% "Rough breathing with grave" -cmchar "Rough breathing with circumflex"; -beginchar(oct"100",if monospace:9else:6fi u#,Circ_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -squeeze:=true; -spirit_circumflex(.5w)<; monotoniko:=toniko; -endchar;% "Rough breathing with circumflex" -cmchar "Smooth breathing with acute"; -beginchar(oct"136",if monospace:9else:5fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -spirit_acute(.5w)>; monotoniko:=toniko; -endchar;% "Smooth breathing with acute" -cmchar "Smooth breathing with grave"; -beginchar(oct"137",if monospace:9else:5fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -spirit_grave(.5w)>; monotoniko:=toniko; -endchar;% "Smooth breathing with grave" -cmchar "Smooth breathing and circumflex"; -beginchar(oct"134",if monospace:9else:6fi u#,Circ_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -squeeze:=true; -spirit_circumflex(.5w)>; monotoniko:=toniko; -endchar;% "Smooth breathing and circumflex" -cmchar "Diaeresis with acute"; -beginchar(oct"043",if monospace:9else:5fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -diaeresis_acute(.5w); monotoniko:=toniko; -endchar;% "Diaeresis with acute" -cmchar "Diaeresis with grave"; -beginchar(oct"044",if monospace:9else:5fi u#,acc_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -diaeresis_grave(.5w); monotoniko:=toniko; -endchar;% "Diaeresis with grave" -cmchar "Diaeresis with circumflex"; -beginchar(oct"040",if monospace:9else:8fi u#,Circ_ht#,0); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -squeeze:=true; -diaeresis_circumflex(.5w); -monotoniko:=toniko; -endchar;% "Diaeresis with circumflex" -cmchar "Iota subscript"; -beginchar("|",if monospace:9else:2fi u#,0,.6desc_depth#); -adjust_fit(0,0); -toniko:=monotoniko; monotoniko:=false; -iota_sub(.5w); monotoniko:=toniko; -endchar;% "Iota subscript" -cmchar "Breve accent"; -beginchar(oct"036",7u#,min(asc_height#,2x_height#),0); -italcorr h#*slant+.5vair#-1.5u#; -adjust_fit(0,0); -pickup crisp.nib; pos1(vair,-180); pos3(vair,0); -top y1=top y3=h; lft x1r=w-rt x3r=0; -numeric mid_thickness; mid_thickness=vround 1/3[vair,stem]; -pos2(mid_thickness,-90); x2=.5w; -bot y2r=vround (1/3[x_height,h]+o-.5mid_thickness); -filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke -currentbreadth:=0; -endchar;% "Breve accent" -cmchar"Wide breve accent"; -beginchar(oct"227",12u#,min(asc_height#,2x_height#),0); -italcorr h#*slant+.5vair#-1.5u#; -adjust_fit(0,0); -pickup crisp.nib; pos1(vair,-180); pos3(vair,0); -top y1=top y3=h; lft x1r=w-rt x3r=0; -numeric mid_thickness; mid_thickness=vround 1/3[vair,stem]; -pos2(mid_thickness,-90); x2=.5w; -bot y2r=vround (1/3[x_height,h]+o-.5mid_thickness); -filldraw stroke z1e{(1,-1)}...z2e{right}...{1,1}z3e; % stroke -currentbreadth:=0; -penlabels(1,2,3,4,5); -endchar;% "Wide breve accent" -cmchar "Macron (bar) accent"; -numeric macron_breadth#; macron_breadth#=.2[vair#,stem#]; -beginchar(oct"037",7u#,.15[x_height#,asc_height#]+macron_breadth#,0); -italcorr h#*slant-.75u#; -adjust_fit(0,0); -numeric macron_breadth; macron_breadth:=Vround .2[vair,stem]; -pickup if serifs: crisp.nib else: fine.nib fi; -pos1(macron_breadth,90); pos2(macron_breadth,90); -%top y1r=top y2r=h+o; -lft x1=w-rt x2=0; -bot y1l=bot y2l=vround (h+o); -filldraw stroke z1e--z2e; % bar -currentbreadth:=0; -endchar;% "Macron (bar) accent" -cmchar "Lowered cap to go under iota or upsilon"; -beginchar(oct"001",6u#,0,desc_depth#); -adjust_fit(0,0); -numeric mid_width;mid_width=1/3[vair,stem]; -pickup if serifs: crisp.nib else: fine.nib fi; -pos1(vair,135); pos2(mid_width,90); pos3(vair,45); -lft x1r=0; rt x3r=w; bot y1l=max(-d,-3mid_width)-separator=bot y3l; -x2=.5[lft x1r,rt x3r]; top y2r=-separator; -filldraw double_circ_stroke z1e..z2e..z3e; -penlabels(1,2,3); -currentbreadth:=0; -endchar;% "Lowered cap to go under iota or upsilon" -cmchar "Small tie to go under any letter"; -beginchar(oct"024",6u#,0,desc_depth#); -adjust_fit(0,0); -numeric mid_width;mid_width=1/3[vair,stem]; -pickup if serifs: crisp.nib else: fine.nib fi; -pos1(vair,-135); pos2(mid_width,-90); pos3(vair,-45); -lft x1r=0; rt x3r=w; top y1l=-separator=top y3l; -x2=.5[lft x1r,rt x3r]; bot y2r=max(-d,-3mid_width)-separator; -filldraw double_circ_stroke z1e..z2e..z3e; -penlabels(1,2,3); -currentbreadth:=0; -endchar;% "Small tie to go under any letter" -%endinput; -% questi sono i due lati di un circonflesso ^ col vertice alla base -cmchar "Left side of nexus"; -beginchar(oct"020",2.5u#,0,desc_depth#); -adjust_fit(0,0); -pickup if serifs: crisp.nib else: fine.nib fi; -pos1(hair,135); pos2(1.5u,angle((-slant,1))); -lft x1r=0; bot y1l=-d; rt x2l=hround(w+eps); top y2r=h; -filldraw circ_stroke z1e--z2e; -penlabels(1,2); -endchar;% "Left side of nexus" -cmchar "Right side of nexus"; -beginchar(oct"021",3.5u#,0,desc_depth#); -adjust_fit(0,0); -pickup if serifs: crisp.nib else: fine.nib fi; -pos2(hair,45); pos1(1.5u,angle((-slant,1))); -lft x1l=hround(0-eps); top y1r=h; rt x2r=w; bot y2l=-d; -filldraw circ_stroke z2e--z1e; -penlabels(1,2); -endchar;% "Right side of nexus" -endinput; - |