summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
commit215012a8d684889983ec2c0629e1c704e6853d9c (patch)
treeebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf
parent1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff)
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf')
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf267
1 files changed, 267 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf
new file mode 100644
index 00000000000..684ca8d6b16
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf
@@ -0,0 +1,267 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangmac.mf: METAFONT file that defines various macros
+% for use in bangla fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+def matra(expr wa,wb) =
+ begingroup
+ save x,y,lslope,rslope;
+ lslope = matra_slope;
+ rslope = matra_slope;
+ z1'r = (wa,matra_f*h);
+ z2'r = (wb,matra_f*h);
+ if wa>0: x1'r := x1'r - 0.5*stem_width; lslope := 90;
+ x12=x1'r + stem_width;
+ y12 = matra_h*h + .5matra_t*h/sind(lslope);
+ x13=x1'r;
+ y13=y12;
+ x11=x1'r;
+ y11 = y12 + stem_width/sind(lslope);
+ fill z13--z11--z12--cycle;
+ fi
+ if wb<w: x2' := x2' + 0.5*stem_width; rslope := 90; fi
+ penpos1'(matra_t*h/sind(lslope),lslope);
+ penpos2'(matra_t*h/sind(rslope),rslope);
+ penstroke z1'e--z2'e;
+ penlabels(11,12,13);
+ endgroup
+enddef;
+
+
+def stem(expr xstem) =
+ begingroup
+ save x,y;
+ z1' = (xstem,matra_f*h);
+ penpos1'(stem_width,0);
+ x2'r = x1'r; y2'r = 0;
+ x2'l = x1'l; y2'l = y2'r + stem_width * sind(stem_slope);
+ penstroke z1'e--z2'e;
+ penlabels(1',2');
+ endgroup
+enddef;
+
+
+def halfstem(expr xstem,a,b) =
+ begingroup
+ save x,y;
+ z1 = (xstem,a);
+ penpos1(stem_width,0);
+ x2r = x1r; y2r = b;
+ x2l = x1l; y2l = b + stem_width * sind(stem_slope);
+ fill z1l--z2l--z2r--z1r--cycle;
+ endgroup
+enddef;
+
+
+def cwbar(expr za,zb,zc,th) =
+ begingroup
+ save x,y,phiab,phibc,width,lab,lcd;
+ phiab = angle(za-zb);
+ phibc = angle(zb-zc);
+ lab = length(za-zb);
+ width = lab * sind(abs(phibc - phiab));
+ lcd = width / sind(abs(th - phibc));
+ z4' = zc + dir(th) * lcd;
+ z1l = za; z1r = zb; z2l = z4'; z2r = zc;
+ penstroke z1e--z2e;
+ endgroup
+enddef;
+
+
+%% Macro for a hook hanging from two points, with a curvature at the
+%% middle. The two upper points are za and zb.
+def hookjt(expr za,zb,zc,lift,thinness,thf) =
+ begingroup
+ save x,y,lab,lcd,thab,thcd,lmid,thmid,dist;
+ dist = 0.8;
+ z4 = zc + thinness*length(za-zb) * dir(thf);
+ z11' = .5[za,zb]; z12' = .5[zc,z4];
+ lab = length(za-zb); lcd = length(zc-z4);
+ thab = angle(zb-za); thcd = angle(z4-zc);
+ lmid = (1-dist)*lab + dist*lcd;
+ thmid = (1-dist)*thab + dist*thcd;
+ penpos11'(lab,thab); penpos12'(lcd,thcd);
+ z13'l = dist[za,zc] + (0,dist*lift);
+ penpos13'(lmid,thmid);
+ penstroke z11'e..z13'e..z12'e;
+ penlabels(11',12',13');
+ endgroup
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% macro for a hook with a stem attached to it.
+
+def hookstem(expr za,zb,zc,phia,phib) =
+ begingroup
+ save x,y;
+ z1r = za;
+ z1l = zb;
+ zc = z3; penpos3(stem_width,0);
+ z2l = (x3,.5stem_width*sind(stem_slope));
+ z2r = (x3+.5stem_width,0);
+ path hs_pl; hs_pl = z1l{dir phia}..tension1.2..{down}z2l;
+ path hs_pr; hs_pr = z2r{up}..tension1.2..{dir (180+phib)}z1r;
+ fill hs_pl--hs_pr--cycle;
+ z4r = z2r;
+ z4l = hs_pl intersectionpoint (z3l--(x3l,0));
+ penstroke z3e--z4e;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+% macro for a ball with a hook attached to it. The ball is centered at
+% za, with radius rad. The points zb and zc are the two end points of
+% the hook. The angle `th' is the angular co-ordinate of the point on
+% the circumference of the circle where the hook attaches to the
+% circle.
+
+def hookcirc(expr za,zb,zc,rad,th) =
+ begingroup
+ save x,y,phi,psi,chdir,thickness;
+ z1 = za;
+ fill fullcircle scaled rad shifted (z1);
+ thickness = length(zb-zc);
+ z5 = z1 + .5rad * dir(th);
+ z4 = z5 - thickness * dir(th);
+ z2=zb; z3=zc;
+ chdir:=1;
+ if angle(z5-z1)>angle(z2-z1): chdir:=-1; fi
+ phi = th + chdir*90;
+ if phi>0: psi=phi-180; else: psi=phi+180; fi
+ fill z2--z3..{dir psi}z4--z5{dir phi}..cycle;
+ endgroup
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% macro for the Tiki to be used for the letters "Ta", hraswa i and u
+%% etc. xa is the x-coordinate of the right end of the Tiki and xb is
+%% the same for the left end.
+
+def Tiki(expr xa,xb) =
+ begingroup
+ save x,y;
+ bot z1 = (xa,matra_f*h);
+ z2 = (xb,h);
+ z1'= (.5[x1,x2],.5[y1,y2]);
+ pickup pencircle xscaled .7pt yscaled .3pt rotated 90;
+ Tiki_pen := savepen;
+ draw z1{up}..{left}z1'{left}..{dir 60}z2;
+ penlabels(1,2);
+ endgroup
+enddef;
+
+
+def baTi(expr za,zb,zc,zd) =
+ begingroup
+ save x,y,lab,phi;
+ z1 = za; z2 = zb; z3 = zc; z4 = zd;
+ lab = length(z1-z2);
+ phi = 100;
+ x3' = x3; y3'-y3 = min(2.3*lab,.3[y2,y3]);
+ z4' = z4 + .4*lab * dir (phi-120);
+ fill z2{down}..{left}z3{left}..{dir 100}z4--z4'{dir (phi-180)}..{right}z3'{right}..{up}z1--cycle;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This is the golla to be used for bisarga, anuswar etc.
+
+def golla(expr za,balld) =
+ begingroup
+ save x,y;
+ z1r = za + .5balld * dir (45);
+ z2r = za + .5balld * dir (135);
+ z3r = za + .5balld * dir (-135);
+ z4r = za + .5balld * dir (-45);
+ penpos1(.15balld,45);
+ penpos2(.25balld,135);
+ penpos3(.15balld,-135);
+ penpos4(.25balld,-45);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ endgroup
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% The base of E, also used as ra-fala
+
+def Ebase(expr za,zb,t) =
+ begingroup
+ save x,y,w,h;
+ numeric w,h;
+ w=abs(xpart(za) - xpart(zb)); h=abs(ypart(za) - ypart(zb));
+ x1 = xpart(za); y1l= ypart(za); penpos1(t,90);
+ z2l = z1 + (-.3w,.13h); penpos2(1.4t,90);
+ y3 = y2; x3 = x2 -.4w; penpos3(1.4t,90);
+ z4l = zb; penpos4(t/3,-40);
+ penstroke z1e..{left}z2e{left}..z3e;%..z4e;
+ fill z3l{left}..z4l--z4l--z4l..{right}z3r--cycle;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% The shape at the right of ina, Sh+N etc.
+%% The starting point is za, the x-distance between za and the
+%% highest/lowest point is w, the total height is 2h, and t is the
+%% thickness of the lines.
+
+def clover(expr za,w,h,t) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform := identity shifted za slanted slantval;
+ numeric theta,balld; theta = 60; balld = .7w-.7t;
+ z1 = (0,0); penpos1(0,-90);
+ z2r = (x1+.5w,y1-h); penpos2(t,-90);
+ z3r = (w,y1-.5h); penpos3(.7t,0);
+ z4l = (x2,y1); penpos4(.5balld,theta);
+ fill fullcircle scaled (balld) shifted z4l;
+ penstroke z1e..z2e..{up}z3e{up}..{dir (theta+90)}z4e;
+ z4'l = z4l; penpos4'(.5balld,-theta);
+ x3' = x3; y3' - y4l = y4l - y3; penpos3'(.7t,0);
+ x2' = x2; y2' -y4l = y4l - y2; penpos2'(t,90);
+ penstroke z1e..z2'e..{down}z3'e{down}..{dir (-theta-90)}z4'e;
+ penlabels(1,2,2',3,3',4,4');
+ endgroup
+enddef;
+
+
+
+%% End of file bangmac.mf \ No newline at end of file