summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/cb/cbmetre.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/cb/cbmetre.mf')
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbmetre.mf892
1 files changed, 892 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbmetre.mf b/Master/texmf-dist/fonts/source/public/cb/cbmetre.mf
new file mode 100644
index 00000000000..b33fff61a5b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbmetre.mf
@@ -0,0 +1,892 @@
+% File gmtr.mf
+% Copyright 2001 Claudio Beccari
+% version 1.0 (2001/03/24)
+% Metric symbols and other special signs for greek critical editions
+%
+def m_width=.6[hair,stem] enddef;
+def separator=max(1,vround(1/10x_height)) enddef;
+dot_diam#=dot_size#;dot_diam=dot_size;
+
+cmchar "English Opening quotes";
+beginchar(oct"20",3u#+max(2u#,dot_diam#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5dot_diam=hround(w-.6u+.5dot_diam); y1+.5dot_diam=h-comma_depth;
+x1=w-x2; y2=y1;
+ammoc(1,a,dot_diam,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2);currentbreadth:=0;
+ endchar;
+
+
+cmchar "English Closing quotes";
+beginchar(oct"021",3u#+max(2u#,dot_diam#),asc_height#,0);
+italcorr asc_height#*slant+dot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x1+.5dot_diam=hround(.6u+.5dot_diam); y2+.5dot_diam=h;
+x2=w-x1; y2=y1;
+comma(1,a,dot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2);currentbreadth:=0;
+ endchar;
+
+cmchar "German opening comma";
+beginchar(oct"015",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1);currentbreadth:=0;
+ endchar;
+
+
+cmchar "Reversed comma";
+beginchar(oct"016",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1+.5dot_diam=h-d;
+pickup fine.nib; pos1(dot_size,-90);
+pos21(vair,90); pos22(vair,180); pos23(vair,-135);
+ z21r=z1r; rt x22r=hround(x1+.5dot_size+u/4)+2eps; x23=x1-.5u;
+ y22=1/3[y21,y23]; top y23r=vround(h);
+ filldraw z1r{right}...z1l{left}...cycle; % dot
+ filldraw stroke z21e{right}...z22e{up}...z23e; % tail
+penlabels(1,21,22,23);
+currentbreadth:=0;
+endchar;
+
+
+
+
+cmchar "German closing comma";
+beginchar(oct"023",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1+.5dot_diam=h-comma_depth;
+if monospace: ammoc(1,a,dot_diam,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_diam,.25u,comma_depth); fi % normal ammoc
+penlabels(1); currentbreadth:=0;
+endchar;
+
+
+cmchar "German Opening quotes";
+beginchar(oct"022",3u#+max(2u#,dot_diam#),dot_diam#,comma_depth#);
+italcorr asc_height#*slant+dot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5dot_diam=hround(w-.6u+.5dot_diam); y2-.5dot_diam=0;
+x1=w-x2; y2=y1;
+comma(1,a,dot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+currentbreadth:=0;
+
+
+cmchar "corona";
+beginchar(20,12u#,x_height#,0);
+adjust_fit(0,0);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+bot y2l=-oo;lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+pos5(stem,90);
+pos6(stem,90);pos7(stem,0);
+z6=z7; x6=w/2; bot y6l=bot y2l;
+z5=z6+whatever*(z6r-z6l); top y5r= (rt x3r-lft x1r+.7[hair,stem])/2;
+filldraw z7r...z6r...z7l...z6l...cycle;
+filldraw double_circ_stroke z1e..z5e..z3e;
+penlabels(1,2,3,4,5,6,7,8);
+currentbreadth:=0;
+endchar;
+
+cmchar "corona inversa";
+beginchar(21,12u#,x_height#,0);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+.7[hair,stem])/2;
+pos5(stem,-90); x5=x6=w/2; bot y5r=-oo;
+pos6(stem,90);pos7(stem,0);
+z6=z7;top y6r=top y2r;
+filldraw z7r...z6r...z7l...z6l...cycle;
+filldraw double_circ_stroke z1e..z5e..z3e;
+penlabels(1,2,3,4,5,6,7,8);
+currentbreadth:=0;
+endchar;
+
+cmchar "longa";
+beginchar("l",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(stem,90); pos2(stem,90);
+bot y1l=-oo=bot y2l; lft x1-stem/2=.75u; rt x2=w-x1;
+filldraw double_circ_stroke z1e--z2e;
+penlabels(1,2);
+currentbreadth:=0;
+endchar;
+
+cmchar "brevis";
+beginchar("b",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+penlabels(1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+cmchar "dupla brevis";
+beginchar("c",12u#,x_height#,0);
+adjust_fit(0,10.5u#-.5[hair#,stem#]);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+picture savedpicture;
+savedpicture:=currentpicture;
+currentpicture:= currentpicture+savedpicture shifted (10.5u-.5[hair,stem],0);
+penlabels(1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+cmchar "brevis sublineata";
+beginchar("d",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+currentpicture:=currentpicture shifted(0,2stem);
+pos11(stem,90); pos12(stem,90);
+bot y11l=-oo=bot y12l; lft x11-stem/2=.75u; rt x12=w-x11;
+filldraw double_circ_stroke z11e--z12e;
+penlabels(1,2,3,4,5,11,12);
+currentbreadth:=0;
+endchar;
+
+cmchar "longa dupla brevis";
+beginchar("e",12u#,x_height#,0);
+adjust_fit(0,10.35u#-.5[hair#,stem#]);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+picture savedpicture;
+savedpicture:=currentpicture;
+currentpicture:= currentpicture+savedpicture shifted (10.35u-.5[hair,stem],0);
+currentpicture:=currentpicture shifted(0,2stem);
+pos11(stem,90); pos12(stem,90);
+bot y11l=-oo=bot y12l; lft x11-stem/2=.75u; rt x12=w-x11+10.35u-.5[hair,stem];
+filldraw double_circ_stroke z11e--z12e;
+penlabels(1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "apicata longa dupla brevis";
+beginchar("f",12u#,x_height#,0);
+adjust_fit(0,14.5u#-.5[hair#,stem#]);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+picture savedpicture;
+savedpicture:=currentpicture;
+currentpicture:= currentpicture+savedpicture shifted (14.5u-.5[hair,stem],0);
+pos21(.5[hair,stem],0); pos22(.5[hair,stem],0);
+bot y21=-oo+hair/2;
+bot y22r=x_height-2stem;
+x21=x22=.5[x3,x1+14.5u-.5[hair,stem]];
+filldraw double_circ_stroke z21e--z22e;
+currentpicture:=currentpicture shifted(0,2stem);
+pos11(stem,90); pos12(stem,90);
+bot y11l=-oo=bot y12l; lft x11-stem/2=.75u; rt x12=w-x11+14.5u-.5[hair,stem];
+filldraw double_circ_stroke z11e--z12e;
+penlabels(1,2,3,4,5,6,11,12,21,22);
+currentbreadth:=0;
+endchar;
+
+
+
+cmchar"Longa sublineata breve";
+beginchar(oct"153",12u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+pos1(stem,90); pos2(stem,90);
+bot y1l=-oo=bot y2l; lft x1-stem/2=.75u; rt x2=w-x1;
+filldraw double_circ_stroke z1e--z2e;
+pos3(.7[hair,stem],180);
+pos4(.7[hair,stem],90);
+z3=z4;
+top y4r=-separator;lft x3r=.75u;
+pos5(.7[hair,stem],0);
+pos6(.7[hair,stem],90);
+z5=z6;
+y6=y4; rt x5r=w-lft x3r;
+pos7(stem,-90); x7=w/2; top y7l=-d;
+filldraw double_circ_stroke z3e...z7e...z5e;
+penlabels(1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "brevis superlineata";
+beginchar("i",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+pos6(stem,90); pos7(stem,90);
+x6=x1r+stem/2;x5=.5[x6,x7]; y6=y7=y1+2stem;
+filldraw double_circ_stroke z1e..z5e..z3e;
+filldraw double_circ_stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+cmchar "dupla brevis superlineata";
+beginchar("j",12u#,bar_height#+2stem#,0);
+adjust_fit(0,9.5u#)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+pos6(stem,90); pos7(stem,90);
+x6=x1r+stem/2;x4=.5[x6,x7]; y6=y7=y1+2stem;
+filldraw double_circ_stroke z1e..z5e..z3e;
+addto currentpicture also currentpicture shifted (z3-z1);
+filldraw double_circ_stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "anceps";
+beginchar("X",9.5u#,x_height#,0);
+adjust_fit(0,0);
+numeric Xstem; Xstem=m_width;
+pos1(Xstem,135);pos2(Xstem,135);
+pos3(Xstem,45); pos4(Xstem,45);
+z0=.5[z1,z2]=.5[z3,z4];
+bot y1l=oo; lft x1r=u;
+y3=y1;x1+x3=w;
+z0=z1+whatever*dir(45)=z3+whatever*dir(135);
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+penlabels(0,1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar "anceps superlineata";
+beginchar("Y",9.5u#,asc_height#,0);
+adjust_fit(0,0);
+numeric Xstem; Xstem=m_width;
+pos1(Xstem,135);pos2(Xstem,135);
+pos3(Xstem,45); pos4(Xstem,45);
+z0=.5[z1,z2]=.5[z3,z4];
+bot y1l=oo; lft x1r=u;
+y3=y1;x1+x3=w;
+z0=z1+whatever*dir(45)=z3+whatever*dir(135);
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+pos5(Xstem,90); pos6(Xstem,90);
+x5=x4; x6=x2; y5l=y6l=y4r+stem;
+filldraw double_circ_stroke z5e--z6e;
+penlabels(0,1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+cmchar "anceps dupla breve supersignata";
+beginchar("Z",9.5u#,asc_height#,0);
+adjust_fit(0,0);
+numeric Xstem; Xstem=m_width;
+pos1(Xstem,135);pos2(Xstem,135);
+pos3(Xstem,45); pos4(Xstem,45);
+z0=.5[z1,z2]=.5[z3,z4];
+bot y1l=oo; lft x1r=u;
+y3=y1;x1+x3=w;
+z0=z1+whatever*dir(45)=z3+whatever*dir(135);
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+pos5(Xstem,0); pos6(Xstem,90); pos7(Xstem,180);
+pos8(Xstem,0); pos9(Xstem,90); pos10(Xstem,180);
+y5=y7=top y4r+.4(y4-y1)+Xstem/2; bot y6l=top y4r+Xstem/2;
+x5l=x4l; x7=x0; x6=.5[x5,x7];
+z8=z7=.5[z5,z10]; x0=.5[x6,x9]; y9=y6;
+filldraw double_circ_stroke z5e{down}...z6e...{up}z7e;
+filldraw double_circ_stroke z8e{down}...z9e...{up}z10e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10);
+currentbreadth:=0;
+endchar;
+
+
+
+cmchar"catalepsis";
+beginchar("g", 10u#,0,desc_depth#);
+adjust_fit(0,0);
+pair za,zb; za=(w/2,0)-(0,-d);zb=za xscaled-1;
+numeric cat_width;cat_width=.6[hair,stem];
+pos1(cat_width,angle(za)+90);pos2(cat_width,angle(za)+90);
+pos3(cat_width,angle(zb)-90);pos4(cat_width,angle(zb)-90);
+lft x1r=.75u; rt x4r=w-lft x1r;
+bot y1l=-d-oo; bot y4l=bot y1l;
+z2=z3;x2=w/2;top y2r=h+oo;
+filldraw double_circ_stroke z1e--z2e; filldraw double_circ_stroke z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "ipercatalepsis";
+beginchar("h",8u#,asc_height#,0);
+adjust_fit(0,0);
+numeric ic_w,arm; ic_w=.6[hair,stem];arm=(3/4w-ic_w)/2;
+z0=(w/2,h-arm);
+pos1(ic_w,90); pos2(ic_w,90);
+y0=y1=y2; x1=x0-arm; x0=.5[x1,x2];
+pos3(ic_w,0); pos4(ic_w,0);
+x3=x4=x0;y0=.5[y3,y4]; y4=y0+arm;
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+penlabels(0,1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "sinafia";
+beginchar("s",6u#,asc_height#,0);
+adjust_fit(.5u#,.5u#);
+numeric sin_width,raggio;
+sin_width=.6[hair,stem];
+pos1(sin_width,0); pos2(sin_width,90);pos3(sin_width,180);
+pos4(sin_width,270);pos5(sin_width,0);
+top y2r=h+00;top y4l=x_height-oo; raggio=(y2-y4)/2; z0=(w/2,.5[y2,y4]);
+z5=z1=z0+(raggio,0); x2=x0=x4; z0=.5[z1,z3];
+pos6(sin_width,0); pos7(sin_width,0);
+z6=z4; x7=x6; y7=-oo-sin_width/2;
+filldraw stroke z1e{up}...z2e...z3e...z4e...{up}z5e;
+filldraw circ_stroke z7e--z6e;
+penlabels(0,1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "uncinata clausa";
+beginchar(">",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w,angolo; q_w=.5[hair,stem];angolo=55;
+pos1(q_w,0); x1r=w-.75u; y1r=.5[h,-d];
+pos2(q_w,90-angolo);
+z2=z1+whatever*dir(-angolo);x2l=.75u;
+pos3(q_w,-90+angolo); z3=z1+whatever*dir(angolo); x3l=x2l;
+filldraw stroke z2e--z1e--z3e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "uncinata aperta";
+beginchar("<",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w,angolo; q_w=.5[hair,stem];angolo=55;
+pos1(q_w,180); x1r=.75u; y1r=.5[h,-d];
+pos2(q_w,angolo+90);
+z2=z1+whatever*dir(angolo);x2l=w-.75u;
+pos3(q_w,-90-angolo); z3=z1+whatever*dir(-angolo); x3l=x2l;
+filldraw stroke z2e--z1e--z3e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+
+cmchar "quadra aperta";
+beginchar("[",6u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w; q_w=.6u;
+z1=.5[z1r,z1l]; z1l=z1r-(0,q_w);
+z2=.5[z2r,z2l]; z2l=(x2r+q_w,y2r-q_w);
+z3=.5[z3r,z3l]; z3l=(x3r+q_w,y3r+q_w);
+z4=.5[z4r,z4l]; z4l=z4r+(0,q_w);
+x1=x4=w-.75u; x2r=x3r=.75u;
+y1=y2=1.05h;y3r=y4r=-d;
+filldraw stroke z1e--z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "quadra clausa";
+beginchar("]",6u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w; q_w=.6u;
+z1=.5[z1r,z1l]; z1l=z1r-(0,q_w);
+z2=.5[z2r,z2l]; z2l=z2r-(q_w,q_w);
+z3=.5[z3r,z3l]; z3l=z3r+(-q_w,q_w);
+z4=.5[z4r,z4l]; z4l=z4r+(0,q_w);
+x1=x4=.75u; x2r=x3r=w-.75u;
+y1=y2=1.05h;y3r=y4r=-d;
+filldraw stroke z1e--z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "media quadra aperta inferior";
+beginchar("!",4u#,bar_height#,desc_depth#+.6stem#);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,180);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,-90);
+x4=4.5u+x2r; x2=x3=.65w;
+y2=h;y3r=y4r=-d;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar "media quadra aperta superior";
+beginchar("?",4u#,asc_height#+.75stem#,0);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,180);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,90);
+x4=4.25u+x2; x2=x3=.65w;
+y2=bar_height;y3=y4=h;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "media quadra clausa inferior";
+beginchar(":",4u#,bar_height#,desc_depth#+.6stem#);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,0);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,-90);
+x4=-4.5u+x2r; x2=x3=.65w;
+y2=h;y3r=y4r=-d;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar "media quadra clausa superior";
+beginchar(";",4u#,asc_height#+.75stem#,0);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,0);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,90);
+x4=-4.5u+x2r; x2=x3=.65w;
+y2=bar_height;y3=y4=h;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Finis Carmen";
+beginchar("F", asc_height#+desc_depth#+1.5u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric raggio; raggio=(h+d)/2-m_width/2;
+z0=(w/2,.5[h,-d]);
+pos1(m_width,0);pos2(m_width,90);pos3(m_width,180);pos4(m_width,270);pos5(m_width,360);
+z0=.5[z1,z3]=.5[z2,z4]=.5[z6,z7]=.5[z8,z9]; z1=z5;
+z1=z0+(raggio,0); z2=z0+(0,raggio);
+pos6(m_width,135);pos7(m_width,135);
+z6=z0+(raggio,0)rotated45;
+pos8(m_width,45);pos9(m_width,45);
+z8=z0+(raggio,0)rotated-45;
+filldraw stroke z1e...z2e...z3e...z4e...z5e;
+filldraw stroke z6e--z7e;
+filldraw stroke z8e--z9e;
+penlabels(0,1,2,3,4,5,6,7,8,9);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "circumflexus latinus";
+beginchar("^",8u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric chair; chair=.5[hair,stem];
+numeric angolo; angolo=angle((w/2,0)-(0,-d));
+pos1(chair,angolo+90);
+pos2(chair/(cosd angolo),90);
+pos3(chair,90-angolo);
+x2=w/2=.5[x1r,x3r]; top y2r=h; bot y1l=y3l=-d;
+lft x1r=.5u;
+filldraw double_circ_stroke z1e--z2e--z3e;
+penlabels(1,2,3);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(u#,-u#); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); currentbreadth:=0;
+currentbreadth:=0;
+endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,-u#); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3);currentbreadth:=0;
+currentbreadth:=0;
+endchar;
+
+currentbreadth:=0;
+
+cmchar "Crux";
+beginchar(oct"171",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric bstem; bstem=1.3stem;
+pos1(bstem,0); pos2(thin_join,0); pos3(1.2bstem,0); pos4(hair,0); pos7(hair,0);
+pos5(bstem,90); pos2'(thin_join,90); pos6(bstem,90); z2'=z2;
+x1=x2=x3=x4=x7; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x5-.5stem=hround u; x6=w-x5;
+y1+.5stem=h+oo; y2=y5=y6; y3=.57y2; bot y4=-d+hair;
+y5+.5stem=floor(x_height+.5stem);y3=.5[y2,y7];
+filldraw circ_stroke z1e{down}..z2e{down}..z3e; % upper stem
+filldraw circ_stroke z4e--z7e{up}..z3e;% lower stem
+filldraw circ_stroke z5e{right}..{right}z2'e; % left bulb
+filldraw circ_stroke z6e{left}..{left}z2'e; % right bulb
+penlabels(1,2,3,4,5,6,7); currentbreadth:=0;
+endchar;
+
+
+
+% 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;
+ acc_sgn:=+1;
+generate_grave;
+enddef;
+
+def acute(expr center) =
+numeric acc_sgn,acc_displ; acc_displ:=center;
+ acc_sgn:=-1;
+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:=30;
+ alto:=h; basso:=vround .8[h,x_height];
+ 1/3[x22,x21]=acc_displ;
+ accent_tilt:= acc_sgn*(accent_tilt+angle(alto-basso,.5currentbreadth));
+ pos22(max(stem/5,currentbreadth+eps),accent_tilt); pos21(stem,accent_tilt);
+ bot y22=basso; top y21+.5stem=alto;
+ z21-z22=whatever*dir(90+accent_tilt);
+ filldraw circ_stroke z21e--z22e; % diagonal
+penlabels(21,22);
+currentbreadth:=0;
+enddef;
+
+
+cmchar "Left apex";
+beginchar("`",4u#,acc_ht#,0);
+adjust_fit(0,0);
+numeric center;
+numeric acc_sgn; acc_sgn:=+1;
+grave(2/3w);
+currentbreadth:=0;
+endchar;
+
+cmchar "Right apex";
+beginchar("'",4u#,acc_ht#,0);
+adjust_fit(0,0);
+numeric center;
+numeric acc_sgn; acc_sgn:=-1;
+acute(2/3w);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Hyatus";
+beginchar("H",6u#,asc_height#,0);
+adjust_fit(0,0);
+numeric Hstem, Hd; Hstem=.5stem; Hd=.37h;
+pos1(Hstem,0);pos2(Hstem,0);pos3(Hstem,0);pos4(Hstem,0);pos5(Hstem,90);pos6(Hstem,90);
+top y1=top y3=h; bot y2=bot y4=Hd; y5=y6=.55[bot y2, top y1];
+lft x1l = lft x2l = x5= w-rt x3r=w-rt x4r= w-x6= .75u;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+currentpicture:=currentpicture shifted (0,.5bar_height);
+penlabels(1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Ring";
+beginchar(oct"032",4u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric raggio,rw ; raggio=(d/2-separator); rw=.25[fine,stem];
+pickup pencircle scaled rw;
+z0=(w/2,-separator-raggio-rw);
+.5[z1,z2]=z0;z1=z0+(0,1.05raggio);
+draw z1...z2...cycle;
+penlabels(0,1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Dot";
+beginchar(oct"033",3u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric raggio,rw ; raggio=stem; rw=.3stem;
+z0=(w/2,-separator-raggio);
+pos1(rw,0); pos2(rw,90 );pos3(rw,180); pos4(rw,-90 );
+z1r-z0=(raggio,0); z2r-z0=(0,raggio);
+z0=.5[z1,z3]=.5[z2,z4];
+filldraw z1r...z2r...z3r...z4r...cycle;
+penlabels(0,1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+
+cmchar"Hemiobelion";
+beginchar("A",7.5u#,x_height#,0);
+adjust_fit(0,0);
+z0=(w/2+.75u,h/2);
+numeric raggio; raggio=h/2-m_width/2;
+pos1(m_width,60); pos2(m_width,-60); pos3(m_width,180);
+z1=z0+raggio*dir(60); z2=z0+raggio*dir(-60); z3=z0-(raggio,0);
+filldraw double_circ_stroke z1e...z3e...z2e;
+penlabels(0,1,2,3);
+currentbreadth:=0;
+endchar;
+
+cmchar"Tetartemorion";
+beginchar("B",7.5u#,x_height#,0);
+adjust_fit(0,0);
+z0=(w/2-.75u,h/2);
+numeric raggio; raggio=h/2-m_width/2;
+pos1(m_width,120); pos2(m_width,-120); pos3(m_width,0);
+z1=z0+raggio*dir(120); z2=z0+raggio*dir(-120); z3=z0+(raggio,0);
+filldraw double_circ_stroke z1e...z3e...z2e;
+penlabels(0,1,2,3);
+currentbreadth:=0;
+endchar;
+
+cmchar"Stater";
+beginchar("C",8u#,asc_height#,0);
+adjust_fit(0,0);
+z0=(w/2,h/2)=.5[z1,z4]=.5[z2,z3]; z.a=dir(-10); z.b=dir(40);
+pos2(m_width,angle(z.a)-90);pos3(m_width,angle(z.a)-90);
+pos22(m_width,angle(z.b)+90);pos33(m_width,angle(z.b)+90);
+z22=z2;z33=z3;
+z2=z0+whatever*z.a; x22r=.75u=x4r;
+pos1(m_width,angle(z.b)+90);pos4(m_width,angle(z.b)+90);
+z4=z3+whatever*z.b;
+filldraw double_circ_stroke z1e--z22e;
+filldraw double_circ_stroke z2e--z3e;
+filldraw double_circ_stroke z33e--z4e;
+penlabels(0,1,2,3,4,5,6,7,22,33);
+currentbreadth:=0;
+endchar;
+
+cmchar"Dracma";
+beginchar("D",10u#,cap_height#,0);
+adjust_fit(0,0);
+pos1(m_width,0);pos2(m_width,0);pos3(m_width,90);pos4(m_width,90);
+x1l=.75u=x2l=w-x4; y1=0;y2=h;
+filldraw stroke z1e--z2e;
+y3=y4=h/2; x3=x1;
+filldraw stroke z3e--z4e;
+penlabels(1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+cmchar"Denarius";
+beginchar("E",14u#,asc_height#,0);
+adjust_fit(0,0);
+z0=(w/2,h/2)=.5[z1,z4]=.5[z2,z5]=.5[z3,z6];
+numeric raggio; raggio=max(w/2,h/(2cosd45))-m_width/2;
+z1=z0+raggio*dir(45); z2=z0+raggio*dir(135); z3=z0+whatever*dir(180); x3=x2;
+pos1(m_width,angle(z1-z0)+90);
+pos2(m_width,angle(z2-z0)+90);
+pos3(m_width,angle(z3-z0)+90);
+pos4(m_width,angle(z1-z0)+90);
+pos5(m_width,angle(z2-z0)+90);
+pos6(m_width,angle(z3-z0)+90);
+filldraw double_circ_stroke z1e--z4e;
+filldraw double_circ_stroke z2e--z5e;
+filldraw double_circ_stroke z3e--z6e;
+penlabels(0,1,2,3,4,5,6,7,8);
+currentbreadth:=0;
+endchar;
+
+
+cmchar"Etos";
+beginchar("G",11.75u#,x_height#,0);
+adjust_fit(0,0);
+pos1(m_width,0); pos2(m_width,0); pos3(m_width,90); pos4(m_width,90);
+z2=z3; x1l=x2l=.75u; y1=1.25h; y3l=y4l=0; x4-x3=y1-y2;
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar"slopingzeugma";
+beginchar(oct"170",17u#,asc_height#,0);
+adjust_fit(0,0);
+z1r=(.75u,.8[x_height,h]);
+z3r=(w-x1r,x_height);
+numeric angolo; angolo=angle((z3r-z1r));
+y2r=h;z2r=(w/2,x_height)+whatever*dir(90-2angolo);
+pos1(m_width,135+angolo);
+pos2(stem,90);
+pos3(m_width,45+angolo);
+filldraw double_circ_stroke z1e..z2e{right}..z3e;
+currentpicture:=currentpicture shifted (0,(h-x_height)/2);
+penlabels(0,1,2,3,4,5);
+endchar;
+
+cmchar"raisingzeugma";
+beginchar(oct"172",17u#,asc_height#,0);
+adjust_fit(0,0);
+z1r=(.75u,x_height);
+z3r=(w-x1r,.8[x_height,h]);
+numeric angolo; angolo=angle((z3r-z1r));
+y2r=h;z2r=(w/2,x_height)+whatever*dir(90-2angolo);
+pos1(m_width,135+angolo);
+pos2(stem,90);
+pos3(m_width,45+angolo);
+filldraw double_circ_stroke z1e..z2e{right}..z3e;
+currentpicture:=currentpicture shifted (0,(h-x_height)/2);
+penlabels(0,1,2,3,4,5);
+endchar;
+
+
+
+cmchar"Base eolica 2";
+beginchar(oct"111",14u#,x_height#,0);
+adjust_fit(0,0);
+pickup pencircle scaled m_width;
+.5[z0,z1]=(w/2,h/2); y0=h/2; x1-x0=w/2;
+numeric raggio; raggio=(x1-x0)/2-m_width;
+z0=.5[z2,z3];z1=.5[z4,z5];
+z2=z0+(0,raggio);z4=z1+(0,raggio);
+draw z2{right}...z3{left}...cycle;
+draw z4{right}...z5{left}...cycle;
+penlabels(0,1,2,3,4,5,6,7,8);
+currentbreadth:=o;
+endchar;
+
+cmchar"Base eolica 3";
+beginchar(oct"112",21u#,x_height#,0);
+adjust_fit(0,0);
+pickup pencircle scaled m_width;
+z10=(3.5u,h/2); z11=z10+(7u,0); z12=z11+(7u,0);
+numeric raggio; raggio=(x11-x10)/2-m_width;
+z10=.5[z2,z3];z11=.5[z4,z5];z12=.5[z6,z7];
+z2=z10+(0,raggio);z4=z11+(0,raggio);z6=z12+(0,raggio);
+draw z2{right}...z3{left}...cycle;
+draw z4{right}...z5{left}...cycle;
+draw z6{right}...z7{left}...cycle;
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12);
+currentbreadth:=o;
+endchar;
+
+cmchar"Base eolica 4";
+beginchar(oct"113",28u#,x_height#,0);
+adjust_fit(0,0);
+pickup pencircle scaled m_width;
+z10=(3.5u,h/2); z11=z10+(7u,0); z12=z11+(7u,0);z13=z12+(7u,0);
+numeric raggio; raggio=(x11-x10)/2-m_width;
+z10=.5[z2,z3];z11=.5[z4,z5];z12=.5[z6,z7];z13=.5[z8,z9];
+z2=z10+(0,raggio);z4=z11+(0,raggio);z6=z12+(0,raggio);z8=z13+(0,raggio);
+draw z2{right}...z3{left}...cycle;
+draw z4{right}...z5{left}...cycle;
+draw z6{right}...z7{left}...cycle;
+draw z8{right}...z9{left}...cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
+currentbreadth:=o;
+endchar;
+
+ligtable oct"111": oct"111"=:oct"112";
+ligtable oct"112": oct"111"=:oct"113";
+
+
+endinput;