summaryrefslogtreecommitdiff
path: root/fonts/greek/yannis/gen_m_acc.mf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/greek/yannis/gen_m_acc.mf
Initial commit
Diffstat (limited to 'fonts/greek/yannis/gen_m_acc.mf')
-rw-r--r--fonts/greek/yannis/gen_m_acc.mf69
1 files changed, 69 insertions, 0 deletions
diff --git a/fonts/greek/yannis/gen_m_acc.mf b/fonts/greek/yannis/gen_m_acc.mf
new file mode 100644
index 0000000000..fa444ada67
--- /dev/null
+++ b/fonts/greek/yannis/gen_m_acc.mf
@@ -0,0 +1,69 @@
+def separator=max(1,vround(1/12x_height)) enddef;
+
+
+vardef diaeresis(expr center)=
+ generate_diaeresis(center,dot_size,dot_size+1/8w,h,x_height+separator);
+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);
+enddef;
+
+vardef generate_universal(expr center)=
+x91=center+.15u;x94=center-.15u;
+y91=y94=x_height+1.5separator;
+x92=x91+.3univ_acc_breadth*(body_height-x_height);
+x93=x91-.3univ_acc_breadth*(body_height-x_height);
+y93=y92=y91+univ_acc_breadth*(body_height-x_height);
+fill z91--z92--z93--z94--cycle;
+enddef;
+
+vardef universal(expr center)=
+generate_universal(center);
+enddef;
+
+vardef diaeresis_universal(expr center)=
+x91=center;
+y91=x_height+separator+dot_size;
+x92=x91+.5univ_acc_breadth*(body_height-x_height);
+x93=x91-.5univ_acc_breadth*(body_height-x_height);
+y93=y92=y91+.866univ_acc_breadth*(body_height-x_height);
+fill z91--z92--z93--cycle;
+generate_diaeresis(center,dot_size,
+1.3univ_acc_breadth*(body_height-x_height),
+.6[h,x_height],
+x_height+separator);
+enddef;
+
+def acute(expr center)=
+generate_universal(center);
+enddef;
+def circumflex(expr center)=
+generate_universal(center);
+enddef;
+def corr_circumflex(expr center,katiallo)=
+generate_universal(center);
+enddef;
+def spirit(expr center)text type =
+;
+enddef;
+def spirit_acute(expr center)text type =
+generate_universal(center);
+enddef;
+def spirit_circumflex(expr center)text type =
+generate_universal(center);
+enddef;
+