summaryrefslogtreecommitdiff
path: root/fonts/wnri/fbargact.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/wnri/fbargact.mf
Initial commit
Diffstat (limited to 'fonts/wnri/fbargact.mf')
-rw-r--r--fonts/wnri/fbargact.mf52
1 files changed, 52 insertions, 0 deletions
diff --git a/fonts/wnri/fbargact.mf b/fonts/wnri/fbargact.mf
new file mode 100644
index 0000000000..6273e14cac
--- /dev/null
+++ b/fonts/wnri/fbargact.mf
@@ -0,0 +1,52 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw macron and flat grave accents
+%
+
+numeric barwidth; barwidth=vround .2[vair,stem];
+numeric semiwidth; semiwidth=7.5u;
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ y1:=.825[y2,y1]; % flatten it a bit
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=.825[x_height,h]; % flattened a bit
+ bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+transform Tf; Tf = identity shifted (-.5w+slant*(-y2),-y2*aspect_ratio);
+savePicture(MacronPic);
+endgroup;
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[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=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform At; At=identity shifted(.5w+slant*(h+acctdiff),aspect_ratio*(h+acctdiff));
+ap(MacronPic);
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(MacronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = bargrv enddef;
+
+% end of file fbargact.mf
+
+