summaryrefslogtreecommitdiff
path: root/language/bengali
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 /language/bengali
Initial commit
Diffstat (limited to 'language/bengali')
-rw-r--r--language/bengali/arosgn/CHANGES9
-rw-r--r--language/bengali/arosgn/README8
-rw-r--r--language/bengali/arosgn/arosgn.ps1238
-rw-r--r--language/bengali/arosgn/arosgn.sty156
-rw-r--r--language/bengali/arosgn/mf/arosgnc.mf577
-rw-r--r--language/bengali/arosgn/mf/arosgnr.mf565
-rw-r--r--language/bengali/arosgn/mf/arosgns.mf577
-rw-r--r--language/bengali/arosgn/samples/asgalone.tex51
-rw-r--r--language/bengali/arosgn/samples/itrsgasg.itx41
-rw-r--r--language/bengali/arosgn/sgaon.sty15
-rw-r--r--language/bengali/arosgn/tfm/arosgnc.tfmbin0 -> 136 bytes
-rw-r--r--language/bengali/arosgn/tfm/arosgnr.tfmbin0 -> 136 bytes
-rw-r--r--language/bengali/arosgn/tfm/arosgns.tfmbin0 -> 136 bytes
-rw-r--r--language/bengali/bangtex/README.bangtex7
-rw-r--r--language/bengali/bangtex/examples/manual.tex1265
-rw-r--r--language/bengali/bangtex/examples/samplett.tex42
-rw-r--r--language/bengali/bangtex/examples/samptex.tex95
-rw-r--r--language/bengali/bangtex/latex/bangfont.tex123
-rw-r--r--language/bengali/bangtex/latex/barticle.cls732
-rw-r--r--language/bengali/bangtex/latex/bbk10.clo296
-rw-r--r--language/bengali/bangtex/latex/bbk11.clo294
-rw-r--r--language/bengali/bangtex/latex/bbk12.clo296
-rw-r--r--language/bengali/bangtex/latex/bbook.cls814
-rw-r--r--language/bengali/bangtex/latex/bletter.cls439
-rw-r--r--language/bengali/bangtex/latex/bsize10.clo303
-rw-r--r--language/bengali/bangtex/latex/bsize11.clo302
-rw-r--r--language/bengali/bangtex/latex/bsize12.clo302
-rw-r--r--language/bengali/bangtex/mf/bang10.mf100
-rw-r--r--language/bengali/bangtex/mf/bangbase.mf49
-rw-r--r--language/bengali/bangtex/mf/bangconso.mf483
-rw-r--r--language/bengali/bangtex/mf/bangdefs.mf914
-rw-r--r--language/bengali/bangtex/mf/bangfala.mf133
-rw-r--r--language/bengali/bangtex/mf/banghalf.mf198
-rw-r--r--language/bengali/bangtex/mf/bangjuk.mf800
-rw-r--r--language/bengali/bangtex/mf/bangkaar.mf146
-rw-r--r--language/bengali/bangtex/mf/banglig.mf183
-rw-r--r--language/bengali/bangtex/mf/bangmac.mf267
-rw-r--r--language/bengali/bangtex/mf/bangnum.mf209
-rw-r--r--language/bengali/bangtex/mf/bangpunc.mf247
-rw-r--r--language/bengali/bangtex/mf/bangsl10.mf86
-rw-r--r--language/bengali/bangtex/mf/bangvow.mf227
-rw-r--r--language/bengali/bangtex/mf/bangwd10.mf85
-rw-r--r--language/bengali/bngtoday.sty89
-rw-r--r--language/bengali/ebong/ANNOUNCE.txt8
-rw-r--r--language/bengali/ebong/README52
-rw-r--r--language/bengali/ebong/doc/eb.pdfbin0 -> 83662 bytes
-rw-r--r--language/bengali/ebong/doc/src/eb.b227
-rw-r--r--language/bengali/ebong/doc/src/eb_tex.tex227
-rw-r--r--language/bengali/ebong/ebong.py346
-rw-r--r--language/bengali/latexbangla/README27
-rw-r--r--language/bengali/latexbangla/latexbangla.pdfbin0 -> 142852 bytes
-rw-r--r--language/bengali/latexbangla/latexbangla.sty242
-rw-r--r--language/bengali/latexbangla/latexbangla.tex428
-rw-r--r--language/bengali/mkbangtex/README38
-rw-r--r--language/bengali/mkbangtex/mkbangtex560
-rw-r--r--language/bengali/mkbangtex/mkbangtex.bang420
-rw-r--r--language/bengali/mkbangtex/mkbangtex.pdfbin0 -> 134070 bytes
-rw-r--r--language/bengali/mkbangtex/mkbangtex.tex396
-rw-r--r--language/bengali/pandey/README11
-rw-r--r--language/bengali/pandey/beng.c1153
-rw-r--r--language/bengali/pandey/beng.sty51
-rw-r--r--language/bengali/pandey/doc/bengdoc.bn731
-rw-r--r--language/bengali/pandey/doc/bengdoc.pdfbin0 -> 86123 bytes
-rw-r--r--language/bengali/pandey/doc/example.bn55
-rw-r--r--language/bengali/pandey/doc/example.pdfbin0 -> 38130 bytes
-rw-r--r--language/bengali/pandey/manifest.txt28
-rw-r--r--language/bengali/pandey/mf/bn.mf17
-rw-r--r--language/bengali/pandey/mf/bnbanjon.mf508
-rw-r--r--language/bengali/pandey/mf/bndigit.mf86
-rw-r--r--language/bengali/pandey/mf/bnjuk.mf980
-rw-r--r--language/bengali/pandey/mf/bnkaar.mf90
-rw-r--r--language/bengali/pandey/mf/bnlig.mf121
-rw-r--r--language/bengali/pandey/mf/bnligtbl.mf36
-rw-r--r--language/bengali/pandey/mf/bnmacro.mf668
-rw-r--r--language/bengali/pandey/mf/bnmisc.mf33
-rw-r--r--language/bengali/pandey/mf/bnpunct.mf203
-rw-r--r--language/bengali/pandey/mf/bnr10.mf29
-rw-r--r--language/bengali/pandey/mf/bnsl10.mf30
-rw-r--r--language/bengali/pandey/mf/bnswar.mf162
-rw-r--r--language/bengali/pandey/mf/xbnr10.mf29
-rw-r--r--language/bengali/pandey/mf/xbnsl10.mf30
-rw-r--r--language/bengali/pandey/mf/xbnsupp.mf80
-rw-r--r--language/bengali/pandey/tfm/bnr10.tfmbin0 -> 1500 bytes
-rw-r--r--language/bengali/pandey/tfm/bnsl10.tfmbin0 -> 1500 bytes
-rw-r--r--language/bengali/pandey/tfm/xbnr10.tfmbin0 -> 328 bytes
-rw-r--r--language/bengali/pandey/tfm/xbnsl10.tfmbin0 -> 328 bytes
-rw-r--r--language/bengali/pandey/ubn.fd36
-rw-r--r--language/bengali/pandey/ubnx.fd36
88 files changed, 20937 insertions, 0 deletions
diff --git a/language/bengali/arosgn/CHANGES b/language/bengali/arosgn/CHANGES
new file mode 100644
index 0000000000..9f4bcb8293
--- /dev/null
+++ b/language/bengali/arosgn/CHANGES
@@ -0,0 +1,9 @@
+Version 2.1
+~~~~~~~~~~~
+ arosgn.sty can now be used on a stand-alone basis without
+ much pain.
+
+ .mf files made available for optional .pk file generation
+ to suit personal usage.
+
+ Sample test files incorporated.
diff --git a/language/bengali/arosgn/README b/language/bengali/arosgn/README
new file mode 100644
index 0000000000..3544dac4df
--- /dev/null
+++ b/language/bengali/arosgn/README
@@ -0,0 +1,8 @@
+arosgn2.1
+~~~~~~~~~~
+ Please print the file arosgn.ps using a postscript
+ printer. It contains the necessary instructions
+ for installation etc.
+
+ Direct all enquiries and comments to
+ Muhammad Masroor Ali (masroor@human.is.kyushu-u.ac.jp).
diff --git a/language/bengali/arosgn/arosgn.ps b/language/bengali/arosgn/arosgn.ps
new file mode 100644
index 0000000000..1822d2dfb2
--- /dev/null
+++ b/language/bengali/arosgn/arosgn.ps
@@ -0,0 +1,1238 @@
+%!PS-Adobe-2.0
+%%Creator: dvips 5.58 Copyright 1986, 1994 Radical Eye Software
+%%Title: arosgn.dvi
+%%CreationDate: Thu Sep 5 15:37:32 1996
+%%Pages: 3
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSCommandLine: dvips -D 300 arosgn.dvi
+%DVIPSParameters: dpi=300, comments removed
+%DVIPSSource: TeX output 1996.09.05:1536
+%%BeginProcSet: tex.pro
+/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
+/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
+mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
+ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
+isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
+hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
+TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
+forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
+/@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
+/FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
+/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
+string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
+end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
+/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
+N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
+length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
+128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
+get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
+dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
+/rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
+/base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
+0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
+setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
+.1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
+if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
+length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
+cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
+0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
+add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
+/eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
+known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
+/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
+65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
+0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
+{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
+getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{pop false}
+ifelse}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false
+RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1
+false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform
+round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg
+rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail
+{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}
+B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{
+4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{
+p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
+a}B /bos{/SS save N}B /eos{SS restore}B end
+%%EndProcSet
+TeXDict begin 40258431 52099146 1000 300 300
+(/home/users/masroor/MyOwn/packages/arosgn/arosgn.dvi)
+@start /Fa 1 16 df<01F807000C0018003800300070007FC0E000E000E000E000E000
+60006000300018600F800D127E9111>15 D E /Fb 14 166 df<FFFFF0FFFFF0FFFFF000
+3E0000F80001E00003C0000780000F00001E00001C00003C000038000038000038000038
+00003800003800003800001C00001C00000E00000F03E00787F003E7F001FFF0007FF000
+3FE0000FC0141D809912>60 D<1FF800003FFF0000F80FC000E001F000FF803C007FFC0F
+0007FFC380000FF1C000007EE0000007E0000001F0000000F000000070000000700001FF
+FF0001FFFF0001FFFF000000700000007000000070000000700000007000000070000000
+700000007000000070000000700000007000000070000000700000007000000070000000
+700000007000000070000000700000007000000070000000700000007000000070202992
+A70F>73 D<FFFFFFE0FFFFFFE0FFFFFFE000001C0000001C0000003C000000FC000007FC
+00001F9C00007E1C0001F81C0007E01C001F801C003F001C003F001C001F801C0007E01C
+0001F01C0000FC1C00003E1C00000F9C000003DC000000FC0000007C0000003C0000001C
+001B1A80991B>98 D<3C1800007E3C0FF0FE3E0FF0FE3F0FF0FC3F0E00E0370E00E0770E
+00F0E70E007FC70E003F870E001F0E0E00001E0E00003C0E0000780E0000F00E0003E00E
+001F800E001FE00E001FF80E0001FE0E00003F8E000007EE000001FE0000007E0000001E
+0000000E0000000E001C1B7F9A1D>I<FFFFFFC0FFFFFFC0FFFFFFC00E0000000E000000
+0E0000000E0000000E0000000E0038000E007C000E00FC000E01FC000E03DC000E0F1C00
+0E1E1C000F3C1C000FF81C000FF01C0007E00C0003800E0000000E000000060000000600
+000003000000030000000100000001001A1B80991A>I<003F800000FFF00001FFFC0007
+E00F000F8003C01E0000F03C00003C78000000F0000000E0000000E00000007000000038
+0000001C000000FFF00000FFF00000FFF000000E0000000E0000000E0000000E0000000E
+0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E
+0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E
+0000000E0000001E2980A70B>105 D<FFFFFFFCFFFFFFFCFFFFFFFC0000E0000000F000
+0001FC000003FF80000FE7E0003EE0F000FCE03803F0E01C0FC0E0FC3F00E1FC3C00E1FC
+3E00E1FC1F80E1F807C0E0F001E0E00000F0E0000078E000003CE000000EE0000007E000
+0003E0000001E0000000E0000000E0001E1B80991F>107 D<FFFFFFFEFFFFFFFEFFFFFF
+FE0000007000000070000000700000007000000070000000700070007001F8007003FC1E
+70079E7F700F0FFFF00E07E1F01C07C0F01F0380701F8380701FC000701FC000701FC000
+700F800070070000700000007000000070000000701F1A809920>I<FFFFFFF8FFFFFFF8
+FFFFFFF8000003800000038000000380000003800000038000000380001F0380007FC380
+01FFE38003F0F38007C03B800F801F800F000F801FC007801FE007801FE003801FE00380
+1FE003800FC0038007800380000003800000038000000380000003801D1B80991D>110
+D<001F007F80007FC07F8001FFF07F8003E07C70000F801E70001E000F70007C001FF000
+FC0039F000EE0070F0004700E0F0000383C0700001C780700000EE007000007C00700000
+7800700000F000700001E000700001C00070000080007000000000700000000070000000
+0070000000007000000000700000000070000000007000211A809921>112
+D<FFFFFFC0FFFFFFC0FFFFFFC0000000000007E000001FF800003FFC00007F1E00007F8F
+00007F8780007F8380003F03C0401E01C0400001C0600001C0600001C0300001C0380001
+C0180003801C0003800E00070007000F0003C03E0001FFFC0000FFF800003FE0001A1A7F
+991D>I<FFFFFFC0FFFFFFC0FFFFFFC000001C0000001C0000003C000000FC000003FC00
+001FDC0000FE1C0003F81C001FC01C007F001C007C001C007F001C003FC01C0007F01C00
+00FC1C00003F1C0000079C000003DC0000F0FC0001F87C0001F83C0001F81C0001F81C00
+00F000001A1B80991A>I<FFFFFFFEFFFFFFFEFFFFFFFE0000F8000001F0000003F80000
+07FC00000F1E00001E0F9C101C03FE101C00FC101C003C101E001C180F0E1C1807FF1C18
+03FF8C1C00F38C1C00038C0E00038E0E00038E0700070603800F0603C01E0601F07C0700
+FFF803007FF003001FC001201B809921>122 D<FFFFFFFF80FFFFFFFF80FFFFFFFF8003
+F81F0C0007FE3F9E000F0F71BC001E07E1F8001F03C1F0001F83C1E0001F81C1E0001F81
+C3C0000F01C7C0000001CFC0000001DDC0000001F9C0000001F1C0000003E0E0000003C0
+E0000007807000000F007000001E003800007C001C0003F8000E0003F000070003C00003
+800100000080211A7F9923>165 D E /Fc 2 57 df<00001C0000E00001C00003800003
+800003C00001E000107001FF1801F38C03E1C603E0C603F0C603F0CC03F0DC01E1F80007
+F0000FE0C00E80C00FE04007F06000382000183000181000181800381C00300E00700F00
+E007C3E003FFC001FF80003F0017217EA01E>50 D<FFE0FFF0FFE01C0038003800380038
+001C001E000F0007000380038003800380038003800700070007000E000E001C003C0038
+0030000C1B81990A>56 D E /Fd 14 115 df<7FFFF87FFFF87FFFF8001F00007C0000F0
+0003C0000780000F00001E00001C0000380000780000700000F00000E00000E00000E000
+00E00000F000007000007800003C0F001E1F801F3F800FFF8003FF8001FF00007E00151D
+7D9912>60 D<F01FC0FC3FC0FE3FC00F380003B80003F00001F00000F000007000007000
+00E00000E00000E00000E00000E00000E00001C00001C00001C00001C00001C00001C000
+038000038000038000038000038000121B7F9910>65 D<FFFFFFFFFFFFFFFFFFFFFFFF1C
+007F000E00E7000E01CE000701EE000700FFF003007FF80F000E3C3F001C1E7F801C0E7F
+C01C3E7EE01C7E7E701C7E3C381C7C003C383801FF380003F7B80003F1F80003F0F80003
+F0780001E0700000007000000070000000700000007000201B7C9923>67
+D<FFFFFFF0FFFFFFF0FFFFFFF001C000000380000003C0000003FC000003FFC000039FF0
+000387F800070E7800070E3800070C3800079C380007F8780007E0F00003C1E0000003C0
+00000F8000003F000001FC00000FE000000FE0000007F0000000FC0000003F0000000F80
+000007C0000001F0000000780000001C00000004001C207C991D>74
+D<FE0F07F0FF1FC7F0FFBFE7F003F0F70001E07E0007F83E001FFC1E003FFE1E007FFF1E
+00FFFF1C00FF7F1C00FE7F1C007C3E1C00381C1C0000001C000000380000003800000038
+0000003800000038000000380000007000000070000000700000007000000070001C1A7B
+991F>83 D<FFFFFFF8FFFFFFF8FFFFFFF81F0001C0078001C003C001C001E0038000F003
+8000780380003E0380001F8380003FC7000071F70000E07F0001C01F0003800F00070007
+001E000E003C000E003F800E003FF80E001FFF0E0000FFEE000007FC000000FC0000003C
+0000001C0000001C001D1C7B9920>90 D<7FFFFFFFE07FFFFFFFE07FFFFFFFE0000E000E
+00003F801C00007FE01C0000FFF01C0000FE781C0000FE3C1C0040FC1C380040781C3800
+C0001C3800C0001C3800C0001C3800E0001C3800E000387000700038700070007C700078
+00FE70003C01E770003E07C3F0001FFF81E0000FFE00E00003F800E000000000E0000000
+00E000231A7D9923>97 D<FFFFFFE0FFFFFFE0FFFFFFE000001C00000038000000780000
+01F800000FF800003F380001F8700007E070001F8070007E007000FC007000F8007000FC
+00E0003F00E0000F80E00007E0E00001F0E0000078E000003DC000000FC0000007C00000
+03C0000001C0000001C0001B1B7C991C>I<100000001000000030000000380000003C00
+00003FFFE0001FFFF80007FFFC0000003E0000001E0000000E0000000E00FFFFFF80FFFF
+FF80FFFFFF8000FE000003FF80000FFFC0001FC1E0001FE0F0001FE078001FE038000FC0
+380007803800000070000000F0000001E0000007C000001F000001FC00003FF000003FC0
+00003FC000000FE0000001F80000003C0000000F00000003C0000000E000000030001928
+7CA51A>101 D<0007F000001FFE00007FFF0001F803C003E000F00780003C0F00000F3C
+000000780000007000000070000000380000001C0000001C000000FFF00000FFF00000FF
+F000000E0000000E0000001C0000001C0000001C0000001C0000001C0000003800000038
+000000380000003800000038000000380000007000000070000000700000007000000070
+00000070000000E0000000E0000000E0000000E0000000E000000020297CA70C>105
+D<FFFFFFFCFFFFFFFCFFFFFFFC0000E0000000F0000001FC000007FF00001FC7C0007DC1
+E001F9C0F00FC380703F0383F0FC0387F0F00387F0F80387F03C0383E01E0701C00F0700
+000787000003C7000001E7000000F70000007E0000003E0000001E0000000E0000000E00
+001E1B7C9920>107 D<FFFFFFFEFFFFFFFEFFFFFFFE00000070000000E0000000E00000
+00E0000000E0000000E0000001C003E001C00FF079C01FF9FDC03C3FFFC0781F87C0701E
+0380F81C0380FC1C0380FC000380FC000380FC0003807800070000000700000007000000
+0700000007001F1A7C9921>I<000FF0003FF8007C3C00F81E00FC0E00FC0E00FC0E00F8
+1C0070380000704003E04007F8C007FCC007DEC0038EC0000EE0000EE0000E70001E7800
+1E3C003C3E00781F81F00FFFE007FF8001FE00171A7C991C>111
+D<7FFFFFE07FFFFFE07FFFFFE000000E0000000E0000003C000000FC000003FC00001FDC
+0000FE1C0007F038003F803800FE003800F8003800FE0038003F8038000FC0700003F070
+0000FC7000003E7000000F70000387F0000FC3E0000FC1E0000FC0E0000FC0E000078000
+001B1B7D991B>114 D E /Fe 4 61 df<003F80007FE0007CE0007E6000FE7000FC7000
+FC600070600000600000600000600000C08000C08000C0C000C0C000C0E0018060018070
+01803FFD801FFF80000F0000070000070014187C9719>49 D<003800007E0001FF9807E7
+FC0F81FC0E00FE0E007F1E00370F800707E00701E00700E3C700EFFE07DFFE1FDC3C7FB8
+78E838F8701FFC701FDC381F9C3800381C00381E00700E00700700E00783E003FFC001FF
+00007C00181D799A24>51 D<1FF83FFC1FF80F000E001C001C001C001E000E0007000780
+0380038003800380070007000E000E001C001C0038007800F000E000C0000E1B7F990A>
+56 D<10101838383830307070706060E0E0E0C0C0C0C040051577960F>60
+D E /Ff 8 98 df<0003000000030000000780000007800000078000000BC000000BC000
+000BC0000011E0000011E0000021F0000020F0000020F000004078000040780000C07C00
+00803C0000803C0001FFFE0001001E0001001E0002000F0002000F0004000F8004000780
+0C0007801E0007C0FF803FFC1E1C7E9B22>65 D<FFFFFF000F000F000F0003000F000100
+0F0001000F0001800F0000800F0000800F0080800F0080000F0080000F0080000F018000
+0FFF80000F0180000F0080000F0080000F0080000F0080400F0000400F0000800F000080
+0F0000800F0001800F0001800F0003000F000F00FFFFFF001A1C7D9B1F>69
+D<FFFFFE0F001E0F00060F00020F00020F00030F00010F00010F00810F00800F00800F00
+800F01800FFF800F01800F00800F00800F00800F00800F00000F00000F00000F00000F00
+000F00000F00000F8000FFF800181C7D9B1E>I<FF80003FE00F80003E000F80003E000B
+C0005E000BC0005E0009E0009E0009E0009E0009E0009E0008F0011E0008F0011E000878
+021E000878021E000878021E00083C041E00083C041E00081E081E00081E081E00081E08
+1E00080F101E00080F101E000807A01E000807A01E000807A01E000803C01E000803C01E
+000801801E001C01801E00FF8181FFE0231C7D9B29>77 D<FF001FF00F8003800FC00100
+0BC0010009E0010008F0010008F0010008780100083C0100083E0100081E0100080F0100
+080F8100080781000803C1000801E1000801F1000800F1000800790008007D0008003D00
+08001F0008001F0008000F0008000700080003001C000300FF8001001C1C7D9B22>I<00
+1FC00000E0380003800E00070007000E0003801C0001C03C0001E0380000E0780000F070
+000070F0000078F0000078F0000078F0000078F0000078F0000078F0000078F000007878
+0000F0780000F0380000E03C0001E01C0001C00E0003800700070003800E0000F0780000
+1FC0001D1C7D9B23>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F
+0020800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F
+0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
+0000000F0000001F800003FFFC001B1C7D9B21>84 D<00200000700000700000700000B8
+0000B80000B800011C00011C00011C00020E00020E0004070004070007FF000803800803
+800803801801C03803C0FE0FF815157F9419>97 D E /Fg 16 116
+df<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0041D7C9C0C>
+73 D<F0003CF00078F000F0F001E0F003C0F00780F00F00F01E00F03C00F07800F0F000
+F0E000F1F000F3F000F77800FE7C00FC3C00FC1E00F81F00F00F00F00F80F00780F003C0
+F003E0F001E0F000F0F000F0F00078F0007C161D7C9C1D>75 D<FC0007E0FC0007E0FC00
+07E0EE000DE0EE000DE0EE000DE0EF001DE0E70019E0E70019E0E78039E0E78039E0E380
+31E0E3C071E0E3C071E0E1C061E0E1E0E1E0E1E0E1E0E0E0C1E0E0F1C1E0E0F1C1E0E071
+81E0E07181E0E07B81E0E03B01E0E03B01E0E03B01E0E01E01E0E01E01E0E01E01E01B1D
+7C9C24>77 D<003F000001FFE00003FFF00007C0F8000F003C001E001E003C000F003C00
+0F00780007807800078070000380F00003C0F00003C0F00003C0F00003C0F00003C0F000
+03C0F00003C0F80007C078000780780007803C000F003E001F001E001E000F807C0007C0
+F80003FFF00001FFE000003F00001A1D7E9C1F>79 D<0FC03FF07FF87038401C001C001C
+00FC0FFC3FFC781CE01CE01CE01CF07C7FFC7FDC3F1C0E127E9114>97
+D<07E00FF81FFC3C1C70047000E000E000E000E000E000E000700070043C1C1FFC0FF807
+E00E127E9112>99 D<07C01FE03FF078787018601CFFFCFFFCFFFCE000E000E000700070
+043C1C3FFC1FF807E00E127E9112>101 D<00FC01FC03FC07000E000E000E000E000E00
+0E000E00FFE0FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E00
+0E000E000E1D809C0D>I<F0F0F0F0000000000000007070707070707070707070707070
+70707070041D7E9C0A>105 D<E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
+E0E0E0E0E0E0031D7D9C0A>108 D<E3F03F00EFF8FF80FFFDFFC0F81F81E0F00F00E0E0
+0E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E0
+0E00E0E00E00E0E00E00E0E00E00E01B127D9124>I<E3E0EFF0FFF8F83CF01CE01CE01C
+E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C0E127D9115>I<03F0000FFC001F
+FE003C0F00780780700380E001C0E001C0E001C0E001C0E001C0F003C07003807807803C
+0F001FFE000FFC0003F00012127F9115>I<E3E0EFF0FFF8F87CF01CE01EE00EE00EE00E
+E00EE00EE00EE01CF03CF87CFFF8EFF0E3C0E000E000E000E000E000E000E000E0000F1A
+7D9115>I<E380E780EF80FC00F800F000F000E000E000E000E000E000E000E000E000E0
+00E000E00009127D910E>114 D<1FC03FF07FF0F030E000E000F0007F003FC01FE000F0
+003800388038F078FFF07FE01FC00D127F9110>I E /Fh 2 115
+df<00FC000307000E01801C01C03800C03000C07000E07000E07000E0E001C0E001C0E0
+01C0600180600380700700380E001C180007E00013127E9115>111
+D<1F9C07EE03CF078E078C07000700070007000E000E000E000E000E000E001C001E00FF
+C010127F9110>114 D E /Fi 41 126 df<038700038700038700038700038700038700
+7FFFC0FFFFE0FFFFE0070E00070E00070E000F1E000E1C000E1C000E1C00FFFFE0FFFFE0
+7FFFC01C38001C38001C38001C38001C38001C380013197F9816>35
+D<01C00001C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001FFC007FFF
+00F9CF8071C70001C00001C00001C00001C00011127E9516>42 D<387C7E7E3E0E1E3C7C
+F860070B798416>44 D<FFFF80FFFF80FFFF8011037E8D16>I<70F8F8F8700505788416>
+I<000180000380000780000700000F00000E00001E00001C00003C000038000078000070
+0000F00000E00001E00001C00001C00003C0000380000780000700000F00000E00001E00
+001C00003C0000380000780000700000F00000E00000E0000011207E9C16>I<03E0000F
+F8001FFC001E3C00380E00780F00700700700700E00380E00380E00380E00380E00380E0
+0380E00380E00380F00780700700700700780F003C1E001E3C001FFC000FF80003E00011
+197E9816>I<007C0000FC0000DC0001DC00039C00039C00071C000F1C000E1C001E1C00
+3C1C00381C00781C00F01C00FFFFE0FFFFE0FFFFE0001C00001C00001C00001C00001C00
+01FFC001FFC001FFC013197F9816>52 D<70F8F8F870000000000000000070F8F8F87005
+12789116>58 D<0FE03FF87FFCF01EF00EF00E601E007C00F801F003E003C00380038003
+8003800300000000000000000003000780078003000F197D9816>63
+D<00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C00071C
+00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1FC0FF1F
+E07F1FC013197F9816>65 D<7FE000FFF8007FFC001C1E001C0F001C07001C07001C0700
+1C07001C0F001C1E001FFC001FF8001FFC001C3E001C0E001C0E001C0E001C0E001C0E20
+1C0E701C0E707F0FF0FF87E07F03C014197F9816>82 D<E00000E00000F0000070000078
+00003800003C00001C00001E00000E00000F000007000007800003800003C00001C00001
+C00001E00000E00000F000007000007800003800003C00001C00001E00000E00000F0000
+070000078000038000018011207E9C16>92 D<FFFF80FFFF80FFFF8011037E7E16>95
+D<1FE0007FF8007FFC00783C00301E00000E00000E0003FE001FFE007E0E00F00E00E00E
+00E00E00F01E00F83E007FFFE03FE7E00F83E013127E9116>97 D<7E0000FE00007E0000
+0E00000E00000E00000E00000E3E000EFF800FFFC00F83E00F01E00E00F00E00F00E0070
+0E00700E00700E00700E00F00F00E00F01E00F83C00FFFC00EFF00063C001419809816>
+I<03F80FFE1FFE3C1E780C7000F000E000E000E000E000F000700778073E0F1FFE0FFC03
+F010127D9116>I<003F00007F00003F0000070000070000070000070003C7000FF7003F
+FF003C1F00780F00F00700F00700E00700E00700E00700E00700F00700F00F00781F007C
+3F003FFFE01FF7F007C7E014197F9816>I<07E00FF81FFC3C3E780E700FF007FFFFFFFF
+FFFFE000F000700778073E1F1FFE0FFC03F010127D9116>I<001F00007F8000FF8001E7
+8001C30001C00001C0007FFF00FFFF00FFFF0001C00001C00001C00001C00001C00001C0
+0001C00001C00001C00001C00001C00001C0003FFE007FFF003FFE0011197F9816>I<03
+E3C00FFFE01FFFE01E3CC03C1E00380E00380E00380E003C1E001E3C001FFC001FF8003B
+E0003800003800001FFC001FFF003FFFC07803C0F001E0E000E0E000E0E000E0F001E07C
+07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00000E00000E00000E0000
+0E00000E3C000EFF000FFF800F87800F03800F03800E03800E03800E03800E03800E0380
+0E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816>I<018003C003C00180
+00000000000000007FC07FC07FC001C001C001C001C001C001C001C001C001C001C001C0
+01C07FFFFFFF7FFF101A7D9916>I<003000780078003000000000000000001FF81FF81F
+F80038003800380038003800380038003800380038003800380038003800380038003800
+3800386078F0F0FFE07FC03F800D237E9916>I<7E0000FE00007E00000E00000E00000E
+00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF8000FF8000F
+BC000F1E000E0E000E0F000E07807F87F0FFCFF07F87F01419809816>I<FFC000FFC000
+FFC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF8011197E
+9816>I<F9C380FFEFC0FFFFE03E7CE03C78E03870E03870E03870E03870E03870E03870
+E03870E03870E03870E03870E0FE7CF8FE7CF8FE7CF81512809116>I<7E3C00FEFF007F
+FF800F87800F03800F03800E03800E03800E03800E03800E03800E03800E03800E03800E
+03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E00780F00700700
+E00380E00380E00380E00380E00380F00780700700780F003C1E001FFC000FF80003E000
+11127E9116>I<7E3E00FEFF807FFFC00F83E00F01E00E00F00E00F00E00700E00700E00
+700E00700E00F00F00E00F01E00F83C00FFFC00EFF000E3C000E00000E00000E00000E00
+000E00000E00007FC000FFE0007FC000141B809116>I<FF0FC0FF3FE0FF7FE007F04007
+E00007C000078000078000070000070000070000070000070000070000070000FFFC00FF
+FC00FFFC0013127F9116>114 D<0FEC3FFC7FFCF03CE01CE01CF0007F801FF007FC003E
+E00EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<030000070000070000070000070000
+7FFF00FFFF00FFFF00070000070000070000070000070000070000070000070100070380
+07038007078007878003FF0003FE0000F80011177F9616>I<7E1F80FE3F807E1F800E03
+800E03800E03800E03800E03800E03800E03800E03800E03800E03800E07800F0F800FFF
+F007FFF803E3F01512809116>I<FF1FE0FFBFE0FF1FE038038038038038038038038038
+E38019F30019F30019B3001DB7001DB7001DB7001DB7000F1E000F1E000F1E0013127F91
+16>119 D<7F1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E00001
+F00003B800073C00071C000E0E007F1FC0FF3FE07F1FC013127F9116>I<7F1FC0FF9FE0
+7F1FC01C07000E07000E0E000E0E00070E00071C00071C00039C00039C0003980001B800
+01B80000F00000F00000F00000E00000E00000E00001C00079C0007BC0007F80003F0000
+3C0000131B7F9116>I<3FFFC07FFFC07FFFC0700780700F00701E00003C0000F80001F0
+0003E00007C0000F00001E01C03C01C07801C0FFFFC0FFFFC0FFFFC012127F9116>I<00
+1F80007F8001FF8001E00001C00001C00001C00001C00001C00001C00001C00001C00001
+C00003C0007F8000FF0000FF00007F800003C00001C00001C00001C00001C00001C00001
+C00001C00001C00001C00001E00001FF80007F80001F8011207E9C16>I<E0E0E0E0E0E0
+E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E00320779C16>I<FC0000
+FF0000FFC00003C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
+01E00000FF00007F80007F8000FF0001E00001C00001C00001C00001C00001C00001C000
+01C00001C00001C00003C000FFC000FF0000FC000011207E9C16>I
+E /Fj 35 190 df<78FCFEFEFE7E0E0E0C1C3870C080070E7E840B>44
+D<FFFFF0FFFFF0FFFFF0003E0000F80001E00003C0000780000F00000E00001C00003C00
+003800003800003800003800003800003800003800001C00001C00000E00000F03E00787
+F003E7F001FFF0007FF0003FE0000FC0141D809912>60 D<F03FC0FC3FC0FE3FC00F3800
+03B80001F80000F800007800003800003800003800003800003800003800003800003800
+003800003800003800003800003800003800003800003800003800003800003800121B83
+990F>65 D<01F0000007F800000FFC00000FFC00001DFC000018FC000018780000180003
+F8180003F81C0003F81E0007800F801F8007E07F8001FFFB80007FF380001FC38000FF03
+8007FC03801FE00380FF000380FC000380FF8003801FE0038003F8038000FF0380001FC3
+800003F3800000FB8000003F8000000F800000078000000380000003801D217EA020>I<
+FFFFFFFF00FFFFFFFF00FFFFFFFF001F0007F0000F800E700007800E700003C00FFE0001
+C007FF8001C003FFE000C000F1F003F80070780FFE0070381FEF8070F83CE3C071F83CE0
+E071F83FC0F871F81F83FC70F00F07FE7000000F377000000F33F000000FF1F0000007E0
+F0000003C07000000000700000000070000000007000251A7E9928>I<1FF800003FFF00
+00F80FC000E001F000FF803C007FFC0F0007FFC380000FF1C000007EE0000007E0000001
+F0000000F000000070000000700001FFFF0001FFFF0001FFFF0000007000000070000000
+700000007000000070000000700000007000000070000000700000007000000070000000
+700000007000000070000000700000007000000070000000700000007000000070000000
+700000007000000070202892A70F>73 D<FFFFFFF0FFFFFFF0FFFFFFF001C0000001E000
+0001F0000001FE000001DFF00001C7FC0001C31E0001C30F0001C3070001C3070001C707
+0001FE070000FC070000780E0000001E0000003C00000078000000F0000003E000001F80
+0000FF000000FF800000FFE000000FF8000000FE0000001F80000007C0000000F0000000
+3C0000000C1E217E9921>I<FFFFFFFCFFFFFFFCFFFFFFFC1E0001C00F0001C0078001C0
+03C001C000F001C0007C01C0003F01C0001F01C0003E01C0007801C000F001C001E001C0
+03C001C0078001C00F8001C00FF001C00FFF01C0007FE1C00003F9C000007FC000000FC0
+000003C0000F01C0001F8000001F8000001F8000000F00001E1E7C9927>79
+D<FFFFFFFF80FFFFFFFF80FFFFFFFF800001C000000001C000000001C000000001C00000
+0001C000000001C038001001C07C001001C0FC001001C1EE001800E78E001800FF060018
+007E06000C003806000E00000E000600000E000700000C000380001C00038000180001E0
+00380000F000700000FE03E000003FFFC000000FFF00000007FC00000000000000000000
+00000001F000000003F800000003F800000003F800000003F800000001F0000021237E99
+24>82 D<F8000007F0FF000007F0FFE0FC07F000FBFF0700003F8F8700007FC3E70001FF
+E0F70003FFF03F00078C781F000F0C3C0F001E0C1E0F001E0C1E07001E1C1E07001F3F3E
+07000FFFFC070007F1F8070001C070070000000007000000000700000000070000000007
+0000000007000000000700000000070000000007000000000700241A7E9927>I<FFFFFF
+FFFFFFFFFFFFFFFFFF1F0000380780003803C0003801E0003800780038003C0038000F00
+380007E038000FFC38001C3FB8003807F8007000F800E0007801C0003803800038078000
+3807F0003807FF003803FFE038001FFC3800007F3800000FF8000001F800000078000000
+78201C7F9922>90 D<FFFFFFFFFEFFFFFFFFFEFFFFFFFFFE000FFF80E0001FE7C0E0001C
+E1E0E0001CE0E0E0401FE070E0400FC030E060078030E060000030E030000030E0300000
+30E018000030E01C000030E00C000070E006000070E0070000F8E0038001FCE001E001CF
+E000F80783E0003FFF01E0001FFE00E00007F800E000000000E000000000E0271A7E992A
+>97 D<FFFFFFF8FFFFFFF8FFFFFFF8000007000000070000000F0000003F000001FF0000
+07E700003F870001FE07000FF007007F8007007C0007007C0007007F0007000FC0070001
+F00700007E0700000F87000003E7000000F70000003F0000001F0000000F00000007001D
+1A7E9920>I<380C0000007C1E007F80FC1F007F80FC1F807F80F83BC07000E039C07000
+E071C07000F0F1C070007FE1C070003FC1C070000F01C070000003807000000780700000
+0F007000001E007000003C007000007800700001F000700003FC00700003FF80700003FF
+F070000007FC700000003F700000000FF000000001F000000000F0000000007000211B7E
+9A24>I<FFFFFFFEFFFFFFFEFFFFFFFE0700000007000000070000000700000007000000
+0700078007001FC007003FC007007FC00700F9C00701F1C00703E1C0070781C0070F01C0
+071E01C0073C00E0077800E007F8007007F0007007E0003003C00038000000180000001C
+0000000C000000061F1C7E9922>I<80000000C0000000C0000000E0000000780000007F
+FFF0003FFFFC000FFFFE0000001F0000000F000000070000000700FFFFFFF8FFFFFFF8FF
+FFFFF801FFC00003FFF00007F87C00071C1E00071C0F0003FC070003F8070001F0070000
+0007000000070000000E0000001E0000007C000001F800000FE000007F800003FE000003
+FE000003FF8000000FE0000001F00000003C0000001E000000070000000380000001C01D
+297EA520>I<07F803FC1FFE03FC3C0F83FC7003E380E000F380F0003B80FE001F803F80
+0F8003E0078000F007800038038000380380003803800070038000E0038003C003807F80
+03807F000380780003800000038000000380000003800000038000000380000003800000
+01801E1A7E9921>103 D<FFFFFFE0FFFFFFE0FFFFFFE007FFE0000F38F8000F383C000F
+F81E0007F00E0003E007000000070000000700000007000000070000000E0000001E0000
+007C000001F800000FF00007FFC00007FF000007F8000007FF0000003FE0000007F80000
+007E0000000F80000001E0000000701C1C7E991F>I<003FF00000FFFC0003E00F000780
+03C00E0000F01C00003C3800000070000000E0000000E000000070000000380000001C00
+0000FFF00000FFF00000FFF000000E0000000E0000000E0000000E0000000E0000000E00
+00000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E00
+00000E0000000E0000000E0000000E0000000E0000000E0000000E0000000E0000001E27
+80A60B>I<FFFFFFFFFFFFFFFFFFFFFFFF0F80007007C0007001E0007000700070003C00
+70000E0070000780700003C0700007C070000F0070001E0070003C007000F0007001E000
+7003C0007007F8007007FFC07003FFF8700003FF7000000FF0000001F0000000F0000000
+70201A7F9922>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000001C000000001E000000007F
+80000001FFF0000007FCFC00003F1C1E0000FC1C070003F01C07801FC01C1F807F001C3F
+807C001C3F807E001C3F801F801C3F0007E01C1E0001F81C0000007C1C0000001F1C0000
+0007DC00000001FC000000007C000000003C000000001C000000001C0000221A809923>
+I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC00000001C000000001C000000001C000000001C00
+0000001C000000001C0001F0001C0007FC001C000FFE0F1C001E0F3FDC003C07FFFC0078
+03F0FC007803E07C00FE01E03C00FF01C03C00F380001C00F380001C00FF80001C007F80
+001C003F00001C001E00001C000000001C000000001C000000001C00221B7E9925>I<FF
+FFFFFF80FFFFFFFF80FFFFFFFF8003E000380007C00038000780003800078000380007C0
+00380003E000380000F8003800003C003800000E0038000007003800000700380000FF00
+380003FFC0380007FFF038000787FC380007071F3800070F07B800078E01F80007FE00F8
+0003FC00780001F800380000000038000000003800211A7E9924>I<FFFFFFFEFFFFFFFE
+FFFFFFFE000000E0000000E0000000E0000000E0000000E0000000E0000000E0003F00E0
+01FFE0E007FFF8E007C07CE00F801EE00FE00FE01FF007E01FF803E01E7801E01E7801E0
+1FF800E01FF800E00FF000E007E000E003C000E0000000E0000000E0000000E01F1C7E99
+22>I<00000007F80007E007F8003FFC07F801FFFF070007E00FC7000F8003E7003F0001
+F7007E0007FF00F7000F3F00E3803C1F0041C0F80F0000E1E00F000077C00700003F0007
+00003E000700007C00070000F000070000E0000700004000070000000007000000000700
+00000007000000000700000000070000000007000000000700251A7E9928>112
+D<FFFFFFFF80FFFFFFFF80FFFFFFFF800007FFE000000FFFF000000F38F800000F383C00
+000FF81C00000FF80C000007F00E002003E00E002000000E003000000E003000000E0018
+00000E001800000E000C00001C000E00003C000700007800078000F80003C001F00001F0
+03E00000FC0FC000007FFF8000003FFF0000000FFC0000211A7E9924>I<FFFFFFFCFFFF
+FFFCFFFFFFFC000001C0000001C0000007C000001FC00000FFC00007F9C0003FC1C001FF
+01C007F801C03FC001C03E0001C03F8001C03FE001C003FC01C0007F01C0000FC1C00001
+F1C000007DC000001FC0001E07C0003F03C0003F01C0003F01C0003F0000001E00001E1C
+7E9921>I<FFFFFFFF80FFFFFFFF80FFFFFFFF8007C000380007800038000F000038001E
+000038001C000038001E000038000F00003800078000380003C000380001F00038000078
+3C3800003C7E3800001EFF3800000FE7B8000007C3F800200781F800300780F800380700
+78001C070078001E0E0038000F1E00380007FC00380003F800380001F0003800211B7E99
+24>I<00001FF800001FF800001FF8000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000380001C0380007F078001FFC70003F3EE0007C
+0FC000F807C000F003E000F007F000F81E78007FFC3C003FF80F000FE003C0000000F81D
+2C949906>117 D<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE00003F800000007FC00000007FC
+0000000FFC0700000FF80F80400EF00F80400E001FC0600F003DC060078079C03007C1F1
+C03003FFE1C01801FFC1C018007F01C00C000003C00E0000038007000007800380000F00
+01C0001E0001F0007C0000FC01F800007FFFF000001FFFE0000007FF80000001FF000023
+1B7E9926>I<FFFFFFF8FFFFFFF8FFFFFFF803800000038000000380000003C0000003E0
+000003F0000003FC000003BFF800038FFF800380FFC0038003E0038001E0038001E00380
+01E0038003C0038003C00380078003C00F0001C01E0001E03C0000F07800007FF000003F
+E000001F80001D1B7E9920>120 D<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC00000FC000000
+01F800000003FC00000007FE0000000F8F8000000F07E380401E00FFC0401E003F80601E
+000780600F000780300F8703803007FF83803803FFC3801800F9C1801C0001C1801C0001
+C1C00E0001C1C00F000380C007800780C003C00F00C001F03E00E000FFFC0060003FF800
+60001FE00020231B7E9926>122 D<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003F81F860007
+FE3FCF000FCF71DF001FE7E0FE001CE3C0FC001CE3C0F8001FE1C1F0000FC1C3F0000781
+C7F0000001CF70000001DE70000001FC70000001F870000003E038000003C03800000780
+1C00000F001C00001E000E00007C00070003F800038003F00001C003C00000E003000000
+30241A7F9926>165 D<FFFFFF80FFFFFF80FFFFFF800000000000000000000000000000
+000000000000001F8000007FE00001FFF80001F03E0003F80F0003FC038003FC00C003FC
+000003FC000001F8000000F000001A13819914>182 D<FFFFFFFEFFFFFFFEFFFFFFFE00
+3FFFC00079E3E00079E0F0007FE070003FC070001F8070000000F000001FE000003FC010
+003FF010003FF818001E7C1800003C0800003C0C00003C0600003C070000380380007801
+E000F000F801E0007E07C0003FFF80000FFF000001F8001F1B7F991F>189
+D E /Fk 12 61 df<001FF0003FFC003F9E003F8E007F87007F87003F87001E07000007
+0000078000078000074000076000073000073000071800071C00070F000703FFF701FFFF
+00003F00000F00000718187F9719>49 D<000003E000000E000000380000007000000070
+000000780000003E0000040F80007FE1C000FC78E000F83C7001F81C7001FC1C7001FC1C
+E001FC1DE000F83FC00000FF800003FE00C003D800C003FE006001FF0020000F80300007
+8010000380180003801C0003800E0007000F000F0007C01E0003F07E0001FFFC00007FF8
+00000FE0001C217EA01E>I<0070000001FE000007FF9C003F8FDE007E01FF007800FF80
+70003FC03C0009C03F0001C01FE001C003F000E000E0F8E000E7FEE007E7FFE01FC707C0
+5F8E0780E80F0F80F007FFC07803FDE03C03F9C01E0001C00F0001C0078003C003C00380
+01E0078000F81F00007FFE00001FFC000007E0001B1D799A24>I<FFFFFFFF80FFFFFFFF
+80FFFFFFFF8000000000000001E000000003F8000003E3FC000007FF1E00000FFF1E0000
+0F1F0F00001E060700001E000380001E000380000F3803800007FC03800001FC03800000
+0007000000000F00001C001E00001FE0FC00000FFFE0000003FF00000000FF800000001F
+F000000003FE000000003F8000000007E000000000F8000000001800211D7A9924>I<FF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFE000003E00000000FE00000003FE0000000FCE0E00003
+F0E3F8000FC0E7F8003F00E71C00FC00E71C03F000E7FC0FC000E3FC1F0000E0FC1F0000
+F0380FC000FFF803F000FFF000FC00EFC0003F00E000000FC0E0000003F0E0000000FCE0
+00000E3FE000001F0FE000001F03E000001F00E000001F000000000E000000281C809924
+>I<3FDFF1007FFFFF80FFFFFFE0EFFF0FF01FFF87F03E73C3B87871C13870F0E01C70F0
+E01C70F0E01C79F9FF1C3FFFFFDC1FDFFFFC0E0FC0F81C01C0F01C01C1F00E00FFF80F00
+FFB807807E3803C0003801E0003800F00070007800F0003C00E0001F03C0000FFFC00003
+FF000000FC001E1C7C9822>I<0F003FE07FF073F8E7F8E7DCE71CE71CE7F873F878F03E
+001F0007C003E000F000700038003800380038007000F001E007C00F800E000E1B7B9914
+>I<FFF8FFF8FFF81C0038003800380038001C001F000F00038003C001C001C001C001C0
+01C003800380038007000F000E001C003C0038000D1B81990A>I<FFFFE0FFFFE0FFFFE0
+1C07003807003807003807003807001C07001F07000F070003870003C70001C70001C700
+01C70001C70001C7000387000387000387000707000F07000E07001C07003C0700380700
+000700131C81990A>I<00003000003860F870E0F8F07807E07FFFC03FFF0007F8001508
+79A401>I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE000F81E000001E00E1E0061C0077F00E3
+8007FF0073BC07FF8073FE07FF8073FE07BF803BCE0FBF0039FE1FDE001DFC3FE0001CF0
+3EE0000E001C70000E0000700007000070000700007000038000E00003C000E00001E001
+E00000F801C000007E03C000001FFF80000007FF00000001FC0000231A809922>I<80C0
+E0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F070303010041677960F>I
+E /Fl 1 14 df<0003FE0000001FFFC000007C01F00001E0003C000380000E0007000007
+000E000003801C000001C018000000C038000000E0300000006070000000706000000030
+6000000030E000000038C000000018C000000018C000000018C000000018C000000018C0
+00000018C000000018E00000003860000000306000000030700000007030000000603800
+0000E018000000C01C000001C00E0000038007000007000380000E0001E0003C00007C01
+F000001FFFC0000003FE000025257E9C2A>13 D E /Fm 13 117
+df<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E46264
+3C380F127B9115>97 D<01F007080C08181C3838300070007000E000E000E000E000E000
+E008E010602030C01F000E127B9113>99 D<001F80000380000380000700000700000700
+000700000E00000E00000E00000E0003DC00063C000C3C00181C00383800303800703800
+703800E07000E07000E07000E07000E0E200C0E200C0E20061E4006264003C3800111D7B
+9C15>I<01E007100C1018083810701070607F80E000E000E000E000E000E00860106020
+30C01F000D127B9113>I<00F3018F030F06070E0E0C0E1C0E1C0E381C381C381C381C38
+3830383038187818F00F700070007000E000E0C0C0E1C0C3007E00101A7D9113>103
+D<0FC00001C00001C0000380000380000380000380000700000700000700000700000E78
+000E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C003838007038
+80703880707080707100E03200601C00111D7D9C15>I<01800380010000000000000000
+000000000000001C002600470047008E008E000E001C001C001C00380038007100710071
+00720072003C00091C7C9B0D>I<1F800380038007000700070007000E000E000E000E00
+1C001C001C001C0038003800380038007000700070007000E400E400E400E40068003800
+091D7C9C0B>108 D<3C3C002646004687004707008E07008E07000E07000E07001C0E00
+1C0E001C0E001C1C00381C40381C40383840383880701900300E0012127C9117>110
+D<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E
+000F127B9115>I<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C003
+81C00381C00381800703800703000707000706000E8C000E70000E00000E00001C00001C
+00001C00001C00003C0000FF8000131A7F9115>I<01F006080C080C1C18181C001F001F
+C00FF007F0007800386030E030C030806060C01F000E127D9111>115
+D<00C001C001C001C00380038003800380FFE00700070007000E000E000E000E001C001C
+001C001C00384038403840388019000E000B1A7D990E>I E /Fn
+62 124 df<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E
+0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
+01C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>12
+D<60F0F8680808081010204080050C7C9C0C>39 D<004000800100020006000C000C0018
+001800300030007000600060006000E000E000E000E000E000E000E000E000E000E000E0
+00E000600060006000700030003000180018000C000C00060002000100008000400A2A7D
+9E10>I<800040002000100018000C000C000600060003000300038001800180018001C0
+01C001C001C001C001C001C001C001C001C001C001C00180018001800380030003000600
+06000C000C00180010002000400080000A2A7E9E10>I<60F0F070101010102020408004
+0C7C830C>44 D<FFE0FFE00B0280890E>I<60F0F06004047C830C>I<0003000300070006
+0006000E000C001C0018001800380030003000700060006000E000C000C001C001800380
+030003000700060006000E000C000C001C001800180038003000700060006000E000C000
+C00010297E9E15>I<07E00C301818300C700E60066006E007E007E007E007E007E007E0
+07E007E007E007E007E007E0076006700E700E300C18180C3007E0101B7E9A15>I<0300
+07003F00C700070007000700070007000700070007000700070007000700070007000700
+0700070007000700070007000F80FFF80D1B7C9A15>I<07E01838201C400EF00EF80FF8
+07F8077007000F000E000E001C001C00380070006000C00180030006010C01180110023F
+FE7FFEFFFE101B7E9A15>I<07E01838201C781C781E780E381E001E001C001C00380060
+07E00038001C001E000E000F000F700FF80FF80FF80E701E401C30380FE0101B7E9A15>
+I<000C00000C00001C00003C00003C00005C00009C00019C00011C00021C00061C00041C
+00081C00101C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C
+00001C00001C0001FFC0121B7F9A15>I<60F0F0600000000000000000000060F0F06004
+127C910C>58 D<003F800000C0600003001800040004000800020010000100201F008020
+70808040E0404040C0384041C03840818038208380382083803820838038208380382083
+8038208180382041C0382040C0384040E0784020709880201F0F00100000000800000004
+000000030001E000C01F80003FF0001B1D7E9C20>64 D<00060000000600000006000000
+0F0000000F0000000F000000178000001780000037C0000023C0000023C0000043E00000
+41E0000041E0000080F0000080F0000080F0000100780001FFF8000100780002003C0002
+003C0002003C0004001E0004001E000C001F001E001F00FF80FFF01C1C7F9B1F>I<FFFF
+C00F00F00F00380F003C0F001C0F001E0F001E0F001E0F001E0F001C0F003C0F00780F01
+F00FFFE00F00780F003C0F001E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F00
+1E0F003C0F0078FFFFE0181C7E9B1D>I<001FC08000E0318003800B80070007800E0003
+801C0001803C000180380000807800008070000080F0000000F0000000F0000000F00000
+00F0000000F0000000F0000000F00000007000008078000080380000803C0001001C0001
+000E000200070004000380080000E03000001FC000191C7E9B1E>I<FFFFC0000F00F000
+0F003C000F000E000F0007000F0007000F0003800F0003C00F0001C00F0001C00F0001E0
+0F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001C0
+0F0003C00F0003800F0007800F0007000F000E000F001C000F007000FFFFC0001B1C7E9B
+20>I<FFFFFC0F003C0F000C0F00040F00040F00060F00020F00020F02020F02000F0200
+0F02000F06000FFE000F06000F02000F02000F02000F02010F00010F00020F00020F0002
+0F00060F00060F000C0F003CFFFFFC181C7E9B1C>I<FFFFF80F00780F00180F00080F00
+080F000C0F00040F00040F02040F02000F02000F02000F06000FFE000F06000F02000F02
+000F02000F02000F00000F00000F00000F00000F00000F00000F00000F8000FFF800161C
+7E9B1B>I<FFF3FFC00F003C000F003C000F003C000F003C000F003C000F003C000F003C
+000F003C000F003C000F003C000F003C000F003C000FFFFC000F003C000F003C000F003C
+000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C
+000F003C00FFF3FFC01A1C7E9B1F>72 D<FFF00F000F000F000F000F000F000F000F000F
+000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00FF
+F00C1C7F9B0F>I<FFF8000F80000F00000F00000F00000F00000F00000F00000F00000F
+00000F00000F00000F00000F00000F00000F00000F00000F00000F00080F00080F00080F
+00180F00180F00100F00300F00700F01F0FFFFF0151C7E9B1A>76
+D<FF8000FF800F8000F8000F8000F8000BC00178000BC00178000BC001780009E0027800
+09E002780008F004780008F004780008F004780008780878000878087800087808780008
+3C107800083C107800083C107800081E207800081E207800081E207800080F407800080F
+40780008078078000807807800080780780008030078001C03007800FF8307FF80211C7E
+9B26>I<FF007FC00F800E000F8004000BC0040009E0040009E0040008F0040008F80400
+08780400083C0400083C0400081E0400080F0400080F0400080784000807C4000803C400
+0801E4000801E4000800F40008007C0008007C0008003C0008003C0008001C0008000C00
+1C000C00FF8004001A1C7E9B1F>I<003F800001E0F0000380380007001C000E000E001C
+0007003800038038000380780003C0700001C0F00001E0F00001E0F00001E0F00001E0F0
+0001E0F00001E0F00001E0F00001E0780003C0780003C0380003803C0007801C0007000E
+000E0007001C000380380001E0F000003F80001B1C7E9B20>I<FFFF800F00E00F00780F
+003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F003C0F00780F00E00FFF800F
+00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FF
+F000171C7E9B1C>I<FFFF00000F01E0000F0078000F003C000F001C000F001E000F001E
+000F001E000F001E000F001C000F003C000F0078000F01E0000FFF00000F03C0000F00E0
+000F00F0000F0078000F0078000F0078000F0078000F0078000F0078000F0078100F0078
+100F0038100F001C20FFF007C01C1C7E9B1F>82 D<07E0801C1980300780700380600180
+E00080E00080E00080F00000F000007C00007FC0003FF8001FFE0007FF0000FF80000F80
+0003C00003C00001C08001C08001C08001C0C00180C00300F00300CC0E0083F800121C7E
+9B17>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020
+800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
+000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
+001F800003FFFC001B1C7F9B1E>I<FFF07FC00F000E000F0004000F0004000F0004000F
+0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F
+0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000700080003
+8008000380100001C020000060C000001F00001A1C7E9B1F>I<FFE0FFE0FF1F001F003C
+1E001E00180F001F00100F001F00100F001F001007803F80200780278020078027802003
+C027C04003C043C04003C043C04001E043E08001E081E08001E081E08000F081E10000F1
+00F10000F100F100007900F200007A007A00007A007A00007E007E00003C003C00003C00
+3C00003C003C00001800180000180018000018001800281C7F9B2B>87
+D<7FF0FFC00FC03E000780180003C0180003E0100001E0200001F0600000F04000007880
+00007D8000003D0000001E0000001F0000000F0000000F8000000F80000013C0000023E0
+000021E0000041F00000C0F8000080780001007C0003003C0002001E0006001F001F003F
+80FFC0FFF01C1C7F9B1F>I<FFF007FC0F8001E00780008007C0018003C0010003E00200
+01F0020000F0040000F8040000780800007C1800003C1000001E2000001F2000000F4000
+000FC0000007800000078000000780000007800000078000000780000007800000078000
+000780000007800000078000007FF8001E1C809B1F>I<1FC000307000783800781C0030
+1C00001C00001C0001FC000F1C00381C00701C00601C00E01C40E01C40E01C40603C4030
+4E801F870012127E9115>97 D<FC00001C00001C00001C00001C00001C00001C00001C00
+001C00001C00001C00001C7C001D86001E03001C01801C01C01C00C01C00E01C00E01C00
+E01C00E01C00E01C00E01C00C01C01C01C01801E030019060010F800131D7F9C17>I<07
+E00C301878307870306000E000E000E000E000E000E00060007004300418080C3007C00E
+127E9112>I<003F00000700000700000700000700000700000700000700000700000700
+00070003E7000C1700180F00300700700700600700E00700E00700E00700E00700E00700
+E00700600700700700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C
+700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112>I<00
+F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E
+000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<03C3800C3CC01C38
+80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800
+001FF8001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F8
+00121B7F9115>I<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C
+00001C00001C7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C
+03801C03801C03801C03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00
+18000000000000000000000000000000FC001C001C001C001C001C001C001C001C001C00
+1C001C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000
+0000000000000000000FE000E000E000E000E000E000E000E000E000E000E000E000E000
+E000E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC00001C
+00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C
+0C001C08001C10001C20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C
+0E001C0F001C0F80FF9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C001C00
+1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
+1C00FF80091D7F9C0C>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C00
+1C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C
+01C01C001C01C01C001C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<
+FC7C001C87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C0380
+1C03801C03801C03801C03801C0380FF9FF014127F9117>I<03F0000E1C001806003003
+00700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003803003001806
+000E1C0003F00012127F9115>I<FC7C001D86001E03001C01801C01C01C00C01C00E01C
+00E01C00E01C00E01C00E01C00E01C01C01C01C01C01801E03001D06001CF8001C00001C
+00001C00001C00001C00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B00
+300F00700700700700E00700E00700E00700E00700E00700E00700600700700700300F00
+180F000C370007C700000700000700000700000700000700000700000700003FE0131A7E
+9116>I<FCE01D301E781E781C301C001C001C001C001C001C001C001C001C001C001C00
+1C00FFC00D127F9110>I<1F9030704030C010C010E010F8007F803FE00FF000F8803880
+18C018C018E010D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE0
+1C001C001C001C001C001C001C001C001C001C101C101C101C101C100C100E2003C00C1A
+7F9910>I<FC1F801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
+03801C03801C03801C03801C07800C07800E1B8003E3F014127F9117>I<FF07E03C0380
+1C01001C01000E02000E020007040007040007040003880003880003D80001D00001D000
+00E00000E00000E00000400013127F9116>I<FF3FCFE03C0F03801C0701801C0701001C
+0B01000E0B82000E0B82000E1182000711C4000711C4000720C40003A0E80003A0E80003
+C0680001C0700001C0700001803000008020001B127F911E>I<7F8FF00F03800F030007
+020003840001C80001D80000F00000700000780000F800009C00010E00020E0006070004
+03801E07C0FF0FF81512809116>I<FF07E03C03801C01001C01000E02000E0200070400
+07040007040003880003880003D80001D00001D00000E00000E00000E000004000004000
+008000008000F08000F10000F300006600003C0000131A7F9116>I<7FFC703860384070
+40F040E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>I<FF
+FFF01401808B15>I E /Fo 32 119 df<000E00001E00007E0007FE00FFFE00FFFE00F8
+FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000
+FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000
+FE0000FE0000FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>49
+D<00FF800003FFF0000FFFFC003F03FF007C00FF807C007FC0FE007FC0FF003FE0FF003F
+E0FF003FE0FF001FE07E001FE03C003FE000003FE000003FC000003FC000007F8000007F
+800000FF000001FE000001FC000003F0000007E000000FC000001F0000003E0000007C00
+E0007800E000F000E001E001C0038001C0070001C00FFFFFC01FFFFFC03FFFFFC07FFFFF
+C0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC001F81FE00
+1F00FF003F80FF003F807F803FC07F803F807F803F807F801F007F800000FF800000FF00
+0000FF000001FE000003F8000007F00000FFC00000FFF0000001FC000000FF0000007F80
+00007FC000003FC000003FE000003FE000003FE03C003FE07E003FE0FF003FE0FF003FE0
+FF003FC0FF007FC0FE007F807C00FF803F01FF001FFFFC0007FFF00000FF80001B277DA6
+22>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE0000
+077E00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E0003
+807E0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FF
+FFFFF8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
+00FE00007FFFF8007FFFF8007FFFF81D277EA622>I<0C0003000F803F000FFFFE000FFF
+FE000FFFFC000FFFF8000FFFE0000FFFC0000FFE00000E0000000E0000000E0000000E00
+00000E0000000E0000000E7FC0000FFFF8000F80FE000E007F000C003F8000003F800000
+1FC000001FC000001FE000001FE018001FE07E001FE0FE001FE0FE001FE0FE001FE0FE00
+1FE0FE001FC078003FC078003F803C007F001F01FE000FFFFC0003FFF00000FF80001B27
+7DA622>I<0007F000003FFC0000FFFF0001FC0F0007F01F800FE03F800FC03F801FC03F
+803F803F803F801F007F8000007F0000007F0000007F000000FF000000FF0FC000FF3FF8
+00FF70FE00FFE03F00FFC03F80FF801FC0FF801FC0FF801FC0FF001FE0FF001FE0FF001F
+E0FF001FE07F001FE07F001FE07F001FE07F001FE03F801FC03F801FC01F803F800FC03F
+8007E0FF0003FFFC0000FFF000003FC0001B277DA622>I<380000003E0000003FFFFFF0
+3FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFFC07FFFFF8070000F0070001E0070003C00
+E0003800E0007800E000F0000001E0000003C0000003C0000007800000078000000F0000
+001F0000001F0000001F0000003F0000003F0000003E0000007E0000007E0000007E0000
+007E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0000
+00FE0000003800001C297CA822>I<000003800000000007C00000000007C0000000000F
+E0000000000FE0000000000FE0000000001FF0000000001FF0000000003FF8000000003F
+F8000000003FF80000000073FC0000000073FC00000000F3FE00000000E1FE00000000E1
+FE00000001C0FF00000001C0FF00000003C0FF80000003807F80000007807FC000000700
+3FC0000007003FC000000E003FE000000E001FE000001E001FF000001C000FF000001FFF
+FFF000003FFFFFF800003FFFFFF80000780007FC0000700003FC0000700003FC0000E000
+01FE0000E00001FE0001E00001FF0001C00000FF0001C00000FF00FFFE001FFFFEFFFE00
+1FFFFEFFFE001FFFFE2F297EA834>65 D<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003F
+C003FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E003FC0000E0
+03FC0000F003FC03807003FC03807003FC03807003FC03800003FC07800003FC07800003
+FC1F800003FFFF800003FFFF800003FFFF800003FC1F800003FC07800003FC07800003FC
+03800003FC03800003FC03800003FC03800003FC00000003FC00000003FC00000003FC00
+000003FC00000003FC00000003FC00000003FC00000003FC000000FFFFFC0000FFFFFC00
+00FFFFFC000024297DA82B>70 D<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001
+FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
+FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
+FE0001FE0001FE0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA81A>73
+D<FFFFFC0000FFFFFC0000FFFFFC000003FC00000003FC00000003FC00000003FC000000
+03FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003
+FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
+00000003FC00000003FC00000003FC0001C003FC0001C003FC0001C003FC0001C003FC00
+03C003FC00038003FC00038003FC00078003FC00078003FC000F8003FC000F8003FC001F
+8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF0022297DA829>76
+D<FFFE0000001FFFC0FFFE0000001FFFC0FFFF0000003FFFC003FF0000003FF00003FF00
+00003FF00003BF80000077F00003BF80000077F000039FC00000E7F000039FC00000E7F0
+00038FE00001C7F000038FE00001C7F0000387F0000387F0000387F0000387F0000387F0
+000387F0000383F8000707F0000383F8000707F0000381FC000E07F0000381FC000E07F0
+000380FE001C07F0000380FE001C07F0000380FF003807F00003807F003807F00003807F
+003807F00003803F807007F00003803F807007F00003801FC0E007F00003801FC0E007F0
+0003800FE1C007F00003800FE1C007F00003800FE1C007F000038007F38007F000038007
+F38007F000038003FF0007F000038003FF0007F000038001FE0007F000038001FE0007F0
+00038000FC0007F000038000FC0007F000FFFE00FC01FFFFC0FFFE007801FFFFC0FFFE00
+7801FFFFC03A297DA841>I<7FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC0
+7E003FC007C078003FC003C078003FC003C070003FC001C0F0003FC001E0F0003FC001E0
+E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E0E0003FC000E000003FC00000
+00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
+00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
+00003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC00000
+00003FC0000000003FC0000000003FC00000007FFFFFE000007FFFFFE000007FFFFFE000
+2B287EA730>84 D<FFFFF001FFFCFFFFF001FFFCFFFFF001FFFC03FC0000070003FC0000
+070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000
+070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000
+070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000
+070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000070003FC0000
+070003FC0000070003FC00000F0001FC00000E0001FE00000E0000FE00001E0000FF0000
+3C00007F80007800003FC000F800001FF007E0000007FFFFC0000001FFFF000000001FF8
+00002E297DA835>I<FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0FFFFE07FFFF007FFF0
+03FC0001FE00001C0003FC0001FE00001C0001FE0001FF0000380001FE0000FF00003800
+01FF0000FF0000780000FF0000FF8000700000FF0000FF8000700000FF8000FF8000F000
+007F8001FFC000E000007F8001FFC000E000003FC003FFE001C000003FC0039FE001C000
+003FE0039FE003C000001FE0070FF0038000001FE0070FF0038000001FF00F0FF0078000
+000FF00E07F8070000000FF00E07F80700000007F81E07FC0E00000007F81C03FC0E0000
+0007FC1C03FC1E00000003FC3801FE1C00000003FC3801FE1C00000001FE7801FF380000
+0001FE7000FF3800000001FE7000FF3800000000FFF000FFF000000000FFE0007FF00000
+0000FFE0007FF0000000007FC0003FE0000000007FC0003FE0000000003FC0003FC00000
+00003F80001FC0000000003F80001FC0000000001F80001F80000000001F00000F800000
+00001F00000F80000000000E00000700000044297FA847>87 D<7FFFF81FFFF07FFFF81F
+FFF07FFFF81FFFF001FF0000780000FF8000F000007FC001E000007FC001C000003FE003
+C000001FF0078000000FF80F0000000FF80E00000007FC1E00000003FE3C00000003FE78
+00000001FF7000000000FFF0000000007FE0000000007FC0000000003FE0000000001FF0
+000000001FF0000000001FF8000000001FFC000000003FFE000000007BFE00000000F1FF
+00000000E0FF80000001E0FFC0000003C07FC0000007803FE0000007001FF000000F001F
+F000001E000FF800003C0007FC0000380003FE0000780003FE0000F00001FF0000E00000
+FF80FFFF801FFFFEFFFF801FFFFEFFFF801FFFFE2F297EA834>I<01FF800007FFF0000F
+81FC001FC0FE001FC07F001FC07F001FC03F800F803F8000003F8000003F8000003F8000
+0FFF8000FFFF8007FC3F801FE03F803F803F807F803F807F003F80FE003F80FE003F80FE
+003F80FE007F80FF007F807F00FFC03F83DFFC0FFF0FFC01FC03FC1E1B7E9A21>97
+D<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000000FE0000000
+0FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000F
+E00000000FE1FE00000FE7FF80000FFE07E0000FF803F8000FF001FC000FE000FE000FE0
+00FE000FE0007F000FE0007F000FE0007F800FE0007F800FE0007F800FE0007F800FE000
+7F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F000FE000FF000FE000FE
+000FF000FE000FF001FC000FF803F8000F9E07E0000F0FFF80000E01FC0000212A7EA926
+>I<001FF80000FFFE0003F01F000FE03F801FC03F803F803F803F803F807F801F007F00
+0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00
+00007F0000007F8000003F8001C03FC001C01FC003C00FE0078003F01F0000FFFC00001F
+E0001A1B7E9A1F>I<00003FF80000003FF80000003FF800000003F800000003F8000000
+03F800000003F800000003F800000003F800000003F800000003F800000003F800000003
+F800000003F800000003F800001FE3F80000FFFBF80003F03FF8000FE00FF8001FC007F8
+003F8003F8003F8003F8007F8003F8007F0003F800FF0003F800FF0003F800FF0003F800
+FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F
+0003F8003F8003F8003F8007F8001FC00FF8000FE01FF80003F03FFF8000FFF3FF80003F
+C3FF80212A7EA926>I<003FE00001FFF80003F07E000FE03F001FC01F803F800FC03F80
+0FC07F000FC07F0007E0FF0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF00
+0000FF000000FF0000007F0000007F8000003F8000E03F8001E01FC001C00FE003C003F8
+1F8000FFFE00001FF0001B1B7E9A20>I<0007F0003FFC00FE3E01FC7F03F87F03F87F07
+F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007
+F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007
+F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF8018
+2A7EA915>I<00FF81F003FFE7FC0FC1FE7C1F80FC7C3F80FE7C3F007E107F007F007F00
+7F007F007F007F007F007F007F007F007F003F007E003F80FE001F80FC000FC1F8001FFF
+E00018FF8000380000003C0000003C0000003E0000003FFFF8003FFFFF001FFFFFC00FFF
+FFE007FFFFF01FFFFFF07E0007F87C0001F8F80001F8F80000F8F80000F8F80000F8FC00
+01F87E0003F03F0007E00FC01F8003FFFE00007FF0001E287E9A22>I<07001FC01FE03F
+E03FE03FE01FE01FC007000000000000000000000000000000FFE0FFE0FFE00FE00FE00F
+E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
+E0FFFEFFFEFFFE0F2B7DAA14>105 D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
+0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA914>108
+D<FFC07F0000FFC1FFC000FFC787E0000FCE07F0000FDC03F8000FF803F8000FF003F800
+0FF003F8000FF003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
+E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
+03F8000FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80211B7D9A26>110
+D<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F0007F07F0007
+F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007
+F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001FFFC00003FE0
+001D1B7E9A22>I<FFC1F0FFC7FCFFCE3E0FDC7F0FD87F0FF87F0FF07F0FF03E0FF0000F
+E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000F
+E0000FE0000FE000FFFF00FFFF00FFFF00181B7E9A1C>114 D<03FE300FFFF03E03F078
+00F07000F0F00070F00070F80070FC0000FFE000FFFE007FFFC03FFFE01FFFF007FFF800
+FFFC0003FC0000FCE0007CE0003CF0003CF0003CF80078FC0078FF01F0F7FFC0C1FF0016
+1B7E9A1B>I<00700000700000700000700000F00000F00000F00001F00003F00003F000
+07F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F00007F000
+07F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03807F038
+03F87001F8F000FFE0001F8015267FA51B>I<FFE03FF800FFE03FF800FFE03FF8000FE0
+03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
+F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
+000FE003F8000FE003F8000FE007F8000FE007F8000FE00FF80007E01FF80003F03BFF80
+01FFF3FF80003FC3FF80211B7D9A26>I<FFFE03FF80FFFE03FF80FFFE03FF8007F00070
+0007F000700007F800F00003F800E00003FC01E00001FC01C00001FC01C00000FE038000
+00FE038000007F070000007F070000007F8F0000003F8E0000003FDE0000001FDC000000
+1FDC0000000FF80000000FF80000000FF800000007F000000007F000000003E000000003
+E000000001C00000211B7F9A24>I E /Fp 31 122 df<00200040008001000300060004
+000C000C00180018003000300030007000600060006000E000E000E000E000E000E000E0
+00E000E000E000E000E000E000E0006000600060007000300030003000180018000C000C
+0004000600030001000080004000200B327CA413>40 D<800040002000100018000C0004
+00060006000300030001800180018001C000C000C000C000E000E000E000E000E000E000
+E000E000E000E000E000E000E000E000C000C000C001C001800180018003000300060006
+0004000C00180010002000400080000B327DA413>I<70F8FCFC74040404040808101020
+40060F7C840E>44 D<FFE0FFE00B027F8B10>I<70F8F8F87005057C840E>I<008003800F
+80F380038003800380038003800380038003800380038003800380038003800380038003
+8003800380038003800380038003800380038007C0FFFE0F207C9F18>49
+D<007E0001C1000300800601C00C03C01C03C0380180380000780000700000700000F000
+00F0F800F30E00F40700F80380F80380F801C0F001C0F001E0F001E0F001E07001E07001
+E07001E07801C03801C03803801C03800C0700060C0001F80013207E9F18>54
+D<01F000060C001C06001803003803807003807001C0F001C0F001C0F001C0F001E0F001
+E0F001E07001E07003E03803E03803E01C05E00E19E003E1E00001E00001C00001C00003
+C0000380300380780700780600700C002018001030000FC00013207E9F18>57
+D<000FE00000701C0000800200030001800400004008000020080000201007C010201830
+08203008084060040440C0078441C0038481C00382838003828380038283800382838003
+8283800382838003828380038281C0038241C0038240C007824060078420300B84201831
+881007C0F00800000008000000040000000300000E00800078007007C0000FFC001F237D
+A226>64 D<0001800000018000000180000003C0000003C0000007E0000005E0000005E0
+000009F0000008F0000008F00000107800001078000010780000203C0000203C0000603E
+0000401E0000401E0000801F0000800F0000800F0001FFFF800100078001000780020003
+C0020003C0060003E0040001E0040001E00C0001F00C0000F03E0001F8FF800FFF20227E
+A125>I<FFC00003FF0FC00003F007C00003E005E00005E005E00005E004F00009E004F0
+0009E004F00009E004780011E004780011E004780011E0043C0021E0043C0021E0043C00
+21E0041E0041E0041E0041E0040F0081E0040F0081E0040F0081E004078101E004078101
+E004078101E00403C201E00403C201E00401E401E00401E401E00401E401E00400F801E0
+0400F801E00400F801E004007001E00E007001E01F007003F0FFE0203FFF28227EA12D>
+77 D<03F0200C0C601803E03000E07000E0600060E00060E00020E00020E00020F00000
+F000007800007F00003FF0001FFE000FFF0003FF80003FC00007E00001E00000F00000F0
+000070800070800070800070800070C00060C000E0E000C0F80180C6030081FC0014227D
+A11B>83 D<0FE0001838003C0C003C0E0018070000070000070000070000FF0007C7001E
+07003C0700780700700700F00708F00708F00708F00F087817083C23900FC1E015157E94
+18>97 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00
+000E00000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E00
+1E0E001E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F
+0017237FA21B>I<01FE000703000C07801C0780380300780000700000F00000F00000F0
+0000F00000F00000F00000F000007000007800403800401C00800C010007060001F80012
+157E9416>I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E00000E0
+0000E00000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F000E0
+F000E0F000E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E0070CF0
+01F0FE17237EA21B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFF
+E0F00000F00000F00000F00000F000007000007800203800201C00400E008007030000FC
+0013157F9416>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E
+00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E
+00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
+0070FFE7FF18237FA21B>104 D<1C001E003E001E001C00000000000000000000000000
+000000000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E00
+0E000E000E000E00FFC00A227FA10E>I<01C003E003E003E001C0000000000000000000
+0000000000000001E00FE001E000E000E000E000E000E000E000E000E000E000E000E000
+E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F18061803E000B2C82
+A10F>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00
+000E00000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E10000E38
+000EF8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00F8FFE3
+FE17237FA21A>I<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E00
+0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
+0E000E00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E00F003C
+00E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800
+E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E0
+0E003800E0FFE3FF8FFE27157F942A>I<0E1F80FE60C01E80E00F00700F00700E00700E
+00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
+00700E0070FFE7FF18157F941B>I<01FC000707000C01801800C03800E0700070700070
+F00078F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00E0380
+07070001FC0015157F9418>I<0E1F00FE61C00E80600F00700E00380E003C0E001C0E00
+1E0E001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80E00E41
+C00E3F000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE000171F
+7F941B>I<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E
+000E000E000E000F00FFF010157F9413>114 D<0F8830786018C018C008C008E008F000
+7F803FE00FF001F8003C801C800C800CC00CC008E018D0308FC00E157E9413>I<020002
+00020002000600060006000E001E003E00FFF80E000E000E000E000E000E000E000E000E
+000E000E000E040E040E040E040E040E040708030801F00E1F7F9E13>I<0E0070FE07F0
+1E00F00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070
+0E00700E00700E00F00E00F006017003827800FC7F18157F941B>I<FFC1FE1E00780E00
+300E00200E002007004007004003808003808003808001C10001C10000E20000E20000E2
+00007400007400003800003800003800001000001000002000002000002000004000F040
+00F08000F180004300003C0000171F7F941A>121 D E /Fq 17 115
+df<00020004000800100030006000C000C0018001800300070006000E000E000C001C00
+1C001800380038003800700070007000700070007000F000F000E000E000E000E000E000
+E000E000E000E000E000E000E000E000F000F00070007000700070007000700038003800
+380018001C001C000C000E000E000600070003000180018000C000C00060003000100008
+000400020F497AB519>40 D<800040002000100018000C000600060003000300018001C0
+00C000E000E00060007000700030003800380038001C001C001C001C001C001C001E001E
+000E000E000E000E000E000E000E000E000E000E000E000E000E001E001E001C001C001C
+001C001C001C003800380038003000700070006000E000E000C001C00180030003000600
+06000C00180010002000400080000F497CB519>I<78FCFCFCFC7806067A8512>46
+D<00080000380000780001F8003FF800FE7800C078000078000078000078000078000078
+000078000078000078000078000078000078000078000078000078000078000078000078
+000078000078000078000078000078000078000078000078000078000078000078000078
+0000780000780000780000780000780000780000780000FC007FFFF87FFFF8152E7AAD21
+>49 D<007F800001FFF0000701FC000C007E0010001F0020000F80200007C0400007C040
+0007C0B00003E0F80003E0FC0003E0FC0003E0FC0003E0780003E0000003E0000007C000
+0007C00000078000000F8000000F0000001F0000001E0000003C00000078000000700000
+00E0000001C0000003800000070000000E0000000C000000180000003000000060000000
+C000200180002003000020060000400C00004008000040100000C03FFFFFC07FFFFF80FF
+FFFF80FFFFFF801B2E7DAD21>I<00000300000000000300000000000300000000000780
+000000000780000000000FC0000000000FC0000000000FC00000000017E00000000013E0
+0000000013E00000000021F00000000021F00000000021F00000000040F80000000040F8
+0000000080FC00000000807C00000000807C00000001007E00000001003E00000001003E
+00000002001F00000002001F00000006001F80000004000F80000004000F80000008000F
+C00000080007C00000080007C00000100003E000001FFFFFE000001FFFFFE00000200001
+F00000200001F00000600001F80000400000F80000400000F80000800000FC0000800000
+7C00008000007C00010000003E00010000003E00030000003E00030000001F0007000000
+1F001F8000003F80FFE00003FFFCFFE00003FFFC2E317EB032>65
+D<00001FE000800001FFFC01800007F00F0180001F80018380003E000043800078000027
+8000F00000178001E000000F8003C0000007800780000007800F80000003800F00000003
+801E00000001801E00000001803E00000001803C00000000807C00000000807C00000000
+807C0000000000F80000000000F80000000000F80000000000F80000000000F800000000
+00F80000000000F80000000000F80000000000F80000000000F80000000000F800000FFF
+FC7C00000FFFFC7C0000001FC07C0000000F803C0000000F803E0000000F801E0000000F
+801F0000000F800F0000000F800F8000000F80078000000F8003C000000F8001E000000F
+8000F000000F80007C00001780003E00002780001F8000E3800007F00383800001FFFE01
+8000001FF000802E317CB034>71 D<FFF00000007FF8FFF00000007FF807F00000007F00
+02F8000000BE0002F8000000BE0002F8000000BE00027C0000013E00027C0000013E0002
+3E0000023E00023E0000023E00023E0000023E00021F0000043E00021F0000043E00021F
+0000043E00020F8000083E00020F8000083E00020F8000083E000207C000103E000207C0
+00103E000207C000103E000203E000203E000203E000203E000201F000403E000201F000
+403E000201F000403E000200F800803E000200F800803E000200F800803E0002007C0100
+3E0002007C01003E0002007C01003E0002003E02003E0002003E02003E0002003E02003E
+0002001F04003E0002001F04003E0002000F88003E0002000F88003E0002000F88003E00
+020007D0003E00020007D0003E00020007D0003E00020003E0003E00020003E0003E0002
+0003E0003E00070001C0003E000F8001C0007F00FFF801C00FFFF8FFF800800FFFF83531
+7CB03D>77 D<FFE00007FFC0FFF00007FFC003F000007C0002F80000380002FC00001000
+027C00001000023E00001000023E00001000021F00001000021F80001000020F80001000
+0207C00010000207E00010000203E00010000203F00010000201F00010000200F8001000
+0200FC00100002007C00100002007E00100002003E00100002001F00100002001F801000
+02000F80100002000FC01000020007C01000020003E01000020003F01000020001F01000
+020000F81000020000F810000200007C10000200007E10000200003E10000200001F1000
+0200001F10000200000F90000200000FD00002000007D00002000003F00002000003F000
+02000001F00002000001F00002000000F0000200000070000700000070000F8000003000
+FFF800003000FFF8000010002A317CB032>I<00003FC000000003C03C0000000F000F00
+00001C0003800000780001E00000F00000F00001E00000780003C000003C00078000001E
+00070000000E000F0000000F001E00000007801E00000007803E00000007C03C00000003
+C03C00000003C07C00000003E07C00000003E07800000001E0F800000001F0F800000001
+F0F800000001F0F800000001F0F800000001F0F800000001F0F800000001F0F800000001
+F0F800000001F0F800000001F0F800000001F07C00000003E07C00000003E07C00000003
+E03C00000003C03E00000007C03E00000007C01E00000007801F0000000F800F0000000F
+00078000001E00078000001E0003C000003C0001E00000780000F00000F00000780001E0
+00001C00038000000F000F00000003C03C000000003FC000002C317CB034>I<007F8020
+01FFE06007C078600F001CE01C0006E03C0003E0380001E0780000E0700000E0F0000060
+F0000060F0000060F0000020F0000020F8000020F80000007C0000007C0000007F000000
+3FC000001FF800000FFF800007FFF80003FFFE0000FFFF00000FFF800000FFC000001FE0
+000007E0000003F0000001F0000000F0000000F8000000F8800000788000007880000078
+80000078C0000078C0000070C00000F0E00000F0F00000E0F80001C0EC0003C0E7000780
+C3E01E00C0FFFC00800FF0001D317CB025>83 D<00FE00000303C0000C00E00010007000
+100038003C003C003E001C003E001E003E001E0008001E0000001E0000001E0000001E00
+000FFE0000FC1E0003E01E000F801E001F001E003E001E003C001E007C001E00F8001E04
+F8001E04F8001E04F8003E04F8003E0478003E047C005E043E008F080F0307F003FC03E0
+1E1F7D9E21>97 D<003F800000E0E0000380380007003C000E001E001E001E001C000F00
+3C000F007C000F0078000F8078000780F8000780F8000780FFFFFF80F8000000F8000000
+F8000000F8000000F8000000F8000000780000007C0000003C0000003C0000801E000080
+0E0001000F0002000780020001C00C0000F03000001FC000191F7E9E1D>101
+D<007F00F801C1C71C0380E81C070070080F0078001E003C001E003C003E003E003E003E
+003E003E003E003E003E003E003E003E001E003C001E003C000F007800070070000780E0
+0009C1C000087F000018000000180000001800000018000000180000001C0000000E0000
+000FFFF80007FFFF0003FFFF800E000FC0180001E0300000F070000070E0000038E00000
+38E0000038E0000038E00000387000007070000070380000E01C0001C00700070001C01C
+00003FE0001E2E7E9E21>103 D<0780FE0000FF83078000FF8C03C0000F9001E00007A0
+01E00007A000F00007C000F00007C000F000078000F000078000F000078000F000078000
+F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0
+00078000F000078000F000078000F000078000F000078000F000078000F000078000F000
+078000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF80211F7E9E25>110
+D<001FC00000F0780001C01C00070007000F0007801E0003C01C0001C03C0001E03C0001
+E0780000F0780000F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000
+F8F80000F8F80000F8780000F07C0001F03C0001E03C0001E01E0003C01E0003C00F0007
+8007800F0001C01C0000F07800001FC0001D1F7E9E21>I<0783E0FF8C18FF907C0F907C
+07A07C07C03807C00007C00007C000078000078000078000078000078000078000078000
+078000078000078000078000078000078000078000078000078000078000078000078000
+0FC000FFFE00FFFE00161F7E9E19>114 D E end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 300dpi
+TeXDict begin
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 571 440 a Fq(AroSgaon)21 b(\(More)h(SGA)n(ON\))f(2.1)350
+585 y Fp(Muhammad)15 b(Masro)q(or)i(Ali)e(\(masro)q(or@h)o
+(uman.is.kyush)o(u-u.ac.jp\))828 683 y(Septem)o(b)q(er,)f(1996)118
+838 y Fo(1)69 b(In)n(tro)r(duction)118 971 y Fn(The)11
+b(bangla)d(fon)o(t)i Fm(sgaon)h Fn(w)o(as)f(dev)o(elop)q(ed)g(b)o(y)g
+(Anisur)118 1021 y(Rahman)e(and)i(it)g(has)g(found)g(application)f(in)g
+(v)n(arious)118 1071 y(pac)o(k)n(ages)i(including)g(itrans)g(\()606
+1070 y(c)595 1071 y Fl(\015)o Fn(Avinash)g(Chop)q(de\).)118
+1121 y(P)o(erhaps)i(it)e(w)o(as)h(the)h(\014rst)f(and)g(only)f(bangla)g
+(fon)o(t)g(in)118 1170 y(public)k(domain.)k(But)c(the)h(sgaon)e(fon)o
+(t)h(lac)o(ks)f(some)118 1220 y(essen)o(tial)d(c)o(haracters.)19
+b(The)11 b(absen)o(t)h(mem)o(b)q(ers)d(com-)118 1270
+y(prise)j(of)f(notable)h(ones)g(lik)o(e)f Fk(2)p Fj(,)k
+Fk(8)p Fj(,)f Fk(7)42 b Fm(etc)12 b Fn(plus)f(some)118
+1320 y(not)j(so)g(notable)f(ones.)160 1382 y(I)18 b(created)i(fon)o(t)d
+(arosgn)i(out)f(of)f(p)q(ersonal)i(need.)118 1431 y(The)h(name)f
+(arosgn)g(roughly)g(translates)i(to)f(more)118 1481 y(sonargaon.)160
+1543 y(Before)11 b(y)o(ou)f(pro)q(ceed)i(further,)g(please)f(b)q(e)g(w)
+o(arned)118 1593 y(that)i(w)o(e)h(presume)f(that)g(y)o(ou)g(ha)o(v)o(e)
+g(itrans)g(installed)118 1642 y(in)24 b(y)o(our)f(system.)49
+b(This)24 b(fon)o(t)f(set)i(w)o(as)f(created)118 1692
+y(merely)11 b(as)h(a)g(complemen)o(t)d(of)i(the)i(sgaon)e(fon)o(t.)17
+b(Y)m(ou)118 1742 y(need)g(to)f(use)i(the)e(itrans)h(pac)o(k)n(age)f
+(for)g(translitera-)118 1792 y(tion)j(of)f(Roman)f(c)o(haracters.)35
+b(But)19 b(again,)g(if)f(y)o(ou)118 1842 y(w)o(an)o(t)i(to)g(see)h
+(what)f(is)g(in)g(arosgn)g(without)g(using)118 1891 y(itrans,)h(go)e
+(ahead.)35 b(Itrans)20 b(is)g(not)f(necessary)j(for)118
+1941 y(arosgn.)g(Simply)13 b(restrict)k(y)o(ourself)e(to)g(the)g
+(macros)118 1991 y(de\014ned)g(in)f(arosgn.st)o(y)f(\(describ)q(ed)j
+(in)d(section)i(3\).)160 2053 y(Itrans)9 b(is)h(a)o(v)n(ailable)d(from)
+g Fi(ftp://chandra.cis.)118 2103 y(brown.edu/pub/itra)o(ns-4.)o(0)k
+Fn(plus)j(a)g(n)o(um)o(b)q(er)f(of)118 2152 y(FTP)h(sites.)160
+2214 y(Recen)o(tly)m(,)h(a)g(commercial)d(v)o(ersion)j(of)g(the)h
+(sgaon)118 2264 y(fon)o(t)f(has)g(b)q(een)i(released,)g(with)e(all)f
+(the)i(c)o(haracters)118 2314 y(presen)o(t)d(in)e(v)n(arious)f(sizes)i
+(and)f(st)o(yles.)18 b(The)11 b(original)118 2363 y(free)18
+b(v)o(ersion)f(is)h(still)e(a)o(v)n(ailable)f(at)i(a)g(considerable)118
+2413 y(n)o(um)o(b)q(er)f(of)h(sites,)g(simply)e(ask)i(arc)o(hie)g(to)g
+(lo)q(ok)f(for)118 2463 y Fi(sgaon.zip)p Fn(.)i(The)d(latest)g(v)o
+(ersion)g(of)e(itrans)i(comes)118 2513 y(equipp)q(ed)20
+b(with)f(the)g(necessary)i Fi(bn*.???pk)d Fn(\014les,)118
+2563 y(so)c(if)f(y)o(ou)g(ha)o(v)o(e)h(successfully)h(installed)e
+(itrans,)g(y)o(ou)118 2612 y(do)h(not)g(need)g Fi(sgaon.zip)p
+Fn(.)160 2674 y(All)d(the)h(fon)o(t)f(\014les)h(and)g(other)g
+(necessary)i(\014les)e(are)118 2724 y(presen)o(t)18 b(in)e(the)g
+(arosgn2.1)f(arc)o(hiv)o(e.)25 b(Y)m(ou)16 b(can)g(get)118
+2774 y(it)d(from)e(the)j(CT)m(AN)f(sites.)18 b(Ask)c(arc)o(hie)f(for)g
+(details.)118 2824 y(If)g(y)o(ou)g(do)f(not)h(ha)o(v)o(e)g(ftp)g
+(access,)i(please)f(send)g(me)e(a)118 2873 y(note,)i(I)h(will)d(b)q(e)j
+(happ)o(y)f(to)h(mail)c(y)o(ou)j(a)g(uuenco)q(ded)118
+2923 y(v)o(ersion)g(of)f(the)i(tar)f(\014le.)p 1221 851
+495 2 v 1220 951 2 100 v 1332 921 a Fi(\\e)p 1487 951
+V 212 w Fk(1)p 1714 951 V 1221 953 495 2 v 1220 1052
+2 100 v 1321 1022 a Fi(\\au)p 1487 1052 V 199 w Fk(2)p
+1714 1052 V 1221 1054 495 2 v 1220 1154 2 100 v 1321
+1124 a Fi(\\gu)p 1487 1154 V 196 w Fk(3)p 1714 1154 V
+1221 1155 495 2 v 1220 1255 2 100 v 1321 1225 a Fi(\\hu)p
+1487 1255 V 196 w Fk(4)p 1714 1255 V 1221 1257 495 2
+v 1220 1356 2 100 v 1321 1326 a Fi(\\ru)p 1487 1356 V
+196 w Fk(5)p 1714 1356 V 1221 1358 495 2 v 1220 1457
+2 100 v 1310 1428 a Fi(\\shu)p 1487 1457 V 186 w Fk(6)p
+1714 1457 V 1221 1459 495 2 v 1220 1559 2 100 v 1321
+1529 a Fi(\\th)p 1487 1559 V 204 w Fk(7)p 1714 1559 V
+1221 1560 495 2 v 1220 1660 2 100 v 1321 1630 a Fi(\\ya)p
+1487 1660 V 209 w Fk(8)p 1714 1660 V 1221 1662 495 2
+v 1220 1761 2 100 v 1246 1731 a Fi(\\yA)f Fh(or)g Fi(\\yaa)p
+1487 1761 V 129 w Fk(9)p 1714 1761 V 1221 1763 495 2
+v 1220 1863 2 100 v 1321 1833 a Fi(\\cb)p 1487 1863 V
+202 w Fk(:)p 1714 1863 V 1221 1864 495 2 v 1220 1964
+2 100 v 1310 1934 a Fi(\\kta)p 1487 1964 V 174 w Fk(;)p
+1714 1964 V 1221 1966 495 2 v 1220 2065 2 100 v 1332
+2035 a Fi(\\|)p 1487 2065 V 217 w Fk(<)p 1714 2065 V
+1221 2067 495 2 v 1045 2183 a Fn(T)m(able)h(1:)k(T)m(able)13
+b(sho)o(wing)g(the)i(commands)d(de\014ned)1045 2233 y(and)e(resp)q
+(ectiv)o(e)i(outputs)f(in)e(st)o(yle)h(\014le)g Fi(arosgn.sty)p
+Fn(.)1045 2415 y Fo(2)69 b(F)-6 b(on)n(ts)24 b(Av)l(ailable)1045
+2525 y Fn(The)14 b(pac)o(k)n(age)f(con)o(tains)g(a)g(total)f(of)h
+(three)h(.tfm)d(fon)o(t)1045 2574 y(\014les)21 b(and)e(nine)h(corresp)q
+(onding)h Fi(.pk)f Fn(fon)o(t)f(\014les)h(of)1045 2624
+y(three)15 b(DPI)f(v)n(alues.)j Fi(arosgnr)c Fn(\014les)h(are)g(for)f
+(the)h(ba-)1045 2674 y(sic)d(bangla)e(fon)o(t,)g(while)h(the)h
+Fi(arosgnc)d Fn(and)i Fi(arosgns)1045 2724 y Fn(ones)19
+b(are)f(the)h(compressed)g(and)f(slan)o(ted)g(v)o(ersions)1045
+2774 y(resp)q(ectiv)o(ely)m(.)h(These)12 b Fi(.pk)f Fn(\014les)h(w)o
+(ere)h(generated)g(for)1045 2824 y(a)k Fg(OKI)g(Microline)h
+Fn(prin)o(ter.)29 b(So)18 b(if)e(they)i(do)f(not)h(\014t)1045
+2873 y(y)o(our)g(prin)o(ter,)i(please)f(generate)g(new)g(pk)f(\014les)g
+(us-)1045 2923 y(ing)13 b Ff(MET)l(AF)o(ONT)g Fn(from)f(the)i
+Fi(.mf)f Fn(\014les)h(in)g(the)g Fg(mf)p eop
+%%Page: 2 2
+2 1 bop 150 309 1709 2 v 149 408 2 100 v 175 379 a Fi(\\e\\gu)21
+b(lo)g(ki)g(axar)p 1158 408 V 659 w Fk(13)p Fj(<lA)15
+b(ik)f(aCr)p 1857 408 V 150 410 1709 2 v 149 510 2 100
+v 175 480 a Fi({\\bngls\\e\\gu)19 b(lo)i(ki)h(axar})p
+1158 510 V 484 w Fe(13)p Fd(<lA)15 b(ik)h(aCr)p 1857
+510 V 150 511 1709 2 v 149 611 2 100 v 175 581 a Fi(\\cb)21
+b(chaadera)f(haasira)g(\\cb)i(baadha)e(bhengechhe)p 1158
+611 V 91 w Fk(:)p Fj(xA<dr)14 b(hAisr)h Fk(:)p Fj(bAB)e(<v<\245<J)p
+1857 611 V 150 613 1709 2 v 149 712 2 100 v 175 682 a
+Fi(kahe)21 b(sandh\\yaa)f(rabi)p 1158 712 V 593 w Fj(k<h)15
+b(s\266B)p Fk(9)7 b Fj(rib)p 1857 712 V 150 714 1709
+2 v 149 814 2 100 v 175 784 a Fi(\\shu)21 b(nifaa)g(jaga\\th\\)f(rahe)h
+(ni\\ru)f(ttara)h(chhabi)p 1158 814 V 70 w Fk(6)p Fj(inOA)15
+b(zg)p Fk(7)f Fj(r<h)h(in)p Fk(5)p Fj(\275r)f(Jib)p 1857
+814 V 150 815 1709 2 v 149 915 2 100 v 175 885 a Fi(\\gu\\ru)20
+b(mashaa_i)g(taahale)h(\\shu\\ru\\)f(karaa)h(yaaka)p
+1158 915 V 48 w Fk(35)p Fj(mSAe)14 b(qAh<l)g Fk(65)g
+Fj(krA)g(jAk)p 1857 915 V 150 917 1709 2 v 149 1016 2
+100 v 175 986 a Fi(\\au)21 b(rangajiiba)f(ki)h(pada\\ya)f(likhatena)p
+1158 1016 V 244 w Fk(2)p Fj(r\245zIb)15 b(ik)g(p)q(d)p
+Fk(8)f Fj(ilc<qn)p 1857 1016 V 150 1018 1709 2 v 149
+1117 2 100 v 175 1088 a Fi({\\bnglc\\au)20 b(rangajiiba)f(ki)j
+(pada\\ya)e(likhatena})p 1158 1117 V 69 w Fc(2)p Fb(r\245zIb)15
+b(ik)g(p)q(d)p Fc(8)f Fb(ilc<qn)p 1857 1117 V 150 1119
+1709 2 v 149 1219 2 100 v 175 1189 a Fi(\\hu)21 b(jurera)g(\\hu)g
+(kuma,)f(\\hu)i(juga)f(tulabena)p 1158 1219 V 178 w Fk(4)p
+Fj(zu<rr)14 b Fk(4)p Fj(k)-6 b(um,)14 b Fk(4)p Fj(zug)g(q)-6
+b(ul<bn)p 1857 1219 V 149 1283 V 175 1253 a Fi(naa,)21
+b(aara)g(\\gu)g(jabe)g(kaan)g(deben)g(naa,)p 1158 1283
+V 266 w Fj(nA,)15 b(aAr)f Fk(3)p Fj(z<b)g(kAn)g(<d<bn)g(nA,)p
+1857 1283 V 149 1347 V 175 1317 a Fi(kokilera)20 b(ku\\hu)h(taana)f
+(\\shu)h(nuna)p 1158 1347 V 354 w Fj(<kAik<lr)15 b(k)-6
+b(u)p Fk(4)p Fj(qAn)14 b Fk(6)p Fj(n)-6 b(un)p 1857 1347
+V 150 1349 1709 2 v 149 1448 2 100 v 175 1419 a Fi(\\e)21
+b(i)h(baake\\ya)e(ra)h(sheshhe)g(\\cb)g(daaRi)g(aachhe\\|)p
+1158 1448 V 69 w Fk(1)p Fj(e)15 b(bA<k)p Fk(8)p Fj(r)g(<S<Z)f
+Fk(:)p Fj(dAiR)g(aA<J)p Fk(<)p 1857 1448 V 150 1450 1709
+2 v 149 1550 2 100 v 175 1520 a Fi({\\bngls\\e)20 b(i)h(baake\\ya)f(ra)
+i(sheshheo)e(aachhe\\|})p 1158 1550 V 91 w Fe(1)p Fd(e)c(bA<k)p
+Fe(8)p Fd(r)f(<S<Zo)g(aA<J)p Fe(<)p 1857 1550 V 150 1551
+1709 2 v 282 1667 a Fn(T)m(able)e(2:)18 b(Examples)12
+b(of)i(bangla)e(texts)j(using)f(in)o(termixture)f(of)g(sgaon)h(and)f
+(arosgn)h(fon)o(t.)118 1776 y(sub)q(directory)m(.)118
+1943 y Fo(3)69 b(T)-6 b(eX)23 b(In)n(terface)118 2049
+y Fn(St)o(yle)10 b(\014les)g Fi(sgaon.sty)f Fn(and)g
+Fi(arosgn.sty)f Fn(has)i(b)q(een)118 2099 y(dev)o(elop)q(ed)20
+b(for)f(using)g(the)h(c)o(haracters)h(in)e(arosgn.)118
+2149 y(Please)k(refer)g(to)e(T)m(able)g(1)h(for)f(commands)f(a)o(v)n
+(ail-)118 2198 y(able.)k(Y)m(ou)15 b(don't)h(need)g(to)g(w)o(orry)g(ab)
+q(out)g(the)g(fon)o(t)118 2248 y(st)o(yle)10 b(\(normal,)e(slan)o(ted)i
+Fm(etc)p Fn(\))f(c)o(hosen)i(b)o(y)e(these)i(com-)118
+2298 y(mands.)46 b(They)24 b(are)g(in)o(telligen)o(t)e(enough)i(to)f
+(de-)118 2348 y(tect)15 b(the)f(curren)o(t)g(st)o(yle)g(b)q(eing)f
+(used)i(for)e(sgaon)g(and)118 2398 y(use)23 b(the)f(same)f(for)g
+(arosgn.)42 b(When)22 b(these)h(com-)118 2448 y(mands)10
+b(are)h(used)h(outside)f(the)g(range)g(of)f Fi(#bengali)p
+Fn({)118 2497 y Fi(#endbengali)p Fn(,)f(normal)g(st)o(yle)j(is)f(used)h
+(as)f(a)g(default.)118 2664 y Fo(4)69 b(Installation)118
+2770 y Fn(Installation)13 b(of)g(arosgn)h(is)f(fairly)g(simple,)148
+2873 y(1.)20 b(Cop)o(y)9 b(\014les)h Fi(sgaon.sty,)20
+b(arosgn.sty)8 b Fn(to)h(an)o(y)201 2923 y(directory)j(searc)o(hed)h(b)
+o(y)e(L)606 2918 y Ff(a)625 2923 y Fn(T)648 2936 y(E)671
+2923 y(X)g(for)g(input)g(\014les.)1128 1776 y(F)m(or)i(Unix)f(users,)i
+(displa)o(ying)d(the)i(v)n(alue)f(of)g(en-)1128 1826
+y(vironmen)o(t)19 b(v)n(ariable)g(TEXINPUTS)i(will)d(b)q(e)1128
+1876 y(helpful.)1075 1960 y(2.)i(Cop)o(y)f(\014les)g
+Fi(arosgn*.tfm)d Fn(to)j(an)o(y)f(directory)1128 2010
+y(searc)o(hed)d(b)o(y)d(L)1362 2005 y Ff(a)1381 2010
+y Fn(T)1404 2023 y(E)1427 2010 y(X)h(for)f(fon)o(t)g(\014les.)18
+b(\(En)o(viron-)1128 2060 y(men)o(t)13 b(v)n(ariable,)g(TEXF)o(ONTS\).)
+1075 2145 y(3.)20 b(Cop)o(y)j(\014les)g Fi(arosgn.*pk)e
+Fn(to)i(an)o(y)g(directory)1128 2195 y(searc)o(hed)i(b)o(y)d(xdvi)g
+(\(en)o(vironmen)o(t)g(v)n(ariable,)1128 2244 y(TEXF)o(ONTS\))i(or)e
+(the)h(preview)o(er)g(y)o(ou)f(use.)1128 2294 y(DOS)15
+b(users)h(need)f(to)g(c)o(hange)g(the)g(\014les)g(exten-)1128
+2344 y(sions)f(from)e Fg(nnn)p Fi(pk)j Fn(to)f Fi(pk)p
+Fn(.)1075 2429 y(4.)20 b(If)13 b(y)o(ou)g(are)h(going)f(to)g(use)h
+(dvips/dvi2ps,)f(cop)o(y)1128 2479 y(the)19 b(pk)f(\014les)h(to)f(an)o
+(y)g(directory)h(searc)o(hed)h(b)o(y)1128 2529 y(them)d(for)h(fon)o(t)g
+(\014les.)30 b(There)19 b(is)f(a)g(v)o(ery)g(high)1128
+2578 y(probabilit)o(y)f(that)i(this)g(step)g(will)e(not)i(b)q(e)g(re-)
+1128 2628 y(quired,)h(since)f(usually)e(the)i(searc)o(h)h(path)e(are)
+1128 2678 y(the)d(same)e(as)h(that)g(for)f(the)i(preview)o(er.)1045
+2774 y(If)21 b(y)o(ou)g(are)g(not)g(sure)h(of)f(all)e(these)k(jargon,)e
+(sim-)1045 2824 y(ply)g(cop)o(y)h(all)e(the)j(ab)q(o)o(v)o(e)e(\014les)
+h(to)g(the)g(directory)1045 2873 y(where)14 b(y)o(ou)d(put)i(the)g
+(.itx)e(\014le,)h(and)g(issue)h(the)g(L)1793 2868 y Ff(a)1812
+2873 y Fn(T)1835 2886 y(E)1859 2873 y(X)1045 2923 y(compile,)g
+(xdvi/preview)h Fm(etc)h Fn(from)d(that)j(directory)m(.)994
+3048 y(2)p eop
+%%Page: 3 3
+3 2 bop 118 307 a Fn(Most)17 b(of)f(the)h(applications)e(are)i(alw)o(a)
+o(ys)f(taugh)o(t)g(to)118 357 y(searc)o(h)f(the)f(curren)o(t)h
+(directory)f(for)f(necessary)j(\014les.)118 511 y Fo(5)69
+b(Usage)118 615 y Fn(If)22 b(y)o(ou)g(ha)o(v)o(e)h(sgaon)f(fon)o(ts)g
+(and)h(itrans)f(installed)118 664 y(in)27 b(y)o(our)f(system,)k(use)e
+Fi(sgaon)e Fn(and)h Fi(arosgn)e Fn(as)118 714 y(the)16
+b(optional)e(argumen)o(ts)g(of)g Fi(\\documentstyle)f
+Fn(or)118 764 y Fi(\\usepackage)i Fn(\(for)j(L)470 759
+y Ff(a)489 764 y Fn(T)512 777 y(E)535 764 y(X)p Fa(\017)p
+Fn(\))g(in)f(the)h Fi(.itx)f Fn(source)118 814 y(\014le.)33
+b(Please)20 b(remem)o(b)q(er)e(that)h(the)g(suggested)i(or-)118
+864 y(der)11 b(\()p Fi(sgaon)f Fn(\014rst)h(and)g(then)g
+Fi(arosgn)p Fn(\))e(is)i(imp)q(ortan)o(t.)118 913 y(Then)k(use)f
+(itrans)g(and)g(L)508 908 y Ff(a)527 913 y Fn(T)550 926
+y(E)573 913 y(X)g(as)g(usual.)160 975 y(If)24 b(y)o(ou)g(are)h(y)o(et)g
+(to)f(install)f(sgaon)h(fon)o(ts)h(and)118 1025 y(itrans)19
+b(and)g(w)o(an)o(t)g(use)g(arosgn)g(on)g(a)g(stand)g(alone)118
+1075 y(basis,)25 b(use)f Fi(arosgn)f Fn(as)g(the)h(optional)e(argumen)o
+(t)118 1125 y(of)51 b Fi(\\documentstyle)27 b Fn(or)52
+b Fi(\\usepackage)28 b Fn(\(for)118 1174 y(L)129 1169
+y Ff(a)148 1174 y Fn(T)171 1187 y(E)194 1174 y(X)p Fa(\017)p
+Fn(\))11 b(in)e(the)i Fi(.tex)e Fn(source)i(\014le.)17
+b(Then)10 b(use)h(L)866 1169 y Ff(a)885 1174 y Fn(T)908
+1187 y(E)931 1174 y(X)118 1224 y(as)j(usual.)160 1286
+y(Sample)9 b(\014les)j(can)g(b)q(e)g(found)f(in)g(the)h
+Fg(samples)d Fn(sub-)118 1336 y(directory)m(.)35 b(Please)20
+b(follo)o(w)d(instructions)j(giv)o(en)f(in)118 1385 y(the)c(header)f
+(commen)o(t)e(lines)i(to)g(use)g(these)i(\014les.)160
+1447 y(T)m(able)d(2)h(sho)o(ws)g(a)g(n)o(um)o(b)q(er)f(of)g(bangla)g
+(text)i(lines)118 1497 y(using)g(b)q(oth)h(the)g(fon)o(ts)f(sgaon)g
+(and)g(arosgn.)22 b(When)118 1547 y(y)o(ou)16 b(use)i(the)f(macros)f
+(for)g(arosgn,)h(please)h(k)o(eep)f(in)118 1596 y(mind)d(that)h(a)g(T)
+376 1605 y(E)399 1596 y(X)h(command)c(gobbles)k(an)o(y)f(space)118
+1646 y(follo)o(wing)f(it.)27 b(So)17 b(if)f(y)o(ou)g(really)h(need)h(a)
+e(space)i(af-)118 1696 y(ter,)c(sa)o(y)f Fk(9)7 b Fn(,)13
+b(either)h(put)f(the)h(command)c Fi(\\yaa)j Fn(inside)118
+1746 y(braces)k(follo)o(w)o(ed)e(b)o(y)h(a)f(space,)j(or)e(put)g(a)g
+(slash)g(fol-)118 1796 y(lo)o(w)o(ed)d(b)o(y)h(a)g(space)h(after)f(the)
+g(command.)118 1950 y Fo(6)69 b(Legal)23 b(Matters)118
+2053 y Fn(The)j(arosgn)f(fon)o(tset)h(and)f(accompan)o(ying)e(st)o(yle)
+118 2103 y(\014les)16 b(and)f(in)o(tro)q(ductory)h(do)q(cumen)o(t)g
+(\014le,)f(hereafter)118 2153 y(called)j(the)i(pac)o(k)n(age,)f(are)g
+(b)q(eing)f(distributed)i(free)118 2203 y(for)c(public)g(use)i(with)e
+(the)h(express)h(understanding)118 2253 y(that,)148 2350
+y(1.)i(The)g(dev)o(elop)q(er)h(of)e(the)h(pac)o(k)n(age)g(in)f(no)g(w)o
+(a)o(y)201 2399 y(can)g(b)q(e)f(held)h(resp)q(onsible)g(for)f(an)o(y)f
+(resulting)201 2449 y(mistak)o(es,)e(exp)q(enditure,)j(or)e(outcome)f
+(of)h(an)o(y)201 2499 y(form.)148 2587 y(2.)k(Y)m(ou)14
+b(ma)o(y)e(cop)o(y)i(and)g(re-distribute)i(the)f(pac)o(k-)201
+2636 y(age)h(so)f(long)g(as)h(y)o(ou)f(do)h(not)f(c)o(harge)h(an)o(y)f
+(fee,)201 2686 y(and)j(re-distribute)i(the)f(pac)o(k)n(age)f(as)h(a)f
+(whole)201 2736 y(without)d(an)o(y)f(p)q(ortion)h(remo)o(v)o(ed)f(or)h
+(added)h(or)201 2786 y(mo)q(di\014ed.)148 2873 y(3.)k(Y)m(ou)k(ma)o(y)f
+(bundle)i(the)g(pac)o(k)n(age)g(with)f(an)o(y)201 2923
+y(other)e(soft)o(w)o(are)g(y)o(ou)f(lik)o(e,)h(so)g(long)f(as)g(that)
+1128 307 y(soft)o(w)o(are)15 b(is)g(distributed)h(free)g(for)f(public)f
+(use,)1128 357 y(and)g(so)g(long)f(as)h(the)h(pac)o(k)n(age)f(is)f(not)
+h(c)o(hanged)1128 407 y(or)20 b(m)o(utilated)d(in)i(an)o(y)g(w)o(a)o(y)
+m(,)g(and)g(so)g(long)g(as)1128 457 y(whole)13 b(the)g(pac)o(k)n(age)f
+(is)g(included,)h(and)f(so)h(long)1128 506 y(as)j(the)f(name)f(of)h
+(the)h(pac)o(k)n(age)e(and)i(its)f(dev)o(el-)1128 556
+y(op)q(er)j(is)f(clearly)g(men)o(tioned)f(in)h(an)g(in)o(tro)q(duc-)
+1128 606 y(tory)k(article)f(accompan)o(ying)e(the)j(aforemen-)1128
+656 y(tioned)14 b(soft)o(w)o(are.)1075 739 y(4.)20 b(No)15
+b(p)q(ermission)e(will)g(b)q(e)i(required)g(for)f(includ-)1128
+789 y(ing)i(the)g(pac)o(k)n(age)g(to)g(a)f(soft)o(w)o(are,)h(but)h(a)e
+(mail)1128 839 y(informing)c(the)k(matter)e(will)f(b)q(e)j
+(appreciated.)1045 988 y Fo(7)69 b(Final)22 b(W)-6 b(ords)1045
+1090 y Fn(The)17 b(fon)o(tset)g(w)o(as)g(dev)o(elop)q(ed)g(in)f(haste)i
+(solely)e(out)1045 1140 y(of)i(p)q(ersonal)h(needs.)33
+b(In)19 b(no)f(w)o(a)o(y)g(it)g(is)h(a)f Fm(p)n(olishe)n(d)1045
+1190 y Fn(pro)q(duct.)26 b(Sometimes)15 b(extra)h(spaces)i(ma)o(y)c
+(app)q(ear)1045 1240 y(b)q(et)o(w)o(een)21 b(c)o(haracter)f(b)q(et)o(w)
+o(een)g(a)f(sgaon)f(c)o(haracter)1045 1290 y(and)13 b(a)f(arosgn)h(c)o
+(haracter)h(\(the)f(original)e(sgaon)h(fon)o(t)1045 1339
+y(is)17 b(not)g(free)h(from)e(this)h(defect\).)29 b(Y)m(ou)17
+b(ma)o(y)e(notice)1045 1389 y(that)f(with)g(resp)q(ect)i(to)e(app)q
+(earance,)g(matc)o(hing)e(b)q(e-)1045 1439 y(t)o(w)o(een)f(the)g(300)f
+(DPI)g(fon)o(t)f(supplied)i(with)f(the)h(itrans)1045
+1489 y(pac)o(k)n(age)k(and)g(300)g(DPI)g(arosgn)g(fon)o(ts)g(is)g(the)h
+(b)q(est.)1045 1539 y(So)d(while)g(using)h(xdvi,)e(dvips)h(or)h(dvi2ps)
+f(resolution)1045 1588 y(selection)j(options)e(ma)o(y)f(b)q(ecome)i
+(useful.)20 b(F)m(on)o(ts)15 b(at)1045 1638 y(other)23
+b(DPI)e(v)n(alues)g(can)h(also)f(b)q(e)i(\014ne)f(tuned)g(for)1045
+1688 y(prop)q(er)15 b(matc)o(hing,)e(but)h(I)g(am)f(to)q(o)h(busy)g
+(for)g(carry-)1045 1738 y(ing)h(out)h(suc)o(h)h(a)e(h)o(uge)h(matc)o
+(hmaking)c(task.)24 b(Hop)q(e)1045 1788 y(I)14 b(can)g(\014nd)g(some)f
+(free-time)g(in)h(near)g(future.)1087 1849 y(Please)i(direct)h(all)d
+(commen)o(ts,)g(suggestions)i(and)1045 1899 y(rep)q(orts)g(to)d(masro)q
+(or@h)o(uman.is.kyush)o(u-u.)o(ac.jp.)994 3048 y(3)p
+eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/language/bengali/arosgn/arosgn.sty b/language/bengali/arosgn/arosgn.sty
new file mode 100644
index 0000000000..fc1511e9ce
--- /dev/null
+++ b/language/bengali/arosgn/arosgn.sty
@@ -0,0 +1,156 @@
+% Style file characters not present in the original
+% sgaon font.
+
+% $Header: /home/users/masroor/TeX/sty/RCS/arosgn.sty,v 2.7 1996/08/29 01:06:15 masroor Exp $
+
+% $Log: arosgn.sty,v $
+% Revision 2.7 1996/08/29 01:06:15 masroor
+% Updated the style file to be used for implementing
+% only the characters defined in arosgn.sty.
+%
+% Revision 2.6 1996/02/21 10:55:47 masroor
+% Font file names no longer contain 10 for tenpoint.
+%
+% Revision 2.5 1996/02/21 09:03:48 masroor
+% Updated for hu.
+%
+% Revision 2.4 1996/02/16 06:11:13 masroor
+% Fixed some minor bugs.
+%
+% Revision 2.3 1996/02/16 03:03:33 masroor
+% Fixed some minor bugs.
+%
+% Revision 2.2 1996/02/16 02:32:42 masroor
+% Fixed some minor bugs.
+%
+% Revision 2.1 1996/02/15 07:15:40 masroor
+% Updated for slanted and compressed font.
+%
+% Revision 1.5 1996/02/14 07:38:49 masroor
+% Used charcode rather than characters.
+%
+% Revision 1.4 1996/02/14 03:07:48 masroor
+% Added lines for au.
+%
+% Revision 1.3 1996/02/13 07:49:20 masroor
+% Added lines for chandrabindu and dnari.
+%
+% Revision 1.2 1996/02/13 06:19:39 masroor
+% Automated charcode assignment.
+%
+% Revision 1.1 1996/02/09 07:27:39 masroor
+% Initial revision
+%
+
+% Fonts to be used.
+\font\Aro@Sgaon@Normal = arosgnr
+\font\Aro@Sgaon@Compressed = arosgnc
+\font\Aro@Sgaon@Slanted = arosgns
+
+% We need to redefine the bengali font load commands in order to
+% indentify bengali font used during runtime. Only newer versions of LaTeX
+% support a command for fontname identification. Font for
+% the macros defined in this file will be selected depending
+% on the current bengali font.
+\newtoks\@bengali@font@type
+\@bengali@font@type={@Normal} % For cases when used outside the range
+ % of #bengali and #endbengali.
+% We need to use this macro.
+\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax}
+%
+%
+\ifundefined{bnglr}\font\bnglr = cmr10 \else\relax\fi
+\let\@temp@font=\bnglr
+\edef\bnglr{\@bengali@font@type={@Normal}\the\@temp@font}
+\ifundefined{bnglc}\font\bnglc = cmr10 \else\relax\fi
+\let\@temp@font=\bnglc
+\edef\bnglc{\@bengali@font@type={@Compressed}\the\@temp@font}
+\ifundefined{bngls}\font\bngls = cmr10 \else\relax\fi
+\let\@temp@font=\bngls
+\edef\bngls{\@bengali@font@type={@Slanted}\the\@temp@font}
+
+% Character code.
+\newcounter{@axar@code}\setcounter{@axar@code}{48}
+
+% Font selector
+\def\@font@selector{\csname Aro@Sgaon\the\@bengali@font@type\endcsname}
+
+% e. No e without the upper line was available.
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\e\@font@selector
+
+% Au.
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\au\@font@selector
+
+% gaw e ukar
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\gu\@font@selector
+
+% haw e ukar
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\hu\@font@selector
+
+% raw e ukar
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\ru\@font@selector
+
+% shaw e ukar
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\shu\@font@selector
+
+% Khandatta
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\th\@font@selector
+
+% Jawfala
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\jafala\@font@selector
+
+% Jawfala akar
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\jafalaAkar\@font@selector
+
+\def\ya{\jafala}
+\def\yA{\jafalaAkar\thinspace}
+\def\yaa{\jafalaAkar\thinspace}
+
+% Chandra bindu
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\ChandraBindu\@font@selector
+\def\cb{\ChandraBindu}
+
+% Kaw e taw
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\kta\@font@selector
+
+% Akar, ukar etc. to the above.
+\def\ktaa{{\kta}A}
+\def\ktA{{\kta}A}
+\def\kti{i{\kta}}
+\def\ktii{{\kta}I}
+\def\ktI{{\kta}I}
+\def\ktu{{\kta}u}
+\def\ktuu{{\kta}U}
+\def\ktU{{\kta}U}
+\def\kte{{\char60}{\kta}}
+\def\kto{{\char60}{\kta}A}
+
+
+
+% Dnari
+\stepcounter{@axar@code}
+\edef\@define@next#1#2{\def#1{{#2\char\the@axar@code}}}
+\@define@next\Dnari\@font@selector
+\def\|{\Dnari}
diff --git a/language/bengali/arosgn/mf/arosgnc.mf b/language/bengali/arosgn/mf/arosgnc.mf
new file mode 100644
index 0000000000..28eb6a9972
--- /dev/null
+++ b/language/bengali/arosgn/mf/arosgnc.mf
@@ -0,0 +1,577 @@
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=48;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% e.fig (char 49)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.969,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (1.350000, 1.750503),
+ (1.437500, 1.613003),
+ (1.450000, 1.475503),
+ (1.350000, 1.325503),
+ (1.150000, 1.238003),
+ (0.925000, 1.300503),
+ (0.787500, 1.450503),
+ (0.837500, 1.650503),
+ (0.887500, 1.850503),
+ (1.150000, 1.900503),
+ (1.512500, 1.900503),
+ (1.825000, 1.763003),
+ (1.950000, 1.538003),
+ (1.950000, 1.338003),
+ (1.950000, 0.225503),
+ (1.950000, -0.011997),
+ (1.725000, 0.000503),
+ (1.650000, 0.125503),
+ (1.400000, 0.238003),
+ (0.712500, 0.238003),
+ (0.550000, 0.338003),
+ (0.400000, 0.450503),
+ (0.225000, 0.675503),
+ (0.137500, 0.875503),
+ (0.062500, 1.150503),
+ (0.312500, 0.813003),
+ (0.512500, 0.600503),
+ (0.725000, 0.425503),
+ (1.450000, 0.425503),
+ (1.687500, 0.375503),
+ (1.750000, 0.275503),
+ (1.762500, 1.388003),
+ (1.725000, 1.475503),
+ (1.662500, 1.638003),
+ (1.550000, 1.700503),
+ (1.375000, 1.738003));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=49;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% au.fig (char 50)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.362,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ cycleshade(0, true,
+ (1.225000, 2.013003),
+ (1.487500, 1.975503),
+ (1.787500, 1.825503),
+ (1.862500, 1.563003),
+ (1.787500, 1.338003),
+ (1.600000, 1.188003),
+ (1.825000, 1.113003),
+ (1.975000, 1.038003),
+ (2.087500, 0.813003),
+ (2.012500, 0.475503),
+ (1.862500, 0.250503),
+ (1.637500, 0.063003),
+ (1.412500, 0.025503),
+ (0.962500, 0.100503),
+ (0.625000, 0.325503),
+ (0.475000, 0.550503),
+ (0.362500, 0.813003),
+ (0.250000, 1.150503),
+ (0.437500, 0.813003),
+ (0.662500, 0.550503),
+ (1.000000, 0.325503),
+ (1.300000, 0.250503),
+ (1.712500, 0.400503),
+ (1.900000, 0.700503),
+ (1.787500, 0.888003),
+ (1.525000, 0.963003),
+ (1.337500, 1.000503),
+ (1.300000, 1.188003),
+ (1.600000, 1.375503),
+ (1.675000, 1.525503),
+ (1.600000, 1.713003),
+ (1.337500, 1.863003),
+ (1.187500, 1.713003),
+ (1.262500, 1.563003),
+ (1.112500, 1.375503),
+ (0.775000, 1.450503),
+ (0.775000, 1.750503),
+ (0.887500, 1.938003),
+ (1.225000, 2.013003));
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, true,
+ (1.600000, 1.225503),
+ (1.787500, 1.300503),
+ (2.125000, 1.638003),
+ (2.012500, 1.863003),
+ (1.525000, 2.163003),
+ (1.637500, 2.425503),
+ (2.237500, 2.575503),
+ (1.900000, 2.425503),
+ (1.750000, 2.238003),
+ (2.012500, 2.050503),
+ (2.312500, 1.788003),
+ (2.350000, 1.675503),
+ (2.125000, 1.300503),
+ (1.862500, 1.150503),
+ (1.750000, 1.075503));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=50;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% gu.fig (char 51)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.862500, 0.925503),
+ (1.212500, 1.000503),
+ (1.312500, 1.288003),
+ (0.775000, 1.488003),
+ (0.737500, 1.738003),
+ (1.225000, 1.988003),
+ (1.550000, 1.963003),
+ (2.100000, 1.625503),
+ (2.100000, 1.888003),
+ (2.400000, 1.600503),
+ (2.500000, 1.125503),
+ (2.225000, 0.813003),
+ (2.025000, 0.638003),
+ (1.700000, 0.650503),
+ (1.575000, 0.888003),
+ (1.650000, 1.075503),
+ (1.937500, 1.163003),
+ (2.212500, 1.075503),
+ (2.462500, 0.650503),
+ (2.337500, 0.225503),
+ (2.175000, 0.050503),
+ (1.875000, -0.049497),
+ (1.700000, -0.049497),
+ (1.462500, 0.013003),
+ (1.237500, 0.175503),
+ (1.075000, 0.338003),
+ (0.650000, 0.825503));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=51;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% hu.fig (char 52)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (2.975000, 1.818623),
+ (0.462500, 1.818623),
+ (0.462500, 2.056123),
+ (2.975000, 2.056123),
+ (2.975000, 1.818623));
+ cycleshade(0, true,
+ (1.475000, 1.481123),
+ (1.700000, 1.756123),
+ (2.125000, 1.581123),
+ (2.312500, 1.281123),
+ (2.362500, 0.956123),
+ (2.162500, 0.593623),
+ (1.825000, 0.431123),
+ (1.700000, 0.331123),
+ (2.112500, 0.181123),
+ (2.300000, 0.093623),
+ (2.662500, -0.068877),
+ (2.712500, -0.131377),
+ (2.687500, -0.206377),
+ (2.362500, -0.081377),
+ (2.162500, -0.031377),
+ (1.812500, 0.043623),
+ (1.512500, 0.168623),
+ (1.250000, 0.218623),
+ (0.987500, 0.331123),
+ (0.775000, 0.418623),
+ (0.712500, 0.593623),
+ (1.025000, 0.543623),
+ (1.262500, 0.493623),
+ (1.487500, 0.456123),
+ (1.875000, 0.581123),
+ (1.987500, 0.681123),
+ (2.112500, 0.831123),
+ (2.150000, 1.043623),
+ (2.150000, 1.093623),
+ (2.025000, 1.281123),
+ (1.762500, 1.493623),
+ (1.600000, 1.156123),
+ (1.337500, 1.281123),
+ (1.050000, 1.306123),
+ (1.012500, 1.056123),
+ (1.125000, 0.956123),
+ (1.312500, 1.043623),
+ (1.487500, 1.006123),
+ (1.525000, 0.943623),
+ (1.537500, 0.831123),
+ (1.462500, 0.768623),
+ (1.300000, 0.756123),
+ (1.162500, 0.756123),
+ (0.975000, 0.781123),
+ (0.762500, 0.918623),
+ (0.662500, 1.131123),
+ (0.712500, 1.356123),
+ (0.850000, 1.531123),
+ (1.025000, 1.593623),
+ (1.112500, 1.593623),
+ (1.475000, 1.481123));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=52;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% ru.fig (char 53)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ circle((1.025000,0.079249),0.100000);
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (1.950000, 1.966749),
+ (1.950000, 0.104249),
+ (0.312500, 0.954249),
+ (1.950000, 1.779249));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.087500, 1.966749),
+ (2.925000, 1.966749));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.987500, 0.891749),
+ (2.612500, 0.754249),
+ (2.825000, 1.204249),
+ (2.600000, 1.466749),
+ (2.325000, 1.291749),
+ (2.600000, 1.054249),
+ (2.762500, 1.266749));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=53;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% shu.fig (char 54)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.638,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.550000, 1.850503),
+ (0.375000, 1.725503),
+ (0.662500, 1.863003),
+ (0.925000, 1.850503),
+ (1.125000, 1.788003),
+ (1.075000, 1.263003),
+ (1.025000, 1.075503),
+ (0.850000, 1.013003),
+ (0.737500, 0.975503),
+ (0.525000, 1.113003),
+ (0.500000, 1.250503),
+ (0.525000, 1.463003),
+ (0.725000, 1.613003),
+ (0.975000, 1.700503),
+ (1.225000, 1.725503),
+ (1.400000, 1.663003),
+ (1.575000, 1.563003),
+ (1.675000, 1.363003),
+ (1.612500, 1.125503),
+ (1.425000, 0.975503),
+ (1.262500, 1.000503),
+ (1.125000, 1.225503),
+ (1.100000, 1.388003),
+ (1.125000, 1.775503),
+ (1.275000, 1.850503),
+ (1.550000, 1.875503),
+ (1.750000, 1.850503),
+ (1.912500, 1.775503),
+ (2.100000, 1.563003),
+ (2.100000, 1.825503),
+ (2.312500, 1.688003),
+ (2.400000, 1.538003),
+ (2.500000, 1.300503),
+ (2.500000, 1.063003),
+ (2.412500, 0.900503),
+ (2.225000, 0.750503),
+ (2.025000, 0.575503),
+ (1.700000, 0.588003),
+ (1.575000, 0.825503),
+ (1.650000, 1.013003),
+ (1.937500, 1.100503),
+ (2.212500, 1.013003),
+ (2.375000, 0.813003),
+ (2.462500, 0.588003),
+ (2.462500, 0.413003),
+ (2.337500, 0.163003),
+ (2.175000, -0.011997),
+ (1.875000, -0.111997),
+ (1.700000, -0.111997),
+ (1.462500, -0.049497),
+ (1.237500, 0.113003),
+ (1.075000, 0.275503),
+ (0.650000, 0.763003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=54;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% khandta.fig (char 55)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.575,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.175000, 1.725503),
+ (1.062500, 1.713003),
+ (0.925000, 1.625503),
+ (0.962500, 1.400503),
+ (1.287500, 1.363003),
+ (1.412500, 1.638003),
+ (1.187500, 1.900503),
+ (0.637500, 1.888003),
+ (0.550000, 1.325503),
+ (0.950000, 1.000503),
+ (1.250000, 0.725503),
+ (1.237500, 0.400503),
+ (0.800000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=55;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% jafala.fig (char 56)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.787,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.012500, 1.913003),
+ (0.850000, 1.913003));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.387500, 1.888003),
+ (0.200000, 1.513003),
+ (0.575000, 0.950503),
+ (0.200000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=56;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% jafalaA.fig (char 57)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.787,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.012500, 1.913003),
+ (1.325000, 1.913003));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (1.025000, 1.875503),
+ (1.025000, -0.061997));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.387500, 1.888003),
+ (0.200000, 1.513003),
+ (0.575000, 0.950503),
+ (0.200000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=57;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% chndbndu.fig (char 58)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.039,0.000,0.787);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ circshade(0, (0.675000,2.690488),0.087500);
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.350000, 2.652988),
+ (0.675000, 2.390488),
+ (1.025000, 2.790488));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=58;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% kta.fig (char 59)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.638,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.087500, 1.950503),
+ (2.600000, 1.950503));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.662500, 1.250503),
+ (0.862500, 1.388003),
+ (1.012500, 1.363003),
+ (1.000000, 1.188003),
+ (0.687500, 1.138003),
+ (0.637500, 1.625503),
+ (1.037500, 1.888003),
+ (1.512500, 1.838003),
+ (1.725000, 1.525503),
+ (1.675000, 1.188003),
+ (1.562500, 1.013003),
+ (1.862500, 1.100503),
+ (2.062500, 0.838003),
+ (1.975000, 0.438003),
+ (1.812500, 0.188003),
+ (1.612500, 0.100503),
+ (1.237500, 0.113003),
+ (0.875000, 0.275503),
+ (0.562500, 0.550503),
+ (0.137500, 1.525503));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.575000, 1.013003),
+ (1.975000, 1.475503),
+ (2.287500, 1.600503),
+ (2.437500, 1.300503),
+ (2.212500, 1.188003),
+ (2.150000, 1.350503),
+ (2.375000, 1.525503));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=59;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform xscaled(0.85);
+%
+% dnari.fig (char 60)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.181,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (0.737500, 1.875503),
+ (0.737500, 0.425503),
+ (0.987500, 0.050503),
+ (0.987500, 1.563003),
+ (0.737500, 1.875503));
+endchar;
+endmfpicenv;
+end
diff --git a/language/bengali/arosgn/mf/arosgnr.mf b/language/bengali/arosgn/mf/arosgnr.mf
new file mode 100644
index 0000000000..3d6ac304c3
--- /dev/null
+++ b/language/bengali/arosgn/mf/arosgnr.mf
@@ -0,0 +1,565 @@
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=48;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% e.fig (char 49)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.969,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (1.350000, 1.750503),
+ (1.437500, 1.613003),
+ (1.450000, 1.475503),
+ (1.350000, 1.325503),
+ (1.150000, 1.238003),
+ (0.925000, 1.300503),
+ (0.787500, 1.450503),
+ (0.837500, 1.650503),
+ (0.887500, 1.850503),
+ (1.150000, 1.900503),
+ (1.512500, 1.900503),
+ (1.825000, 1.763003),
+ (1.950000, 1.538003),
+ (1.950000, 1.338003),
+ (1.950000, 0.225503),
+ (1.950000, -0.011997),
+ (1.725000, 0.000503),
+ (1.650000, 0.125503),
+ (1.400000, 0.238003),
+ (0.712500, 0.238003),
+ (0.550000, 0.338003),
+ (0.400000, 0.450503),
+ (0.225000, 0.675503),
+ (0.137500, 0.875503),
+ (0.062500, 1.150503),
+ (0.312500, 0.813003),
+ (0.512500, 0.600503),
+ (0.725000, 0.425503),
+ (1.450000, 0.425503),
+ (1.687500, 0.375503),
+ (1.750000, 0.275503),
+ (1.762500, 1.388003),
+ (1.725000, 1.475503),
+ (1.662500, 1.638003),
+ (1.550000, 1.700503),
+ (1.375000, 1.738003));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=49;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% au.fig (char 50)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.362,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ cycleshade(0, true,
+ (1.225000, 2.013003),
+ (1.487500, 1.975503),
+ (1.787500, 1.825503),
+ (1.862500, 1.563003),
+ (1.787500, 1.338003),
+ (1.600000, 1.188003),
+ (1.825000, 1.113003),
+ (1.975000, 1.038003),
+ (2.087500, 0.813003),
+ (2.012500, 0.475503),
+ (1.862500, 0.250503),
+ (1.637500, 0.063003),
+ (1.412500, 0.025503),
+ (0.962500, 0.100503),
+ (0.625000, 0.325503),
+ (0.475000, 0.550503),
+ (0.362500, 0.813003),
+ (0.250000, 1.150503),
+ (0.437500, 0.813003),
+ (0.662500, 0.550503),
+ (1.000000, 0.325503),
+ (1.300000, 0.250503),
+ (1.712500, 0.400503),
+ (1.900000, 0.700503),
+ (1.787500, 0.888003),
+ (1.525000, 0.963003),
+ (1.337500, 1.000503),
+ (1.300000, 1.188003),
+ (1.600000, 1.375503),
+ (1.675000, 1.525503),
+ (1.600000, 1.713003),
+ (1.337500, 1.863003),
+ (1.187500, 1.713003),
+ (1.262500, 1.563003),
+ (1.112500, 1.375503),
+ (0.775000, 1.450503),
+ (0.775000, 1.750503),
+ (0.887500, 1.938003),
+ (1.225000, 2.013003));
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, true,
+ (1.600000, 1.225503),
+ (1.787500, 1.300503),
+ (2.125000, 1.638003),
+ (2.012500, 1.863003),
+ (1.525000, 2.163003),
+ (1.637500, 2.425503),
+ (2.237500, 2.575503),
+ (1.900000, 2.425503),
+ (1.750000, 2.238003),
+ (2.012500, 2.050503),
+ (2.312500, 1.788003),
+ (2.350000, 1.675503),
+ (2.125000, 1.300503),
+ (1.862500, 1.150503),
+ (1.750000, 1.075503));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=50;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% gu.fig (char 51)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.862500, 0.925503),
+ (1.212500, 1.000503),
+ (1.312500, 1.288003),
+ (0.775000, 1.488003),
+ (0.737500, 1.738003),
+ (1.225000, 1.988003),
+ (1.550000, 1.963003),
+ (2.100000, 1.625503),
+ (2.100000, 1.888003),
+ (2.400000, 1.600503),
+ (2.500000, 1.125503),
+ (2.225000, 0.813003),
+ (2.025000, 0.638003),
+ (1.700000, 0.650503),
+ (1.575000, 0.888003),
+ (1.650000, 1.075503),
+ (1.937500, 1.163003),
+ (2.212500, 1.075503),
+ (2.462500, 0.650503),
+ (2.337500, 0.225503),
+ (2.175000, 0.050503),
+ (1.875000, -0.049497),
+ (1.700000, -0.049497),
+ (1.462500, 0.013003),
+ (1.237500, 0.175503),
+ (1.075000, 0.338003),
+ (0.650000, 0.825503));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=51;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% hu.fig (char 52)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (2.975000, 1.818623),
+ (0.462500, 1.818623),
+ (0.462500, 2.056123),
+ (2.975000, 2.056123),
+ (2.975000, 1.818623));
+ cycleshade(0, true,
+ (1.475000, 1.481123),
+ (1.700000, 1.756123),
+ (2.125000, 1.581123),
+ (2.312500, 1.281123),
+ (2.362500, 0.956123),
+ (2.162500, 0.593623),
+ (1.825000, 0.431123),
+ (1.700000, 0.331123),
+ (2.112500, 0.181123),
+ (2.300000, 0.093623),
+ (2.662500, -0.068877),
+ (2.712500, -0.131377),
+ (2.687500, -0.206377),
+ (2.362500, -0.081377),
+ (2.162500, -0.031377),
+ (1.812500, 0.043623),
+ (1.512500, 0.168623),
+ (1.250000, 0.218623),
+ (0.987500, 0.331123),
+ (0.775000, 0.418623),
+ (0.712500, 0.593623),
+ (1.025000, 0.543623),
+ (1.262500, 0.493623),
+ (1.487500, 0.456123),
+ (1.875000, 0.581123),
+ (1.987500, 0.681123),
+ (2.112500, 0.831123),
+ (2.150000, 1.043623),
+ (2.150000, 1.093623),
+ (2.025000, 1.281123),
+ (1.762500, 1.493623),
+ (1.600000, 1.156123),
+ (1.337500, 1.281123),
+ (1.050000, 1.306123),
+ (1.012500, 1.056123),
+ (1.125000, 0.956123),
+ (1.312500, 1.043623),
+ (1.487500, 1.006123),
+ (1.525000, 0.943623),
+ (1.537500, 0.831123),
+ (1.462500, 0.768623),
+ (1.300000, 0.756123),
+ (1.162500, 0.756123),
+ (0.975000, 0.781123),
+ (0.762500, 0.918623),
+ (0.662500, 1.131123),
+ (0.712500, 1.356123),
+ (0.850000, 1.531123),
+ (1.025000, 1.593623),
+ (1.112500, 1.593623),
+ (1.475000, 1.481123));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=52;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% ru.fig (char 53)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ circle((1.025000,0.079249),0.100000);
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (1.950000, 1.966749),
+ (1.950000, 0.104249),
+ (0.312500, 0.954249),
+ (1.950000, 1.779249));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.087500, 1.966749),
+ (2.925000, 1.966749));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.987500, 0.891749),
+ (2.612500, 0.754249),
+ (2.825000, 1.204249),
+ (2.600000, 1.466749),
+ (2.325000, 1.291749),
+ (2.600000, 1.054249),
+ (2.762500, 1.266749));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=53;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% shu.fig (char 54)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.638,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.550000, 1.850503),
+ (0.375000, 1.725503),
+ (0.662500, 1.863003),
+ (0.925000, 1.850503),
+ (1.125000, 1.788003),
+ (1.075000, 1.263003),
+ (1.025000, 1.075503),
+ (0.850000, 1.013003),
+ (0.737500, 0.975503),
+ (0.525000, 1.113003),
+ (0.500000, 1.250503),
+ (0.525000, 1.463003),
+ (0.725000, 1.613003),
+ (0.975000, 1.700503),
+ (1.225000, 1.725503),
+ (1.400000, 1.663003),
+ (1.575000, 1.563003),
+ (1.675000, 1.363003),
+ (1.612500, 1.125503),
+ (1.425000, 0.975503),
+ (1.262500, 1.000503),
+ (1.125000, 1.225503),
+ (1.100000, 1.388003),
+ (1.125000, 1.775503),
+ (1.275000, 1.850503),
+ (1.550000, 1.875503),
+ (1.750000, 1.850503),
+ (1.912500, 1.775503),
+ (2.100000, 1.563003),
+ (2.100000, 1.825503),
+ (2.312500, 1.688003),
+ (2.400000, 1.538003),
+ (2.500000, 1.300503),
+ (2.500000, 1.063003),
+ (2.412500, 0.900503),
+ (2.225000, 0.750503),
+ (2.025000, 0.575503),
+ (1.700000, 0.588003),
+ (1.575000, 0.825503),
+ (1.650000, 1.013003),
+ (1.937500, 1.100503),
+ (2.212500, 1.013003),
+ (2.375000, 0.813003),
+ (2.462500, 0.588003),
+ (2.462500, 0.413003),
+ (2.337500, 0.163003),
+ (2.175000, -0.011997),
+ (1.875000, -0.111997),
+ (1.700000, -0.111997),
+ (1.462500, -0.049497),
+ (1.237500, 0.113003),
+ (1.075000, 0.275503),
+ (0.650000, 0.763003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=54;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% khandta.fig (char 55)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.575,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.175000, 1.725503),
+ (1.062500, 1.713003),
+ (0.925000, 1.625503),
+ (0.962500, 1.400503),
+ (1.287500, 1.363003),
+ (1.412500, 1.638003),
+ (1.187500, 1.900503),
+ (0.637500, 1.888003),
+ (0.550000, 1.325503),
+ (0.950000, 1.000503),
+ (1.250000, 0.725503),
+ (1.237500, 0.400503),
+ (0.800000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=55;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% jafala.fig (char 56)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.787,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.012500, 1.913003),
+ (0.850000, 1.913003));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.387500, 1.888003),
+ (0.200000, 1.513003),
+ (0.575000, 0.950503),
+ (0.200000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=56;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% jafalaA.fig (char 57)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.787,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.012500, 1.913003),
+ (1.325000, 1.913003));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (1.025000, 1.875503),
+ (1.025000, -0.061997));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.387500, 1.888003),
+ (0.200000, 1.513003),
+ (0.575000, 0.950503),
+ (0.200000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=57;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% chndbndu.fig (char 58)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.039,0.000,0.787);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ circshade(0, (0.675000,2.690488),0.087500);
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.350000, 2.652988),
+ (0.675000, 2.390488),
+ (1.025000, 2.790488));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=58;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% kta.fig (char 59)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.638,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.087500, 1.950503),
+ (2.600000, 1.950503));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.662500, 1.250503),
+ (0.862500, 1.388003),
+ (1.012500, 1.363003),
+ (1.000000, 1.188003),
+ (0.687500, 1.138003),
+ (0.637500, 1.625503),
+ (1.037500, 1.888003),
+ (1.512500, 1.838003),
+ (1.725000, 1.525503),
+ (1.675000, 1.188003),
+ (1.562500, 1.013003),
+ (1.862500, 1.100503),
+ (2.062500, 0.838003),
+ (1.975000, 0.438003),
+ (1.812500, 0.188003),
+ (1.612500, 0.100503),
+ (1.237500, 0.113003),
+ (0.875000, 0.275503),
+ (0.562500, 0.550503),
+ (0.137500, 1.525503));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.575000, 1.013003),
+ (1.975000, 1.475503),
+ (2.287500, 1.600503),
+ (2.437500, 1.300503),
+ (2.212500, 1.188003),
+ (2.150000, 1.350503),
+ (2.375000, 1.525503));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=59;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+%
+% dnari.fig (char 60)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.181,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (0.737500, 1.875503),
+ (0.737500, 0.425503),
+ (0.987500, 0.050503),
+ (0.987500, 1.563003),
+ (0.737500, 1.875503));
+endchar;
+endmfpicenv;
+end
diff --git a/language/bengali/arosgn/mf/arosgns.mf b/language/bengali/arosgn/mf/arosgns.mf
new file mode 100644
index 0000000000..8d489261aa
--- /dev/null
+++ b/language/bengali/arosgn/mf/arosgns.mf
@@ -0,0 +1,577 @@
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=48;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% e.fig (char 49)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.969,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (1.350000, 1.750503),
+ (1.437500, 1.613003),
+ (1.450000, 1.475503),
+ (1.350000, 1.325503),
+ (1.150000, 1.238003),
+ (0.925000, 1.300503),
+ (0.787500, 1.450503),
+ (0.837500, 1.650503),
+ (0.887500, 1.850503),
+ (1.150000, 1.900503),
+ (1.512500, 1.900503),
+ (1.825000, 1.763003),
+ (1.950000, 1.538003),
+ (1.950000, 1.338003),
+ (1.950000, 0.225503),
+ (1.950000, -0.011997),
+ (1.725000, 0.000503),
+ (1.650000, 0.125503),
+ (1.400000, 0.238003),
+ (0.712500, 0.238003),
+ (0.550000, 0.338003),
+ (0.400000, 0.450503),
+ (0.225000, 0.675503),
+ (0.137500, 0.875503),
+ (0.062500, 1.150503),
+ (0.312500, 0.813003),
+ (0.512500, 0.600503),
+ (0.725000, 0.425503),
+ (1.450000, 0.425503),
+ (1.687500, 0.375503),
+ (1.750000, 0.275503),
+ (1.762500, 1.388003),
+ (1.725000, 1.475503),
+ (1.662500, 1.638003),
+ (1.550000, 1.700503),
+ (1.375000, 1.738003));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=49;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% au.fig (char 50)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.362,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ cycleshade(0, true,
+ (1.225000, 2.013003),
+ (1.487500, 1.975503),
+ (1.787500, 1.825503),
+ (1.862500, 1.563003),
+ (1.787500, 1.338003),
+ (1.600000, 1.188003),
+ (1.825000, 1.113003),
+ (1.975000, 1.038003),
+ (2.087500, 0.813003),
+ (2.012500, 0.475503),
+ (1.862500, 0.250503),
+ (1.637500, 0.063003),
+ (1.412500, 0.025503),
+ (0.962500, 0.100503),
+ (0.625000, 0.325503),
+ (0.475000, 0.550503),
+ (0.362500, 0.813003),
+ (0.250000, 1.150503),
+ (0.437500, 0.813003),
+ (0.662500, 0.550503),
+ (1.000000, 0.325503),
+ (1.300000, 0.250503),
+ (1.712500, 0.400503),
+ (1.900000, 0.700503),
+ (1.787500, 0.888003),
+ (1.525000, 0.963003),
+ (1.337500, 1.000503),
+ (1.300000, 1.188003),
+ (1.600000, 1.375503),
+ (1.675000, 1.525503),
+ (1.600000, 1.713003),
+ (1.337500, 1.863003),
+ (1.187500, 1.713003),
+ (1.262500, 1.563003),
+ (1.112500, 1.375503),
+ (0.775000, 1.450503),
+ (0.775000, 1.750503),
+ (0.887500, 1.938003),
+ (1.225000, 2.013003));
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, true,
+ (1.600000, 1.225503),
+ (1.787500, 1.300503),
+ (2.125000, 1.638003),
+ (2.012500, 1.863003),
+ (1.525000, 2.163003),
+ (1.637500, 2.425503),
+ (2.237500, 2.575503),
+ (1.900000, 2.425503),
+ (1.750000, 2.238003),
+ (2.012500, 2.050503),
+ (2.312500, 1.788003),
+ (2.350000, 1.675503),
+ (2.125000, 1.300503),
+ (1.862500, 1.150503),
+ (1.750000, 1.075503));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=50;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% gu.fig (char 51)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.862500, 0.925503),
+ (1.212500, 1.000503),
+ (1.312500, 1.288003),
+ (0.775000, 1.488003),
+ (0.737500, 1.738003),
+ (1.225000, 1.988003),
+ (1.550000, 1.963003),
+ (2.100000, 1.625503),
+ (2.100000, 1.888003),
+ (2.400000, 1.600503),
+ (2.500000, 1.125503),
+ (2.225000, 0.813003),
+ (2.025000, 0.638003),
+ (1.700000, 0.650503),
+ (1.575000, 0.888003),
+ (1.650000, 1.075503),
+ (1.937500, 1.163003),
+ (2.212500, 1.075503),
+ (2.462500, 0.650503),
+ (2.337500, 0.225503),
+ (2.175000, 0.050503),
+ (1.875000, -0.049497),
+ (1.700000, -0.049497),
+ (1.462500, 0.013003),
+ (1.237500, 0.175503),
+ (1.075000, 0.338003),
+ (0.650000, 0.825503));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=51;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% hu.fig (char 52)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (2.975000, 1.818623),
+ (0.462500, 1.818623),
+ (0.462500, 2.056123),
+ (2.975000, 2.056123),
+ (2.975000, 1.818623));
+ cycleshade(0, true,
+ (1.475000, 1.481123),
+ (1.700000, 1.756123),
+ (2.125000, 1.581123),
+ (2.312500, 1.281123),
+ (2.362500, 0.956123),
+ (2.162500, 0.593623),
+ (1.825000, 0.431123),
+ (1.700000, 0.331123),
+ (2.112500, 0.181123),
+ (2.300000, 0.093623),
+ (2.662500, -0.068877),
+ (2.712500, -0.131377),
+ (2.687500, -0.206377),
+ (2.362500, -0.081377),
+ (2.162500, -0.031377),
+ (1.812500, 0.043623),
+ (1.512500, 0.168623),
+ (1.250000, 0.218623),
+ (0.987500, 0.331123),
+ (0.775000, 0.418623),
+ (0.712500, 0.593623),
+ (1.025000, 0.543623),
+ (1.262500, 0.493623),
+ (1.487500, 0.456123),
+ (1.875000, 0.581123),
+ (1.987500, 0.681123),
+ (2.112500, 0.831123),
+ (2.150000, 1.043623),
+ (2.150000, 1.093623),
+ (2.025000, 1.281123),
+ (1.762500, 1.493623),
+ (1.600000, 1.156123),
+ (1.337500, 1.281123),
+ (1.050000, 1.306123),
+ (1.012500, 1.056123),
+ (1.125000, 0.956123),
+ (1.312500, 1.043623),
+ (1.487500, 1.006123),
+ (1.525000, 0.943623),
+ (1.537500, 0.831123),
+ (1.462500, 0.768623),
+ (1.300000, 0.756123),
+ (1.162500, 0.756123),
+ (0.975000, 0.781123),
+ (0.762500, 0.918623),
+ (0.662500, 1.131123),
+ (0.712500, 1.356123),
+ (0.850000, 1.531123),
+ (1.025000, 1.593623),
+ (1.112500, 1.593623),
+ (1.475000, 1.481123));
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=52;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% ru.fig (char 53)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.756,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ circle((1.025000,0.079249),0.100000);
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (1.950000, 1.966749),
+ (1.950000, 0.104249),
+ (0.312500, 0.954249),
+ (1.950000, 1.779249));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.087500, 1.966749),
+ (2.925000, 1.966749));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.987500, 0.891749),
+ (2.612500, 0.754249),
+ (2.825000, 1.204249),
+ (2.600000, 1.466749),
+ (2.325000, 1.291749),
+ (2.600000, 1.054249),
+ (2.762500, 1.266749));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=53;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% shu.fig (char 54)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.638,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.550000, 1.850503),
+ (0.375000, 1.725503),
+ (0.662500, 1.863003),
+ (0.925000, 1.850503),
+ (1.125000, 1.788003),
+ (1.075000, 1.263003),
+ (1.025000, 1.075503),
+ (0.850000, 1.013003),
+ (0.737500, 0.975503),
+ (0.525000, 1.113003),
+ (0.500000, 1.250503),
+ (0.525000, 1.463003),
+ (0.725000, 1.613003),
+ (0.975000, 1.700503),
+ (1.225000, 1.725503),
+ (1.400000, 1.663003),
+ (1.575000, 1.563003),
+ (1.675000, 1.363003),
+ (1.612500, 1.125503),
+ (1.425000, 0.975503),
+ (1.262500, 1.000503),
+ (1.125000, 1.225503),
+ (1.100000, 1.388003),
+ (1.125000, 1.775503),
+ (1.275000, 1.850503),
+ (1.550000, 1.875503),
+ (1.750000, 1.850503),
+ (1.912500, 1.775503),
+ (2.100000, 1.563003),
+ (2.100000, 1.825503),
+ (2.312500, 1.688003),
+ (2.400000, 1.538003),
+ (2.500000, 1.300503),
+ (2.500000, 1.063003),
+ (2.412500, 0.900503),
+ (2.225000, 0.750503),
+ (2.025000, 0.575503),
+ (1.700000, 0.588003),
+ (1.575000, 0.825503),
+ (1.650000, 1.013003),
+ (1.937500, 1.100503),
+ (2.212500, 1.013003),
+ (2.375000, 0.813003),
+ (2.462500, 0.588003),
+ (2.462500, 0.413003),
+ (2.337500, 0.163003),
+ (2.175000, -0.011997),
+ (1.875000, -0.111997),
+ (1.700000, -0.111997),
+ (1.462500, -0.049497),
+ (1.237500, 0.113003),
+ (1.075000, 0.275503),
+ (0.650000, 0.763003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=54;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% khandta.fig (char 55)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.575,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.175000, 1.725503),
+ (1.062500, 1.713003),
+ (0.925000, 1.625503),
+ (0.962500, 1.400503),
+ (1.287500, 1.363003),
+ (1.412500, 1.638003),
+ (1.187500, 1.900503),
+ (0.637500, 1.888003),
+ (0.550000, 1.325503),
+ (0.950000, 1.000503),
+ (1.250000, 0.725503),
+ (1.237500, 0.400503),
+ (0.800000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=55;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% jafala.fig (char 56)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.787,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.012500, 1.913003),
+ (0.850000, 1.913003));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.387500, 1.888003),
+ (0.200000, 1.513003),
+ (0.575000, 0.950503),
+ (0.200000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=56;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% jafalaA.fig (char 57)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.787,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.012500, 1.913003),
+ (1.325000, 1.913003));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (1.025000, 1.875503),
+ (1.025000, -0.061997));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.387500, 1.888003),
+ (0.200000, 1.513003),
+ (0.575000, 0.950503),
+ (0.200000, 0.013003));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=57;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% chndbndu.fig (char 58)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,0.039,0.000,0.787);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ circshade(0, (0.675000,2.690488),0.087500);
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.350000, 2.652988),
+ (0.675000, 2.390488),
+ (1.025000, 2.790488));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=58;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% kta.fig (char 59)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,2.638,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(false, false,
+ (0.087500, 1.950503),
+ (2.600000, 1.950503));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (0.662500, 1.250503),
+ (0.862500, 1.388003),
+ (1.012500, 1.363003),
+ (1.000000, 1.188003),
+ (0.687500, 1.138003),
+ (0.637500, 1.625503),
+ (1.037500, 1.888003),
+ (1.512500, 1.838003),
+ (1.725000, 1.525503),
+ (1.675000, 1.188003),
+ (1.562500, 1.013003),
+ (1.862500, 1.100503),
+ (2.062500, 0.838003),
+ (1.975000, 0.438003),
+ (1.812500, 0.188003),
+ (1.612500, 0.100503),
+ (1.237500, 0.113003),
+ (0.875000, 0.275503),
+ (0.562500, 0.550503),
+ (0.137500, 1.525503));
+ pickup pencircle scaled 0.50pt;
+ pickup pencircle scaled 0.70pt;
+ curve(true, false,
+ (1.575000, 1.013003),
+ (1.975000, 1.475503),
+ (2.287500, 1.600503),
+ (2.437500, 1.300503),
+ (2.212500, 1.188003),
+ (2.150000, 1.350503),
+ (2.375000, 1.525503));
+ pickup pencircle scaled 0.50pt;
+endchar;
+endmfpicenv;
+%
+% /home/users/masroor/MyOwn/bin/fig2MF version 0.04 --- Preamble
+%
+mag:=1000/1000; input graphbase.mf; code:=59;
+mfpicenv;
+interim hdwdr:=1; interim hdten:=1;
+interim penwd:=0.50pt;
+pickup pencircle scaled penwd;
+currenttransform:=currenttransform slanted(0.25) xscaled(0.80);
+%
+% dnari.fig (char 60)
+%
+xscale:=0.043; yscale:=0.043; bounds(0.000,1.181,0.000,1.969);
+beginchar(incr code,xscale*(xpos-xneg)*in#,yscale*(ypos-yneg)*in#,0);
+ setztr;
+ pickup pencircle scaled 0.50pt;
+ cycleshade(0, false,
+ (0.737500, 1.875503),
+ (0.737500, 0.425503),
+ (0.987500, 0.050503),
+ (0.987500, 1.563003),
+ (0.737500, 1.875503));
+endchar;
+endmfpicenv;
+end
diff --git a/language/bengali/arosgn/samples/asgalone.tex b/language/bengali/arosgn/samples/asgalone.tex
new file mode 100644
index 0000000000..d01a7342dc
--- /dev/null
+++ b/language/bengali/arosgn/samples/asgalone.tex
@@ -0,0 +1,51 @@
+% This file is a sample for when you want to
+% use arosgn on a stand-alone basis.
+
+% Use command,
+% latex asgalone.tex
+% to generate the .dvi file from this file.
+
+\documentclass[12pt]{article}
+\usepackage{arosgn}
+
+% Comment out the above two lines and uncomment the
+% following line for LaTeX 2.09.
+
+%\documentstyle[12pt,arosgn]
+
+\begin{document}
+
+{\large\bf Below, you are supposed to see some meaningless english
+characters intermixed with bangla characters defined
+in arosgn.sty.}
+
+\bigskip
+\bigskip
+
+
+\e\gu lo ki axar
+
+
+{\bngls\e\gu lo ki axar}
+
+
+\cb chaadera haasira \cb baadha bhengechhe
+
+kahe sandh\yaa rabi
+
+\shu nifaa jaga\th\ rahe ni\ru ttara chhabi
+
+\gu\ru mashaai taahale \shu\ru\ karaa yaaka
+
+\au rangajiiba ki pada\ya\ likhatena
+
+
+{\bnglc\au rangajiiba ki pada\ya\ likhatena}
+
+\hu jurera \hu kuma, \hu juga tulabena
+naa, aara \gu jabe kaan deben naa
+kokilera ku\hu taana \shu nuna
+
+\e i baake\ya ra sheshhe \cb daaRi aachhe\|
+
+\end{document}
diff --git a/language/bengali/arosgn/samples/itrsgasg.itx b/language/bengali/arosgn/samples/itrsgasg.itx
new file mode 100644
index 0000000000..327ee4526d
--- /dev/null
+++ b/language/bengali/arosgn/samples/itrsgasg.itx
@@ -0,0 +1,41 @@
+% This file is a sample for when you have sgaon fonts,
+% itrans and arosgn installed in your system.
+
+% Use commands,
+% itrans -i itrsgasg.itx -o itrsgasg.tex
+% latex itrsgasg.tex
+% to generate the .dvi file from this file.
+
+\documentclass[12pt]{article}
+\usepackage{sgaon,arosgn}
+
+% Comment out the above two lines and uncomment the
+% following line for LaTeX 2.09.
+
+%\documentstyle[12pt,sgaon,arosgn]
+
+#bengaliifm=sgaonpk.ifm
+#bengalifont=\bnglr
+
+\begin{document}
+
+\noindent English text
+
+You know the great thing about TV? If something important happens
+anywhere at all in the world, no matter what time of the day or night,
+you can always change the channel.
+
+\bigskip
+
+\noindent #bengali bA.nlA lekhA
+
+\e kaTaa jinisera subipula uchchataa o tatadhika
+bistR^iti dekhifaai kichhu \e\ bhaaba mane aase naa;
+kaaraNa taa ha_ile himaalfera ye-kona angaprat\ya nga_i
+ta yatheshhTa \| kintu \e i ye biraaTa b\yaa paara jiibantera
+mata chhuTifaa aasitechhe sei aparimefa gatisha\kti ra
+anubhuuti_i aamaake abhibhuuta karifaa phelifaachhila \|
+
+#endbengali
+
+\end{document}
diff --git a/language/bengali/arosgn/sgaon.sty b/language/bengali/arosgn/sgaon.sty
new file mode 100644
index 0000000000..8a55504e07
--- /dev/null
+++ b/language/bengali/arosgn/sgaon.sty
@@ -0,0 +1,15 @@
+% Headers required for using the sonar gaon font.
+
+% $Header: /home/users/masroor/TeX/sty/RCS/sgaon.sty,v 1.1 1996/02/01 03:26:04 masroor Exp $
+
+% $Log: sgaon.sty,v $
+% Revision 1.1 1996/02/01 03:26:04 masroor
+% Initial revision
+%
+
+\newfont{\bnglr}{bng10rpn} % normal font
+\newfont{\bngls}{bn100ipn} % slanted font
+\newfont{\bnglc}{bn100rpn} % compressed font
+\hyphenchar\bnglr=-1 % disable hyphenation using this font
+\hyphenchar\bngls=-1 % disable hyphenation using this font
+\hyphenchar\bnglc=-1 % disable hyphenation using this font
diff --git a/language/bengali/arosgn/tfm/arosgnc.tfm b/language/bengali/arosgn/tfm/arosgnc.tfm
new file mode 100644
index 0000000000..4e29bbc315
--- /dev/null
+++ b/language/bengali/arosgn/tfm/arosgnc.tfm
Binary files differ
diff --git a/language/bengali/arosgn/tfm/arosgnr.tfm b/language/bengali/arosgn/tfm/arosgnr.tfm
new file mode 100644
index 0000000000..4e29bbc315
--- /dev/null
+++ b/language/bengali/arosgn/tfm/arosgnr.tfm
Binary files differ
diff --git a/language/bengali/arosgn/tfm/arosgns.tfm b/language/bengali/arosgn/tfm/arosgns.tfm
new file mode 100644
index 0000000000..4e29bbc315
--- /dev/null
+++ b/language/bengali/arosgn/tfm/arosgns.tfm
Binary files differ
diff --git a/language/bengali/bangtex/README.bangtex b/language/bengali/bangtex/README.bangtex
new file mode 100644
index 0000000000..fb95bbceb5
--- /dev/null
+++ b/language/bengali/bangtex/README.bangtex
@@ -0,0 +1,7 @@
+The bangtex package contains font and class (style) files for
+typesetting in Bangla and Assamese. Detailed information can be
+obtained from the internet site
+
+http://tnp.saha.ernet.in/~pbpal
+
+under the section called `Software help'. \ No newline at end of file
diff --git a/language/bengali/bangtex/examples/manual.tex b/language/bengali/bangtex/examples/manual.tex
new file mode 100644
index 0000000000..967e27f32a
--- /dev/null
+++ b/language/bengali/bangtex/examples/manual.tex
@@ -0,0 +1,1265 @@
+\documentclass[12pt]{barticle}
+
+
+\textwidth=16cm
+\textheight=22cm
+\oddsidemargin=0mm
+\evensidemargin=0mm
+\tolerance=10000
+
+
+
+
+\def\tex{{\rm\TeX}}
+\def\latex{{\rm\LaTeX}}
+\def\totype#1{{\tt #1}}
+%\def\cinho#1{{\bng #1} & \totype{#1}}
+\def\cinho#1{\totype{#1} & {\bng #1}}
+\def\demo#1{\framebox{\framebox{\totype{#1}}$\Longrightarrow$\framebox{\bng #1}}}
+\def\Demo#1#2{\framebox{\framebox{\totype{#1}}$ \Longrightarrow
+$\framebox{\bng #2}}}
+
+
+\makeindex
+
+
+\begin{document}
+\bng
+\begin{titlepage}
+\begin{center}
+
+{\Lbng {\Large \tex} ba {\Large \latex}-E baNNGla \*l*ekha}
+
+\vfill
+
+{\lbng polash boron pal}
+
+\vfill\vfill
+
+E\*pR*il 2001
+
+\end{center}
+\end{titlepage}
+\setcounter{page}{2}
+
+
+\tableofcontents
+
+\newpage
+
+%%%%%%%%%%%%%%%%%%%%
+\section{shuru korar Aa\*g*e kii kii dorkar}
+%%%%%%%%%%%%%%%%%%%%
+\tex\ ba \latex\ phaI\*l*e baNNGla Horoph bYoboHar kor\*t*e Ho\*l*e
+pRothomoto baNNGla Horophgu\*l*ea\*k*e Aapnar ko\*m/p*iUTa\*r*e
+rakh\*t*e Ho\*b*e. ETa kii ko\*r*e kor\*t*e Ho\*b*e, ta Ekha\*n*e
+Aa\*l*ea\*c*ito Ho\*b*e na. tar pRothom karoN, pRos/tu\*t*ir EI
+ANNGsho\*T*i AAk AAk rokom ko\*m/p*iUTa\*r*e AAk AAk
+rokom. \*dW*itiiyo karoN, EI ANNGsho\*T*i\*t*e ko\*m/p*iUTar
+soNNGkRan/to po\*r*ibhaShar pRo\*y*eajon AA\*t*ea \*b*e\*sh*i Ho\*b*e
+\*J*e Aa\*l*eacona INNG\*r*i\*j*i\*t*e Ho\*l*eI su\*b*i\*dh*e. E kotha
+taI Aalada ko\*r*e Aa\*l*eacona kora Ho\*y*e\*ch*e \*b*i\*bh*in/no
+rokom ko\*m/p*iUTa\*r*er jonYo, {\rm `How to install bangtex'}
+shiir/Shok ANNG\*sh*e.
+
+\tex\ ba \latex\ Jo\*d*i Aap\*n*i Aa\*g*e kokho\*n*ea bYoboHar na
+ko\*r*e tha\*k*en, taHo\*l*e EI \*n*i\*r/d*e\*sh*ika po\*rh*e Aapnar
+khub Upokar Ho\*b*e bo\*l*e mo\*n*e Hoy na. Ar/that//, Aamar dharoNa,
+pRotho\*m*eI baNNGla \*d*i\*y*e \tex\ ba \latex-E \*k*ichu \*l*ekhar
+\*c*eSh/Ta kor\*b*en na. Jo\*d*i \tex\ ba \latex\ na ja\*n*en,
+taHo\*l*e pRotho\*m*e INNG\*r*i\*j*i\*t*e \*k*ichu \*l*i\*kh*e EI
+pod/dho\*t*i\*t*e AbhYos/to Ho\*y*e \*n*in.
+
+
+%%%%%%%%%%%%%%%%%%%%
+\section{phaI\*l*er goThon}
+%%%%%%%%%%%%%%%%%%%%
+EI ANNG\*sh*e pRotho\*m*e \latex\ phaI\*l*er goThon som/po\*r/k*e
+bol\*ch*i. EI phaI\*l*er pRothom laIn\*T*i\*t*e
+\verb!\documentclass!-Er Ek\*T*i \*gh*eaShoNa thak\*b*e. EI
+\*gh*eaShoNa \*J*e \*J*e bha\*b*e kora \*J*e\*t*e
+pa\*r*e, tar nomuna \*n*i\*c*e \*l*i\*kh*e \*d*ekha\*c/ch*i.
+%%
+\begin{quote}
+\begin{minipage}{.4\textwidth}
+\verb!\documentclass{bbook} ! \\
+\verb!\documentclass[11pt]{bbook} ! \\
+\verb!\documentclass[12pt]{bbook} !
+\end{minipage}
+%
+\framebox{\parbox{.4\textwidth}{\*J*e \*k*ea\*n*ea Ek\*T*i matRo.
+\totype{bbook}-Er jaygay \totype{barticle} ba
+\totype{bletter}-O \*d*eOya \*J*e\*t*e pa\*r*e. \*n*i\*c*e porhun.
+}}
+\end{quote}
+%%
+Er
+\*J*e \*k*ea\*n*ea Ek\*T*i laIn \*l*i\*kh*e phaIl shuru kor\*t*e
+pa\*r*en. Ekha\*n*e \totype{bbook} ma\*n*e Ho\*l*ea \totype{bangla
+book}. Ar/that// EI phaIl\*T*i baNNGlay boI \*l*ekhar Upo\*J*eagii
+ko\*r*e \*t*{oi}\*r*i kora Ho\*y*e\*ch*e. \*J*emon, pRo\*t*i\*T*i
+AdhYa\*y*er shuru\*t*e AdhYa\*y*er nam\*T*i bo\*rh*ea Horo\*ph*e
+bos\*b*e, porobor/tii patagu\*l*ear Opo\*r*e AdhYa\*y*er nam bos\*b*e
+Aapna-Aap\*n*i, Jo\*d*i AboshYo \*s*eI AdhYa\*y*er namTa \latex-Er
+\*b*idhan AnuJayii \verb!\chapter! \*d*i\*y*e \*l*ekha Hoy. E charhaO
+\latex-Er \totype{book} bYoboHar kor\*l*e Ja Ja Hoy, \*m*eaTamu\*T*i
+\*s*eI sob su\*b*idha paOya Ja\*b*e. \*t*em\*n*i \latex-Er
+\totype{article} bYoboHar kor\*l*e Ja Ja Hoy, \*m*eaTamu\*T*i \*s*eI
+sob su\*b*idha paOya Ja\*b*e \totype{barticle} bYoboHar
+kor\*l*e. du\*T*ir mo\*dhY*e pRodhan tophat, \totype{barticle}-E
+\verb!\chapter! bo\*l*e \*k*ea\*n*ea \*b*ibhag Hoy
+na. \totype{bbook}-E Hoy, EboNNG EI \*b*ibhag\*T*i Ek\*T*i notun patay
+shuru Hoy. Aar \totype{bletter} Ho\*l*e paOya Ja\*b*e \*c*i\*Th*i
+\*l*ekhar su\*b*idha, \latex-Er \totype{letter}-E Ja tha\*k*e. nomunar
+jonYo \*J*e sob phaIl Aa\*ch*e \totype{bangtex}-Er bhaN/Da\*r*e, tar
+mo\*dhY*e Er nomuna pa\*b*en.
+
+U\*l/l*i\*kh*ito pRothom laIn\*T*ir por \latex\ phaI\*l*e Ja tha\*k*e,
+ta\*k*e \latex-Er \*n*i\*r/d*e\*sh*ikay bo\*l*e \totype{preamble},
+baNNGlay bola \*J*e\*t*e pa\*r*e `\*g*eouroco\*n/dR*ika'. EI
+ANNG\*sh*e thak\*t*e pa\*r*e \*l*ekha\*T*ir samo\*gR*ik ruup
+som/po\*r/k*e \*k*ichu tothYo, \*J*emon dhora Jak \*sh*eSh Ab\*dh*i
+chapa Ho\*l*e \*s*eI chapar \*d*{oi}r/ghYo pRos/tho ItYa\*d*i ko\*t*ea
+Ho\*b*e, pa\*sh*er ma\*r/j*in ko\*t*ea Ho\*b*e ItYa\*d*i. EI
+ANNGsho\*T*i\*t*e baNNGla \*l*ekhar jonYo \*b*i\*sh*iSh/To \*k*ichu
+kor\*t*e Ho\*b*e na, taI E som/po\*r/k*e \*b*is/ta\*r*ito janbar jonYo
+\latex\ \*n*i\*r/d*e\*sh*ika porhun.
+
+
+phaI\*l*er ba\*k*i ANNG\*sh*er goThon Ho\*b*e EI rokom~:\\
+%%
+\begin{minipage}{\textwidth}
+\begin{quote}
+\begin{verbatim}
+\begin{document}
+\bng
+******
+\end{document}
+\end{verbatim}
+\end{quote}
+\end{minipage}
+%%
+Er mo\*dhY*e tara \*c*in/Ho \*J*ekha\*n*e \*d*eOya Aa\*ch*e,
+\*s*eIkha\*n*e Ja\*b*e \*l*ekhaTa. \*s*eI ANNGshoTa kii ko\*r*e
+\*l*ekha Ho\*b*e, \*s*eITaI Aama\*d*er pRodhan Aa\*l*eacYo, \*s*eI
+kothay Aas\*ch*i.
+
+tar Aa\*g*e shudhu EkTu bo\*l*e \*n*iI, \latex\ na Ho\*y*e \tex\
+Ho\*l*e kii kor\*t*e Ho\*b*e. \*s*e \*kK*e\*tR*e phaI\*l*er goThon
+Ho\*b*e EI rokom:\\
+%%
+\begin{minipage}{\textwidth}
+\begin{quote}
+\begin{verbatim}
+\input bangfont
+\bngx
+******
+\bye
+\end{verbatim}
+\end{quote}
+\end{minipage}
+%%
+\latex-Er mo\*t*ea EI \*kK*e\*tR*eO tara \*c*in/Hogu\*l*ir jaygay
+bos\*b*e Aasol \*l*ekhaTa. \*sh*e\*Sh*er \verb \bye \ Ho\*l*ea phaIl
+\*sh*eSh korar soNNG\*k*et. Aar pRothom laIn\*T*i Ho\*l*ea
+baNNGla Horo\*ph*er \*gh*eaShoNa. EI \*gh*eaShoNar po\*r*e \*J*e
+laIn\*T*i Aa\*ch*e, ta\*t*e \totype{$\backslash$bngx} \*l*ekhar
+pho\*l*e \*l*ekha Ho\*b*e 10 po\*y*e\*n/T*er baNNGla Horo\*ph*e.
+AnYo ma\*p*er HorophO pRo\*y*eajon Ho\*t*e pa\*r*e. ta kii
+ko\*r*e \*p*e\*t*e Hoy, ta po\*r*e bol\*b*ea.
+Aapatoto Horo\*ph*er ma\*p*er \*c*in/ta multu\*b*i \*r*e\*kh*e
+kii \*l*ekha Ja\*b*e tar \*c*in/ta kora Jak.
+
+%%%%%%%%%%%%%%%%%%%%
+\section{baNNGla \*l*ekha~: dha\*p*e dha\*p*e}
+\subsection{pRothom dhap~: shud/dho sWor O bYoNJ/jon}
+%%%%%%%%%%%%%%%%%%%%
+baNNGla \*l*ekhar kotha UTh\*l*eI soko\*l*e bYo\*t*ibYos/to Ho\*y*e
+pRosh/no ko\*r*en, `Juk/tobYoNJ/jon kii ko\*r*e \*l*ekha Ho\*b*e bolun
+\*t*ea?' --- Aamar Anu\*r*eadh, E \*c*in/ta multu\*b*i
+rakhun, tar Aa\*g*e Aa\*r*ea A\*n*ek kotha bolar Aa\*ch*e.
+
+sob\*c*e\*y*e Aa\*g*e bola Jak, shud/dho bYoNJ/jongu\*l*ea kiibha\*b*e
+\*l*ekha Ho\*b*e. \ref{t:conso} nom/bor cho\*k*e Aa\*m*i
+po\*r*i\*b*eshon kor\*ch*i EI tothYo. lom/balo\*m/b*i pNNac\*T*i
+bo\*rh*ea bhag Aa\*ch*e chok\*T*i\*t*e. pRo\*t*i bha\*g*er mo\*dhY*e
+du\*T*i ko\*r*e \*j*i\*n*is \*l*ekha --- tiir\*c*i\*n/H*er Dan
+\*d*i\*k*e baNNGla bor/Nogu\*l*ea, bNNa\*d*i\*k*e Aa\*ch*e ta chapar
+jonYo \tex\ ba \latex\ phaI\*l*e kii \*l*ikh\*t*e Ho\*b*e. EkI kayday
+\ref{t:vow} nom/bor cho\*k*e \*d*eOya Ho\*l*ea sob ko\*T*i
+\*b*ishud/dho sWorobor/No.
+%%
+%%
+\begin{table}[hhh]
+\begin{center}
+\caption{baNNGla shud/dho bYoNJ/jon.\label{t:conso}}
+\begin{tabular}
+{||c|@{$\to$}|c||c|@{$\to$}|c||c|@{$\to$}|c||c|@{$\to$}|c||c|@{$\to$}|c||}
+\hline
+\cinho k & \cinho {kh} & \cinho g & \cinho{gh} & \cinho {NG} \\
+\hline
+\cinho c & \cinho {ch} & \cinho j & \cinho{jh} & \cinho {NJ} \\
+\hline
+\cinho T & \cinho {Th} & \cinho D & \cinho{Dh} & \cinho {N} \\
+\hline
+\cinho t & \cinho {th} & \cinho d & \cinho{dh} & \cinho {n} \\
+\hline
+\cinho p & \cinho {ph} & \cinho b & \cinho{bh} & \cinho {m} \\
+\hline
+\cinho J & \cinho r & \cinho l & \cinho H & \cinho {kK} \\
+\hline
+\cinho {sh} & \cinho {Sh} & \cinho s & \cinho{rh} & \cinho {rhh} \\
+\hline
+\cinho y & \cinho {t//} & \cinho {NNG} & \cinho{h} & \cinho {NN} \\
+\hline
+\end{tabular}
+%%
+\\ \bigskip
+%%
+\caption{baNNGla shud/dho sWorbor/No.\label{t:vow}}
+\begin{tabular}
+{||c|@{$\to$}|c||c|@{$\to$}|c||c|@{$\to$}|c||c|@{$\to$}|c||}
+\hline
+\cinho A & \cinho {Aa} & \cinho I & \cinho{II} \\
+\hline
+\cinho U & \cinho {UU} & \cinho {RR} & \multicolumn{2}{|c||}{}\\
+\hline
+\cinho E & \cinho {OI} & \cinho O & \cinho{OU} \\
+\hline
+\end{tabular}
+%
+\end{center}
+\end{table}
+%%
+
+shudhu EI \*d*i\*y*e AboshYo khub \*b*e\*sh*i shob/do \*l*ekha Ja\*b*e
+na, \*k*enona sWoro\*c*in/Hogu\*l*i \*sh*ekha Hoy\*n*i
+Ekho\*n*ea. \*k*in/tu \ref{t:vow} nom/bor chok \*th*e\*k*eI Ek\*T*i
+sWoro\*c*in/Ho jana Ja\*c/ch*e. jan\*t*e par\*ch*i, Aa-kar \*l*ekhar
+jonYo phaI\*l*e bosa\*t*e Hoy `\verb!a!'. `\totype{A}' TaIp kor\*l*e
+chapa Ho\*b*e `A'. tar Dan\*d*i\*k*e `\totype{a}' bosa\*l*e `A'-Er
+Dan\*d*i\*k*e `Aa'-kar bo\*s*e \*t*{oi}\*r*i Ho\*c/ch*e `Aa'. EI
+Ek\*T*i sWoro\*c*in/Ho\*k*e som/bol ko\*r*eI \*k*ichu kotha
+\*l*i\*kh*e \*d*ekha Jak. Dan \*d*i\*k*e baNNGla, Aar ta \*l*ekhar
+jonYo phaI\*l*e Ja TaIp kor\*t*e Ho\*b*e ta bNNa\*d*i\*k*e.
+
+%%
+\begin{quote}
+\begin{center}
+\demo{EI}
+\demo{Is}
+\demo{Oh}
+\demo{UT}
+\demo{lal jama}
+\demo{Dan-bNNa}
+\demo{Aata na, AaTa}
+\demo{Aakash-batas}
+\demo{Aasa-JaOya}
+\demo{Aam-jam-kNNaThal}
+\demo{ma-baba}
+\demo{dadabhaI calbhaja khaI}
+\end{center}
+\end{quote}
+%%
+EI por/Ja\*y*e UdaHoroN Aar ba\*rh*i\*y*e labh \*n*eI. tar \*c*e\*y*e
+boroNNG AnYanYo sWoro\*c*in/Ho kii bha\*b*e \*l*ekha Jay ta \*sh*ekhar
+\*c*eSh/Ta kora Jak.
+
+
+
+%%%%%%%%%%%%%%%%%%%%
+\subsection{\*dW*itiiyo dhap~: sWor\*c*in/Ho}
+%%%%%%%%%%%%%%%%%%%%
+baNNGlay sWoro\*c*in/Ho \*m*eaT no\*T*i. \*s*egu\*l*ea chapabar jonYo
+kii kii TaIp kor\*t*e Ho\*b*e, ta \*d*eOya Ho\*l*ea \ref{t:vow+}
+nom/bor cho\*k*e.
+%%
+\begin{table}[htb]
+\caption{baNNGla sWor\*c*in/Ho.\label{t:vow+}}
+\begin{center}
+\begin{tabular}{||c|@{$\to$}|c||c|@{$\to$}|c||c|@{$\to$}|c||}
+\hline
+\cinho a & \cinho i & \cinho { ii} \\
+\hline
+\cinho u & \cinho { uu} & \cinho { rR} \\
+\hline
+\cinho e & \cinho { oi} & \cinho { ou} \\
+\hline
+\end{tabular}
+\end{center}
+\end{table}
+%%
+E\*d*er mo\*dhY*e Ek\*T*i Ho\*l*ea `Aa'-ka\*r*er \*c*in/Ho, tar kotha
+Aa\*g*eI bola Ho\*y*e\*ch*e. tar po\*r*e Aa\*ch*e HRosWo-I Aar
+diir/gho-II ka\*r*er \*c*in/Ho, Atohpor HRosWo-U O diir/gho-UU kar. Er
+po\*r*er \*t*in\*T*i Ho\*l*ea JothakRo\*m*e RR-kar, E-kar, OI-kar.
+
+tar po\*r*e O-ka\*r*er jonYo \*k*ichu \*n*eI. karoNTa Aamra sobaI
+ja\*n*i --- \*k*ea\*n*ea bYoNJ/jo\*n*e O-kar \*b*eajha\*t*e \*g*e\*l*e
+Aamra tar bNNa\*d*i\*k*e EkTa E-ka\*r*er \*c*in/Ho bosaI, Aar
+Dan\*d*i\*k*e bosaI Aa-ka\*r*er \*c*in/Ho. Aabar OU-kar \*b*eajha\*t*e
+\*g*e\*l*eO bNNa\*d*i\*k*e EkTa E-ka\*r*er \*c*in/Ho la\*g*e, to\*b*e
+E \*kK*e\*tR*e Dan\*d*i\*k*e Ja bo\*s*e \*s*e\*T*i Ek\*T*i Aalada
+\*c*in/Ho, \ref{t:vow+} nom/bor cho\*k*e \*s*eITaI shudhu
+\*d*ekha\*n*ea Ho\*y*e\*ch*e. Ja \*H*eak, \ref{t:vow+} nom/bor chok
+Aama\*d*er Ha\*t*e E\*s*e JaOyar pho\*l*e Eba\*r*e boHu shob/do Aamra
+\*l*ikh\*t*e par\*b*ea, ko\*y*ekTa UdaHoroN \*d*eOya Jak.
+%%
+\begin{quote}
+\begin{center}
+\demo{shudhu JaOya-Aasa}
+\demo{suduur Atiit}
+\demo{lal gan, niil sur}
+\demo{rush ciin japan}
+\end{center}
+\end{quote}
+%%
+
+EkTu lokKYo kor\*l*e bujh\*t*e par\*b*en, EI sob UdaHoro\*N*er
+mo\*dhY*e HRosWo-I kar ba E-kar \*n*eI \*k*ea\*n*ea
+sho\*b/d*e. I\*c/ch*e ko\*r*eI Aa\*m*i E\*rh*i\*y*e \*g*e\*ch*i EI
+\*c*i\*n/H*er bYoboHar. tar karoN bol\*ch*i EkTu po\*r*e. tar Aa\*g*e
+AnYo Ek\*T*i kotha bo\*l*e \*n*i\*t*e caI.
+
+dhora Jak Aamra \*l*ikh\*t*e caI `somoy' shob/doTa. kii TaIp kor\*t*e
+Ho\*b*e? \ref{t:conso} nom/bor chok \*th*e\*k*e Er Ut/tor
+po\*r*iSh/kar~: \totype{smy}. taHo\*l*eI
+\totype{s}-Er jaygay chapa Ho\*b*e `s', \totype{m}-Er jaygay `m',
+\totype{y}-Er jaygay `y' --- Ar/that// sob \*m*i\*l*i\*y*e `somoy'.
+
+E Ut/tor \*Th*ik. so\*tY*iI taI chapa Ho\*b*e. mush\*k*ilTa Ho\*l*ea,
+TaIp kora phaIlTar \*d*i\*k*e Jo\*d*i po\*r*e takan, taHo\*l*e
+\*s*ekha\*n*e \totype{smy} \*d*e\*kh*e OTa \*J*e `somoy' ta \*b*eajha
+duhsadhYo Ho\*b*e. ko\*m/p*iUTa\*r*e \*l*ekhar sob\*c*e\*y*e bo\*rh*ea
+su\*b*idhaI Ho\*l*ea EI \*J*e, Ekbar phaI\*l*e \*k*ichu \*l*ekhar
+po\*r*eO barbar ta po\*rh*e tar po\*r*ibor/ton po\*r*imar/jon
+po\*r*ibor/dhon ItYa\*d*i kora Jay. phaI\*l*e \*k*eathay kii Aa\*ch*e
+ta-I Jo\*d*i \*b*eajha ko\*Th*in Hoy, taHo\*l*e EI sob kaj kor\*t*e
+khubI \*b*eg \*p*e\*t*e Ho\*b*e.
+
+EI mush\*k*il Aa\*r*ea maratMok Ho\*b*e HRosWo-I kar ba E-ka\*r*er
+kotha dhor\*l*e. Aamra ja\*n*i, EI sWoro\*c*in/Hogu\*l*ea bo\*s*e
+soNNG\*sh/l*iSh/To bYoNJ/jo\*n*er Aa\*g*e. baNNGla totha AnYanYo
+bharotiiyo bhaShar \*l*ikhonpod/dho\*t*ir E\*T*i Ek\*T*i \*b*i\*sh*eSh
+dur/bolota, \*k*enona Uc/caro\*N*e sWorodhWo\*n*i\*T*i Aa\*s*e
+po\*r*e. \*k*in/tu ta \*n*i\*y*e kNNadu\*n*i \*g*e\*y*e \*t*ea labh
+\*n*eI, \*s*eI bha\*b*eI Aama\*d*erO \*l*ikh\*t*e Ho\*b*e. pRosh/no
+Ho\*c/ch*e, kii kora Ho\*b*e? \totype{ik} ba \totype{es} TaIp kor\*l*e
+`ik' ba `es' chapa Ho\*b*e bo\*T*e, \*k*in/tu muul phaI\*l*e po\*r*e
+ta \*d*e\*kh*e \*c*ena Ja\*b*e \*k*i soHo\*j*e? poriikKa korar jonYo
+\*n*i\*c*er bakYo ko\*T*ir pa\*Th*ead/dhar ko\*r*e \*d*ekhun,
+E\*t*eakKon Ja Ja bola Ho\*y*e\*ch*e ta bYoboHar ko\*r*e:
+%%
+\begin{quote}
+\totype{smy ker Jid Aaset par toeb edkha Heb.}\\%[4mm]
+\totype{eraed ekhla na koraI bhaela.}
+\end{quote}
+%%
+Hoy\*t*ea bol\*b*en, A\*bhY*es Ho\*y*e Ja\*b*e. Hoy\*t*ea
+Ho\*b*e. tobuO su\*b*i\*dh*e ko\*r*e \*d*eOyar jonYo Aa\*m*i du\*T*i
+bYobos/tha ko\*r*e \*r*e\*kh*e\*ch*i. Eba\*r*e \*s*egu\*l*ea \*d*ekha
+Jak.
+
+pRothom\*T*i `somoy'-jatiiyo shob/do \*n*i\*y*e. \ref{t:vow} O
+\ref{t:vow+} nom/bor cho\*k*e \*d*e\*kh*e\*ch*en, sWoro\*c*i\*n/H*er
+jonYo bYoboHar kora Ho\*c/ch*e INNG\*r*i\*j*ir \*ch*ea\*T*ea Ha\*t*er
+bor/No, shud/dho sWorodhWo\*n*ir jonYo bo\*rh*ea Ha\*t*er. \*J*emon
+\demo{ u} EboNNG \demo{U}. \*t*em\*n*i \demo{O}, \*k*in/tu `O'-kar
+\*l*ekhar jonYo Aalada \*k*ea\*n*ea \*c*in/Ho la\*g*e na bo\*l*e
+\*ch*ea\*T*ea Ha\*t*er `\totype{o}' \*b*ekar. ETa\*k*eI Aa\*m*i
+ka\*j*e la\*g*i\*y*e\*ch*i. TaIp korar somoy \*J*e \*k*ea\*n*ea jaygay
+Jo\*d*i `\totype{o}' TaIp ko\*r*en, chapay \*s*ekha\*n*e \*k*ichuI
+Aas\*b*e na. Ar/that// `somoy' chapa\*t*e \*g*e\*l*e \totype{smy}
+\*l*ikh\*l*eO \*J*emon col\*b*e, \*t*em\*n*i \totype{somoy}
+\*l*ikh\*l*eO kar/Jo\*s*i\*d/dh*i Ho\*b*e. \*k*in/tu \*dW*itiiyo
+bha\*b*e \*l*ikh\*l*e A\*n*ek soHojpaThYo Ho\*b*e muul \tex\ ba
+\latex\ phaIl. \*k*ichu UdaHoroN \*d*ekha Jak:
+%%
+\begin{quote}
+\begin{center}
+\demo{polash boron pal}
+\demo{somoy Aamar naI}
+\demo{kolkata moHanogorii}
+\demo{bagbajar EboNNG bhobaniipur Elaka}
+\end{center}
+\end{quote}
+%%
+Aamar pRos/tab, EI bha\*b*eI \*l*ikhun, Hat \*p*e\*k*e JaOyar
+po\*r*eO. Hoy\*t*ea mo\*n*e Ho\*t*e pa\*r*e, `\totype{o}' TaIp
+kor\*t*e phaltu somoy noSh/To Ho\*b*e. \*b*ishWas korun, `\totype{o}'
+TaIp na korar jonYo somoy noSh/To Ho\*b*e som/bhoboto Aa\*r*ea A\*n*ek
+\*b*e\*sh*i.
+
+Ekhon \*k*eU bol\*t*e pa\*r*en, `\totype{o}' TaIp kor\*l*e Jo\*d*i
+chapay \*k*ichuI na \*d*ekha Jay taHo\*l*e \totype{somoy} na
+\*l*i\*kh*e \totype{somoyo} ba \totype{soomooooyo} TaIp kor\*l*eO
+\*t*ea chapay tar phol EkI Ho\*b*e. Ut/tor Ho\*c/ch*e, `HNNYa
+Ho\*b*e'. Jo\*t*eagu\*l*ea `\totype{o}' bosa\*l*e Aapnar porh\*t*e
+su\*b*idha Hoy, to\*t*eagu\*l*eaI bosa\*b*en.
+
+EIbar porobor/tii pRos/tab. Aa\*g*eI bo\*l*e\*ch*i, `\totype{ik}' TaIp
+kor\*l*e `ik' chapa Ho\*b*e. Aa\*m*i Ek\*T*i \*b*ikol/po pRos/tab
+\*d*i\*c/ch*i. UdaHoro\*N*er saHa\*JY*e \*b*eajha Jak~:
+%%
+\begin{quote}
+\begin{center}
+\Demo{$\backslash$*k*i}{\*k*i}
+\Demo{$\backslash$*HNN*e $\backslash$*HNN*e}{\*HNN*e \*HNN*e}
+\Demo{tu$\backslash$*m*i
+E$\backslash$*s*e$\backslash$*ch*i$\backslash$*l*e porshu}
+{tu\*m*i E\*s*e\*ch*i\*l*e porshu}
+\end{center}
+\end{quote}
+%%
+
+
+\tex\ ba \latex\ bYoboHar korar suu\*tR*e Aapnara \*n*ish/coyI
+ja\*n*en, EI pod/dho\*t*i\*t*e $\backslash$ \*c*in/Ho\*T*i \*d*i\*y*e
+\*b*eajha\*n*ea Hoy \*k*ea\*n*ea \*n*i\*r/d*esh. baNNGla
+Horophgu\*l*ear mo\*dhY*eI Aa\*m*i Emon EkTa bYobos/tha ko\*r*e
+\*r*e\*kh*e\*ch*i Ja\*t*e `\totype{$\backslash$*a*b}' jatiiyo Ek\*T*i
+\*j*i\*n*ish TaIp kora Ho\*l*e ko\*m/p*iUTa\*r*er ka\*ch*e Ek\*T*i
+\*b*i\*sh*eSh \*n*i\*r/d*esh Ja\*c/ch*e. \*s*e\*T*i Ho\*l*ea, du\*T*ea
+tara \*c*i\*n/H*er majhkha\*n*e Ja Aas\*b*e, ta \*n*i\*y*e Aapatoto
+\*k*ichu \*k*ea\*r*ea na. \*dW*itiiyo tara \*c*i\*n/H*er po\*r*e Ja
+Aas\*b*e, \*s*eTa\*k*e pRotho\*m*e \*ch*e\*p*e naO. tar po\*r*e
+cha\*p*ea duI tarar modhYobor/tii ANNGsho. tar ma\*n*e
+`\totype{$\backslash$*a*b}' TaIp kor\*l*e chapa Ho\*b*e `\totype{ba}',
+`\totype{$\backslash$*abc*d}' TaIp kor\*l*e chapa Ho\*b*e
+`\totype{dabc}'. taI `\*k*i' \*l*ikh\*t*e Ho\*l*e TaIp kora Jay
+`\totype{$\backslash$*k*i}', `\*s*e' \*l*ikh\*t*e Ho\*l*e
+`\totype{$\backslash$*s*e}'.
+
+E\*t*e su\*b*idha kii Ho\*l*ea ta \*b*eajhabar jonYo Aa\*g*e \*l*ekha
+du\*T*i bakYo EI bha\*b*e \*l*i\*kh*e \*d*ekha\*c/ch*i.
+%%
+\begin{quote}
+\totype{somoy ko$\backslash$*r*e Jo$\backslash$*d*i
+Aas$\backslash$*t*e paro to$\backslash$*b*e $\backslash$*d*ekha
+Ho$\backslash$*b*e.}\\
+\totype{$\backslash$*r*ea$\backslash$*d*e $\backslash$*kh*ela na koraI
+bha$\backslash$*l*ea.}
+\end{quote}
+%%
+Aasha ko\*r*i \*d*e\*kh*eI \*b*eajha Ja\*c/ch*e su\*b*idhaTa kii. EI
+bha\*b*e \*l*ikh\*l*e phaI\*l*e porha soHoj. Jo\*d*i `$\backslash$'
+EboNNG tara \*c*in/Hogu\*l*ea bad \*d*i\*y*e Jan porhar somoy,
+taHo\*l*e pRay \*r*eamok bor/Nomalay \*l*ekha baNNGlar mo\*t*eaI
+\*d*ekh\*t*e la\*g*e.
+
+`O'-kar \*d*i\*t*e Ho\*l*e bNNa\*d*i\*k*e Jay `E'-kar Aar
+Dan\*d*i\*k*e `Aa'-kar, taI `r'-y `O'-kar \*d*i\*t*e Ho\*l*e TaIp
+kor\*t*e Ho\*b*e `\totype{$\backslash$*r*ea}'. \*dW*itiiyo tarar
+porobor/tii `\totype{e}' co\*l*e Ja\*b*e `r'-Er Aa\*g*e, tar po\*r*e
+chapa Ho\*b*e `Aa'-ka\*r*er \*c*in/Ho. \*t*em\*n*i, `OU'-kar
+\*d*i\*t*e Ho\*l*eO Ek\*T*i `E'-ka\*r*er \*c*in/Ho\*k*e paTha\*t*e
+Ho\*b*e bYoNJ/jo\*n*er Aa\*g*e, taI \*dW*itiiyo tarar po\*r*e TaIp
+kor\*t*e Ho\*b*e `\totype{eou}'. Aabar `OI'-kar \*d*i\*t*e \*g*e\*l*e
+\*d*ekh\*ch*i, `OI'-ka\*r*er \*c*in/Ho\*T*i TaIp kor\*t*e Hoy
+`\totype{oi}' \*l*i\*kh*e. E\*kK*e\*tR*e EI `\totype{o}' EboNNG
+`\totype{i}' du\*T*ea\*k*eI co\*l*e Aas\*t*e Ho\*b*e bYoNJ/jo\*n*er
+Aa\*g*e, taI O du\*T*i\*k*e \*g*eaSh/Thiibod/dho ko\*r*e \*d*i\*t*e
+Ho\*b*e `\verb!{oi}!' \*l*i\*kh*e. E\*t*e TaI\*p*er \*b*eajha Aar
+EkTu bha\*r*i Ho\*b*e bo\*T*e, \*k*in/tu `OI'-kar baNNGlay E\*t*eaI
+kom bYoboHrRto Hoy \*J*e E \*n*i\*y*e matha ghamabar \*k*ea\*n*ea
+Ar/tho Hoy na. ko\*y*ek\*T*i shob/do \*l*i\*kh*e mok\*sh*ea ko\*r*e
+\*n*eOya Jak EI sob sWoro\*c*in/Ho.
+%%
+\begin{quote}
+\begin{center}
+\Demo{tu$\backslash$*m*i
+bo$\backslash$*l*e$\backslash$*ch*i$\backslash$*l*e} {tu\*m*i
+bo\*l*e\*ch*i\*l*e}
+\Demo{$\backslash$*g*eoutom}{\*g*eoutom}
+\Demo{$\backslash$*ch*eou nac}{\*ch*eou nac}
+\Demo{$\backslash$*kh*$\{$oi$\}$ Aar $\backslash$*d*$\{$oi$\}$ khaO}{\*kh*{oi}
+Aar \*d*{oi} khaO}
+\Demo{$\backslash$*d*$\{$oi$\}\backslash$*b*e tu$\backslash$*m*i
+kokhon}
+{\*d*{oi}\*b*e tu\*m*i kokhon}
+\end{center}
+\end{quote}
+%%
+Ekha\*n*e EkTa kotha bola Jak. `OI'-kar \*l*ikh\*t*e \*g*i\*y*e
+Aama\*d*er `\totype{oi}' TaIp ko\*r*e ta\*k*e bokRobon/dhoniir
+mo\*dhY*e pu\*r*e \*d*i\*t*e Ho\*c/ch*e. Athoco `\*kh*{oi}'
+\*l*ikh\*t*e \*g*i\*y*e `\totype{kh}' TaIp ko\*r*e ta\*k*e \*k*in/tu
+\*k*ea\*n*ea bon/dhoniir mo\*dhY*e pur\*t*e Ho\*c/ch*e na. du\*T*ea
+tara\*c*i\*n/H*er mo\*dhY*e Ja-I thak na \*k*eno, tar pu\*r*eaTaI
+co\*l*e Ja\*b*e po\*r*e.
+
+E\*t*ea UdaHoroN EboNNG E\*t*ea Aa\*l*eaconar po\*r*e sabalok Ho\*y*e
+\*g*e\*ch*i Aamra, taI Ebar shob/do ba \*ch*ea\*T*ea bakYo
+\*ch*e\*rh*e Aa\*r*ea bo\*rh*easo\*rh*ea \*k*ichu \*l*ekhar \*c*eSh/Ta
+kora Jak. bNNa\*y*e AtulpRosad \*s*e\*n*er Ek\*T*i gan baNNGla
+Horo\*ph*e, DaI\*n*e muul \latex\ phaI\*l*e Ja TaIp ko\*r*e paOya
+\*g*e\*l*ea EI ga\*n*er podgu\*l*ea. \latex\ na Ho\*y*e shudhu \tex\
+Ho\*l*e \verb!\begin{verse}! Aar \verb!\end{verse}! col\*b*e na,
+\*k*enona Ogu\*l*ea \latex-ErI \*b*i\*sh*iSh/To \*n*i\*r/d*esh.
+
+
+
+%%%%%%%%%%%%%%%%
+%
+\begin{minipage}{.4\textwidth}
+\begin{verse}
+Jokhon tu\*m*i gaOyaO gan \\
+tokhon Aa\*m*i gaI.\\
+gan\*T*i Jokhon Hoy somapon \\
+\*t*eamar pa\*n*e caI..
+
+Aa\*r*ea \*k*i \*m*ear gaI\*t*e Ho\*b*e\\
+noyonjo\*l*e naI\*t*e Ho\*b*e\\
+Aa\*r*ea \*k*i \*m*ear caI\*t*e Ho\*b*e \\
+\*d*i\*l*e na Ja taI..
+
+\*J*e sur tu\*m*i \*g*e\*y*e\*ch*i\*l*e\\
+\*J*e kotha\*T*i ko\*y*e\*ch*i\*l*e\\
+ba\*r*e ba\*r*e Aa\*m*i ta\*r*e \\
+JaI \*J*e bhu\*l*e JaI.
+
+Ebar tu\*m*i \*b*ijon ra\*t*e\\
+gan\*T*i dho\*r*ea Aamar sa\*th*e\\
+\*t*eamar O{I} Ektara\*t*e \\
+sur\*T*i \*m*ear \*m*ilaI..
+\end{verse}
+\end{minipage}
+%%
+%%
+\begin{minipage}{.6\textwidth}
+\begin{verbatim}
+\begin{verse}
+Jokhon tu\*m*i gaOyaO gan \\
+tokhon Aa\*m*i gaI.\\
+gan\*T*i Jokhon Hoy somapon \\
+\*t*eamar pa\*n*e caI..
+
+Aa\*r*ea \*k*i \*m*ear gaI\*t*e Ho\*b*e\\
+noyonjo\*l*e naI\*t*e Ho\*b*e\\
+Aa\*r*ea \*k*i \*m*ear caI\*t*e Ho\*b*e \\
+\*d*i\*l*e na Ja taI..
+
+\*J*e sur tu\*m*i \*g*e\*y*e\*ch*i\*l*e\\
+\*J*e kotha\*T*i ko\*y*e\*ch*i\*l*e\\
+ba\*r*e ba\*r*e Aa\*m*i ta\*r*e \\
+JaI \*J*e bhu\*l*e JaI.
+
+Ebar tu\*m*i \*b*ijon ra\*t*e\\
+gan\*T*i dho\*r*ea Aamar sa\*th*e\\
+\*t*eamar O{I} Ektara\*t*e \\
+sur\*T*i \*m*ear \*m*ilaI..
+\end{verse}
+\end{verbatim}
+\end{minipage}\bigskip
+
+Aabar mo\*n*e ko\*r*i\*y*e \*d*i\*c/ch*i, EI bha\*b*eI \*J*e TaIp
+kor\*t*e Ho\*b*e Emon \*k*ea\*n*ea badhokota
+\*n*eI. `\totype{noyonjo$\backslash$*l*e}' TaIp na ko\*r*e
+`\totype{nynjel}' TaIp kor\*l*eO chapay po\*r*iNo\*t*i EkI
+Ho\*t*ea. \*J*e bha\*b*e Opo\*r*e \*d*ekha\*n*ea Ho\*y*e\*ch*e,
+tar su\*b*idha kii \*s*e kotha Aa\*g*eI bola Ho\*y*e\*ch*e.
+
+ga\*n*er EI podgu\*l*ea \*l*ikh\*t*e Aar Ek\*T*i notun \*j*i\*n*ish
+bYoboHar kor\*t*e Ho\*y*e\*ch*e, \*s*e\*T*ir kotha Ebar
+bo\*l*i. \ref{t:vow} nom/bor chok \*th*e\*k*e \*d*ekha Ja\*c/ch*e,
+shudhu `\totype{O}' TaIp kor\*l*e chapa Ho\*b*e `O', shudhu
+`\totype{I}' kor\*l*e chapa Ho\*b*e `I', Athoco pashapa\*sh*i
+du\*T*eaI \*r*e\*kh*e `\totype{OI}' TaIp kora Aa\*ch*e \*d*ekh\*l*eI
+ko\*m/p*iUTar du\*T*ea\*k*eI \*sh*i\*k*ey tu\*l*e chap\*b*e
+`OI'. \*s*eI rokomI bola Aa\*ch*e ko\*m/p*iUTar\*k*e. pRosh/no
+UTh\*t*e pa\*r*e, taHo\*l*e so\*tY*i so\*tY*iI Jo\*d*i Aa\*m*i `OoI'
+chapa\*t*e caI, taHo\*l*e kii TaIp kor\*b*ea? Er Ek\*T*i Ut/tor
+\*d*eOya Aa\*ch*e ga\*n*er mo\*dhY*e --- `\totype{O$\{$I$\}$}' ba
+`\totype{$\{$O$\}$I}' TaIp kor\*l*eI muul phaI\*l*e `\totype{O}' EboNNG
+`\totype{I}' Aar pashapa\*sh*i thak\*ch*e na, taI ko\*m/p*iUTarO
+\*k*ichuI \*bh*e\*l/k*i \*d*ekha\*b*e na, `O' \*l*i\*kh*e tarpor `I'
+chapa\*b*e, Opo\*r*er UdaHoro\*N*e \*J*emon
+ko\*r*e\*ch*e. ko\*m/p*iUTar\*k*e du\*T*ea \*m*i\*sh*i\*y*e \*d*eOyar
+EI \*bh*e\*l/k*i \*th*e\*k*e \*n*ibrRt/to kora Jay Aa\*r*ea Ek\*T*i
+Upa\*y*e, ta Ho\*l*ea, majhkha\*n*e Ek\*T*i `\totype{o}' Dhu\*k*i\*y*e
+`\totype{OoI}' TaIp ko\*r*e.
+
+Juk/tobYoNJ/jo\*n*er kotha Aa\*l*eacona korar Aa\*g*e Aar EkTu
+\*l*ekha A\*bhY*es ko\*r*e \*n*eOya Jak. Eba\*r*e subhaSh
+mu\*kh*eapadhYa\*y*er Ek\*T*i ko\*b*ita. ko\*b*itar nam `parapar'.
+
+%%%%%%%%%%%%%%%%
+\bigskip
+%
+\begin{minipage}{.32\textwidth}\parskip=10pt
+Aamra \*J*eno baNNGla \*d*e\*sh*er\\
+\*c*ea\*kh*er du\*T*i tara.
+\end{minipage}
+%%
+\begin{minipage}{.62\textwidth}
+\begin{verbatim}
+Aamra \*J*eno baNNGla \*d*e\*sh*er\\
+\*c*ea\*kh*er du\*T*i tara.
+\end{verbatim}
+\end{minipage}\medskip
+
+%
+\begin{minipage}{.32\textwidth}
+majhkha\*n*e nak UNN\*c*i\*y*e Aa\*ch*e ---\\
+thakuk \*g*e paHara.
+\end{minipage}
+%%
+%%
+\begin{minipage}{.62\textwidth}
+\begin{verbatim}
+majhkha\*n*e nak UNN\*c*i\*y*e Aa\*ch*e ---\\
+thakuk \*g*e paHara.
+\end{verbatim}
+\end{minipage}\medskip
+
+%
+\begin{minipage}{.32\textwidth}
+du\*y*ea\*r*e \*kh*il.\\
+Tan \*d*i\*y*e taI\\
+khu\*l*e \*d*ilam jan:/la.
+\end{minipage}
+%%
+\begin{minipage}{.62\textwidth}
+\begin{verbatim}
+du\*y*ea\*r*e \*kh*il.\\
+Tan \*d*i\*y*e taI\\
+khu\*l*e \*d*ilam jan:/la.
+\end{verbatim}
+\end{minipage}\medskip
+
+%
+\begin{minipage}{.32\textwidth}
+Opa\*r*e \*J*e baNNGla\*d*esh\\
+Epa\*r*eO \*s*eI baNNGla.
+\end{minipage}
+%%
+%%
+\begin{minipage}{.62\textwidth}
+\begin{verbatim}
+Opa\*r*e \*J*e baNNGla\*d*esh\\
+Epa\*r*eO \*s*eI baNNGla.
+\end{verbatim}
+\end{minipage}
+\medskip
+
+%%%%%%%%%%%%%%%%%%%%
+E\*T*i \*l*ikh\*t*e \*g*i\*y*e Ek\*T*i barh\*t*i pRa\*p/t*i
+Ho\*y*e\*ch*e 7m laI\*n*e. \*s*ekha\*n*e \*d*ekha\*n*ea Ho\*y*e\*ch*e
+Hoson/to \*c*in/Ho kii ko\*r*e TaIp kor\*t*e Hoy.
+%%
+\begin{quote}
+\begin{center}
+\demo{mon:/Ta Aamar}
+\Demo{bak:/$\backslash$*d*ebii}{bak:/\*d*ebii}
+\end{center}
+\end{quote}
+%%
+
+%%%%%%%%%%%%%%%%%%%%
+\subsection{trRtiiyo dhap~: Juk/tbYoNJ/jon}
+%%%%%%%%%%%%%%%%%%%%
+Aamra Jo\*d*iO Juk/tobYoNJ/jon \*n*i\*y*e sob\*c*e\*y*e toTos/tho
+tha\*k*i, EI \*kK*e\*tR*e \*s*egu\*l*ea boroNNG `I'-kar ba
+`OI'-ka\*r*er \*c*e\*y*e A\*n*ek soHoj. ko\*y*ekTa UdaHoroN \*d*i\*l*e
+kothaTa po\*r*iSh/kar Ho\*b*e Aasha kora Jay.
+%%
+\begin{quote}
+\begin{center}
+\demo{top/to}
+\demo{mos/to}
+\demo{puros/kar}
+\demo{rok/tak/to}
+\demo{gol/po}
+\demo{bak/so}
+\demo{koN/Tho}
+\demo{Aac/cha}
+\demo{Hod/do}
+\demo{pol/lob}
+\demo{ran/na}
+\demo{Aanon/do}
+\demo{boson/to}
+\demo{Am/bor}
+\demo{Aarom/bho}
+\demo{Ap/sora}
+\demo{mot/to}
+\end{center}
+\end{quote}
+%%
+somos/to som/bhabYo Juk/tobor/No UdaHoro\*N*e \*d*ilam na, \*k*enona
+tar \*k*ea\*n*ea dorkar \*n*eI. UdaHoroNgu\*l*ea \*d*e\*kh*eI
+bujh\*t*e par\*ch*en kii ko\*r*e Juk/tobor/No chapa Ja\*b*e. Ek
+kothay bola Jay, \*J*e du\*T*i bYoNJ/jon Juk/to Ho\*c/ch*e bana\*n*e,
+shud/dho bYoNJ/jon \*H*i\*s*e\*b*e \*s*e du\*T*i\*k*e \*l*ekhar jonYo
+Ja TaIp korar kotha \*ch*i\*l*ea taI TaIp kor\*t*e Ho\*b*e, shudhu
+majhkha\*n*e bosa\*t*e Ho\*b*e `/' \*c*in/Ho\*T*i. \*J*e sob jaygay EI
+\*n*iyo\*m*er bYo\*t*ikRom Ho\*b*e ba EI \*n*iyom \*n*i\*y*e soNNGshoy
+\*d*ekha \*d*i\*t*e pa\*r*e, \*s*eIgu\*l*eaI shudhu Aa\*l*eacona
+kor\*b*ea.
+
+E rokom \*b*i\*sh*eSh \*kK*e\*tR*er mo\*dhY*e
+pRothom Aa\*l*eacYo \*J*egu\*l*ea\*k*e `phola' bola Hoy
+\*s*egu\*l*ea. `r'-phola, `J'-phola ItYa\*d*ir \*c*in/Ho
+\*b*eajha Ja\*b*e porobor/tii UdaHoroNgu\*l*ea \*th*e\*k*e:
+%%
+\begin{quote}
+\begin{center}
+\demo{AatMo}
+\demo{podMo}
+\demo{sMoroN}
+\demo{shMoshRu}
+\demo{bakYo}
+\demo{shoJYa}
+\demo{soHYo}
+\demo{HNNYa}
+\demo{pRothom}
+\demo{bokRo}
+\demo{shRii}
+\demo{matRa}
+\demo{kLan/to}
+\demo{pLabon}
+\demo{shWas}
+\demo{sWad}
+\end{center}
+\end{quote}
+%%
+Ar/that//, `r'-phola \*p*e\*t*e TaIp kor\*t*e Ho\*b*e `\totype{R}',
+`J'-phola (Ja\*k*e Aaso\*l*e `y'-phola bola U\*c*it) \*p*e\*t*e
+`\totype{Y}', `m'-phola \*p*e\*t*e `\totype{M}', `l'-phola \*p*e\*t*e
+`\totype{L}', `b'-phola \*p*e\*t*e `\totype{W}'. Aa\*r*ea jo\*T*il
+Juk/tobor/NoO kora \*J*e\*t*e pa\*r*e, \*J*emon
+%%
+\begin{quote}
+\begin{center}
+\demo{son/tRos/to}
+\demo{som/pRodan}
+\demo{dWon/dWo}
+\demo{Uc/chWas}
+\demo{tot/tWo}
+\demo{puN/DRobor/dhon}
+\end{center}
+\end{quote}
+%%
+A\*n*ek somo\*y*e tolay `n'-O bo\*s*e, ta\*k*e `n'-phola bola Hoy Anek
+somoy, \*k*in/tu chapar somo\*y*e E\*T*i\*k*e sadharoN
+Juk/to\*c*i\*n/H*er mo\*t*ea `\totype{/n}' \*d*i\*y*eI \*l*ikh\*t*e
+Ho\*b*e. Jotha~:
+%%
+\begin{quote}
+\begin{center}
+\demo{pRosh/no}
+\demo{mog/no}
+\demo{Jot/no}
+\demo{krRtogh/no}
+\end{center}
+\end{quote}
+%%
+\*t*em\*n*i `N'-pholar kothaO bola \*J*e\*t*e pa\*r*e, Ja \*b*eadhHoy
+shudhumatRo `kK'-Er so\*NG/g*eI bYoboHrRto Hoy. E\*T*iO \*p*e\*t*e
+Ho\*b*e `\totype{/N}' TaIp ko\*r*e:
+%%
+\begin{quote}
+\begin{center}
+\demo{tiikK/No}
+\end{center}
+\end{quote}
+%%
+
+EI `no'-pholar suutRo dho\*r*eI Aamra Ebar Juk/tobor/No \*l*ekhar
+\*dW*itiiyo bYo\*t*ikRom\*T*ir kothay Aas\*ch*i. `n/H'
+Juk/tobor/No\*T*i soNNGs/krR\*t*er mo\*t*e `H:/+n', \*k*in/tu baNNGlay
+tar Uc/caroN Hoy `n:/H'-Er mo\*t*ea. Aa\*m*i EI \*c*in/Ho\*T*i\*k*e
+baNNGlar Uc/caro\*N*er po\*r*i\*pR*e\*kK*i\*t*e `n:/+H'-Er
+Juk/tobor/No \*H*i\*s*e\*b*eI bhaba soNG/goto mo\*n*e
+ko\*r*i. \*t*em\*n*i `N/H'-\*k*eO `N:/+H' bhabaI soNG/goto. Egu\*l*ea
+chap\*t*e caI\*l*e taI TaIp kor\*t*e Ho\*b*e JothakRo\*m*e
+\totype{n/H} O \totype{N/H}. Aar `g/Y' EI \*c*in/Ho\*T*i\*k*eO `j+NJ'
+bhaba Ju\*k/t*iHiin, taI ETa\*k*e Aa\*m*i `\totype{g/Y}' \*d*i\*y*e
+\*n*i\*r/d*esh ko\*r*e\*ch*i.
+%%
+\begin{quote}
+\begin{center}
+\demo{sayan/Ho}
+\demo{AporaN/Ho}
+\demo{g/Yan}
+\end{center}
+\end{quote}
+%%
+\*k*in/tu `H'-Er so\*NG/g*e AnYanYo phola laga\*n*ear bYapa\*r*e
+Aa\*m*i \*k*ea\*n*ea bYo\*t*ikRom ra\*kh*i\*n*i.
+%%
+\begin{quote}
+\begin{center}
+\demo{AaHLad}
+\demo{AaHWan}
+\demo{baHYo}
+\end{center}
+\end{quote}
+%%
+
+EIbar trRtiiyo \*b*i\*sh*eSh mon/tobYo. bYo\*t*ikRom na Ho\*l*eO
+\*k*ea\*n*ea \*k*ea\*n*ea Juk/tobor/No \*n*i\*y*e khoTka lag\*t*e
+pa\*r*e paTho\*k*er mo\*n*e. \*J*emon dhora Jak, `\*r*eph' kii ko\*r*e
+chapa\*n*ea Ja\*b*e? Er Ut/tor pRokaran/to\*r*e Aa\*g*eI \*d*eOya
+Ho\*y*e \*g*e\*ch*e, \*k*enona \*r*eph-Juk/to bYoNJ/jon ma\*n*e
+Aaso\*l*e ta Ek\*T*i Juk/tobYoNJ/jon Jar pRothom ANNGsho\*T*i `r'. taI
+`\totype{r/k}' TaIp kor\*l*e chapa Ho\*b*e `r/k', ItYa\*d*i.
+
+E rokom Aa\*r*ea soNNGshoy Ho\*t*e pa\*r*e `Sh/N' \*l*ikh\*t*e
+Ho\*l*e. Er jonYo TaIp kor\*t*e Ho\*b*e `\totype{Sh/N}'. E\*T*iO
+bYo\*t*ikRom noy, pu\*r*eapu\*r*i \*n*iyom \*m*e\*n*e cola. tobu
+U\*l/l*ekh korlam, \*k*enona Aa\*m*i \*d*e\*kh*e\*ch*i, A\*n*e\*k*erI
+dharoNa \*J*e E\*T*i `Sh+NJ'-r Juk/toruup. E dharoNa \*Th*ik noy,
+`Sh+NJ' Juk/tobor/No soNNGs/krR\*t*e \*ch*i\*l*ea na, baNNGlayO
+\*n*eI. E\*T*i `Sh+N'.
+%%
+\begin{quote}
+\begin{center}
+\demo{gor/to}
+\demo{porobor/tii}
+\demo{krRSh/No}
+%\demo{USh/NiiSh}
+\end{center}
+\end{quote}
+%%
+
+%%%%%%%%%%%%%%%%%%%%
+\subsection{\*k*ichu \*k*ichu bo\*r/N*er AakrR\*t*i}
+%%%%%%%%%%%%%%%%%%%%
+Ebar Aa\*r*ea ko\*y*ek\*T*i UdaHoroN \*d*ekha Jak.
+%%
+\begin{quote}
+\begin{center}
+\demo{loghu-guru}
+\demo{poshu}
+\demo{baHulYo}
+\demo{bos/tu}
+\demo{ruup}
+\demo{HrRdoy}
+\end{center}
+\end{quote}
+%%
+pRothom laI\*n*e ro\*y*e\*ch*e `U'-kar Juk/to \*k*ichu bor/No. EI
+\*c*in/Hogu\*l*ea baNNGlay AnYo bha\*b*eO chapa Hoy. pu\*r*ea\*n*ea
+\*b*idYasagorii dhNNa\*c*er chapay `g+U' \*J*e bha\*b*e \*d*ekha Jay,
+ta\*t*e `U'-karTa mu\*rh*e \*g*i\*y*e A\*n*ekTa baNNGla `3'-Er
+mo\*t*ea \*d*ekhay. `sh', `r' ba `Ho'-y `U'-ka\*r*er jonYoO
+\*t*em\*n*i \*b*i\*sh*eSh \*b*i\*sh*eSh \*c*in/Ho Aa\*ch*e.
+
+Ek kothay E\*d*er\*k*e bola Jay `AsWoc/cho' \*c*in/Ho. Ar/that//
+`go'-Er \*c*i\*n/H*er sa\*th*e `U'-ka\*r*er \*c*in/Ho ju\*rh*e paOya
+Ja\*b*e na `gu'-Er jonYo \*n*i\*r/d*iSh/To \*b*idYasagorii
+\*c*in/Ho\*T*i. EkI kotha `ru' `Hu' ItYa\*d*i som/po\*r/k*eO. EI sob
+\*c*in/Ho AkaroN baHulYo, taI E\*d*er\*k*e Aa\*m*i bor/jon
+ko\*r*e\*ch*i. Ekhon boHu som/bhRan/to pRokashon soNNGs/thaO OoI
+ruupgu\*l*ea bYoboHar ko\*r*en na, baNNGla Aaka\*d*e\*m*iO Egu\*l*ear
+\*b*i\*r*eadhii. `\totype{ruu}' ba `\totype{HrR}' TaIp kor\*l*eO Ja
+chapa Ho\*b*e, ta JothakRo\*m*e `ro'-Er \*n*i\*c*e po\*r*iSh/kar
+Ek\*T*i diir/gho-UU kar EboNNG `Ho'-Er tolay po\*r*iSh/kar
+Ek\*T*i `RR'-kar.
+
+Juk/tobYoNJ/jo\*n*er \*kK*e\*tR*eO AsWoc/cho \*c*in/Hogu\*l*i\*k*e
+Jothasom/bhob bor/jon kora Ho\*y*e\*ch*e. UdaHoroN \*d*ekhun Ebar.
+%%
+\begin{quote}
+\begin{center}
+\demo{ANG/ko}
+\demo{ANG/go}
+\demo{pRobon/dho}
+\demo{sus/tho}
+\demo{pan/tho}
+\demo{Aabod/dho}
+\demo{lob/dho}
+\demo{goN/Dar}
+\end{center}
+\end{quote}
+%%
+ko\*y*ek\*T*i AsWoc/cho \*c*in/Ho AboshYo Aa\*ch*e, \*J*emon `tR',
+`bhR' ItYa\*d*i. Aamar AboshYo mot Ho\*l*ea \*J*e Egu\*l*ear mayaO
+Jo\*t*ea tarhata\*rh*i ka\*T*i\*y*e OTha Jay to\*t*eaI moNG/gol.
+
+EI bha\*b*e Juk/to\*c*in/Ho korar EkTa su\*b*i\*dh*e Ho\*l*ea EI
+\*J*e, dorkar porh\*l*e notun notun \*c*in/Ho \*t*{oi}\*r*i ko\*r*e
+\*n*eOya Jay. ko\*y*ek\*T*i som/bhabYo UdaHoroN \*d*ekha Jak.
+%%
+\begin{quote}
+\begin{center}
+\demo{UIl/son}
+\demo{Ish/kul}
+\Demo{$\backslash$*H*el/th $\backslash$*s*en/Tar}{\*H*el/th \*s*en/Tar}
+\end{center}
+\end{quote}
+%%
+E kothagu\*l*ear EI rokom bananI \*l*ekha U\*c*it ta bol\*ch*i
+na. \*k*in/tu Jo\*d*i EI rokomI banan can, taHo\*l*e ko\*m/p*iUTar
+\*n*i\*j*eI tar jonYo Juk/tobor/No \*t*{oi}\*r*i ko\*r*e \*n*e\*b*e, E
+sob Juk/tobor/No Aa\*g*e \*th*e\*k*e bana\*n*ea \*n*eI bo\*l*e
+\*k*ea\*n*ea Asu\*b*idha Ho\*b*e na.
+
+EboNNG \*Th*ik EI karo\*N*eI JNNara EI \*n*i\*r/d*e\*sh*ikay somos/to
+Juk/tobo\*r/N*er Ek\*T*i ta\*l*ika khNNuj\*b*en, tNNara ta pa\*b*en
+na. \*k*enona Juk/tobor/No A\*n*ek Ho\*t*e pa\*r*e, \*J*e sob
+Juk/tobor/No baNNGlay bYoboHrRto Hoy na taO \*l*ekha \*J*e\*t*e
+pa\*r*e.
+
+%%%%%%%%%%%%%%%%%%%%
+\subsection{AnYanYo \*c*in/Ho}
+\subsubsection{soNNGkhYa\*c*in/Ho, Jo\*t*i\*c*in/Ho}
+%%%%%%%%%%%%%%%%%%%%
+E charhaO Aa\*r*ea \*c*in/Ho Aa\*ch*e. soNNGkhYa\*c*in/Ho
+som/po\*r/k*e bolar dorkar \*n*eI. Jo\*t*i\*c*i\*n/H*er mo\*dhY*e AnYo
+sobI pRay INNG\*r*i\*j*ir mo\*t*ea, tophat shudhu EI \*J*e
+INNG\*r*i\*j*i\*t*e Ja TaIp kor\*l*e `phuls/Top' chapa Ho\*t*ea,
+baNNGlar \*b*elay \*s*ekha\*n*e chapa Ho\*b*e dNNa\*rh*i. du\*T*i
+`phuls/Top' TaIp kor\*l*e chapa Ho\*b*e Dobol dNNa\*rh*i. Aar porpor
+\*t*in\*T*e `phuls/Top' TaIp kor\*l*e paOya Ja\*b*e \*t*in\*T*e
+\*b*in/du, Ja A\*n*ek somo\*y*e baNNGla \*l*ekhay \*b*iram
+\*c*i\*n/H*er mo\*t*ea bYoboHrRto Hoy.
+%%
+\begin{quote}
+\begin{center}
+\demo{.}
+\demo{..}
+\demo{...}
+\end{center}
+\end{quote}
+%%
+pRosh/no\*c*in/Ho, \*b*isMoy\*c*in/Ho, koma, \*s*e\*m*i\*k*ealon
+ItYa\*d*i AnYanYo Jo\*t*i\*c*in/Ho \*t*ea baNNGlay INNG\*r*i\*j*i
+\*th*e\*k*eI E\*s*e\*ch*e, \*s*egu\*l*ea INNG\*r*i\*j*ir mo\*t*eaI
+chapa Ho\*b*e. \*t*em\*n*i INNG\*r*i\*j*i \*l*ekhar mo\*dhY*e \*J*eag
+\*c*in/Ho, bon/dhonii, ItYa\*d*i chapar jonYo Ja TaIp kor\*t*e Hoy,
+baNNGla \*l*ekhar mo\*dhY*eO \*s*eI EkI TaIp kor\*t*e Ho\*b*e.
+
+%%%%%%%%%%%%%%%%%%%%
+\subsubsection{Asomiiya bhaSha}
+%%%%%%%%%%%%%%%%%%%%
+Asomiiya bhaShar \*l*i\*p*i baNNGlarI mo\*t*ea, shudhu du\*T*i tophat
+Aa\*ch*e. Ek\*T*i Ho\*l*ea An/tohs/tho bo, Jar jonYo baNNGlay Aalada
+\*k*ea\*n*ea \*c*in/Ho \*n*eI. AnYo\*T*i Ho\*l*ea `ro', ta AnYo
+bha\*b*e \*l*ekha Hoy. E du\*T*iO paOya Ja\*b*e JothakRo\*m*e
+`\totype{w}' EboNNG `\totype{rW}' TaIp kor\*l*e. Ar/that// AsomiiyaO
+\*l*ekha Ja\*b*e EI soph:/TOyar \*d*i\*y*e.
+%%
+\begin{quote}
+\begin{center}
+\demo{guwaHaTii}
+\Demo{$\backslash$*sh*ilcorW}{\*sh*ilcorW}
+\end{center}
+\end{quote}
+%%
+
+%%%%%%%%%%%%%%%%%%%%
+\subsubsection{bho\*b*iShYo\*t*er kotha \*bh*e\*b*e}
+%%%%%%%%%%%%%%%%%%%%
+E charha Aar Ek\*T*i notun \*c*in/Ho Aa\*m*i \*r*e\*kh*e\*ch*i,
+bho\*b*iShYo\*t*e Er som/bhabYo bYoboHa\*r*er kotha
+\*bh*e\*b*e. baNNGlay boHu\*d*in \*th*e\*k*eI `AYa' Uc/caroN
+\*b*eajha\*n*ear jonYo Ek\*T*i bo\*r/N*er pRo\*y*eajoniiyotar kotha
+bola Ho\*y*e Aas\*ch*e. Aa\*m*i Er jonYo Ek\*T*i \*p*eTkaTa `E'
+(EboNNG \*p*eTkaTa `E'-kar) bYoboHa\*r*er pokKopatii. EI du\*T*ea
+paOya Ja\*b*e JothakRo\*m*e `\totype{AA}' O `\totype{aa}' TaIp
+kor\*l*e. UdaHoroN~:
+%%
+\begin{quote}
+\begin{center}
+\Demo{AAka $\backslash$*k*$\{$aa$\}$no E$\backslash$*l*e}
+{AAka \*k*{aa}no E\*l*e}
+\end{center}
+\end{quote}
+%%
+\*c*in/Ho\*T*i Jo\*d*i pochon/do na Hoy, \*b*ico\*l*ito Ho\*b*en
+na. Aap\*n*i bYoboHar kor\*b*en na, ta Ho\*l*eI Ho\*l*ea!
+
+%%%%%%%%%%%%%%%%%%%%
+\subsubsection{phNNak}
+%%%%%%%%%%%%%%%%%%%%
+sob\*sh*e\*Sh*e Aar Ek\*T*i \*b*i\*sh*eSh \*c*i\*n/H*er kotha
+bol\*b*ea. E\*T*i Ho\*l*ea `paIp' \*c*in/Ho, lom/ba Ek\*T*i dNNa\*rh*i
+(`$\mid$') \*d*i\*y*e Ja \*l*ekha Hoy ko\*m/p*iUTar soNNGkRan/to
+\*l*ekhay. baNNGla Horo\*ph*e \*l*ekhar somo\*y*e EI \*c*in/Ho\*T*i
+TaIp kor\*l*e chapay \*s*ekha\*n*e Aas\*b*e kha\*n*ikTa phNNak, \tex\
+ba \latex-E \verb!\kern! \*d*i\*y*eO Ja kora Jay. baNNGla \*l*ekhar
+somo\*y*e EI \*c*in/Ho\*T*i kiibha\*b*e ka\*j*e lag\*t*e pa\*r*e, ta
+\*b*eajha\*c/ch*i \*n*i\*c*er UdaHoroNgu\*l*ear madhYo\*m*e~:
+%%
+\begin{quote}
+\begin{center}
+\demo{khoT|Wa}
+\demo{IkK|Waku}
+\end{center}
+\end{quote}
+%%
+baNNGla bhaShay `To'-y `bo'-phola Hoy na khub EkTa, shudhu EI
+soNNGs/krR\*t*er `khoT|Wa' shob/doTa ka\*l*ebho\*dR*e \*d*ekha Jay. Er
+jonYo `To'-y `bo'-pholar EkTa Aalada \*c*in/Ho bana\*n*ea
+batulota. Athoco soraso\*r*i \totype{TW} TaIp kor\*l*e `bo'-pholaTa
+`To'-Er ga\*y*e \*Th*e\*k*e Jay. taI `T' Aar `\,\,W'-Er majhkha\*n*e
+`paIp' Dhu\*k*i\*y*e `bo'-pholar \*c*in/Ho\*T*i\*k*e EkTu duu\*r*e
+so\*r*i\*y*e \*d*eOya Ho\*y*e\*ch*e. to\*b*e E sob jaygay soraso\*r*i
+`\totype{kern}' bYoboHar kor\*t*eO pa\*r*en --- ta\*t*e ko\*t*eaTa
+sora\*b*en tar \*H*i\*s*eb Aapnar Ha\*t*eI thak\*b*e.
+
+
+%%%%%%%%%%%%%%%%%%%%
+\section{nana ma\*p*er, nana roko\*m*er Horoph}
+%%%%%%%%%%%%%%%%%%%%
+Er Aa\*g*e \totype{bangfont} bo\*l*e Ek\*T*i phaI\*l*er kotha bola
+Ho\*y*e\*ch*e --- \tex-E \*l*ikh\*t*e \*g*e\*l*e Ja\*k*e Aalada
+ko\*r*e bhor\*t*e Hoy, \latex-E Ja Aapna-Aap\*n*iI bhora Ho\*y*e Jay
+\totype{bbook} ba \totype{barticle}-Er madhYo\*m*e. EI phaIl\*T*ir
+pu\*r*ea nam \totype{bangfont.tex}, E\*T*i \totype{bangtex}-Er
+AnYotomo phaIl. Er mo\*dhY*e nana baNNGla Horo\*ph*er soNNGg/Ya
+\*s/th*ir ko\*r*e \*d*eOya Ho\*y*e\*ch*e. Horophgu\*l*i \*t*in\*T*i
+\*shR*eNii\*t*e \*b*ibhok/to. pRothom\*T*i sadharoN Horoph,
+\*dW*itiiyo\*T*i bNNaka ba \*H*ela\*n*ea, trRtiiyo\*T*i kha\*n*ikTa
+coOrha Horoph. \*J*e \*J*e ma\*p*er Horoph Aa\*ch*e, ta cho\*k*er
+Aaka\*r*e \*l*i\*kh*e \*d*i\*c/ch*i, ta\*d*er nam so\*m*et.
+%%
+\begin{center}
+\begin{tabular}{|r|l|l|l|}
+\hline
+\multicolumn{1}{|c|}{map} & \*s*eaja Horoph & bNNaka Horoph & coOrha Horoph \\
+\hline\hline
+6 po\*y*en/T & \verb+\bngvi+ & \verb+\bnsvi+ & \verb+\bnwvi+ \\
+7 po\*y*en/T & \verb+\bngvii+ & \verb+\bnsvii+ & \verb+\bnwvii+ \\
+8 po\*y*en/T & \verb+\bngviii+ & \verb+\bnsviii+ & \verb+\bnwviii+ \\
+9 po\*y*en/T & \verb+\bngix+ & \verb+\bnsix+ & \verb+\bnwix+ \\
+10 po\*y*en/T & \verb+\bngx+ & \verb+\bnsx+ & \verb+\bnwx+ \\
+11 po\*y*en/T & \verb+\bngxi+ & \verb+\bnsxi+ & \verb+\bnwxi+ \\
+12 po\*y*en/T & \verb+\bngxii+ & \verb+\bnsxii+ & \verb+\bnwxii+ \\
+14 po\*y*en/T & \verb+\bngxiv+ & \verb+\bnsxiv+ & \verb+\bnwxiv+ \\
+18 po\*y*en/T & \verb+\bngxviii+ & \verb+\bnsxviii+ & \verb+\bnwxviii+ \\
+22 po\*y*en/T & \verb+\bngxxii+ & \verb+\bnsxxii+ & \verb+\bnwxxii+ \\
+25 po\*y*en/T & \verb+\bngxxv+ & \verb+\bnsxxv+ & \verb+\bnwxxv+ \\
+30 po\*y*en/T & \verb+\bngxxx+ & \verb+\bnsxxx+ & \verb+\bnwxxx+ \\
+\hline
+\end{tabular}
+\end{center}
+%%
+namgu\*l*ea mo\*n*e rakha khub shok/to noy. sadharoN baNNGla
+Horo\*ph*er nam sobI \verb!\bng! \*d*i\*y*e shuru, \*H*ela\*n*ea ({\rm
+slanted}) Horo\*ph*er nam shuru \verb~\bns~ \*d*i\*y*e, Aar coOrha
+({\rm wide}) Horo\*ph*er nam shuru \verb~\bnw~
+\*d*i\*y*e. Horophgu\*l*ear na\*m*e tar po\*r*e Ja Aa\*ch*e, ta
+Ho\*l*ea Horo\*ph*er saIj, \*r*eamok soNNGkhYa\*l*ikhon
+pod/dho\*t*i\*t*e \*l*ekha. phaI\*l*er \*J*e \*k*ea\*n*ea jaygay
+Upo\*r*eak/to \*J*e \*k*ea\*n*ea Horo\*ph*er \*n*i\*r/d*esh Jo\*d*i
+\*d*en, taHo\*l*eI tar por \*th*e\*k*e sob \*l*ekha Ho\*t*e thak\*b*e
+\*s*eI Horo\*ph*e. Aar
+khub Al/po somo\*y*er jonYo Ek\*T*i Horoph bYoboHar ko\*r*e Aabar Jo\*d*i
+phaI\*l*er muul Horo\*ph*e \*ph*i\*r*e \*J*e\*t*e can, to\*b*e \*s*eI
+Horo\*ph*er \*n*i\*r/d*esh\*T*i bokRobon/dhoniir mo\*dhY*e \*d*i\*l*eI
+bha\*l*ea. UdaHoroN \*d*ekhun~:
+%%
+\begin{quote}
+\begin{center}
+\Demo{bRuTas, $\{\backslash$bnsxii tu$\backslash$*m*iO!$\}$ Hay!}
+{bRuTas, {\bnsxii tu\*m*iO!} Hay!}
+\end{center}
+\end{quote}
+%%
+\tex\ phaI\*l*e Jo\*d*i \*g*earha \*th*e\*k*eI 10
+po\*y*e\*n/T*e na \*l*i\*kh*e 12 po\*y*e\*n/T*e \*l*ikh\*t*e
+can, taHo\*l*e phaI\*l*er \*g*earhay \*J*ekha\*n*e \verb!\bngx!
+\*l*ikh\*t*e bola Ho\*y*e\*ch*i\*l*ea, \*s*ekha\*n*e \verb!\bngxii!
+\*l*i\*kh*e shuru kora Jay.
+
+\latex-Er Ju\*k/t*ir dhara EkTu AnYo rokom. Ekha\*n*e sob somo\*y*eI
+shuru\*t*e \verb!\bng! TaIp ko\*r*e \*n*i\*t*e Ho\*b*e. \*k*in/tu
+phaI\*l*er E\*k*eba\*r*e shuru\*t*e \verb!\documentclass! kothaTar
+po\*r*e Jo\*d*i \verb![11pt]! tha\*k*e, taHo\*l*e \verb!\bng!
+\*gh*eaShoNar pho\*l*e \*l*ekha shuru Ho\*b*e 11
+po\*y*e\*n/T*e. Jo\*d*i \verb![12pt]! tha\*k*e, taHo\*l*e \verb!\bng!
+\*gh*eaShoNar pho\*l*e \*l*ekha shuru Ho\*b*e 12 po\*y*e\*n/T*e. Aar
+Jo\*d*i \*k*ea\*n*ea po\*y*e\*n/T*er kothaI na bola tha\*k*e,
+taHo\*l*e 10 po\*y*e\*n/T*er Horo\*ph*e \*l*ekha shuru Ho\*b*e. Er
+po\*r*e \*ch*ea\*T*ea-bo\*rh*ea Horoph paOya Ja\*b*e \*J*e sob
+\*n*i\*r/d*esh bYoboHar ko\*r*e, ta Eba\*r*e \*l*ikh\*ch*i cho\*k*er
+Aaka\*r*e.
+%%
+\begin{center}
+\begin{tabular}{|r|l|l|l|}
+\hline
+\multicolumn{1}{|c|}{Aanupa\*t*ik map}
+& \*s*eaja Horoph & bNNaka Horoph & coOrha Horoph \\
+\hline\hline
+{\rm tiny} & \verb+\tbng+ & \verb+\tbns+ & \verb+\tbnw+ \\
+{\rm small} & \verb+\sbng+ & \verb+\sbns+ & \verb+\sbnw+ \\
+{\rm normal} & \verb+\bng+ & \verb+\bns+ & \verb+\bnw+ \\
+{\rm large} & \verb+\lbng+ & \verb+\lbns+ & \verb+\lbnw+ \\
+{\rm Large} & \verb+\Lbng+ & \verb+\Lbns+ & \verb+\Lbnw+ \\
+{\rm LARGE} & \verb+\LBng+ & \verb+\LBns+ & \verb+\LBnw+ \\
+{\rm huge} & \verb+\hbng+ & \verb+\hbns+ & \verb+\hbnw+ \\
+{\rm Huge} & \verb+\Hbng+ & \verb+\Hbns+ & \verb+\Hbnw+ \\
+\hline
+\end{tabular}
+\end{center}
+%%
+AboshYo \tex-Er mo\*t*ea ko\*r*e \*n*i\*r/d*esh \*d*i\*l*eO
+\latex-E kaj Ho\*b*e, \*k*in/tu EIbha\*b*e \*l*ekhar EkTu su\*b*idha
+Aa\*ch*e. \*J*emon dhora Jak \verb+\Lbng+
+\*n*i\*r/d*esh\*T*i. phaI\*l*er shuru\*t*e \verb!\documentclass!-Er
+laI\*n*e 10 na 11 na 12 po\*y*en/T \*d*i\*y*e \*l*ekha shuru
+Ho\*y*e\*ch*e, tar Opor \*n*ir/bhor kor\*b*e EI Horoph\*T*ir
+map. \*k*in/tu Ja \*d*i\*y*eI shuru \*H*eak, \verb+\Lbng+ bol\*l*e
+ko\*m/p*iUTar Aanupa\*t*ikbha\*b*e Ek\*T*i bo\*rh*ea ma\*p*er Horoph
+\*b*e\*ch*e \*n*e\*b*e.
+
+E\*t*e su\*b*i\*dh*eTa Ho\*l*ea EI \*J*e, \*g*eaTa phaIl\*T*i \*l*ekha
+Ho\*y*e JaOyar po\*r*eO Jo\*d*i Horo\*ph*er map bodla\*t*e I\*c/ch*e
+Hoy, taHo\*l*e shudhu \verb!\documentclass!-Er laI\*n*e
+po\*y*e\*n/T*er mapTa bod\*l*e \*d*i\*l*eI col\*b*e. \*g*eaTa
+phaI\*l*eI Horo\*ph*er saIj bod\*l*e Ja\*b*e ko\*m/p*iUTa\*r*er
+\*H*i\*s*eb mo\*t*ea.
+
+to\*b*e \latex-E \verb!\chapter! ba \verb!\section! ItYa\*d*i
+\*n*i\*r/d*esh \*d*i\*y*e \*J*e sob AdhYay ba \*b*ibha\*g*er nam
+\*l*ekha Ho\*b*e, tar jonYo Horo\*ph*er ma\*p*er \*k*ea\*n*ea
+\*n*i\*r/d*esh
+\*d*i\*t*e Ho\*b*e na. dhora Jak EkTa AdhYa\*y*er nam `nana
+kotha'. taHo\*l*e
+%%
+\begin{quote}
+\begin{verbatim}
+\chapter{nana kotha}
+\end{verbatim}
+\end{quote}
+%%
+\*l*ikh\*l*eI col\*b*e. ko\*m/p*iUTar \*n*i\*j*eI jan\*b*e Er jonYo
+kii ma\*p*er Horoph \*n*i\*t*e Ho\*b*e. \latex-\*k*e Jo\*d*i
+suu\*c*ipotRo bana\*t*e bo\*l*en \verb!\tableofcontents!
+\*n*i\*r/d*e\*sh*er dWara, \*s*eI suu\*c*ipo\*tR*e EI AdhY\*y*er nam
+\*k*ean ma\*p*er Horo\*ph*e Ja\*b*e, taO \totype{bangtex}-Er
+An/tor/goto \*b*i\*b*idho phaI\*l*er
+kolYa\*N*e ko\*m/p*iUTar \*n*i\*j*eI \*Th*ik ko\*r*e \*n*i\*t*e
+par\*b*e.
+
+\*J*e \*J*e ma\*p*er Horo\*ph*er kotha Opo\*r*e bola Ho\*l*ea, ta
+charha AnYo \*k*ea\*n*ea ma\*p*er HorophO dorkar Ho\*t*e
+pa\*r*e. \*J*emon dhora Jak, Aap\*n*i 15 po\*y*e\*n/T*er Horoph
+can. \*J*ekha\*n*e EI Horoph pRothom bYoboHrRto Ho\*b*e, tar Aa\*g*e
+EI ko\*T*i kotha TaIp kor\*t*e Ho\*b*e taHo\*l*e~:
+%%
+\begin{quote}
+\begin{verbatim}
+\font\bngxv=bang10 scaled 1500
+\end{verbatim}
+\end{quote}
+%%
+namTa Aa\*m*i \verb!\bngxv! \*d*ilam, ta na Ho\*l*eO col\*b*e. Aapnar
+Ja I\*c/ch*e taI nam \*d*in. Er po\*r*e Jokhon \*s*eI Horoph bYoboHar
+kor\*t*e can, tokhon \*s*eI na\*m*er \*n*i\*r/d*esh \*d*i\*y*e shuru
+kor\*b*en. E som/po\*r/k*e Aa\*r*ea \*b*is/ta\*r*ito jan\*t*e Ho\*l*e
+\tex\ \*n*i\*r/d*e\*sh*ika \*d*ekhun.
+
+\*m*eaTa ({\rm bold}) Horoph Ekho\*n*ea Aa\*m*i \*t*{oi}\*r*i ko\*r*e
+UTh\*t*e pa\*r*i\*n*i. kRomosho kor\*b*ea. \*k*in/tu Aapatoto
+du\*dh*er sWad \*gh*ea\*l*e \*m*eTa\*n*ear mo\*t*ea EkTa bYobos/tha
+ko\*r*e \*r*e\*kh*e\*ch*i. \verb!\sh! \*l*i\*kh*e bokRobon/dhoniir
+mo\*dhY*e Ja \*l*ekha Ja\*b*e, chapar somo\*y*e ta EkTu
+Dan\*d*ik-bNN\*d*ik ko\*r*e khub kachaka\*ch*i \*t*inbar chapa
+Ho\*b*e. ta\*t*e \*m*eaTa Horo\*ph*er mo\*t*eaI \*d*ekha\*b*e.
+UdaHoroN \*d*i\*c/ch*i~:
+%%
+\begin{quote}
+\begin{center}
+\Demo{EI bon $\backslash$sh$\{$AtYon/to$\}$ ghono}{EI bon
+\sh{AtYon/to} ghono}
+\end{center}
+\end{quote}
+%%
+to\*b*e EI \*T*eaTka\*T*ir Ek\*T*i Asu\*b*idha Aa\*ch*e. Ek\*T*i
+\verb!\sh! \*n*i\*r/d*e\*sh*er An/tor/goto Jo\*t*eaTuku \*l*ekha
+thak\*b*e, tar sobTaI EkI laI\*n*e chapa Ho\*b*e. \*b*e\*sh*i
+po\*r*imaN \*l*ekha Ho\*y*e \*g*e\*l*e \verb!\sh! col\*b*e na. tokhon
+pRo\*t*i\*T*i sho\*b/d*e Aalada ko\*r*e \verb!\sh! bosa\*t*e
+Ho\*b*e. EI jonYoI Aaladabha\*b*e \*m*eaTa Horoph bana\*n*ea
+dorkar. ta Aa\*m*i kor\*b*eaO bho\*b*iShYo\*t*e. Jo\*t*ea\*d*in ta na
+Ho\*c/ch*e, to\*t*ea\*d*in EI koSh/To sWiikar kora charha Upay
+\*n*eI.
+
+
+
+%%%%%%%%%%%%%%%%%%%%
+\section{punosh/co}
+%%%%%%%%%%%%%%%%%%%%
+Aamar Aa\*g*e \tex\ O \latex-E baNNGla Horoph ko\*y*ekjon
+\*t*{oi}\*r*i ko\*r*e\*ch*en. ENN\*d*er mo\*dhY*e A\*bh*i\*j*it//
+da\*s*er Horoph Aa\*m*i khNNu\*T*i\*y*e \*d*e\*kh*e\*ch*i.
+\*t*i\*n*i Ja Ja ko\*r*e\*ch*en, EboNNG Ja Ja kor\*t*e pa\*r*en\*n*i,
+duI{I} Aama\*k*e Anu\*pR*eroNa ju\*g*i\*y*e\*ch*e.
+
+EI Horoph banabar somo\*y*e Aama\*k*e nana bha\*b*e saHaJYo
+ko\*r*e\*ch*e Aamar bon/dhu A\*m*itabho la\*H*irhii EboNNG Aamar bhaI
+pol/lob boron pal. E\*d*er saHaJYo charha E kaj Aa\*m*i \*sh*eSh
+\*t*ea kor\*t*e partamI na, Hoy\*t*ea shuru kor\*t*eO partam na. EkTa
+mush\*k*il \*th*e\*k*e Ud/dhar ko\*r*e\*ch*i\*l*ea Aamar bon/dhu
+\*tR*is/tan Hub:/sh:/. E\*d*er ka\*ch*e Aa\*m*i krRtog/Yo.
+
+sob \*sh*e\*Sh*e \*d*i\*c/ch*i \*k*ean gho\*r*e kii bha\*b*e \*k*ean
+\*c*in/Ho rakha Ho\*y*e\*ch*e tar ta\*l*ika.
+
+\def\showfont#1#2{%
+\begin{center}
+\begin{minipage}{.7\textwidth}
+{\offinterlineskip
+\halign{\strut\hfil\bf## && \vrule\enskip\hfil{\newfont{\char##}}\hfil\enskip\cr
+&\multispan{16}\hfil {\large\tt #1~:} {\lbng #2}\hfil\cr
+\noalign{\smallskip}
+& \omit\bf\hfil0\hfil& \omit\bf\hfil1\hfil& \omit\bf\hfil2\hfil& \omit\bf\hfil3\hfil
+& \omit\bf\hfil4\hfil& \omit\bf\hfil5\hfil& \omit\bf\hfil6\hfil& \omit\bf\hfil7\hfil
+& \omit\bf\hfil8\hfil& \omit\bf\hfil9\hfil& \omit\bf\hfil10\hfil& \omit\bf\hfil11\hfil
+& \omit\bf\hfil12\hfil& \omit\bf\hfil13\hfil& \omit\bf\hfil14\hfil& \omit\bf\hfil15\hfil\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+0& 0& 1& 2& 3& 4& 5& 6& 7& 8& 9& 10& 11& 12& 13& 14& \omit\vrule\enspace\hfil\newfont\char15\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+16& 16& 17& 18& 19& 20& 21& 22& 23& 24& 25& 26& 27& 28& 29& 30& \omit\vrule\enspace\hfil\newfont\char31\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+32& 32& 33& 34& 35& 36& 37& 38& 39& 40& 41& 42& 43& 44& 45& 46& \omit\vrule\enspace\hfil\newfont\char47\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+48& 48& 49& 50& 51& 52& 53& 54& 55& 56& 57& 58& 59& 60& 61& 62& \omit\vrule\enspace\hfil\newfont\char63\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+64& 64& 65& 66& 67& 68& 69& 70& 71& 72& 73& 74& 75& 76& 77& 78& \omit\vrule\enspace\hfil\newfont\char79\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+80& 80& 81& 82& 83& 84& 85& 86& 87& 88& 89& 90& 91& 92& 93& 94& \omit\vrule\enspace\hfil\newfont\char95\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+96& 96& 97& 98& 99& 100& 101& 102& 103& 104& 105& 106& 107& 108& 109& 110& \omit\vrule\enspace\hfil\newfont\char111\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+112& 112& 113& 114& 115& 116& 117& 118& 119& 120& 121& 122& 123& 124& 125& 126& \omit\vrule\enspace\hfil\newfont\char127\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+128& 128& 129& 130& 131& 132& 133& 134& 135& 136& 137& 138& 139& 140& 141& 142& \omit\vrule\enspace\hfil\newfont\char143\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+144& 144& 145& 146& 147& 148& 149& 150& 151& 152& 153& 154& 155& 156& 157& 158& \omit\vrule\enspace\hfil\newfont\char159\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+160& 160& 161& 162& 163& 164& 165& 166& 167& 168& 169& 170& 171& 172& 173& 174& \omit\vrule\enspace\hfil\newfont\char175\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+176& 176& 177& 178& 179& 180& 181& 182& 183& 184& 185& 186& 187& 188& 189& 190& \omit\vrule\enspace\hfil\newfont\char191\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+192& 192& 193& 194& 195& 196& 197& 198& 199& 200& 201& 202& 203& 204& 205& 206& \omit\vrule\enspace\hfil\newfont\char207\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+208& 208& 209& 210& 211& 212& 213& 214& 215& 216& 217& 218& 219& 220& 221& 222& \omit\vrule\enspace\hfil\newfont\char223\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+224& 224& 225& 226& 227& 228& 229& 230& 231& 232& 233& 234& 235& 236& 237& 238& \omit\vrule\enspace\hfil\newfont\char239\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+240& 240& 241& 242& 243& 244& 245& 246& 247& 248& 249& 250& 251& 252& 253& 254& \omit\vrule\enspace\hfil\newfont\char255\hfil\enspace\vrule\cr
+\omit\hfil& \multispan{16}\hrulefill\cr
+}}\end{minipage}\end{center}}
+
+\begin{center}
+\def\newfont{\bng}
+\showfont{\Large\tt bang10.mf}{\*s*eaja Horoph}
+\bigskip
+
+\def\newfont{\bns}
+\showfont{\Large\tt bangsl10.mf}{\*H*ela\*n*ea Horoph}
+\bigskip
+
+\def\newfont{\bnw}
+\showfont{\Large\tt bangwd10.mf}{coOrha Horoph}
+
+\end{center}
+
+
+
+
+\end{document}
diff --git a/language/bengali/bangtex/examples/samplett.tex b/language/bengali/bangtex/examples/samplett.tex
new file mode 100644
index 0000000000..3453032211
--- /dev/null
+++ b/language/bengali/bangtex/examples/samplett.tex
@@ -0,0 +1,42 @@
+\documentclass[12pt]{bletter}
+
+\date{\today}
+\makelabels
+
+
+\begin{document}
+\bng
+\begin{letter}{bhojoHo\*r*i mu\*kh*eapadhYay\\
+som/padokiiyo \*b*ibhag\\ `Aakashkusum' sa\*H*itYo po\*tR*ika \\ 26
+AshWaN/Do \*s/TR*iT\\ kolkata 700001}
+\address{72 bonomalii nos/kor \*l*en\\ kolkata 700999 \\[7pt]
+\*ph*ean~: 123-4567}
+\signature{narayoN laHa (nala)}
+
+
+\opening{pRii\*t*ibhajo\*n*eShu,}
+
+boHukal Aa\*g*e Aapna\*d*er
+po\*tR*ikay Aamar \*l*ekha Ek\*T*i pRobon/dho
+pa\*Th*i\*y*e\*ch*ilam. pRobon/dho\*T*ir nam \*ch*i\*l*ea --
+`robiin/dRona\*th*er da\*rh*i \*ch*i\*l*ea \*k*ina'. socoracor
+robiin/dRona\*th*er da\*rh*iOyala cho\*b*iI \*c*ea\*kh*e po\*rh*e
+EboNNG ta \*th*e\*k*e A\*n*e\*k*erI dharoNa Hoy \*J*e
+robiin/dRona\*th*er boraborI da\*rh*i \*ch*i\*l*ea. nanaruup
+sakKYopRomaN soHo\*J*ea\*g*e EI pRobon/dho\*T*i\*t*e Aa\*m*i
+\*d*e\*kh*i\*y*e\*ch*ilam \*J*e, E \*b*ishWas som/puur/No
+Amuulok. bos/tuto, tNNar jiibo\*n*er pRothom dosh-ba\*r*ea bocho\*r*e
+robiin/dRona\*th*er Aa\*d*eou da\*rh*iI \*ch*i\*l*ea na. Jo\*t*ea duur
+ja\*n*i, E bYapar\*T*i Er Aa\*g*e \*k*eUI Aa\*l*eacona
+ko\*r*en\*n*i. \*s*eI\*d*ik \*d*i\*y*e Aamar EI pRobon/dho\*T*i
+robiin/dRocor/cay AtYon/to muulYoban Ek\*T*i soNNG\*J*eajon.
+
+Athoco \*l*ekhaTa Aaj Ab\*dh*i chapa Hoy\*n*i. \*k*eno, ta \*bh*e\*b*e
+pa\*c/ch*i na. Aapna\*d*er po\*tR*ikay \*l*ekha chapa\*t*e \*g*e\*l*e
+\*k*i ghuSh \*d*i\*t*e Hoy? Jo\*d*i Hoy, taHo\*l*e ghu\*Sh*er
+po\*r*imaN ko\*t*ea, ta sotWor \*l*i\*kh*e janan doya ko\*r*e.
+
+\closing{nomos/kara\*n/t*e}
+
+\end{letter}
+\end{document}
diff --git a/language/bengali/bangtex/examples/samptex.tex b/language/bengali/bangtex/examples/samptex.tex
new file mode 100644
index 0000000000..439cd7d22c
--- /dev/null
+++ b/language/bengali/bangtex/examples/samptex.tex
@@ -0,0 +1,95 @@
+%% This is a plain TeX file. Please run tex on it.
+
+
+\input bangfont
+\bngxii
+\baselineskip=5.6mm
+
+\centerline{\bngxxv ra\*g*er OShudh}
+\centerline{\bngxviii sukumar ray}
+\bigskip
+
+\*k*edarbabu borho bodragii \*l*eak. Jokhon \*r*e\*g*e bo\*s*en,
+kaN/DakaN/Do g/Yan tha\*k*e na.
+
+Ek\*d*in \*t*i\*n*i mukhkhana \*b*iShoN/No ko'\*r*e bo\*s*e Aa\*ch*en,
+Emon somoy Aama\*d*er mas/Tarbabu E\*s*e bol\*l*en, `\*k*i \*H*e
+\*k*edar\*k*eSh/To, mukhkhana HNNa\*rh*i \*k*eno?'
+
+\*k*edarbabu bol\*l*en, `Aar moshaI, bol\*b*en na. Aamar \*s*eI
+ru\*p*eabNNadha\*n*ea HNNu\*k*eaTa \*bh*e\*NG*e sat Tuk\*r*ea Ho\*y*e
+\*g*elo --- mukh HNNa\*rh*ir moto Ho\*b*e na \*t*ea \*k*i bodnar moto
+Ho\*b*e?'
+
+mas/TarmoshaI bol\*l*en, `bolo \*k*i \*H*e? E \*t*ea ka\*c*er bason
+noy \*k*i ma\*T*ir putul noy --- Am\*n*i khamokha \*bh*e\*NG*e
+\*g*elo? Er ma\*n*e \*k*i?'
+
+\*k*edarbabu bol\*l*en, `khamokha bhaNG\*t*e Ja\*b*e \*k*eno ---
+kothaTa shunun na. Holo kii, --- kal ra\*tR*e Aamar bhalo ghum Hoy
+\*n*i. sokal\*b*ela U\*Th*e\*ch*i, mukh Hat dhu\*y*e tamak \*kh*e\*t*e
+bosbo, Emon somoy kol:/\*k*eTa kat Ho\*y*e Aamar phora\*s*er Upor
+\*T*i\*k*er Aagun po'\*rh*e \*g*elo. Aa\*m*i tarhata\*rh*i \*J*eI
+AagunTa sora\*t*e \*g*e\*ch*i Am\*n*i \*k*ina AaNGu\*l*e chNNYak:/
+ko\*r*e \*ph*eas/ka po'\*rh*e \*g*elo. Aac/cha, Aap\*n*iI bolun ---
+E\*t*e kar na rag Hoy? Aa\*r*e, Aamar HNNu\*k*ea, Aamar kol:/\*k*e,
+Aamar Aagun, Aamar phoras, Aabar Aamar Upo\*r*eI julum! taI Aa\*m*i
+rag ko'\*r*e --- \*b*e\*sh*i \*k*ichu noy --- OI mugurkhana \*d*i\*y*e
+pNNac dosh gha mar\*t*eI \*k*ina Hotobhaga HNNu\*k*eaTa \*bh*e\*NG*e
+khan:/ khan:/!'
+
+mas/TarmoshaI bol\*l*en, `ta JaI bolo bapu, E rag borho coN/Dal ---
+ra\*g*er mathay Emon kaN/Do ko'\*r*e boso, ragTa EkTu komaO.'
+
+`komaO \*t*ea bol\*l*en --- rag \*J*e mu\*kh*er kothay bag man\*b*e
+--- E rag Aamar \*t*emon noy.'
+
+`\*d*e\*kh*ea, Aa\*m*i Ek Upay bo\*l*i. shu\*n*e\*ch*i, khub dhii\*r*e
+dhii\*r*e Ek duI \*t*in ko'\*r*e dosh gun\*l*e --- ragTa na\*k*i
+shan/to Ho\*y*e Aa\*s*e. \*k*in/tu \*t*eamar \*J*emon rag, ta\*t*e
+dosh-ba\*r*ea\*t*e ku\*l*ea\*b*e na --- tu\*m*i E\*k*eba\*r*e
+Ek\*sh*ea por/Jon/to gu\*n*e \*d*e\*kh*ea.'
+
+tarpor Ek\*d*in \*k*edarbabu Is/ku\*l*er sam\*n*e \*d*i\*y*e
+Ja\*c/ch*en. tokhon chu\*T*ir somoy, \*ch*e\*l*era \*kh*ela
+kor\*ch*e. HoThat// EkTa ma\*r/b*el chu\*T*e E\*s*e \*k*edarbabur
+pa\*y*er Ha\*rh*e ThNNaI ko\*r*e laglo. Aar Jay \*k*eatha!
+\*k*edarbabu cha\*t*er soman Ek laph \*d*i\*y*e la\*Th*i UNN\*c*i\*y*e
+dNNa\*rh*i\*y*e\*ch*en. \*ch*e\*l*er dol \*J*e \*J*ekha\*n*e pa\*r*e
+E\*k*eba\*r*e soTan com/poT:/. tokhon \*k*edarbabur mo\*n*e Holo
+mas/Tarbabur kothaTa Ekbar poriikKa ko'\*r*e \*d*e\*kh*i. \*t*i\*n*i
+Aarom/bho kor\*l*en, Ek-duI-\*t*in-car-pNNac---
+
+Is/ku\*l*er majhkha\*n*e Ekjon \*l*eak dNNa\*rh*i\*y*e
+\*b*irh:/\*b*irh:/ ko\*r*e ANG/ko bol\*ch*e, taI \*d*e\*kh*e Is/ku\*l*er
+da\*r*eayan bYos/to Ho\*y*e ko\*y*ekjon \*l*eak \*D*e\*k*e
+Aanlo. Ekjon bollo, `kii Ho\*y*e\*ch*e moshaI?' \*k*edarbabu
+bol\*l*en,
+`\*Sh*ea\*l*ea-so\*t*e\*r*ea-AaTha\*r*ea-U\*n*ish-ku\*rh*i---'
+
+soko\*l*e bollo, `E kii? \*l*eakTa pagol Holo na\*k*i? --- Aa\*r*e, O
+moshaI, bo\*l*i Amondhara ko\*c/ch*en \*k*eno?' \*k*edarbabu mo\*n*e
+mo\*n*e bhoyanok coT\*l*eO --- \*t*i\*n*i gu\*n*eI co\*l*e\*ch*en,
+`\*tR*ish-Ek\*tR*ish-bo\*tR*ish-\*t*e\*tR*ish---'
+
+Aabar kha\*n*ik ba\*d*e Aar Ekjon \*j*ig/Yasa korlo, `moshaI, Aapnar
+\*k*i Asukh ko\*r*e\*ch*e? kob\*r*ej moshaI\*k*e Dak\*t*e Ho\*b*e?'
+\*k*edarbabu \*r*e\*g*e Aagun Ho\*y*e bol\*l*en,
+`UUnoShaT-ShaT-EkSho\*T/T*i-baSho\*T/T*i-\*t*eSho\*T/T*i---'
+
+\*d*ekh\*t*e \*d*ekh\*t*e \*l*ea\*k*er \*bh*irh jo\*m*e \*g*elo ---
+ca\*r*i\*d*i\*k*e \*g*ealmal, \*H*{oi} \*c*{oi}. taI shu\*n*e
+mas/Tarbabu \*d*ekh\*t*e E\*l*en, bYaparkhana \*k*i! totokKo\*N*e
+\*k*edarbabur \*g*eana pRay \*sh*eSh Ho\*y*e E\*s*e\*ch*e. \*t*i\*n*i
+duI \*c*eakh lal ko\*r*e la\*Th*i \*gh*eara\*c/ch*en Aar bol\*ch*en,
+`\*ch*iyanob/buI-satanob/buI-AaTanob/buI-\*n*i\*r*enob/buI-Ek\*sh*ea
+--- \*k*ean:/ Hotobhaga lokKMiicharha \*m*ithYabadii bo\*l*e\*ch*ilo
+Ek\*sh*ea gun\*l*e rag tha\*m*e?' bo\*l*eI DaI\*n*e bNNa\*y*e
+dum:/dam:/ la\*Th*ir gha.
+
+\*l*eakjon sob chu\*T*e palalo. Aar mas/TarmoshaI Ek \*d*eou\*rh*e
+\*s*eI \*J*e gho\*r*er mo\*dhY*e Dhuk\*l*en, Aar sara\*d*in
+\*b*e\*r*ea\*l*en na.
+
+\bye
+
diff --git a/language/bengali/bangtex/latex/bangfont.tex b/language/bengali/bangtex/latex/bangfont.tex
new file mode 100644
index 0000000000..ec3efb46a8
--- /dev/null
+++ b/language/bengali/bangtex/latex/bangfont.tex
@@ -0,0 +1,123 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Defining the standard (normal, upright) bangla fonts
+%%
+\font\bngv=bang10 scaled 500
+\font\bngvi=bang10 scaled 600
+\font\bngvii=bang10 scaled 700
+\font\bngviii=bang10 scaled 800
+\font\bngix=bang10 scaled 900
+\font\bngx=bang10
+\font\bngxi=bang10 scaled 1100
+\font\bngxii=bang10 scaled 1200
+\font\bngxiv=bang10 scaled 1400
+\font\bngxviii=bang10 scaled 1800
+\font\bngxxii=bang10 scaled 2200
+\font\bngxxv=bang10 scaled 2500
+\font\bngxxx=bang10 scaled 3000
+
+%%
+%% Defining the slanted bangla fonts
+%%
+\font\bnsv=bangsl10 scaled 500
+\font\bnsvi=bangsl10 scaled 600
+\font\bnsvii=bangsl10 scaled 700
+\font\bnsviii=bangsl10 scaled 800
+\font\bnsix=bangsl10 scaled 900
+\font\bnsx=bangsl10
+\font\bnsxi=bangsl10 scaled 1100
+\font\bnsxii=bangsl10 scaled 1200
+\font\bnsxiv=bangsl10 scaled 1400
+\font\bnsxviii=bangsl10 scaled 1800
+\font\bnsxxii=bangsl10 scaled 2200
+\font\bnsxxv=bangsl10 scaled 2500
+\font\bnsxxx=bangsl10 scaled 3000
+
+%%
+%% Defining the wide bangla fonts
+%%
+\font\bnwv=bangwd10 scaled 500
+\font\bnwvi=bangwd10 scaled 600
+\font\bnwvii=bangwd10 scaled 700
+\font\bnwviii=bangwd10 scaled 800
+\font\bnwix=bangwd10 scaled 900
+\font\bnwx=bangwd10
+\font\bnwxi=bangwd10 scaled 1100
+\font\bnwxii=bangwd10 scaled 1200
+\font\bnwxiv=bangwd10 scaled 1400
+\font\bnwxviii=bangwd10 scaled 1800
+\font\bnwxxii=bangwd10 scaled 2200
+\font\bnwxxv=bangwd10 scaled 2500
+\font\bnwxxx=bangwd10 scaled 3000
+
+
+%%
+%% Inhibiting linebreak within words
+%%
+\hyphenpenalty=10000 \pretolerance=-1 \tolerance=10000
+
+%%
+%% Defining the macro for e-kar, i-kar etc
+%%
+\def\*#1*#2{o\null{#2}{#1}}
+
+%%
+%% Redefining some macros to make them consistent with bangla fonts
+%%
+\def\d#1{\oalign{\smash{#1}\crcr\hidewidth{$\!$\rm.}\hidewidth}}
+
+
+%%
+%% Page number in bangla
+%%
+%\footline{\hss\bngxi\folio\hss}
+%\headline{\hfil}
+
+%%
+%% Emulating the bold font
+%%
+\def\sh#1{\setbox0=\hbox{#1}%
+ \kern-.02em\copy0\kern-\wd0
+ \kern.04em\copy0\kern-\wd0
+ \kern-.02em\raise.0433em\box0 }
+
+
+%%
+%% Defining the bangla numerals for default in math mode
+%%
+%\textfont0=\bngx \scriptfont0=\bngvii \scriptscriptfont0=\bngv
+%\textfont1=\bnsx \scriptfont1=\bnsvii \scriptscriptfont1=\bnsv
+%\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+%\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+%\textfont4=\tenrm \scriptfont4=\sevenrm \scriptscriptfont4=\fiverm
+
diff --git a/language/bengali/bangtex/latex/barticle.cls b/language/bengali/bangtex/latex/barticle.cls
new file mode 100644
index 0000000000..b7cf9a5e37
--- /dev/null
+++ b/language/bengali/bangtex/latex/barticle.cls
@@ -0,0 +1,732 @@
+%%
+%% This is file `barticle.cls',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{barticle}
+ [2001/04/15 v1.2
+ LaTeX document class for bangtex]
+\newcommand\@ptsize{}
+\newif\if@restonecol
+\newif\if@titlepage
+\@titlepagefalse
+\if@compatibility\else
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+\DeclareOption{a5paper}
+ {\setlength\paperheight {210mm}%
+ \setlength\paperwidth {148mm}}
+\DeclareOption{b5paper}
+ {\setlength\paperheight {250mm}%
+ \setlength\paperwidth {176mm}}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{legalpaper}
+ {\setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{executivepaper}
+ {\setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}}
+\DeclareOption{landscape}
+ {\setlength\@tempdima {\paperheight}%
+ \setlength\paperheight {\paperwidth}%
+ \setlength\paperwidth {\@tempdima}}
+\fi
+\if@compatibility
+ \renewcommand\@ptsize{0}
+\else
+\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
+\fi
+\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
+\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
+\if@compatibility\else
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+\fi
+\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\if@compatibility\else
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\fi
+\DeclareOption{titlepage}{\@titlepagetrue}
+\if@compatibility\else
+\DeclareOption{notitlepage}{\@titlepagefalse}
+\fi
+\if@compatibility\else
+\DeclareOption{onecolumn}{\@twocolumnfalse}
+\fi
+\DeclareOption{twocolumn}{\@twocolumntrue}
+\DeclareOption{leqno}{\input{leqno.clo}}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+\DeclareOption{openbib}{%
+ \AtEndOfPackage{%
+ \renewcommand\@openbib@code{%
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ }%
+ \renewcommand\newblock{\par}}%
+}
+\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final}
+\ProcessOptions
+\input bangfont
+\input{bsize1\@ptsize.clo}
+\setlength\lineskip{1\p@}
+\setlength\normallineskip{1\p@}
+\renewcommand\baselinestretch{}
+\setlength\parskip{0\p@ \@plus \p@}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+\setcounter{topnumber}{2}
+\renewcommand\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\renewcommand\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\renewcommand\textfraction{.2}
+\renewcommand\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\renewcommand\dbltopfraction{.7}
+\renewcommand\dblfloatpagefraction{.5}
+\if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markboth {{%
+ \ifnum \c@secnumdepth >\z@
+ \thesection\quad
+ \fi
+ ##1}}{}}%
+ \def\subsectionmark##1{%
+ \markright {%
+ \ifnum \c@secnumdepth >\@ne
+ \thesubsection\quad
+ \fi
+ ##1}}}
+\else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\sectionmark##1{%
+ \markright {\MakeUppercase{%
+ \ifnum \c@secnumdepth >\m@ne
+ \thesection\quad
+ \fi
+ ##1}}}}
+\fi
+\def\ps@myheadings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\@gobbletwo
+ \let\sectionmark\@gobble
+ \let\subsectionmark\@gobble
+ }
+ \if@titlepage
+ \newcommand\maketitle{\begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let \footnote \thanks
+ \null\vfil
+ \vskip 60\p@
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\lbng \@date \par}% % Set date in \large size.
+ \end{center}\par
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+\else
+\newcommand\maketitle{\par
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \thispagestyle{plain}\@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LBng \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \Lbng\@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\lbng \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\fi
+\setcounter{secnumdepth}{5}
+\newcounter {part}
+\newcounter {section}
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+\renewcommand \thepart {\@Roman\c@part}
+\renewcommand \thesection {\@arabic\c@section}
+\renewcommand\thesubsection {\thesection$\cdot$\@arabic\c@subsection}
+\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
+\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}
+\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
+
+
+\newcommand\part{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \addvspace{4ex}%
+ \@afterindentfalse
+ \secdef\@part\@spart}
+
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >\m@ne
+ \refstepcounter{part}%
+ \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \else
+ \addcontentsline{toc}{part}{#1}%
+ \fi
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \Large\bfseries \partname~\thepart
+ \par\nobreak
+ \fi
+ \huge \bfseries #2%
+ \markboth{}{}\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}
+\def\@spart#1{%
+ {\parindent \z@ \raggedright
+ \interlinepenalty \@M
+ \normalfont
+ \huge \bfseries #1\par}%
+ \nobreak
+ \vskip 3ex
+ \@afterheading}
+\newcommand\section{\@startsection {section}{1}{\z@}%
+ {-25pt \@plus -10pt \@minus -2pt}%
+ {13pt \@plus2pt}%
+ {\LBng}}
+\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-15pt\@plus -8pt \@minus -2pt}%
+ {10pt \@plus 2pt}%
+ {\Lbng}}
+\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-10pt\@plus -5pt \@minus -1pt}%
+ {8pt \@plus 2pt}%
+ {\lbng}}
+\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {-8pt \@plus 3pt \@minus 1pt}%
+ {-1em}%
+ {\lbng}}
+\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {-8pt \@plus 3pt \@minus 1pt}%
+ {-1em}%
+ {\bng}}
+\if@twocolumn
+ \setlength\leftmargini {2em}
+\else
+ \setlength\leftmargini {2.5em}
+\fi
+\leftmargin \leftmargini
+\setlength\leftmarginii {2.2em}
+\setlength\leftmarginiii {1.87em}
+\setlength\leftmarginiv {1.7em}
+\if@twocolumn
+ \setlength\leftmarginv {.5em}
+ \setlength\leftmarginvi {.5em}
+\else
+ \setlength\leftmarginv {1em}
+ \setlength\leftmarginvi {1em}
+\fi
+\setlength \labelsep {.5em}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+\renewcommand\theenumi{\@arabic\c@enumi}
+\renewcommand\theenumii{\@alph\c@enumii}
+\renewcommand\theenumiii{\@roman\c@enumiii}
+\renewcommand\theenumiv{\@Alph\c@enumiv}
+\newcommand\labelenumi{\theenumi.}
+\newcommand\labelenumii{(\theenumii)}
+\newcommand\labelenumiii{\theenumiii.}
+\newcommand\labelenumiv{\theenumiv.}
+\renewcommand\p@enumii{\theenumi}
+\renewcommand\p@enumiii{\theenumi(\theenumii)}
+\renewcommand\p@enumiv{\p@enumiii\theenumiii}
+\newcommand\labelitemi{\textbullet}
+\newcommand\labelitemii{\normalfont\bfseries \textendash}
+\newcommand\labelitemiii{\textasteriskcentered}
+\newcommand\labelitemiv{\textperiodcentered}
+\newenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+\newcommand*\descriptionlabel[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
+\if@titlepage
+ \newenvironment{abstract}{%
+ \titlepage
+ \null\vfil
+ \@beginparpenalty\@lowpenalty
+ \begin{center}%
+ \lbnw \abstractname
+ \@endparpenalty\@M
+ \end{center}}%
+ {\par\vfil\null\endtitlepage}
+\else
+ \newenvironment{abstract}{%
+ \if@twocolumn
+ \section*{\abstractname}%
+ \else
+ \small
+ \begin{center}%
+ {\lbnw \abstractname\vspace{-.5em}\vspace{\z@}}%
+ \end{center}%
+ \quotation\sbng
+ \fi}
+ {\if@twocolumn\else\endquotation\fi}
+\fi
+\newenvironment{verse}
+ {\let\\\@centercr
+ \list{}{\itemsep \z@
+ \itemindent -1.5em%
+ \listparindent\itemindent
+ \rightmargin \leftmargin
+ \advance\leftmargin 1.5em}%
+ \item\relax}
+ {\endlist}
+\newenvironment{quotation}
+ {\list{}{\listparindent 1.5em%
+ \itemindent \listparindent
+ \rightmargin \leftmargin
+ \parsep \z@ \@plus\p@}%
+ \item\relax}
+ {\endlist}
+\newenvironment{quote}
+ {\list{}{\rightmargin\leftmargin}%
+ \item\relax}
+ {\endlist}
+\if@compatibility
+\newenvironment{titlepage}
+ {%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \setcounter{page}\z@
+ }%
+ {\if@restonecol\twocolumn \else \newpage \fi
+ }
+\else
+\newenvironment{titlepage}
+ {%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \setcounter{page}\@ne
+ }%
+ {\if@restonecol\twocolumn \else \newpage \fi
+ \if@twoside\else
+ \setcounter{page}\@ne
+ \fi
+ }
+\fi
+\newcommand\appendix{\par
+ \setcounter{section}{0}%
+ \setcounter{subsection}{0}%
+ \gdef\thesection{\@Alph\c@section}}
+\setlength\arraycolsep{5\p@}
+\setlength\tabcolsep{6\p@}
+\setlength\arrayrulewidth{.4\p@}
+\setlength\doublerulesep{2\p@}
+\setlength\tabbingsep{\labelsep}
+\skip\@mpfootins = \skip\footins
+\setlength\fboxsep{3\p@}
+\setlength\fboxrule{.4\p@}
+\renewcommand \theequation {\@arabic\c@equation}
+\newcounter{figure}
+\renewcommand \thefigure {\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{\bng\thefigure~noNNG~\figurename}
+\newenvironment{figure}
+ {\@float{figure}}
+ {\end@float}
+\newenvironment{figure*}
+ {\@dblfloat{figure}}
+ {\end@dblfloat}
+\newcounter{table}
+\renewcommand\thetable{\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{\bng\thetable~noNNG~\tablename}
+\newenvironment{table}
+ {\@float{table}}
+ {\end@float}
+\newenvironment{table*}
+ {\@dblfloat{table}}
+ {\end@dblfloat}
+\newlength\abovecaptionskip
+\newlength\belowcaptionskip
+\setlength\abovecaptionskip{10\p@}
+\setlength\belowcaptionskip{0\p@}
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1~.. #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1~.. #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
+\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
+\newcommand\@pnumwidth{1.55em}
+\newcommand\@tocrmarg{2.55em}
+\newcommand\@dotsep{4.5}
+\setcounter{tocdepth}{3}
+\newcommand\tableofcontents{%
+ \section*{\Lbng\contentsname
+ \@mkboth{%
+ \contentsname}{\contentsname}}%
+ \@starttoc{toc}%
+ }
+\newcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty\@secpenalty
+ \addvspace{2.25em \@plus\p@}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode
+% \large \bfseries
+ \LBng #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
+ \nobreak
+ \if@compatibility
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \fi
+ \endgroup
+ \fi}
+\newcommand*\l@section[2]{%
+ \ifnum \c@tocdepth >\z@
+ \addpenalty\@secpenalty
+ \addvspace{1.0em \@plus\p@}%
+ \setlength\@tempdima{2.0em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode %\bfseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ \bng #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \endgroup
+ \fi}
+%\newcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
+\newcommand*\l@subsection[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 0.3em \@plus\p@
+ \setlength\@tempdima{3.0em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\leftskip\@tempdima
+% \hskip \leftskip
+ \bng #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+%\newcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
+\newcommand*\l@subsubsection[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 0.2em \@plus\p@
+ \setlength\@tempdima{4.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\leftskip\@tempdima
+% \hskip \leftskip
+ \bng #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+%\newcommand*\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
+\newcommand*\l@paragraph[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 0.1em \@plus\p@
+ \setlength\@tempdima{6.0em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\leftskip\@tempdima
+ \bng #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+%\newcommand*\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
+\newcommand*\l@subparagraph[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 0.1em \@plus\p@
+ \setlength\@tempdima{7.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\leftskip\@tempdima
+ \bng #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+\newcommand\listoffigures{%
+ \section*{\listfigurename
+ \@mkboth{\MakeUppercase\listfigurename}%
+ {\MakeUppercase\listfigurename}}%
+ \@starttoc{lof}%
+ }
+\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
+\newcommand\listoftables{%
+ \section*{\listtablename
+ \@mkboth{%
+ \MakeUppercase\listtablename}{\MakeUppercase\listtablename}}%
+ \@starttoc{lot}%
+ }
+\let\l@table\l@figure
+\newdimen\bibindent
+\setlength\bibindent{1.5em}
+\newenvironment{thebibliography}[1]
+ {\section*{\refname
+ \@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy
+ \clubpenalty4000
+ \@clubpenalty \clubpenalty
+ \widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
+\let\@openbib@code\@empty
+\newenvironment{theindex}
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \columnseprule \z@
+ \columnsep 35\p@
+ \twocolumn[\section*{\indexname}]%
+ \@mkboth{\MakeUppercase\indexname}%
+ {\MakeUppercase\indexname}%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\@idxitem}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+\newcommand\@idxitem{\par\hangindent 40\p@}
+\newcommand\subitem{\@idxitem \hspace*{20\p@}}
+\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
+\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
+\renewcommand\footnoterule{%
+ \kern-3\p@
+ \hrule\@width.4\columnwidth
+ \kern2.6\p@}
+\newcommand\@makefntext[1]{%
+ \parindent 1em%
+ \noindent
+ \hb@xt@1.8em{\hss\@makefnmark}#1}
+\newcommand\contentsname{suu\*c*i}
+\newcommand\listfigurename{cho\*b*ir ta\*l*ika}
+\newcommand\listtablename{cho\*k*er ta\*l*ika}
+\newcommand\refname{U\*l/l*ekhpoNJ/jii}
+\newcommand\indexname{bor/NokRo\*m*ik suu\*c*i}
+\newcommand\figurename{cho\*b*i}
+\newcommand\tablename{chok}
+\newcommand\partname{bhag}
+\newcommand\appendixname{po\*r*i\*sh*iSh/To}
+\newcommand\abstractname{soNNG\*kK*ip/tosar}
+\def\today{\number\day\space \ifcase\month\or
+ januya\*r*i\or \*f*ebRuya\*r*i\or mar/c\or E\*pR*il\or \*m*e\or jun\or
+ julaI\or Aagos/T\or \*s*e\*p/T*em/bor\or A\*k/T*eabor\or
+ no\*bh*em/bor\or \*D*i\*s*em/bor\fi \space
+ \number\year}
+\setlength\columnsep{10\p@}
+\setlength\columnseprule{0\p@}
+\pagestyle{plain}
+\pagenumbering{arabic}
+\def\thepage{\bng\arabic{page}}
+\if@twoside
+\else
+ \raggedbottom
+\fi
+\if@twocolumn
+ \twocolumn
+ \sloppy
+ \flushbottom
+\else
+ \onecolumn
+\fi
+\endinput
+%%
+%% End of file `barticle.cls'.
diff --git a/language/bengali/bangtex/latex/bbk10.clo b/language/bengali/bangtex/latex/bbk10.clo
new file mode 100644
index 0000000000..d69cee066a
--- /dev/null
+++ b/language/bengali/bangtex/latex/bbk10.clo
@@ -0,0 +1,296 @@
+%%
+%% This is file `bbk10.clo',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bbk10.clo}
+ [2001/04/15 v1.2
+ LaTeX document size file for bangtex]
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\newcommand\small{%
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\footnotesize{%
+ \@setfontsize\footnotesize\@viiipt{9.5}%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\newcommand\large{\@setfontsize\large\@xiipt{14}}
+\newcommand\Large{\@setfontsize\Large\@xivpt{18}}
+\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
+\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
+%
+\def\sbng{\bngviii}
+\def\tbng{\bngvi}
+\def\bng{\bngx}
+\def\lbng{\bngxiv}
+\def\Lbng{\bngxviii}
+\def\LBng{\bngxxii}
+\def\hbng{\bngxxv}
+\def\Hbng{\bngxxx}
+%
+\def\sbns{\bnsviii}
+\def\tbns{\bnsvi}
+\def\bns{\bnsx}
+\def\lbns{\bnsxiv}
+\def\Lbns{\bnsxviii}
+\def\LBns{\bnsxxii}
+\def\hbns{\bnsxxv}
+\def\Hbns{\bnsxxx}
+%
+\def\sbnw{\bnwviii}
+\def\tbnw{\bnwvi}
+\def\bnw{\bnwx}
+\def\lbnw{\bnwxiv}
+\def\Lbnw{\bnwxviii}
+\def\LBnw{\bnwxxii}
+\def\hbnw{\bnwxxv}
+\def\Hbnw{\bnwxxx}
+%
+\if@twocolumn
+ \setlength\parindent{1em}
+\else
+ \setlength\parindent{15\p@}
+\fi
+\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\headheight{12\p@}
+\setlength\headsep {.25in}
+\setlength\topskip {10\p@}
+\setlength\footskip{.35in}
+\if@compatibility \setlength\maxdepth{4\p@} \else
+\setlength\maxdepth{.5\topskip} \fi
+\if@compatibility
+ \if@twocolumn
+ \setlength\textwidth{410\p@}
+ \else
+ \setlength\textwidth{4.5in}
+ \fi
+\else
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \setlength\@tempdimb{345\p@}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+\fi
+\if@compatibility\else
+ \@settopoint\textwidth
+\fi
+\if@compatibility
+ \setlength\textheight{41\baselineskip}
+\else
+ \setlength\@tempdima{\paperheight}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-1.5in}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+ \setlength\textheight{\@tempcnta\baselineskip}
+\fi
+\addtolength\textheight{\topskip}
+\if@twocolumn
+ \setlength\marginparsep {10\p@}
+\else
+ \setlength\marginparsep{7\p@}
+\fi
+\setlength\marginparpush{5\p@}
+\if@compatibility
+ \setlength\oddsidemargin {.5in}
+ \setlength\evensidemargin {1.5in}
+ \setlength\marginparwidth {.75in}
+ \if@twocolumn
+ \setlength\oddsidemargin {30\p@}
+ \setlength\evensidemargin {30\p@}
+ \setlength\marginparwidth {48\p@}
+ \fi
+\else
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \@settopoint\evensidemargin
+\fi
+\if@compatibility
+ \setlength\topmargin{.75in}
+\else
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip} % this might be wrong!
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\fi
+\setlength\footnotesep{6.65\p@}
+\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{8\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{8\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep4\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+\endinput
+%%
+%% End of file `bbk10.clo'.
diff --git a/language/bengali/bangtex/latex/bbk11.clo b/language/bengali/bangtex/latex/bbk11.clo
new file mode 100644
index 0000000000..c10349cb80
--- /dev/null
+++ b/language/bengali/bangtex/latex/bbk11.clo
@@ -0,0 +1,294 @@
+%%
+%% This is file `bbk11.clo',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bk11.clo}
+ [1999/01/07 v1.4a
+ Standard LaTeX file (size option)]
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\newcommand\small{%
+ \@setfontsize\small\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\footnotesize{%
+ \@setfontsize\footnotesize\@ixpt{11}%
+ \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\newcommand\large{\@setfontsize\large\@xiipt{14}}
+\newcommand\Large{\@setfontsize\Large\@xivpt{18}}
+\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
+\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
+%
+\def\sbng{\bngviii}
+\def\tbng{\bngvii}
+\def\bng{\bngxi}
+\def\lbng{\bngxiv}
+\def\Lbng{\bngxviii}
+\def\LBng{\bngxxii}
+\def\hbng{\bngxxv}
+\def\Hbng{\bngxxx}
+%
+\def\sbns{\bnsviii}
+\def\tbns{\bnsvii}
+\def\bns{\bnsxi}
+\def\lbns{\bnsxiv}
+\def\Lbns{\bnsxviii}
+\def\LBns{\bnsxxii}
+\def\hbns{\bnsxxv}
+\def\Hbns{\bnsxxx}
+%
+\def\sbnw{\bnwviii}
+\def\tbnw{\bnwvii}
+\def\bnw{\bnwxi}
+\def\lbnw{\bnwxiv}
+\def\Lbnw{\bnwxviii}
+\def\LBnw{\bnwxxii}
+\def\hbnw{\bnwxxv}
+\def\Hbnw{\bnwxxx}
+%
+\if@twocolumn
+ \setlength\parindent{1em}
+\else
+ \setlength\parindent{17\p@}
+\fi
+\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\headheight{12\p@}
+\setlength\headsep {.275in}
+\setlength\topskip {11\p@}
+\setlength\footskip{.38in}
+\if@compatibility \setlength\maxdepth{4\p@} \else
+\setlength\maxdepth{.5\topskip} \fi
+\if@compatibility
+ \if@twocolumn
+ \setlength\textwidth{410\p@}
+ \else
+ \setlength\textwidth{5in}
+ \fi
+\else
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \setlength\@tempdimb{360\p@}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+\fi
+\if@compatibility\else
+ \@settopoint\textwidth
+\fi
+\if@compatibility
+ \setlength\textheight{38\baselineskip}
+\else
+ \setlength\@tempdima{\paperheight}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-1.5in}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+ \setlength\textheight{\@tempcnta\baselineskip}
+\fi
+\addtolength\textheight{\topskip}
+\if@twocolumn
+ \setlength\marginparsep {10\p@}
+\else
+ \setlength\marginparsep{7\p@}
+\fi
+\setlength\marginparpush{5\p@}
+\if@compatibility
+ \setlength\oddsidemargin {.25in}
+ \setlength\evensidemargin {1.25in}
+ \setlength\marginparwidth {1in}
+ \if@twocolumn
+ \setlength\oddsidemargin {30\p@}
+ \setlength\evensidemargin {30\p@}
+ \setlength\marginparwidth {48\p@}
+ \fi
+\else
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \@settopoint\evensidemargin
+\fi
+\if@compatibility
+ \setlength\topmargin{.73in}
+\else
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip} % this might be wrong!
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\fi
+\setlength\footnotesep{7.7\p@}
+\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{8\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{8\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{3\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \itemsep4.5\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+\endinput
+%%
+%% End of file `bk11.clo'.
diff --git a/language/bengali/bangtex/latex/bbk12.clo b/language/bengali/bangtex/latex/bbk12.clo
new file mode 100644
index 0000000000..83c5ebc1dc
--- /dev/null
+++ b/language/bengali/bangtex/latex/bbk12.clo
@@ -0,0 +1,296 @@
+%%
+%% This is file `bbk12.clo',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bk12.clo}
+ [1999/01/07 v1.4a
+ Standard LaTeX file (size option)]
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xiipt{14.5}%
+ \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\newcommand\small{%
+ \@setfontsize\small\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\footnotesize{%
+ \@setfontsize\footnotesize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\newcommand\large{\@setfontsize\large\@xivpt{18}}
+\newcommand\Large{\@setfontsize\Large\@xviipt{22}}
+\newcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}}
+\newcommand\huge{\@setfontsize\huge\@xxvpt{30}}
+\let\Huge=\huge
+%
+\def\sbng{\bngviii}
+\def\tbng{\bngvii}
+\def\bng{\bngxii}
+\def\lbng{\bngxviii}
+\def\Lbng{\bngxxii}
+\def\LBng{\bngxxv}
+\def\hbng{\bngxxx}
+\def\Hbng{\bngxxx}
+%
+\def\sbns{\bnsviii}
+\def\tbns{\bnsvii}
+\def\bns{\bnsxii}
+\def\lbns{\bnsxviii}
+\def\Lbns{\bnsxxii}
+\def\LBns{\bnsxxv}
+\def\hbns{\bnsxxx}
+\def\Hbns{\bnsxxx}
+%
+\def\sbnw{\bnwviii}
+\def\tbnw{\bnwvii}
+\def\bnw{\bnwxii}
+\def\lbnw{\bnwxviii}
+\def\Lbnw{\bnwxxii}
+\def\LBnw{\bnwxxv}
+\def\hbnw{\bnwxxx}
+\def\Hbnw{\bnwxxx}
+%
+\if@twocolumn
+ \setlength\parindent{1em}
+\else
+ \setlength\parindent{1.5em}
+\fi
+\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\headheight{12\p@}
+\setlength\headsep {.275in}
+\setlength\topskip {12\p@}
+\setlength\footskip{30\p@}
+\if@compatibility \setlength\maxdepth{4\p@} \else
+\setlength\maxdepth{.5\topskip} \fi
+\if@compatibility
+ \if@twocolumn
+ \setlength\textwidth{410\p@}
+ \else
+ \setlength\textwidth{5in}
+ \fi
+\else
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \setlength\@tempdimb{390\p@}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+\fi
+\if@compatibility\else
+ \@settopoint\textwidth
+\fi
+\if@compatibility
+ \setlength\textheight{36\baselineskip}
+\else
+ \setlength\@tempdima{\paperheight}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-1.5in}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+ \setlength\textheight{\@tempcnta\baselineskip}
+\fi
+\addtolength\textheight{\topskip}
+\if@twocolumn
+ \setlength\marginparsep {10\p@}
+\else
+ \setlength\marginparsep{7\p@}
+\fi
+\setlength\marginparpush{7\p@}
+\if@compatibility
+ \setlength\oddsidemargin {.25in}
+ \setlength\evensidemargin {1.25in}
+ \setlength\marginparwidth {1in}
+ \if@twocolumn
+ \setlength\oddsidemargin {30\p@}
+ \setlength\evensidemargin {30\p@}
+ \setlength\marginparwidth {48\p@}
+ \fi
+\else
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \@settopoint\evensidemargin
+\fi
+\if@compatibility
+ \setlength\topmargin{.73in}
+\else
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip} % this might be wrong!
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\fi
+\setlength\footnotesep{8.4\p@}
+\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{10\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{10\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \topsep 10\p@ \@plus4\p@ \@minus6\p@
+ \itemsep5\p@ \@plus2.5\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \parsep 2.5\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2.5\p@\@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+\endinput
+%%
+%% End of file `bbk12.clo'.
diff --git a/language/bengali/bangtex/latex/bbook.cls b/language/bengali/bangtex/latex/bbook.cls
new file mode 100644
index 0000000000..b0c1ac21c7
--- /dev/null
+++ b/language/bengali/bangtex/latex/bbook.cls
@@ -0,0 +1,814 @@
+%%
+%% This is file `bbook.cls',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{bbook}
+ [2001/04/15 v1.2
+ LaTeX document class for bangtex]
+\newcommand\@ptsize{}
+\newif\if@restonecol
+\newif\if@titlepage
+\@titlepagetrue
+\newif\if@openright
+\newif\if@mainmatter \@mainmattertrue
+\if@compatibility\else
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+\DeclareOption{a5paper}
+ {\setlength\paperheight {210mm}%
+ \setlength\paperwidth {148mm}}
+\DeclareOption{b5paper}
+ {\setlength\paperheight {250mm}%
+ \setlength\paperwidth {176mm}}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{legalpaper}
+ {\setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{executivepaper}
+ {\setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}}
+\DeclareOption{landscape}
+ {\setlength\@tempdima {\paperheight}%
+ \setlength\paperheight {\paperwidth}%
+ \setlength\paperwidth {\@tempdima}}
+\fi
+\if@compatibility
+ \renewcommand\@ptsize{0}
+\else
+\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
+\fi
+\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
+\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
+\if@compatibility\else
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+\fi
+\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\if@compatibility\else
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\fi
+\DeclareOption{titlepage}{\@titlepagetrue}
+\if@compatibility\else
+\DeclareOption{notitlepage}{\@titlepagefalse}
+\fi
+\if@compatibility
+\@openrighttrue
+\else
+\DeclareOption{openright}{\@openrighttrue}
+\DeclareOption{openany}{\@openrightfalse}
+\fi
+\if@compatibility\else
+\DeclareOption{onecolumn}{\@twocolumnfalse}
+\fi
+\DeclareOption{twocolumn}{\@twocolumntrue}
+\DeclareOption{leqno}{\input{leqno.clo}}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+\DeclareOption{openbib}{%
+ \AtEndOfPackage{%
+ \renewcommand\@openbib@code{%
+ \advance\leftmargin\bibindent
+ \itemindent -\bibindent
+ \listparindent \itemindent
+ \parsep \z@
+ }%
+ \renewcommand\newblock{\par}}%
+}
+\ExecuteOptions{letterpaper,10pt,twoside,onecolumn,final,openright}
+\ProcessOptions
+\input bangfont
+\input{bbk1\@ptsize.clo}
+\setlength\lineskip{1\p@}
+\setlength\normallineskip{1\p@}
+\renewcommand\baselinestretch{}
+\setlength\parskip{0\p@ \@plus \p@}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+\setcounter{topnumber}{2}
+\renewcommand\topfraction{.7}
+\setcounter{bottomnumber}{1}
+\renewcommand\bottomfraction{.3}
+\setcounter{totalnumber}{3}
+\renewcommand\textfraction{.2}
+\renewcommand\floatpagefraction{.5}
+\setcounter{dbltopnumber}{2}
+\renewcommand\dbltopfraction{.7}
+\renewcommand\dblfloatpagefraction{.5}
+\if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@evenhead{\bng\thepage\hfil\bng\leftmark}%
+ \def\@oddhead{{\bng\leftmark}\hfil\bng\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markboth {%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+% \@chapapp\ \thechapter. \ %
+ \fi
+ \fi
+ ##1}{}}%
+ \def\sectionmark##1{%
+ \markright {%
+ \ifnum \c@secnumdepth >\z@
+ \thesection. \ %
+ \fi
+ ##1}}}
+\else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
+ \let\@mkboth\markboth
+ \def\chaptermark##1{%
+ \markright {%
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+% \@chapapp\ \thechapter. \ %
+ \fi
+ \fi
+ ##1}}}
+\fi
+\def\ps@myheadings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@emptyhead
+ \def\@evenhead{\bng\thepage\hfil\slshape\leftmark}%
+ \def\@oddhead{{\slshape\rightmark}\hfil\bng\thepage}%
+ \let\@mkboth\@gobbletwo
+ \let\chaptermark\@gobble
+ \let\sectionmark\@gobble
+ }
+ \if@titlepage
+ \newcommand\maketitle{\begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \let \footnote \thanks
+ \null\vfil
+ \vskip 60\p@
+ \begin{center}%
+ {\LARGE \@title \par}%
+ \vskip 3em%
+ {\large
+ \lineskip .75em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1.5em%
+ {\large \@date \par}% % Set date in \large size.
+ \end{center}\par
+ \@thanks
+ \vfil\null
+ \end{titlepage}%
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+\else
+\newcommand\maketitle{\par
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\sbng\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\sbng\@thefnmark}}##1}%
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \else
+ \newpage
+ \global\@topnum\z@ % Prevents figures from going at top of page.
+ \@maketitle
+ \fi
+ \thispagestyle{plain}\@thanks
+ \endgroup
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+\def\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE \@title \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+\fi
+\newcommand*\chaptermark[1]{}
+\setcounter{secnumdepth}{5}
+\newcounter {part}
+\newcounter {chapter}
+\newcounter {section}[chapter]
+\newcounter {subsection}[section]
+\newcounter {subsubsection}[subsection]
+\newcounter {paragraph}[subsubsection]
+\newcounter {subparagraph}[paragraph]
+\renewcommand\thepart {\@arabic\c@part}
+\renewcommand\thechapter {\@arabic\c@chapter}
+\renewcommand\thesection {\thechapter.\@arabic\c@section}
+\renewcommand\thesubsection {\thesection.\@arabic\c@subsection}
+\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
+\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}
+\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
+\newcommand\@chapapp{\chaptername}
+\newcommand\frontmatter{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \@mainmatterfalse
+ \pagenumbering{roman}}
+\newcommand\mainmatter{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \@mainmattertrue
+ \pagenumbering{arabic}}
+\newcommand\backmatter{%
+ \if@openright
+ \cleardoublepage
+ \else
+ \clearpage
+ \fi
+ \@mainmatterfalse}
+\newcommand\part{%
+ \if@openright
+ \cleardoublepage
+% \clearpage
+ \else
+ \clearpage
+ \fi
+ \thispagestyle{plain}%
+ \if@twocolumn
+ \onecolumn
+ \@tempswatrue
+ \else
+ \@tempswafalse
+ \fi
+ \null\vfil
+ \secdef\@part\@spart}
+
+\def\@part[#1]#2{%
+ \ifnum \c@secnumdepth >-2\relax
+ \refstepcounter{part}%
+% \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+ \addcontentsline{toc}{part}{\lbng #1}%
+ \else
+ \addcontentsline{toc}{part}{\bng #1}%
+ \fi
+ \markboth{}{}%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \ifnum \c@secnumdepth >-2\relax
+% \huge\bfseries \partname~\thepart
+% \par
+ \vskip 20\p@
+ \fi
+ \hbng #2\par}%
+ \@endpart}
+\def\@spart#1{%
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \Huge \bfseries #1\par}%
+ \@endpart}
+\def\@endpart{\vfil%\newpage
+ \if@twoside
+ \null
+ \thispagestyle{empty}%
+ \newpage
+ \fi
+ \if@tempswa
+ \twocolumn
+ \fi}
+\newcommand\chapter{\if@openright\clearpage\else\clearpage\fi
+ \thispagestyle{empty}%
+ \global\@topnum\z@
+ \@afterindentfalse
+ \secdef\@chapter\@schapter}
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}%
+ {\protect\numberline{\bng\thechapter}\quad\bng #1}%
+ \else
+ \addcontentsline{toc}{chapter}{\bng #1}%
+ \fi
+ \else
+ \addcontentsline{toc}{chapter}{\bng #1}%
+ \fi
+ \chaptermark{\bng #1}%
+ \addtocontents{lof}{\protect\addvspace{10\p@}}%
+ \addtocontents{lot}{\protect\addvspace{10\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+\def\@makechapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright \normalfont
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+% \huge\bfseries \@chapapp\space \thechapter
+ \Lbng\thechapter
+ \par\nobreak
+ \vskip 20\p@
+ \fi
+ \fi
+ \interlinepenalty\@M
+% \Huge \bfseries #1\par\nobreak
+ \Lbng #1\par\nobreak
+ \vskip 40\p@
+ }}
+\def\@schapter#1{\if@twocolumn
+ \@topnewpage[\@makeschapterhead{#1}]%
+ \else
+ \@makeschapterhead{#1}%
+ \@afterheading
+ \fi}
+\def\@makeschapterhead#1{%
+ \vspace*{50\p@}%
+ {\parindent \z@ \raggedright
+ \normalfont
+ \interlinepenalty\@M
+% \Huge \bfseries #1\par\nobreak
+ \Lbng #1\par\nobreak
+ \vskip 20\p@
+ }}
+\newcommand\section{\@startsection {section}{1}{\z@}%
+ {-25pt \@plus -10pt \@minus -2pt}%
+ {13pt \@plus2pt}%
+ {\LBng}}
+\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-15pt\@plus -8pt \@minus -2pt}%
+ {10pt \@plus 2pt}%
+ {\Lbng}}
+\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-10pt\@plus -5pt \@minus -1pt}%
+ {8pt \@plus 2pt}%
+ {\lbng}}
+\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+ {-8pt \@plus 3pt \@minus 1pt}%
+ {-1em}%
+ {\lbng}}
+\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
+ {-8pt \@plus 3pt \@minus 1pt}%
+ {-1em}%
+ {\bng}}
+\if@twocolumn
+ \setlength\leftmargini {2em}
+\else
+ \setlength\leftmargini {2.5em}
+\fi
+\leftmargin \leftmargini
+\setlength\leftmarginii {2.2em}
+\setlength\leftmarginiii {1.87em}
+\setlength\leftmarginiv {1.7em}
+\if@twocolumn
+ \setlength\leftmarginv {.5em}
+ \setlength\leftmarginvi {.5em}
+\else
+ \setlength\leftmarginv {1em}
+ \setlength\leftmarginvi {1em}
+\fi
+\setlength \labelsep {.5em}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+\renewcommand\theenumi{\@arabic\c@enumi}
+\renewcommand\theenumii{\@alph\c@enumii}
+\renewcommand\theenumiii{\@roman\c@enumiii}
+\renewcommand\theenumiv{\@Alph\c@enumiv}
+\newcommand\labelenumi{\theenumi.}
+\newcommand\labelenumii{(\theenumii)}
+\newcommand\labelenumiii{\theenumiii.}
+\newcommand\labelenumiv{\theenumiv.}
+\renewcommand\p@enumii{\theenumi}
+\renewcommand\p@enumiii{\theenumi(\theenumii)}
+\renewcommand\p@enumiv{\p@enumiii\theenumiii}
+\newcommand\labelitemi{$\m@th\bullet$}
+\newcommand\labelitemii{\normalfont\bfseries --}
+\newcommand\labelitemiii{$\m@th\ast$}
+\newcommand\labelitemiv{$\m@th\cdot$}
+\newenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+\newcommand*\descriptionlabel[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
+\newenvironment{verse}
+ {\let\\\@centercr
+ \list{}{\itemsep \z@
+ \itemindent -1.5em%
+ \listparindent\itemindent
+ \rightmargin \leftmargin
+ \advance\leftmargin 1.5em}%
+ \item\relax}
+ {\endlist}
+\newenvironment{quotation}
+ {\list{}{\listparindent 1.5em%
+ \itemindent \listparindent
+ \rightmargin \leftmargin
+ \parsep \z@ \@plus\p@}%
+ \item\relax}
+ {\endlist}
+\newenvironment{quote}
+ {\list{}{\rightmargin\leftmargin}%
+ \item\relax}
+ {\endlist}
+\if@compatibility
+\newenvironment{titlepage}
+ {%
+ \cleardoublepage
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \setcounter{page}\z@
+ }%
+ {\if@restonecol\twocolumn \else \newpage \fi
+ }
+\else
+\newenvironment{titlepage}
+ {%
+ \cleardoublepage
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse\newpage
+ \fi
+ \thispagestyle{empty}%
+ \setcounter{page}\@ne
+ }%
+ {\if@restonecol\twocolumn \else \newpage \fi
+ \if@twoside\else
+ \setcounter{page}\@ne
+ \fi
+ }
+\fi
+\newcommand\appendix{\par
+ \setcounter{chapter}{0}%
+ \setcounter{section}{0}%
+ \renewcommand\@chapapp{\appendixname}%
+ \renewcommand\thechapter{\@Alph\c@chapter}}
+\setlength\arraycolsep{5\p@}
+\setlength\tabcolsep{6\p@}
+\setlength\arrayrulewidth{.4\p@}
+\setlength\doublerulesep{2\p@}
+\setlength\tabbingsep{\labelsep}
+\skip\@mpfootins = \skip\footins
+\setlength\fboxsep{3\p@}
+\setlength\fboxrule{.4\p@}
+\@addtoreset{equation}{chapter}
+\renewcommand\theequation{\thechapter.\@arabic\c@equation}
+\newcounter{figure}[chapter]
+\renewcommand\thefigure{\thechapter.\@arabic\c@figure}
+\def\fps@figure{tbp}
+\def\ftype@figure{1}
+\def\ext@figure{lof}
+\def\fnum@figure{\bng\thefigure~noNNG~\figurename}
+\newenvironment{figure}
+ {\@float{figure}}
+ {\end@float}
+\newenvironment{figure*}
+ {\@dblfloat{figure}}
+ {\end@dblfloat}
+\newcounter{table}[chapter]
+\renewcommand\thetable{\thechapter.\@arabic\c@table}
+\def\fps@table{tbp}
+\def\ftype@table{2}
+\def\ext@table{lot}
+\def\fnum@table{\bng\thetable~noNNG~\tablename}
+\newenvironment{table}
+ {\@float{table}}
+ {\end@float}
+\newenvironment{table*}
+ {\@dblfloat{table}}
+ {\end@dblfloat}
+\newlength\abovecaptionskip
+\newlength\belowcaptionskip
+\setlength\abovecaptionskip{10\p@}
+\setlength\belowcaptionskip{0\p@}
+\long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \sbox\@tempboxa{#1.. #2}%
+ \ifdim \wd\@tempboxa >\hsize
+ #1.. #2\par
+ \else
+ \global \@minipagefalse
+ \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
+\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
+\newcommand\@pnumwidth{1.55em}
+\newcommand\@tocrmarg{2.55em}
+\newcommand\@dotsep{4.5}
+\setcounter{tocdepth}{2}
+\newcommand\tableofcontents{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\Lbng\contentsname
+ \@mkboth{%
+\contentsname}{\contentsname}}%
+ \@starttoc{toc}%
+ \if@restonecol\twocolumn\fi
+ }
+\newcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty{-\@highpenalty}%
+ \addvspace{2.25em \@plus\p@}%
+ \begingroup
+ \setlength\@tempdima{3em}%
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode \bfseries
+ %\LARGE
+\Lbng #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
+ \nobreak
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \endgroup
+ \fi}
+\newcommand*\l@chapter[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+%\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
+\newcommand*\l@section[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 1.0em \@plus\p@
+ \setlength\@tempdima{1.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
+\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
+\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
+\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
+\newcommand\listoffigures{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\Lbng\listfigurename
+ \@mkboth{\bns\listfigurename}%
+ {\bns\listfigurename}}%
+ \@starttoc{lof}%
+ \if@restonecol\twocolumn\fi
+ }
+%\newcommand*\l@figure{\@dottedtocline{1}{0.5em}{2.3em}}
+\newcommand*\l@figure[2]{%
+ \ifnum \c@tocdepth >\m@ne
+ \addpenalty{-\@highpenalty}%
+ \vskip 0.2em \@plus\p@
+ \setlength\@tempdima{2.5em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode \bfseries
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ \bng #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty
+ \endgroup
+ \fi}
+\newcommand\listoftables{%
+ \if@twocolumn
+ \@restonecoltrue\onecolumn
+ \else
+ \@restonecolfalse
+ \fi
+ \chapter*{\Lbng\listtablename
+ \@mkboth{%
+ \bns\listtablename}{\bns\listtablename}}%
+ \@starttoc{lot}%
+ \if@restonecol\twocolumn\fi
+ }
+\let\l@table\l@figure
+\newdimen\bibindent
+\setlength\bibindent{1.5em}
+\newenvironment{thebibliography}[1]
+ {\chapter*{\bibname
+ \@mkboth{\bibname}{\bibname}}%
+ \list{\@biblabel{\@arabic\c@enumiv}}%
+ {\settowidth\labelwidth{\@biblabel{#1}}%
+ \leftmargin\labelwidth
+ \advance\leftmargin\labelsep
+ \@openbib@code
+ \usecounter{enumiv}%
+ \let\p@enumiv\@empty
+ \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+ \sloppy\clubpenalty4000\widowpenalty4000%
+ \sfcode`\.\@m}
+ {\def\@noitemerr
+ {\@latex@warning{Empty `thebibliography' environment}}%
+ \endlist}
+\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
+\let\@openbib@code\@empty
+\newenvironment{theindex}
+ {\if@twocolumn
+ \@restonecolfalse
+ \else
+ \@restonecoltrue
+ \fi
+ \columnseprule \z@
+ \columnsep 35\p@
+ \twocolumn[\@makeschapterhead{\Lbng\indexname}]%
+ \@mkboth{\bns\indexname}%
+ {\bns\indexname}%
+ \thispagestyle{plain}\parindent\z@
+ \parskip\z@ \@plus .3\p@\relax
+ \let\item\@idxitem}
+ {\if@restonecol\onecolumn\else\clearpage\fi}
+\newcommand\@idxitem{\parsep=0pt\par\hangindent 20\p@}
+\newcommand\subitem{\@idxitem \hspace*{7\p@}}
+\newcommand\subsubitem{\@idxitem \hspace*{5\p@}}
+\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
+\renewcommand\footnoterule{%
+ \kern-3\p@
+ \hrule\@width.4\columnwidth
+ \kern2.6\p@}
+\@addtoreset{footnote}{chapter}
+\newcommand\@makefntext[1]{%
+ \parindent 1em%
+ \noindent
+ \hb@xt@1.8em{\hss\@makefnmark}#1}
+\newcommand\contentsname{suu\*c*ipotRo}
+\newcommand\listfigurename{cho\*b*ir ta\*l*ika}
+\newcommand\listtablename{cho\*k*er ta\*l*ika}
+\newcommand\bibname{suutRo\*n*i\*r/d*esh}
+\newcommand\indexname{bor/NokRo\*m*ik suu\*c*i}
+\newcommand\figurename{\bng cho\*b*i}
+\newcommand\tablename{\bng chok}
+\newcommand\partname{bhag}
+\newcommand\chaptername{AdhYay}
+\newcommand\appendixname{po\*r*i\*sh*iSh/To}
+%
+\newcommand\today{}
+\edef\today{\number\day\space \ifcase\month\or
+ januya\*r*i\or \*f*ebRuya\*r*i\or mar/c\or E\*pR*il\or \*m*e\or jun\or
+ julaI\or Aagos/T\or \*s*e\*p/T*em/bor\or A\*k/T*eabor\or
+ no\*bh*em/bor\or \*D*i\*s*em/bor\fi \space
+ \number\year}
+\setlength\columnsep{10\p@}
+\setlength\columnseprule{0\p@}
+\pagestyle{headings}
+\pagenumbering{arabic}
+\if@twoside
+\else
+ \raggedbottom
+\fi
+\if@twocolumn
+ \twocolumn
+ \sloppy
+ \flushbottom
+\else
+ \onecolumn
+\fi
+\endinput
+%%
+%% End of file `bbook.cls'.
diff --git a/language/bengali/bangtex/latex/bletter.cls b/language/bengali/bangtex/latex/bletter.cls
new file mode 100644
index 0000000000..a3dd6db9a9
--- /dev/null
+++ b/language/bengali/bangtex/latex/bletter.cls
@@ -0,0 +1,439 @@
+%%
+%% This is file `bletter.cls',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\NeedsTeXFormat{LaTeX2e}[1996/06/01]
+\ProvidesClass{bletter}
+ [2001/04/15 v1.2
+ LaTeX document class for bangtex]
+\newcommand\@ptsize{}
+\DeclareOption{a4paper}
+ {\setlength\paperheight {297mm}%
+ \setlength\paperwidth {210mm}}
+\DeclareOption{a5paper}
+ {\setlength\paperheight {210mm}%
+ \setlength\paperwidth {148mm}}
+\DeclareOption{b5paper}
+ {\setlength\paperheight {250mm}%
+ \setlength\paperwidth {176mm}}
+\DeclareOption{letterpaper}
+ {\setlength\paperheight {11in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{legalpaper}
+ {\setlength\paperheight {14in}%
+ \setlength\paperwidth {8.5in}}
+\DeclareOption{executivepaper}
+ {\setlength\paperheight {10.5in}%
+ \setlength\paperwidth {7.25in}}
+\DeclareOption{landscape}
+ {\setlength\@tempdima {\paperheight}%
+ \setlength\paperheight {\paperwidth}%
+ \setlength\paperwidth {\@tempdima}}
+\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
+\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
+\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
+\if@compatibility
+ \DeclareOption{twoside}{\@latexerr{No `twoside' layout for letters}%
+ \@eha}
+\else
+ \DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
+\fi
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
+\DeclareOption{draft}{\setlength\overfullrule{5pt}}
+\DeclareOption{final}{\setlength\overfullrule{0pt}}
+\DeclareOption{leqno}{\input{leqno.clo}}
+\DeclareOption{fleqn}{\input{fleqn.clo}}
+\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final}
+\ProcessOptions
+\input bangfont
+\input{bsize1\@ptsize.clo}
+\setlength\lineskip{1\p@}
+\setlength\normallineskip{1\p@}
+\renewcommand\baselinestretch{}
+\setlength\parskip{0.7em}
+\setlength\parindent{0\p@}
+\@lowpenalty 51
+\@medpenalty 151
+\@highpenalty 301
+\setlength\headheight{12\p@}
+\setlength\headsep {45\p@}
+\setlength\footskip{25\p@}
+\if@compatibility
+ \setlength\textwidth{365\p@}
+ \setlength\textheight{505\p@}
+\fi
+\if@compatibility
+ \setlength\oddsidemargin{53pt}
+ \setlength\evensidemargin{53pt}
+ \setlength\marginparwidth{90pt}
+\else
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \setlength\evensidemargin {\oddsidemargin}
+ \setlength\marginparwidth {90\p@}
+\fi
+\setlength\marginparsep {11\p@}
+\setlength\marginparpush{5\p@}
+\setlength\topmargin{27pt}
+\setlength\footnotesep{12\p@}
+\setlength{\skip\footins}{10\p@ \@plus 2\p@ \@minus 4\p@}
+\if@twoside
+ \def\ps@headings{%
+ \let\@oddfoot\@empty\let\@evenfoot\@empty
+ \def\@oddhead{\slshape\headtoname{} \ignorespaces\toname
+ \hfil \@date
+ \hfil \pagename{} \thepage}%
+ \let\@evenhead\@oddhead}
+\else
+ \def\ps@headings{%
+ \let\@oddfoot\@empty
+ \def\@oddhead{\slshape\headtoname{} \ignorespaces\toname
+ \hfil \@date
+ \hfil \pagename{} \thepage}}
+\fi
+\def\ps@empty{%
+ \let\@oddfoot\@empty\let\@oddhead\@empty
+ \let\@evenfoot\@empty\let\@evenhead\@empty}
+\def\ps@firstpage{%
+ \let\@oddhead\@empty
+ \def\@oddfoot{\raisebox{-45\p@}[\z@]{%
+ \hb@xt@\textwidth{\hspace*{100\p@}%
+ \ifcase \@ptsize\relax
+ \normalsize
+ \or
+ \small
+ \or
+ \footnotesize
+ \fi
+ \fromlocation \hfill \telephonenum}}\hss}}
+\def\ps@plain{%
+ \let\@oddhead\@empty
+ \def\@oddfoot{\normalfont\hfil\thepage\hfil}%
+ \def\@evenfoot{\normalfont\hfil\thepage\hfil}}
+\newcommand*{\name}[1]{\def\fromname{#1}}
+\newcommand*{\signature}[1]{\def\fromsig{#1}}
+\newcommand*{\address}[1]{\def\fromaddress{#1}}
+\newcommand*{\location}[1]{\def\fromlocation{#1}}
+\newcommand*{\telephone}[1]{\def\telephonenum{#1}}
+\name{}
+\signature{}
+\address{}
+\location{}
+\telephone{}
+\newcommand*{\makelabels}{%
+ \AtBeginDocument{%
+ \let\@startlabels\startlabels
+ \let\@mlabel\mlabel
+ \if@filesw
+ \immediate\write\@mainaux{\string\@startlabels}\fi}%
+ \AtEndDocument{%
+ \if@filesw\immediate\write\@mainaux{\string\clearpage}\fi}}
+\@onlypreamble\makelabels
+\newenvironment{letter}[1]
+ {\newpage
+ \if@twoside \ifodd\c@page
+ \else\thispagestyle{empty}\null\newpage\fi
+ \fi
+ \c@page\@ne
+ \c@footnote\@ne
+ \interlinepenalty=200 % smaller than the TeXbook value
+ \@processto{\leavevmode\ignorespaces #1}}
+ {\stopletter\@@par\pagebreak\@@par
+ \if@filesw
+ \begingroup
+ \let\\=\relax
+ \let\protect\@unexpandable@protect
+ \immediate\write\@auxout{%
+ \string\@mlabel{\returnaddress}{\toname\\\toaddress}}%
+ \endgroup
+ \fi}
+\long\def\@processto#1{%
+ \@xproc #1\\@@@%
+ \ifx\toaddress\@empty
+ \else
+ \@yproc #1@@@%
+ \fi}
+\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
+\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
+\newcommand*{\stopbreaks}{%
+ \interlinepenalty\@M
+ \def\par{\@@par\nobreak}%
+ \let\\\@nobreakcr
+ \let\vspace\@nobreakvspace}
+\DeclareRobustCommand\@nobreakvspace
+ {\@ifstar\@nobreakvspacex\@nobreakvspacex}
+\def\@nobreakvspacex#1{%
+ \ifvmode
+ \nobreak\vskip #1\relax
+ \else
+ \@bsphack\vadjust{\nobreak\vskip #1}\@esphack
+ \fi}
+\def\@nobreakcr{\@ifstar{\@normalcr*}{\@normalcr*}}
+\newcommand*{\startbreaks}{%
+ \let\\\@normalcr
+ \interlinepenalty 200%
+ \def\par{\@@par\penalty 200\relax}}
+\newdimen\longindentation
+\longindentation=.5\textwidth
+\newdimen\indentedwidth
+\indentedwidth=\textwidth
+\advance\indentedwidth -\longindentation
+\newcommand*{\opening}[1]{\ifx\@empty\fromaddress
+ \thispagestyle{firstpage}%
+ {\raggedleft\@date\par}%
+ \else % home address
+ \thispagestyle{empty}%
+ {\raggedleft\begin{tabular}{l@{}}\ignorespaces
+ \fromaddress \\*[2\parskip]%
+ \@date \end{tabular}\par}%
+ \fi
+ \vspace{2\parskip}%
+ {\raggedright \toname \\ \toaddress \par}%
+ \vspace{2\parskip}%
+ #1\par\nobreak}
+\newcommand{\closing}[1]{\par\nobreak\vspace{\parskip}%
+ \stopbreaks
+ \noindent
+ \ifx\@empty\fromaddress\else
+ \hspace*{\longindentation}\fi
+ \parbox{\indentedwidth}{\raggedright
+ \ignorespaces #1\\[6\medskipamount]%
+ \ifx\@empty\fromsig
+ \fromname
+ \else \fromsig \fi\strut}%
+ \par}
+\medskipamount=\parskip
+\newcommand*{\cc}[1]{%
+ \par\noindent
+ \parbox[t]{\textwidth}{%
+ \@hangfrom{\normalfont\ccname: }%
+ \ignorespaces #1\strut}\par}
+\newcommand*{\encl}[1]{%
+ \par\noindent
+ \parbox[t]{\textwidth}{%
+ \@hangfrom{\bng\enclname: }%
+ \ignorespaces #1\strut}\par}
+\newcommand*{\ps}{\par\startbreaks}
+\newcommand*{\stopletter}{}
+\newcommand*{\returnaddress}{}
+\newcount\labelcount
+\newcommand*{\startlabels}{\labelcount\z@
+ \pagestyle{empty}%
+ \let\@texttop\relax
+ \topmargin -50\p@
+ \headsep \z@
+ \oddsidemargin -35\p@
+ \evensidemargin -35\p@
+ \textheight 10in
+ \@colht\textheight \@colroom\textheight \vsize\textheight
+ \textwidth 550\p@
+ \columnsep 26\p@
+ \ifcase \@ptsize\relax
+ \bng
+ \or
+ \sbng
+ \fi
+ \baselineskip \z@
+ \lineskip \z@
+ \boxmaxdepth \z@
+ \parindent \z@
+ \twocolumn\relax}
+\let\@startlabels=\relax
+\newcommand*{\mlabel}[2]{%
+ \parbox[b][2in][c]{262\p@}{\strut\ignorespaces #2}%
+ }
+\let\@mlabel=\@gobbletwo
+\setlength\leftmargini {2.5em}
+\setlength\leftmarginii {2.2em}
+\setlength\leftmarginiii {1.87em}
+\setlength\leftmarginiv {1.7em}
+\setlength\leftmarginv {1em}
+\setlength\leftmarginvi {1em}
+\setlength\leftmargin {\leftmargini}
+\setlength \labelsep {5\p@}
+\setlength \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+\setlength\partopsep{0\p@}
+\@beginparpenalty -\@lowpenalty
+\@endparpenalty -\@lowpenalty
+\@itempenalty -\@lowpenalty
+\def\@listI{\setlength\leftmargin{\leftmargini}%
+ \setlength\parsep {0\p@}%
+ \setlength\topsep {.4em}%
+ \setlength\itemsep{.4em}}
+\let\@listi\@listI
+\@listi
+\def\@listii {\setlength \leftmargin{\leftmarginii}%
+ \setlength \labelwidth{\leftmarginii}%
+ \addtolength\labelwidth{-\labelsep}}
+\def\@listiii{\setlength \leftmargin{\leftmarginiii}%
+ \setlength \labelwidth{\leftmarginiii}%
+ \addtolength\labelwidth{-\labelsep}%
+ \setlength \topsep {.2em}%
+ \setlength \itemsep {\topsep}}
+\def\@listiv {\setlength \leftmargin{\leftmarginiv}%
+ \setlength \labelwidth{\leftmarginiv}%
+ \addtolength\labelwidth{-\labelsep}}
+\def\@listv {\setlength \leftmargin{\leftmarginv}%
+ \setlength \labelwidth{\leftmarginv}%
+ \addtolength\labelwidth{-\labelsep}}
+\def\@listvi {\setlength \leftmargin{\leftmarginvi}%
+ \setlength \labelwidth{\leftmarginvi}%
+ \addtolength\labelwidth{-\labelsep}}
+\renewcommand\theenumi{\@arabic\c@enumi}
+\renewcommand\theenumii{\@alph\c@enumii}
+\renewcommand\theenumiii{\@roman\c@enumiii}
+\renewcommand\theenumiv{\@Alph\c@enumiv}
+\newcommand\labelenumi{\theenumi.}
+\newcommand\labelenumii{(\theenumii)}
+\newcommand\labelenumiii{\theenumiii.}
+\newcommand\labelenumiv{\theenumiv.}
+\renewcommand\p@enumii{\theenumi}
+\renewcommand\p@enumiii{\theenumi(\theenumii)}
+\renewcommand\p@enumiv{\p@enumiii\theenumiii}
+\newcommand\labelitemi{\textbullet}
+\newcommand\labelitemii{\normalfont\bfseries \textendash}
+\newcommand\labelitemiii{\textasteriskcentered}
+\newcommand\labelitemiv{\textperiodcentered}
+\newenvironment{description}
+ {\list{}{\labelwidth\z@ \itemindent-\leftmargin
+ \let\makelabel\descriptionlabel}}
+ {\endlist}
+\newcommand*{\descriptionlabel}[1]{\hspace\labelsep
+ \normalfont\bfseries #1}
+\newenvironment{verse}
+ {\let\\=\@centercr
+ \list{}{\setlength\itemsep{\z@}%
+ \setlength\itemindent{-15\p@}%
+ \setlength\listparindent{\itemindent}%
+ \setlength\rightmargin{\leftmargin}%
+ \addtolength\leftmargin{15\p@}}%
+ \item[]}
+ {\endlist}
+\newenvironment{quotation}
+ {\list{}{\setlength\listparindent{1.5em}%
+ \setlength\itemindent{\listparindent}%
+ \setlength\rightmargin{\leftmargin}}%
+ \item[]}
+ {\endlist}
+\newenvironment{quote}
+ {\list{}{\setlength\rightmargin{\leftmargin}}%
+ \item[]}
+ {\endlist}
+\setlength\arraycolsep{5\p@}
+\setlength\tabcolsep{6\p@}
+\setlength\arrayrulewidth{.4\p@}
+\setlength\doublerulesep{2\p@}
+\setlength\tabbingsep{\labelsep}
+\skip\@mpfootins = \skip\footins
+\setlength\fboxsep{3\p@}
+\setlength\fboxrule{.4\p@}
+\renewcommand\theequation{\@arabic\c@equation}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\relax}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\relax}
+\DeclareRobustCommand*{\cal}{\@fontswitch{\relax}{\mathcal}}
+\DeclareRobustCommand*{\mit}{\@fontswitch{\relax}{\mathnormal}}
+\renewcommand\footnoterule{%
+ \kern-\p@
+ \hrule \@width .4\columnwidth
+ \kern .6\p@}
+\long\def\@makefntext#1{%
+ \noindent
+ \hangindent 5\p@
+ \hb@xt@5\p@{\hss\@makefnmark}#1}
+\newcommand*{\ccname}{cc}
+\newcommand*{\enclname}{encl}
+\newcommand*{\pagename}{prR}
+\newcommand*{\headtoname}{}
+\newcommand*{\today}{\number\day\space\ifcase\month\or
+ januya\*r*i\or \*ph*ebRuya\*r*i\or mar/c\or E\*pR*il\or \*m*e\or jun\or
+ julaI\or Aagos/T\or \*s*e\*p/T*em/bor\or A\*k/T*eabor\or
+ no\*bh*em/bor\or \*D*i\*s*em/bor\fi,
+ \number\year}
+\setlength\columnsep{10\p@}
+\setlength\columnseprule{0\p@}
+\pagestyle{plain}
+\pagenumbering{arabic}
+\raggedbottom
+\def\@texttop{\ifnum\c@page=1\vskip \z@ plus.00006fil\relax\fi}
+\onecolumn
+\endinput
+%%
+%% End of file `letter.cls'.
diff --git a/language/bengali/bangtex/latex/bsize10.clo b/language/bengali/bangtex/latex/bsize10.clo
new file mode 100644
index 0000000000..b9b69dfebb
--- /dev/null
+++ b/language/bengali/bangtex/latex/bsize10.clo
@@ -0,0 +1,303 @@
+%%
+%% This is file `bsize10.clo',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bsize10.clo}
+\ProvidesClass{barticle}
+ [2001/04/15 v1.2
+ LaTeX document for bangtex]
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\newcommand\small{%
+ \@setfontsize\small\@ixpt{11}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\footnotesize{%
+ \@setfontsize\footnotesize\@viiipt{9.5}%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\newcommand\large{\@setfontsize\large\@xiipt{14}}
+\newcommand\Large{\@setfontsize\Large\@xivpt{18}}
+\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
+\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
+%
+\def\sbng{\bngviii}
+\def\tbng{\bngvi}
+\def\bng{\bngx}
+\def\lbng{\bngxiv}
+\def\Lbng{\bngxviii}
+\def\LBng{\bngxxii}
+\def\hbng{\bngxxv}
+\def\Hbng{\bngxxx}
+%
+\def\sbns{\bnsviii}
+\def\tbns{\bnsvi}
+\def\bns{\bnsx}
+\def\lbns{\bnsxiv}
+\def\Lbns{\bnsxviii}
+\def\LBns{\bnsxxii}
+\def\hbns{\bnsxxv}
+\def\Hbns{\bnsxxx}
+%
+\def\sbnw{\bnwviii}
+\def\tbnw{\bnwvi}
+\def\bnw{\bnwx}
+\def\lbnw{\bnwxiv}
+\def\Lbnw{\bnwxviii}
+\def\LBnw{\bnwxxii}
+\def\hbnw{\bnwxxv}
+\def\Hbnw{\bnwxxx}
+%
+\if@twocolumn
+ \setlength\parindent{1em}
+\else
+ \setlength\parindent{15\p@}
+\fi
+\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\headheight{12\p@}
+\setlength\headsep {25\p@}
+\setlength\topskip {10\p@}
+\setlength\footskip{30\p@}
+\if@compatibility \setlength\maxdepth{4\p@} \else
+\setlength\maxdepth{.5\topskip} \fi
+\if@compatibility
+ \if@twocolumn
+ \setlength\textwidth{410\p@}
+ \else
+ \setlength\textwidth{345\p@}
+ \fi
+\else
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \setlength\@tempdimb{345\p@}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+\fi
+\if@compatibility\else
+ \@settopoint\textwidth
+\fi
+\if@compatibility
+ \setlength\textheight{43\baselineskip}
+\else
+ \setlength\@tempdima{\paperheight}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-1.5in}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+ \setlength\textheight{\@tempcnta\baselineskip}
+\fi
+\addtolength\textheight{\topskip}
+\if@twocolumn
+ \setlength\marginparsep {10\p@}
+\else
+ \setlength\marginparsep{11\p@}
+\fi
+\setlength\marginparpush{5\p@}
+\if@compatibility
+ \if@twoside
+ \setlength\oddsidemargin {44\p@}
+ \setlength\evensidemargin {82\p@}
+ \setlength\marginparwidth {107\p@}
+ \else
+ \setlength\oddsidemargin {63\p@}
+ \setlength\evensidemargin {63\p@}
+ \setlength\marginparwidth {90\p@}
+ \fi
+ \if@twocolumn
+ \setlength\oddsidemargin {30\p@}
+ \setlength\evensidemargin {30\p@}
+ \setlength\marginparwidth {48\p@}
+ \fi
+\else
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \@settopoint\evensidemargin
+\fi
+\if@compatibility
+ \setlength\topmargin{27pt}
+\else
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip} % this might be wrong!
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\fi
+\setlength\footnotesep{6.65\p@}
+\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{8\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{8\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep4\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+\endinput
+%%
+%% End of file `bsize10.clo'.
diff --git a/language/bengali/bangtex/latex/bsize11.clo b/language/bengali/bangtex/latex/bsize11.clo
new file mode 100644
index 0000000000..ede54f2927
--- /dev/null
+++ b/language/bengali/bangtex/latex/bsize11.clo
@@ -0,0 +1,302 @@
+%%
+%% This is file `bsize11.clo',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bsize11.clo}
+ [2001/04/15 v1.2
+ LaTeX document for bangtex]
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\newcommand\small{%
+ \@setfontsize\small\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\footnotesize{%
+ \@setfontsize\footnotesize\@ixpt{11}%
+ \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\newcommand\large{\@setfontsize\large\@xiipt{14}}
+\newcommand\Large{\@setfontsize\Large\@xivpt{18}}
+\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\newcommand\huge{\@setfontsize\huge\@xxpt{25}}
+\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
+%
+\def\sbng{\bngviii}
+\def\tbng{\bngvii}
+\def\bng{\bngxi}
+\def\lbng{\bngxiv}
+\def\Lbng{\bngxviii}
+\def\LBng{\bngxxii}
+\def\hbng{\bngxxv}
+\def\Hbng{\bngxxx}
+%
+\def\sbns{\bnsviii}
+\def\tbns{\bnsvii}
+\def\bns{\bnsxi}
+\def\lbns{\bnsxiv}
+\def\Lbns{\bnsxviii}
+\def\LBns{\bnsxxii}
+\def\hbns{\bnsxxv}
+\def\Hbns{\bnsxxx}
+%
+\def\sbnw{\bnwviii}
+\def\tbnw{\bnwvii}
+\def\bnw{\bnwxi}
+\def\lbnw{\bnwxiv}
+\def\Lbnw{\bnwxviii}
+\def\LBnw{\bnwxxii}
+\def\hbnw{\bnwxxv}
+\def\Hbnw{\bnwxxx}
+%
+\if@twocolumn
+ \setlength\parindent{1em}
+\else
+ \setlength\parindent{17\p@}
+\fi
+\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\headheight{12\p@}
+\setlength\headsep {25\p@}
+\setlength\topskip {11\p@}
+\setlength\footskip{30\p@}
+\if@compatibility \setlength\maxdepth{4\p@} \else
+\setlength\maxdepth{.5\topskip} \fi
+\if@compatibility
+ \if@twocolumn
+ \setlength\textwidth{410\p@}
+ \else
+ \setlength\textwidth{360\p@}
+ \fi
+\else
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \setlength\@tempdimb{360\p@}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+\fi
+\if@compatibility\else
+ \@settopoint\textwidth
+\fi
+\if@compatibility
+ \setlength\textheight{38\baselineskip}
+\else
+ \setlength\@tempdima{\paperheight}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-1.5in}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+ \setlength\textheight{\@tempcnta\baselineskip}
+\fi
+\addtolength\textheight{\topskip}
+\if@twocolumn
+ \setlength\marginparsep {10\p@}
+\else
+ \setlength\marginparsep{10\p@}
+\fi
+\setlength\marginparpush{5\p@}
+\if@compatibility
+ \if@twoside
+ \setlength\oddsidemargin {36\p@}
+ \setlength\evensidemargin {74\p@}
+ \setlength\marginparwidth {100\p@}
+ \else
+ \setlength\oddsidemargin {54\p@}
+ \setlength\evensidemargin {54\p@}
+ \setlength\marginparwidth {83\p@}
+ \fi
+ \if@twocolumn
+ \setlength\oddsidemargin {30\p@}
+ \setlength\evensidemargin {30\p@}
+ \setlength\marginparwidth {48\p@}
+ \fi
+\else
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \@settopoint\evensidemargin
+\fi
+\if@compatibility
+ \setlength\topmargin{27pt}
+\else
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip} % this might be wrong!
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\fi
+\setlength\footnotesep{7.7\p@}
+\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{8\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{8\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{3\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \itemsep4.5\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+\endinput
+%%
+%% End of file `bsize11.clo'.
diff --git a/language/bengali/bangtex/latex/bsize12.clo b/language/bengali/bangtex/latex/bsize12.clo
new file mode 100644
index 0000000000..752e42fa41
--- /dev/null
+++ b/language/bengali/bangtex/latex/bsize12.clo
@@ -0,0 +1,302 @@
+%%
+%% This is file `bsize12.clo',
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Permission is granted to copy this file to another file with a
+%% clearly different name and to customize the declarations in that
+%% copy to serve the needs of your installation.
+%%
+%% However, NO PERMISSION is granted to generate or to distribute a
+%% modified version of this file under its original name.
+%%
+%% You are NOT ALLOWED to change this file.
+%%
+%%
+%% MODIFICATION ADVICE:
+%%
+%% If you want to customize this file, it is best to make a copy of
+%% the source file(s) from which it was produced. Use a different
+%% name for your copy(ies) and modify the copy(ies); this will ensure
+%% that your modifications do not get overwritten when you install a
+%% new release of the standard system. You should also ensure that
+%% your modified source file does not generate any modified file with
+%% the same name as a standard file.
+%%
+%% You can then easily distribute your modifications by distributing
+%% the modified and renamed copy of the source file. This will ensure
+%% that other users can safely use your modifications.
+%%
+%%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+\ProvidesFile{bsize12.clo}
+ [2001/04/15 v1.2
+ LaTeX document for bangtex]
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize\@xiipt{14.5}%
+ \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\newcommand\small{%
+ \@setfontsize\small\@xipt{13.6}%
+ \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 9\p@ \@plus3\p@ \@minus5\p@
+ \parsep 4.5\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\footnotesize{%
+ \@setfontsize\footnotesize\@xpt\@xiipt
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 6\p@ \@plus2\p@ \@minus2\p@
+ \parsep 3\p@ \@plus2\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
+\newcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\newcommand\large{\@setfontsize\large\@xivpt{18}}
+\newcommand\Large{\@setfontsize\Large\@xviipt{22}}
+\newcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}}
+\newcommand\huge{\@setfontsize\huge\@xxvpt{30}}
+\let\Huge=\huge
+%
+\def\sbng{\bngviii}
+\def\tbng{\bngvii}
+\def\bng{\bngxii}
+\def\lbng{\bngxviii}
+\def\Lbng{\bngxxii}
+\def\LBng{\bngxxv}
+\def\hbng{\bngxxx}
+\def\Hbng{\bngxxx}
+%
+\def\sbns{\bnsviii}
+\def\tbns{\bnsvii}
+\def\bns{\bnsxii}
+\def\lbns{\bnsxviii}
+\def\Lbns{\bnsxxii}
+\def\LBns{\bnsxxv}
+\def\hbns{\bnsxxx}
+\def\Hbns{\bnsxxx}
+%
+\def\sbnw{\bnwviii}
+\def\tbnw{\bnwvii}
+\def\bnw{\bnwxii}
+\def\lbnw{\bnwxviii}
+\def\Lbnw{\bnwxxii}
+\def\LBnw{\bnwxxv}
+\def\hbnw{\bnwxxx}
+\def\Hbnw{\bnwxxx}
+%
+\if@twocolumn
+ \setlength\parindent{1em}
+\else
+ \setlength\parindent{1.5em}
+\fi
+\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
+\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\headheight{12\p@}
+\setlength\headsep {25\p@}
+\setlength\topskip {12\p@}
+\setlength\footskip{30\p@}
+\if@compatibility \setlength\maxdepth{4\p@} \else
+\setlength\maxdepth{.5\topskip} \fi
+\if@compatibility
+ \if@twocolumn
+ \setlength\textwidth{410\p@}
+ \else
+ \setlength\textwidth{390\p@}
+ \fi
+\else
+ \setlength\@tempdima{\paperwidth}
+ \addtolength\@tempdima{-2in}
+ \setlength\@tempdimb{390\p@}
+ \if@twocolumn
+ \ifdim\@tempdima>2\@tempdimb\relax
+ \setlength\textwidth{2\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \else
+ \ifdim\@tempdima>\@tempdimb\relax
+ \setlength\textwidth{\@tempdimb}
+ \else
+ \setlength\textwidth{\@tempdima}
+ \fi
+ \fi
+\fi
+\if@compatibility\else
+ \@settopoint\textwidth
+\fi
+\if@compatibility
+ \setlength\textheight{36\baselineskip}
+\else
+ \setlength\@tempdima{\paperheight}
+ \addtolength\@tempdima{-2in}
+ \addtolength\@tempdima{-1.5in}
+ \divide\@tempdima\baselineskip
+ \@tempcnta=\@tempdima
+ \setlength\textheight{\@tempcnta\baselineskip}
+\fi
+\addtolength\textheight{\topskip}
+\if@twocolumn
+ \setlength\marginparsep {10\p@}
+\else
+ \setlength\marginparsep{10\p@}
+\fi
+\setlength\marginparpush{7\p@}
+\if@compatibility
+ \if@twoside
+ \setlength\oddsidemargin {21\p@}
+ \setlength\evensidemargin {59\p@}
+ \setlength\marginparwidth {85\p@}
+ \else
+ \setlength\oddsidemargin {39.5\p@}
+ \setlength\evensidemargin {39.5\p@}
+ \setlength\marginparwidth {68\p@}
+ \fi
+ \if@twocolumn
+ \setlength\oddsidemargin {30\p@}
+ \setlength\evensidemargin {30\p@}
+ \setlength\marginparwidth {48\p@}
+ \fi
+\else
+ \if@twoside
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.4\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.6\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \else
+ \setlength\@tempdima {\paperwidth}
+ \addtolength\@tempdima {-\textwidth}
+ \setlength\oddsidemargin {.5\@tempdima}
+ \addtolength\oddsidemargin {-1in}
+ \setlength\marginparwidth {.5\@tempdima}
+ \addtolength\marginparwidth {-\marginparsep}
+ \addtolength\marginparwidth {-0.4in}
+ \addtolength\marginparwidth {-.4in}
+ \fi
+ \ifdim \marginparwidth >2in
+ \setlength\marginparwidth{2in}
+ \fi
+ \@settopoint\oddsidemargin
+ \@settopoint\marginparwidth
+ \setlength\evensidemargin {\paperwidth}
+ \addtolength\evensidemargin{-2in}
+ \addtolength\evensidemargin{-\textwidth}
+ \addtolength\evensidemargin{-\oddsidemargin}
+ \@settopoint\evensidemargin
+\fi
+\if@compatibility
+ \setlength\topmargin{27pt}
+\else
+ \setlength\topmargin{\paperheight}
+ \addtolength\topmargin{-2in}
+ \addtolength\topmargin{-\headheight}
+ \addtolength\topmargin{-\headsep}
+ \addtolength\topmargin{-\textheight}
+ \addtolength\topmargin{-\footskip} % this might be wrong!
+ \addtolength\topmargin{-.5\topmargin}
+ \@settopoint\topmargin
+\fi
+\setlength\footnotesep{8.4\p@}
+\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@}
+\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop{0\p@ \@plus 1fil}
+\setlength\@fpsep{10\p@ \@plus 2fil}
+\setlength\@fpbot{0\p@ \@plus 1fil}
+\setlength\@dblfptop{0\p@ \@plus 1fil}
+\setlength\@dblfpsep{10\p@ \@plus 2fil}
+\setlength\@dblfpbot{0\p@ \@plus 1fil}
+\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \topsep 10\p@ \@plus4\p@ \@minus6\p@
+ \itemsep5\p@ \@plus2.5\p@ \@minus\p@}
+\let\@listI\@listi
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 5\p@ \@plus2.5\p@ \@minus\p@
+ \parsep 2.5\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2.5\p@\@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+\endinput
+%%
+%% End of file `bsize12.clo'.
diff --git a/language/bengali/bangtex/mf/bang10.mf b/language/bengali/bangtex/mf/bang10.mf
new file mode 100644
index 0000000000..0f7afb2251
--- /dev/null
+++ b/language/bengali/bangtex/mf/bang10.mf
@@ -0,0 +1,100 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bang10.mf: METAFONT file that defines the Bengali alphabet (regular)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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 makebox(text rule) =
+ for y=0,h,matra_f*h,matra_f*h/2,-d:
+ rule((0,y)t_,(w,y)t_);
+ endfor % horizontals
+ for x=0,w:
+ rule((x,-d)t_,(x,h)t_);
+ endfor % verticals
+ for rv=1 upto floor(w/1pt):
+ for x=1pt*rv:
+ rule((x,-d)t_,(x,h)t_);
+ endfor
+ endfor% more verticals
+enddef;
+
+
+
+mode_setup;
+font_size 10pt#;
+u# = 1/3pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+numeric stem_width, stem_slope;
+numeric matra_thickness, matra_f, matra_h,matra_t, matra_slope;
+numeric dot_diam, ball_hang, ha_dip;
+numeric lindent, rindent;
+numeric xmag; xmag = 1;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% matra_thickness should be removed at the end
+%%%%%%%%%%%%%%%%%%%%%%%%%
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+stem_width = xmag*.55pt;
+stem_slope = 45;
+dot_diam = 1pt; % diameter of dots in "ra", "ya" etc.
+matra_thickness = .75pt;
+matra_slope = 115;
+matra_f = .75; % fraction of h where normally the top end of matras rest
+matra_t = 3/50; % thickness of matras as a fraction of matra_f
+matra_h = matra_f-.5matra_t;
+ball_hang = .7pt;
+ha_dip = .7pt; % the depth by which the end of "ha" dips below baseline
+lindent = 1.5stem_width;
+rindent = 1.5stem_width;
+numball_one = 9/50*8pt; % large balls used in numerals
+numball_two = 0.8*numball_one; % small balls used in numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+
+
+input bangbase;
+end;
+
+%%% End of bang10.mf
diff --git a/language/bengali/bangtex/mf/bangbase.mf b/language/bengali/bangtex/mf/bangbase.mf
new file mode 100644
index 0000000000..183e369856
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangbase.mf
@@ -0,0 +1,49 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangbase.mf: METAFONT file that calls the base files
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+input bangmac;
+input bangdefs;
+
+input bangvow;
+input bangkaar;
+input bangconso;
+input bangfala;
+input bangnum;
+input bangpunc;
+input banghalf;
+input bangjuk;
+input banglig;
+
+%% End of the file bangbase.mf
diff --git a/language/bengali/bangtex/mf/bangconso.mf b/language/bengali/bangtex/mf/bangconso.mf
new file mode 100644
index 0000000000..e9990517a7
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangconso.mf
@@ -0,0 +1,483 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangconso.mf: METAFONT file that defines bangla consonants
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar("k", 19u#, stht#,stdp#); "The letter ka";
+ numeric wba; wba = 14/19w;
+ ka(0,0,wba,h);
+ matra(0,w);
+endchar;
+
+
+beginchar("x", 16u#, stht#,stdp#); "The letter kha";
+ numeric xstem,height,balld,phi;
+ xstem=w-rindent; height=matra_f*h; balld=.18h; phi=-90;
+ matra(xstem,w);
+ z2l = (7.5/43w,43/50height);
+ z2r = z2l + .5balld * dir(phi) + .02w * dir(phi+90);
+ z3l = (.5w,matra_f*h);
+ z3r = (.52w,.63h);
+ z4r = (26.5/43w,41/50height);
+ z4l = (30/43w,38/50height);
+ z5r = (6/43w,30/50height);
+ z6l = (13/43w,22/50height);
+ z5l = .7[z5r,z6l];
+ z6r = z5r;
+ z7 = (xstem,height);
+ fill fullcircle scaled balld shifted (z2l);
+ penstroke z2e{right}..z3e;
+ penstroke z3e..z4e{down}..{left}z5e;
+ hookstem(z6r,z6l,z7,0,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("g", 14u#, stht#,stdp#); "The letter ga";
+ numeric xstem,hh,hrise; hh = .9h; hrise = matra_f*(h-hh);
+ xstem=w-rindent;
+ stem(xstem);
+ matra(xstem,w);
+ ga_(0,hrise,xstem,hh);
+endchar;
+
+beginchar("G", 15u#, stht#,stdp#); "The letter gha";
+ numeric xstem,height; xstem = w-rindent; height = matra_f*h;
+ matra(0,w); stem(xstem);
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37/50height);
+ z2r = (28/42w,34/50height);
+ z3 = (12.5/42w,20/50height);
+ fill z1l..{z2r-z3}z2r--z2l{z3-z2r}..z1r--cycle;
+% The portion going towards lower left
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook and the stem
+ z4 = 7/21[z3,z2r];
+ z5 = (xstem,matra_h*h);
+ hookstem(z4,z3,z5,0,angle(z2r-z2l));
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(130, 17u#, stht#,stdp#); "The letter unga";
+ unga(0,0,w,matra_f*h);
+endchar;
+
+beginchar("c", 13u#, stht#,stdp#); "The letter ca";
+ ca(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar("q",15.5u#,stht#,stdp#); "The letter cha";
+ numeric hh,hrise; hh=h;
+ hrise = matra_f*(h-hh);
+ cha(0,hrise,w,hh);
+ currenttransform := identity slanted slantval;
+ matra(0,w);
+endchar;
+
+beginchar("j", 20u#, stht#,stdp#); "The letter ja";
+ ja_full(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar("C", 18u#, stht#,stdp#); "The letter jha";
+ numeric wba,xstem; wba = 14/18w; xstem = wba-rindent;
+ ba(0,0,xstem,h);
+ matra(0,xstem);
+% Now the part to the right
+ z6 = (.87w,.14h);
+ z7 = (xstem,.43h);
+ z8 = (x7,.35h);
+ hookjt(z8,z7,z6,.07h,.4,90);
+ halfstem(x6,matra_f*h,.13h);
+ matra(x6,w);
+ penlabels (1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(131, 26u#, stht#,stdp#); "The letter ina";
+ ina(0,0,w,h);
+endchar;
+
+beginchar("T", 13u#, stht#,stdp#); "The letter Ta";
+ numeric balld; balld = .19h;
+ matra(0,w);
+ Dha(0,0,w,h);
+% The Tiki
+ Tiki (.9w,.1w);
+endchar;
+
+beginchar("F", 13u#, stht#,stdp#); "The letter Tha";
+ numeric width; width = .13w;
+% The bag
+ z1 = (.61w,matra_f*h-.5matra_thickness); penpos1(width,0);
+ z2 = (.23w,.3h); penpos2(1.4width,-45);
+ z3l= (.5w,.06h); penpos3(.8width,90);
+ z4l= (.93w,.32h); penpos4(.8width,180);
+ z5 = z1; z5l = z1r; z5r = z1l;
+ penstroke z1e..{left}z2e;
+ penstroke z2e..{right}z3e;
+ penstroke z3e{right}..z4e{up}..z5e;
+% The antenna
+ numeric antwid; antwid = length(z1l-z1r);
+ z6 = (x1l,h);
+ pickup pencircle xscaled antwid yscaled 1.4antwid rotated 0;
+ draw z1{z1-z4}..{dir 45}z6;
+ picture shape_Tha; shape_Tha = currentpicture;
+% matra
+ matra(0,w);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("D", 18u#, stht#,stdp#); "The letter Da";
+ numeric height; height = matra_f*h;
+ matra(0,w);
+ Da(0,0,w,height,.88);
+endchar;
+
+beginchar("Z", 13u#, stht#,stdp#); "The letter Dha";
+ matra(0,w);
+ Dha(0,0,w,h);
+endchar;
+
+beginchar("N", 13.5u#, stht#,stdp#); "The letter murdhanya na";
+ numeric xstem;
+ xstem = w - rindent;
+ matra (xstem,w);
+ stem(xstem);
+ Na_(0,0,xstem,h);
+endchar;
+
+beginchar("t", 19u#, stht#,stdp#); "The letter ta";
+ numeric height; height = matra_f*h;
+ ta(0,0,w,height);
+ matra(0,w);
+endchar;
+
+beginchar("Q", 15u#, stht#,stdp#); "The letter tha";
+ numeric xstem,balld,phi,height;
+ xstem=w-rindent; balld=.18h; height = matra_f*h;
+ matra(xstem,w);
+ z1l = (.5lindent,.6h); penpos1(.5balld,0);
+ z2r = (.4w,.68h);
+ z2l = (.33w,height);
+ z3r = (23.5/42w,36/50height); penpos3(3.5/42w,180);
+ z4r = (5/42w,27/50height);
+ z4l = (8.5/42w,20/50height);
+ z5 = (xstem,height);
+ fill fullcircle scaled balld shifted (z1r);
+ penstroke z1e{up}..{right}z2e..{down}z3e..tension1.2..{left}z4e;
+ hookstem(z4r,z4l,z5,0,0);
+ penlabels(1,2,3,4,5);
+endchar;
+
+
+beginchar("d", 14u#, stht#,stdp#); "The letter da";
+ matra(0,w);
+ da(0,0,w,h);
+endchar;
+
+beginchar("z", 14u#, stht#,stdp#); "The letter dha";
+ numeric xstem,height,theta;
+ xstem = w - rindent; height = matra_f*h; theta = 20;
+ ba(0,0,xstem,h);
+ matra(xstem,w);
+ z8l = point 16/34 of ba_pl;
+ z8r = point 22/34 of ba_pl;
+ z9l = (10.5/39w,43/50height);
+ z9r = (7/39w,43/50height);
+ z10l = (17/39w,(matra_f-matra_t)*h); penpos10(.5dot_diam,theta);
+ fill fullcircle scaled dot_diam shifted z10l;
+ fill z10r{dir (theta+90)}..z9r..{right}z8r--z8l{left}..z9l..z10l--cycle;
+ picture shape_dha;
+ currentpicture = shape_dha;
+ penlabels(8,9,10);
+endchar;
+
+
+beginchar("n", 15.5u#, stht#,stdp#); "The letter na";
+ numeric ww,xstem,height; xstem = ww = w-rindent; height = matra_f*h;
+ na(0,0,w,height,1);
+ matra(0,w);
+endchar;
+
+beginchar("p", 17u#, stht#,stdp#); "The letter pa";
+ numeric xstem,height; xstem=w-rindent; height = matra_f*h;
+ matra(xstem,w);
+ stem(xstem);
+ pa_(0,0,xstem,h);
+endchar;
+
+beginchar("f", 18.5u#, stht#,stdp#); "The letter pha";
+ numeric xstem,wJa,balld,fracrise;
+ wJa = 28/37w; xstem = wJa-rindent; balld = .16h; fracrise=.8;
+ matra(0,w);
+% The upper left portion
+ Ja(0,0,wJa,h,fracrise);
+ z6r = (xstem+.5stem_width,fracrise*matra_h*h); penpos6(stem_width,90);
+% This part is for the ball at the end of the hook
+ z7 = (.83w,.38h);
+ fill fullcircle scaled balld shifted (z7);
+% The hook
+ z8r = z7 + .5balld * dir(0); penpos8(.2balld,0);
+ penstroke z6e{right}..{down}z8e;
+ penlabels(6,7,8);
+ picture shape_pha; shape_pha = currentpicture;
+endchar;
+
+beginchar("b", 14u#, stht#,stdp#); "The letter ba";
+ numeric xstem; xstem = w - rindent;
+ matra(0,w);
+ ba(0,0,xstem,h);
+endchar;
+
+beginchar("v", 20u#, stht#,stdp#); "The letter bha";
+ numeric balld; balld = .25h;
+ matra(0,w);
+ bha(0,0,w,matra_f*h);
+endchar;
+
+beginchar("m", 15.5u#, stht#,stdp#); "The letter ma";
+ numeric xstem,theta,balld,height;
+ xstem = w-rindent; theta = -30; balld = .25h; height = matra_f*h;
+ matra(0,w);
+% The part leading to the dot
+ z1l = (4/43w,matra_h*h); penpos1(7/43w,0);
+ z2l = (21.5/43w,31/50height);
+ z2r = (26/43w,28/50height);
+ z3l = (16/43w,21/50height); penpos3(.5balld,theta);
+ fill z1l{down}..{down}z2l{down}..z3l--z3r{dir (theta+90)}..z2r..tension1.3..z1r--cycle;
+% The dot
+ fill fullcircle scaled balld shifted z3l;
+% The part to the lower right of the dot
+ z4r = z3l;
+ z4l = z3l + .5balld * dir 90;
+ z5 = (xstem,matra_h*h);
+ hookstem(z4l,z4r,z5,0,0);
+ penlabels(1,2,3,4,5);
+endchar;
+
+
+beginchar("J",15u#,stht#,stdp#); "The letter antasthya ja";
+ Ja(0,0,w,h,1);
+% The matra
+ matra(0,w);
+endchar;
+
+beginchar("r",14u#,stht#,stdp#); "The letter ra";
+ numeric xstem; xstem = w-rindent;
+ matra(0,w);
+ z6 = (.32w,.15h);
+ fill fullcircle scaled dot_diam shifted (z6);
+ ba(0,0,xstem,h);
+ penlabels (1,2,3,4,5,6);
+endchar;
+
+beginchar("l",18u#,stht#,stdp#); "The letter la";
+ numeric xstem; xstem = w - rindent;
+ la_(0,0,xstem,h);
+ stem(xstem);
+ matra(0,w);
+endchar;
+
+beginchar("H",14.5u#,stht#,stdp#); "The letter ha";
+ numeric height; height = matra_f*h;
+ Ha(0,0,w,height);
+ matra(0,w);
+endchar;
+
+beginchar("X",22u#,stht#,stdp#); "The letter khiyo";
+ khiyo(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar("S", 18u#, stht#,stdp#); "The letter talabya sha";
+ numeric xstem; xstem = w-rindent;
+ stem(xstem);
+ matra(xstem,w);
+ sha_(0,0,xstem,h);
+endchar;
+
+
+beginchar("P", 15u#, stht#,stdp#); "The letter murdhanya sha";
+ numeric xstem; xstem = w-rindent;
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37.5/50height);
+ z2r = (28/42w,34/50height);
+ fill z1l{down}..{z2l-z1l}z2l--z2r--z1r--cycle;
+% The portion going towards lower left
+ z3 = (12.5/42w,20/50height);
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook
+ z4 = .33[z3,z2r];
+ z5 = (xstem,matra_h*h);
+ hookstem(z4,z3,z5,0,angle(z2r-z2l));
+% The cross through the belly
+ x6 = xstem;
+ y6 = (y1r*(x2r-x6) - y2r*(x1r-x6))/(x2r-x1r);
+ z7 = .13[z2r,z3];
+ cwbar (z7,z2r,z6,90);
+ penlabels(1,2,3,4,5,6,7);
+ picture shape_Sha; shape_Sha = currentpicture;
+ matra(0,w);
+endchar;
+
+beginchar("s",17.5u#,stht#,stdp#); "The letter dantya-sa";
+ numeric xstem,height; xstem = w-rindent; height=matra_h*h;
+ matra(0,w);
+ stem(xstem);
+ sa_(0,0,xstem,height);
+endchar;
+
+beginchar(136, 16u#, stht#,stdp#); "The letter Da-y shunyo Ra";
+ numeric height; height = matra_f*h;
+ Da(0,0,w,height,.88);
+ matra(0,w);
+% The dot
+ z9 = (.61w,-ha_dip);
+ fill fullcircle scaled dot_diam shifted (z9);
+ penlabels(9);
+endchar;
+
+beginchar(137, 13u#, stht#,stdp#); "The letter Dha-y shunyo Ra";
+ numeric balld; balld = .19h;
+ matra(0,w);
+ z1 = (lindent-.5stem_width,matra_f*h-.5matra_thickness);
+ z2 = (lindent+.5stem_width,matra_f*h-.5matra_thickness);
+ z3 = (x1,.25h);
+ z4 = (x2,y3);
+ z5 = (.35w,.09h);
+ z6 = (.39w,.2h);
+ z8 = (.69w,.41h);
+ z7 = (max(.88w,x8+.5balld),.43h);
+ fill z1{down}..{down}z3..z5{right}..tension1.5..z7--z8{down}..z6..z4{up}--z2--cycle;
+ z9 = (x8,y8+.5balld);
+ hookcirc(z9,z7,z8,balld,30);
+% The dot at the bottom
+ z10= (x6,-ha_dip);
+ fill fullcircle scaled dot_diam shifted (z10);
+ penlabels (1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar("y",14u#,stht#,stdp#); "The letter antasthya ya";
+ matra(0,w);
+ Ja(0,0,w,h,1);
+% The ball
+ z8 = (.42w,.13h);
+ fill fullcircle scaled dot_diam shifted (z8);
+ penlabels(8);
+endchar;
+
+beginchar(133,14u#,stht#,stdp#); "The letter khanda ta";
+% The dot
+ z1r = (.5w,matra_f*h); penpos1(.09h,90);
+ z2r = (.3w,.59h); penpos2(.04h,-150);
+ z3r = (.54w,.39h); penpos3(.1h,-90);
+ z4r = (.75w,.54h); penpos4(.06h,0);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+% The hanging part
+ z5r = (.7lindent,.48h); penpos5(.08h,180);
+ z6l = (x1,.3h);
+ z6r= (.5w,.19h);
+ z7l = (w,0); penpos7(.1w,180);
+ z8l = (.2[x7l,x7r],-ha_dip);
+ z8r = z7r;
+ penstroke z1e..z5e..z6e..{down}z7e..z8e;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+beginchar("K",9u#,stht#,stdp#); "The letter anuswar";
+ numeric vdiam; vdiam = .3h;
+ x1 = .5w; y1= matra_f*h - .5vdiam;
+ golla (z1,vdiam);
+ z9l = (.07w,.41h); z9r = (.24w,.23h);
+ z10 = (.96w,-.04h);
+ hookjt(z9r,z9l,z10,.03h,.1,45);
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar("h",9u#,stht#,stdp#); "The letter bisargo";
+ numeric balld; balld = .3h;
+ z1 = (.5w,.6h);
+ z2 = (x1,matra_f*h-y1);
+ golla (z1,balld);
+ golla (z2,balld);
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(132,0stwd#,stht#,stdp#); "The letter candra-bindu";
+ rt z1 = (w,h);
+ z1'= (x1+8,y1);
+ z2 = (-2rindent,matra_f*h+.5matra_thickness);
+ z3 = (-4rindent,h);
+% baTi(z1,z1',z2,z3);
+ pickup Tiki_pen; draw flex(z1,z2,z3);
+ z5 = (x2,h);
+ fill fullcircle scaled dot_diam shifted (z5);
+ penlabels(1,1',2,3,4,5);
+endchar;
+
+beginchar("B",14u#,stht#,stdp#); "The Asamiya letter ra";
+ numeric wba; wba = w - rindent;
+ z1l = (4/39wba,29/50height);
+ z3r = (8.5/39wba,23.5/50height);
+ z2l = (wba,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path rra_pr; rra_pr = z1r{z2l-z1r}..z2r;
+ path rra_pl; rra_pl = z2l..{z1r-z2l}z1l;
+ penstroke z1e{z2l-z1r}..z2e;
+ z3l = point .2 of rra_pr;
+ fill z1l--z3l--z3r--cycle;
+ z4 = (wba,height);
+ hookstem(z3l,z3r,z4,angle(z3l-z1l),2*angle(z3l-z1l));
+ pickup pencircle scaled .6length(z3l-z3r);
+ lft top z5 = point .65 of rra_pl;
+ rt z6 = (wba,.35h);
+ draw z5--z6;
+ matra(0,w);
+ penlabels (1,2,3,4,5,6);
+endchar;
+
+beginchar("w", 14u#, stht#,stdp#); "The Asamiya letter wa";
+ numeric xstem; xstem = w - rindent;
+ matra(0,w);
+ ba(0,0,xstem,h);
+ pickup pencircle xscaled 0.1pt yscaled 0.4pt;
+ z6 = (.14w,.22h);
+ z7 = (w-2rindent, 0);
+ draw z6{right}..z7;
+ penlabels(6,7);
+endchar;
+
+%%% End of bangconso.mf \ No newline at end of file
diff --git a/language/bengali/bangtex/mf/bangdefs.mf b/language/bengali/bangtex/mf/bangdefs.mf
new file mode 100644
index 0000000000..fb97135357
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangdefs.mf
@@ -0,0 +1,914 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangdefs.mf: METAFONT file that defines various shapes
+% for use in various 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 E(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,ypen,currenttransform; transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,ypen,height,theta;
+ balld = .3w; ypen = .9pt; height = matra_f*h; theta = 220;
+% The circle
+ z1l = (.5w,.43h); penpos1(.5balld,theta);
+ fill fullcircle scaled balld shifted (z1l);
+% The connector between the circle and the stem
+ z2r = (.7w,height); penpos2(matra_t*h,90);
+ z3 = (w-rindent,.6h); penpos3 (stem_width,0);
+ fill z1r{dir (theta-90)}..tension1.3..{right}z2r..tension1.2..{down}z3r--z3l{up}..{left}z2l..tension1.6..{dir (theta+90)}z1l--cycle;
+% The wavy line
+ x4= w-rindent-.5stem_width;
+ y4 = ypen; penpos4(.07h,90);
+ z5 = (.51w,.18h); penpos5(6/50height,90);
+ z6 = (.27w,.21h); penpos6(6/50height,90);
+ z7 = (4/48w,26/50height); penpos7(3/50height,0);
+ z8 = (6.5/48w,36/50height); penpos8(2/50height,-30);
+ penstroke z5e{left}..z6e..z7e..tension1.2..z8e;
+% The stem
+ hookstem(z5r,z5l,z3,0,0);
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+def Estem(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,currenttransform; transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,height,theta;
+ balld = .7(w-.5stem_width); height = matra_f*h; theta = 180;
+% The circle
+ z1r = (0,.6height); penpos1(.5balld,theta);
+ fill fullcircle scaled balld shifted (z1l);
+% The connector between the circle and the stem
+ x2r = .75[x1l,x3l]; y2r = height;
+ penpos2(matra_t*h,90);
+ z3 = (w,.8height); penpos3 (stem_width,0);
+ z4 = (x3,0); penpos4(stem_width,0);
+ fill z1r{dir (theta-90)}..{right}z2r..tension1.2..{down}z3r--z4r--z4l--z3l{up}..z2l..tension1.6..{dir (theta+90)}z1l--cycle;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+def O(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,smalld,phia,phib,currenttransform;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,phia,phib,height,rballx,rbally;
+ phia=150; phib=-45; height = matra_f*h; % smalld,balld defined later
+% The two circles
+ z1r = (21/52w,33/50height);
+ z4r = z5l = (37/52w,29/50height);
+ balld = .7 * length(z1r-z4r);
+ smalld = .9balld;
+ fill fullcircle scaled smalld shifted (z1r);
+ fill fullcircle scaled balld shifted (z4r);
+% Line between the two circles
+ z2l = (44/52w,45/50height);
+ z3l = (45/52w,36/50height);
+ z3r = (43/52w,40/50height);
+ z2r = (37/52w,46/50height);
+ z1l= z1r + .5smalld * dir (phia);
+ z4l= z4r + .5balld * dir (phib);
+ fill z1l{dir (phia-90)}..z2l..z3l..z4l--z4r..z3r..z2r..tension1.5..z1r--cycle;
+%% The line connecting to the cup
+ z5r= z5l + .5balld * dir (phib+90);
+ z6l = (45/52w,20/50height);
+ z6r = (47.5/52w,19/50height);
+ fill z5l..{down}z6l--z6r{up}..z5r--cycle;
+%% The cup
+ z7r = (35/52w,6.5/50height); penpos7(6/50height,-90);
+ z8r = (2.5/52w,45/50height);
+ z8l = (5.2/52w,43/50height);
+ z9 = (0,63/50height);
+ penstroke z6e{down}..{left}z7e..{z9-z8l}z8e;
+ penlabels(1,2,3,4,5,6,7,8,9);
+%% We now define the x and y co-ordinates for the right ball.
+%% These are not protected. They need to be used sometimes.
+ rballx = x4r; rbally = y4r;
+ endgroup
+enddef;
+
+
+def ka(expr xoff,yoff,wba,h) =
+ begingroup
+ save x,y,xstem,theta,balld,wbar,currenttransform;
+ numeric xstem,theta,balld,height;
+ xstem=wba-rindent; theta=-30; balld=.2height; height = matra_f*h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+% The first part is equivalent to the definition of "ba"
+ ba(xoff,yoff,xstem,h);
+ z2l = (xstem,43/50height); penpos2(5.5/50height,-90);
+% This part is for the ball at the end of the hook
+ z6 = (43/32xstem,21/50height);
+ fill fullcircle scaled balld shifted (z6);
+% This part is the hook
+ z7l = z6 + .5balld * dir(theta);
+ z7r = z6 + .5balld * dir(theta+70);
+ penstroke z2e{right}..z7e;
+ penlabels(1,2,3,3',4,5,6,7,8,8',9,10);
+ endgroup
+enddef;
+
+def ga_(expr xoff, yoff, w, h) =
+ begingroup
+ numeric xstem,height;
+ xstem=w-rindent; height = matra_f*h;
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ z1l = (11/35w,18/50height);
+ z1r = (15.5/35w,15/50height);
+ z2l = (19/35w,30/50height);
+ z2r = (24/35w,29/50height);
+ z3l = (19/35w,34/50height);
+ z3r = (21/35w,37/50height);
+ z4l = (16/35w,35.5/50height);
+ z4r = (13.5/35w,39/50height);
+ z5l = (4/35w,31/50height);
+ z5r = (8/35w,38/50height);
+ z6l = (1.5/35w,38/50height);
+ z6r = z5r;
+ z7l = (17/35w,height);
+ z7r = (18/35w,46/50height);
+ z8l = (w,35/50height); penpos8(stem_width,-90);
+ fill z1l..z2l..z3l..z4l{left}..tension1.2..{left}z5l..tension2..{up}z6l--z6r--z5r{z4l-z5l}..z4r..z3r..z2r..tension1.3..z1r--cycle;
+ fill z6l{up}..{right}z7l..tension1.5..z8l--z8r..tension1.42..z7r..z6r--cycle;
+ penlabels (1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+
+def unga(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+% The vertical part
+ z2 = (18.5/47w,36/50h); penpos2(stem_width,0);
+ z3l = (25.5/47w,18/50h);
+ z3r= (23/47w,23/50h);
+ z3 = .5[z3l,z3r];
+% The part going up
+ z4l = (36/47w,26/50h);
+ z4r = (34/47w,33/50h);
+ fill z2l{down}..tension0.8..{right}z3l{right}..tension1.5..z4l--z4r..tension1.8..{left}z3r..{up}z2r--cycle;
+% The lower cup
+ z5l = (40/47w,22/50h); penpos5(3/47w,-10);
+ z6l = (28/47w,10/50h);
+ z6r = (29/47w,3/50h);
+ z7l = (6/47w,42/50h);
+ z7r = (4/47w,43/50h);
+ z8 = (0,63/50h);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8-z7l}z7l--z7r{z7r-z8}..{right}z6r{right}..z5r{up}..z4r--cycle;
+% The upper part with the dot
+ z9l = (31/47w,h); penpos9(stem_width,-90);
+ z10l = (38/47w,43/50h); penpos10(.6stem_width,180);
+ z11l = z2r; penpos11(stem_width,90);
+ x12l = x7l; y12r = h; penpos12(.12w,10);
+ penstroke z2e{up}..{right}z9e..z10e{down}..z11e..{z12-z3}z12e;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+ endgroup
+enddef;
+
+def ca(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height = matra_f*h;
+ z1 = (lindent,matra_h*h); penpos1(stem_width,180);
+ z2r = (x1r,41.5/50height); penpos2(stem_width,180);
+ z3r = (x1r,.24h);
+ z3l = (x2l,.26h);
+ z5r = (33/37w,29/50height);
+ z5l = (27/37w,26.5/50height);
+ z4r = (.3[x3r,x5r],4/50height);
+ z4l = (.3[x3l,x5l],9/50height);
+ z6r = (x1l,.45[y1,y2]);
+ z6l = z2r; z6 = .5[z6l,z6r];
+ penstroke z1e--z2e--z3e{down}..{right}z4e;
+ penstroke z4e{right}..{up}z5e;
+ penstroke z5e{up}..{up}z6e;
+ penlabels(1,2,3,4,5,6);
+ endgroup
+enddef;
+
+
+def cha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform,ww,hh,hrise;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric ww,hh,hrise,height;
+ height = matra_f*h;
+% The rounded part
+ z7r = (25/44w,39/50height);
+ z7l = (x7r,y7r-matra_t*height);
+ z8l = (35/44w,30/50height);
+ z8r = (39/44w,28/50height);
+ z9l = (16.5/44w,15/50height);
+ z9r = (x9l,11/50height);
+ z10l = (7/44w,17/50height);
+ z10r = (12/44w,10/50height);
+ penstroke z7e{right}..{down}z8e{down}..{left}z9e..z10e;
+% The part that goes down
+ z11= (w,-ha_dip);
+ hookjt(z10r,z10l,z11,.06h,.2,45);
+% The part that looks like a small "ca"
+ ww = x7l+.8rindent; hrise - y10l = y10l - y9l;
+% hrise = matra_h*(h-hh);
+ hh = h-(hrise/matra_h);
+ ca(xoff,hrise+yoff,ww,hh);
+ penlabels(7,8,9,10);
+ endgroup
+enddef;
+
+def ja_bare(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height;
+ height = matra_f*h;
+% The upper part
+ z1 = (27/37w,matra_h*h); penpos1(10/37w,0);
+ z2l = (13/37w,35/50height);
+ z2r = (16/37w,32/50height);
+ z3l = (23.5/37w,23/50height);
+ z3r = (20/37w,28/50height);
+ z4r = (30/37w,33.5/50height);
+ z4l = (32.5/37w,28/50height);
+ penstroke z1e{z2l-z1r}..{down}z2e{down}..{right}z3e..z4e;
+% The lower cup
+ z5r = (w,y3l); penpos5(2.5/37w,0);
+ z6r = (26/37w,9/50height); penpos6(7/50height,-90);
+ z7r = (4.5/37w,43/50height);
+ z7l = (6/37w,42/50height);
+ penstroke z5e{down}..{left}z6e..{up}z7e;
+% The part joining the above two parts
+ penstroke z5e{up}..z4e;
+ penlabels(1,2,3,4,5,6,7);
+% The hook
+% NONE FOR THIS VERSION
+% Definitions to export
+ numeric topl_ja,topr_ja,midlx_ja,midrx_ja,midly_ja,midry_ja;
+ topl_ja = x1l; topr_ja = x1;
+ z91 = .5[z4r,z5r]; penpos91(.3length(z4l-z5r), angle(z5r-z4l));
+ midlx_ja = x91r; midrx_ja = x91l;
+ midly_ja = y91r; midry_ja = y91l;
+ endgroup
+enddef;
+
+def ja_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ numeric wbare,height;
+ wbare = 37/53w; height = matra_f*h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ ja_bare(xoff,yoff,wbare,h);
+ z8l = (topl_ja,matra_h*h);
+ z8r = (topr_ja,matra_h*h);
+ z9l = (w,35/50height);
+ z9r = (47/53w,40/50height);
+ z3' = (midlx_ja,midly_ja);
+ penstroke z8e{z3'-z8l}..{right}z9e;
+ penlabels(3',8,9);
+% Definitions to export
+ numeric tiplx,tiply,tiprx,tipry;
+ tiplx = x9l; tiply = y9l;
+ tiprx = x9r; tipry = y9r;
+ endgroup
+enddef;
+
+def ja_full(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform,width,thiv;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height = matra_f*h;
+ ja_(xoff,yoff,w-.5rindent,h);
+ z9l = (tiplx,tiply);
+ z9' = (tiprx,tipry); z9r = .7[z9l,z9'];
+ z10l = (x9r,0);
+ z10r = (x10l-2/56w,1/50height);
+ penstroke z9e{z9r-(w,height)}..z10e;
+ penlabels(10);
+ endgroup
+enddef;
+
+def ina(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform,theta,wE;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric theta,wE; theta = 60; wE=18.5/26w;
+ z1 = (wE-rindent,.41h) + (xoff,yoff);
+ E(xoff,yoff,wE,h);
+ clover(z1,w-wE,.25h,.08h);
+ endgroup
+enddef;
+
+def Da(expr xoff,yoff,w,h,fracrise) =
+ begingroup
+ save x,y,xstem,currenttransform; transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem; xstem = .5w;
+% The vertical part
+ z1 = (xstem,h); penpos1(stem_width,0);
+ z2 = (x1,31/50h); penpos2(stem_width,0);
+ z3l = (27.5/49w,21.5/50h);
+ z3r= (x3l+1/49w,28/50h);
+ fill z1l..{down}z2l..{right}z3l--z3r{left}..{up}z2r--z1r--cycle;
+% The part going up
+ z4l = (42.5/49w,30/50h);
+ z4r = (40/49w,38/50h);
+ fill z3l{right}..tension1.5..z4l--z4r..tension1.8..{left}z3r--cycle;
+% The lower cup
+ z5l = (44/49w,27/50h); penpos5(3/50w,0);
+ z6l = (29.5/49w,12/50h);
+ z6r = (31/49w,5/50h);
+ z7l = (7/49w,(fracrise-.02)*h);
+ z7r = (5/49w,fracrise*h);
+ z8 = (0,(63/44)*fracrise*h);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8-z7l}z7l--z7r{z7r-z8}..{right}z6r{right}..z5r{up}..z4r--cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+def Dha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric balld; balld = .19h;
+ z1 = (lindent,matra_f*h); penpos1(stem_width,0);
+ z2 = (lindent,.27h); penpos2(stem_width,0);
+ z3l = (.35w,.08h);
+ z3r = (.39w,.2h);
+ z4r = (.69w,.41h);
+ z4l = (max(.88w,x4r+.5balld),.47h);
+ penstroke z1e{down}..{down}z2e..tension1.2..z3e{right}..tension1.2..{up}z4e;
+ z5 = (x4l-.5balld,y4l);
+ fill fullcircle scaled (balld) shifted (z5);
+ penlabels (1,2,3,4,5);
+ endgroup
+enddef;
+
+def Na_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,balld,currenttransform;
+ numeric xstem,balld,height;
+ xstem = w - rindent; height = matra_f*h; balld = max(9/50height,.3w);
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled(w/xstem) slanted slantval;
+ z1r = (16.5/37w,31/50height);
+ fill fullcircle scaled balld xscaled(xstem/w) shifted (z1r);
+ penpos1(.5balld * xstem/w,180);
+ z2l = z1r - (0,.75balld);
+ penpos2(.5balld,90);
+ z3l = (3.5/37w,36/50height); penpos3(6/37w,0);
+ z4l = (15.5/37w,height);
+ z4r = (17/37w,45/50height);
+ z5r = (xstem,y3); penpos5(.08h,-90);
+ penstroke z1e{down}..z2e..{up}z3e..z4e{right}..{z5l-z4l}z5e;
+ penlabels(1,2,3,4,5);
+ endgroup
+enddef;
+
+def ta(expr xoff,yoff,ww,hh) =
+ begingroup
+ save x,y,balld,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric balld; balld = 14/50hh;
+% The ball
+ z1l = (30/52ww,32/50hh); penpos1(.5balld,180);
+ fill fullcircle scaled balld shifted (z1l);
+% Joining the ball and the cup
+ z2r = (33.5/52ww,43/50hh);
+ z2l = z1l + .5balld * dir(45);
+% The cup at the bottom
+ z3l = (47/52ww,27/50hh);
+ z3r = (50/52ww,26/50hh);
+ z4l = (33/52ww,13.5/50hh);
+ z4r = (35/52ww,7/50hh);
+ z5l = (6/52ww,43/50hh);
+ z5r = (4/52ww,44/50hh);
+ z6 = (0,62/50hh);
+ fill z1l..z2l{right}..{down}z3l{down}..z4l{left}..tension1.2..{z6-z5l}z5l--z5r{z5r-z6}..tension1.2..{right}z4r{right}..{up}z3r{up}..{left}z2r..z1r--cycle;
+ penlabels(1,2,3,4,5,6);
+% Definitions to export
+ numeric top_ta;
+ top_ta = y2l;
+ endgroup
+enddef;
+
+def da(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height=matra_f*h;
+%% The vertical bar at the left
+ z1 = (lindent,height); penpos1(stem_width,0);
+ z2l = (x1l,20/50height);
+ z2r = (x1r,15/50height);
+ penstroke z1e..z2e;
+%% The diagonal line
+ y4r = .52h;
+ y4l-y4r=y2l-y2r;
+ x4r-x4l=stem_width;
+ .5[x4r,x4l] = w - rindent;
+ z3 = (x4l,height);
+ penstroke z2e{z3-z2l}..z4e;
+%% Calculation for the upper end of the diagonal line
+ x5r = x4l;
+ y5 = y2r;
+ penpos5(.6*length(z4r-z4l),0);
+ x6r = x4r; y6r = 0;
+ penpos6(.4*length(z4r-z4l),-25);
+ penstroke z4e..z5e..z6e;
+ penlabels(1,2,3,4,5,6);
+% Co-ordinates to export
+ numeric da_tiplx, da_tiply, da_tiprx, da_tipry;
+ da_tiplx = x6l; da_tiply = y6l; da_tiprx = x6r; da_tipry = y6r;
+ endgroup
+enddef;
+
+
+def na(expr xoff,yoff,w,h,frach) =
+ begingroup
+ save x,y,xstem,balld,currenttransform;
+ numeric xstem,balld; xstem=w-rindent;
+ balld = max(15/50h,1/3w);
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ z1r = (13/42w,21.5/50h); penpos1(.5balld,0);
+ z2r = z1r + .5balld * dir 45;
+ z2l = z1r + .5balld * (.4 dir 0 + 1.5 dir 90);
+ fill fullcircle scaled balld shifted (z1r);
+ fill z1l{up}..{right}z2l--z2r{left}..z1r--cycle;
+ if frach>0:
+ z3 = (xstem,frach*h);
+ hookstem(z2l,z2r,z3,0,0);
+ else:
+ z3 = (w,0);
+ hookjt(z2r,z2l,z3,0.2h,1,90);
+ fi;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+
+def na_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,vdiam,ecc,currenttransform;
+ numeric xstem,balld;
+ xstem=w-rindent; balld = .25h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ z1r = (13/32w,21.5/50h); penpos1(.5balld,0);
+ z2r = z1r + .5balld * dir 45;
+ z2l = z1r + .5balld * (.4 dir 0 + 1.5 dir 90);
+ z3l = (w,y1); penpos3(.5*length(z2l-z2r),-90);
+ fill fullcircle scaled balld shifted (z1r);
+ fill z1l{up}..{right}z2l--z2r{left}..z1r--cycle;
+ penstroke z2e{right}..tension1.2..z3e;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+def pa_(expr xoff,yoff,w,h) =
+begingroup
+ save x,y,height,full_w,currenttransform; transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height;
+ height = matra_f*h;
+% The upper curve
+ z1l = (3/39w,35/50height);
+ z1r= (11/39w,38/50height);
+ z2l = (20/39w,matra_h*h);
+ z2r = (22/39w,43/50height);
+ z3l = (w-.5stem_width,34/50height);
+ z3r = (x3l,y3l+y2r-y2l);
+ path p; p = z3r{z2l-z3r}..z2r..z1r;
+ penstroke z1e{up}..z2e..tension1.1..z3e;
+% The lower bar
+ z4l = (10.5/39w,21/50height);
+ z4r = (17/39w,19/50height);
+ z5= p intersectionpoint (z4l--(w,matra_f*h));
+ cwbar(z4r,z4l,z5,angle(z3l-z5));
+% The connector
+ z6l= (6.5/39w,32/50height);
+ z6r = z1r;
+ z7r = (16.3/39w,34/50height);
+ z7l = (14.5/39w,33/50height);
+ z8r = .4[z4l,z5];
+ y8l = y8r;
+ x8r - x8l = length(z7r - z7l);
+ penstroke z1e{down}..{right}z6e;
+ penstroke z6e{right}..z7e..{down}z8e;
+ fill z8l..{z4l-z8r}z4l--z4r--z8r--cycle;
+ penlabels (1,2,3,4,5,6,7,8);
+endgroup
+enddef;
+
+def ba(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ numeric height; height = matra_f*h;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ z1l = (4/39w,29/50height);
+ z3r = (8.5/39w,23.5/50height);
+ z2l = (w,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path ba_pr; ba_pr = z1r{z2l-z1r}..z2r;
+ path ba_pl; ba_pl = z2l..{z1r-z2l}z1l;
+ penstroke z1e{z2l-z1r}..z2e;
+ z3l = point .2 of ba_pr;
+ fill z1l--z3l--z3r--cycle;
+ z4 = (w,height);
+ hookstem(z3l,z3r,z4,angle(z3l-z1l),2*angle(z3l-z1l));
+ penlabels (1,2,3,4);
+ currenttransform := identity slanted slantval;
+ numeric ba_topxl, ba_topxr, ba_topy;
+ ba_topxl = x4 - .5stem_width + xoff;
+ ba_topxr = x4 + .5stem_width + xoff;
+ ba_topy = height + yoff;
+ endgroup
+enddef;
+
+def ba_remove(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ numeric height; height = matra_f*h;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ z1l = (4/39w,29/50height);
+ z3r = (8.5/39w,23.5/50height);
+ z2l = (w,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path ba_pr; ba_pr = z1r{z2l-z1r}..z2r;
+ path ba_pl; ba_pl = z2l..{z1r-z2l}z1l;
+ z3l = point .2 of ba_pr;
+ z4r = (w+.5stem_width,0); penpos4(.5stem_width,-stem_slope);
+ z5 = z2 + (.5stem_width,0); penpos5(5.5/50height,-90);
+ z7 = (x5,0);
+ unfill z5l--ba_pl--z3r{z3l-z1l}..{down}z4l--z4r--cycle;
+ unfill z5l--ba_pl--z3r{z3l-z1l}..{down}z4l--z4r--cycle;
+ endgroup
+enddef;
+
+
+
+def ba_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y;
+ z1l = (4/39w,29/50height);
+ z3r = (8.5/39w,23.5/50height);
+ z2l = (w,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path ba_pr; ba_pr = z1r{z2l-z1r}..z2r;
+ path ba_pl; ba_pl = z2l..{z1r-z2r}z1l;
+ penstroke z1e{z2l-z1r}..z2e;
+ z3l = point .2 of ba_pr;
+ fill z1l--z3l--z3r--cycle;
+ z4 = (w,height);
+ hookstem(z3l,z3r,z4,angle(z3l-z1l),2*angle(z3l-z1l));
+ penlabels (1,2,3,4,5);
+ endgroup
+enddef;
+
+def ba_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,currenttransform;
+ numeric wba,xstem; wba = w; xstem = w-rindent;
+ transform currenttransform;
+ currenttransform := identity xscaled (wba/xstem) shifted (xoff,yoff) slanted slantval;
+ z1 = (.07wba,.45h);
+ z2 = (.14wba,.35h);
+ z3 = (xstem,.53h);
+ z4 = (xstem,.03h);
+ z5 = z2 + .23wba * (cosd angle(z3-z2), sind angle(z3-z2));
+ cwbar(z1,z2,z3,90);
+ hookjt(z2,z5,z4,.1h,.2,90);
+ penlabels (1,2,3,4,5);
+ currenttransform := identity slanted slantval;
+ endgroup
+enddef;
+
+def bha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,currenttransform;
+ numeric balld; balld = 12/54w;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+% The cup at the bottom
+ z4l = (48/54w,28/50h); z4r = (51/54w,25/50h);
+ z5l = (33/54w,13/50h); z5r = (34/54w,6/50h);
+ z6l = (7/54w,43/50h); z6r = (5/54w,44/50h);
+% The ball
+ z1r = (26/54w,34/50h); penpos1(.5balld,0);
+ fill fullcircle scaled balld shifted z1r;
+% Joining the ball and the cup
+ z2l = (31/54w,24/50h); z2r = (32/54w,30/50h);
+ z3l = (45.5/54w,32.5/50h); z3r = (42/54w,39.5/50h);
+ fill z1r..z2r{right}..z3r--z3l..{left}z2l..{up}z1l--cycle;
+ fill z3r..z4r{down}..{left}z5r..tension1.4..{(0,63/50h)-z6r}z6r--z6l{z6l-(0,63/50h)}..tension1.4..z5l{right}..{up}z4l..z3l--cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+
+def ma_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,theta,balld,height, currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem,theta,balld,height;
+ xstem = w-rindent; theta = -30; balld = .25h; height = matra_f*h;
+% The part leading to the dot
+ z1l = (4/43w,matra_h*h); penpos1(7/43w,0);
+ z2l = (21.5/43w,31/50height);
+ z2r = (26/43w,28/50height);
+ z3l = (16/43w,21/50height); penpos3(.5balld,theta);
+ fill z1l{down}..{down}z2l{down}..z3l--z3r{dir (theta+90)}..z2r..tension1.3..z1r--cycle;
+% The dot
+ fill fullcircle scaled balld shifted z3l;
+% The part to the lower right of the dot
+ z4r = z3l;
+ z4l = z3l + .5balld * dir 90;
+ z5 = (xstem,matra_h*h);
+ hookstem(z4l,z4r,z5,0,0);
+ penlabels(1,2,3,4,5);
+ endgroup
+enddef;
+
+
+
+def Ja(expr xoff,yoff,w,h,topfrac) =
+ begingroup
+ save x,y,xstem,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem,height; xstem = w-rindent; height = matra_f*h;
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37/50height);
+ z2r = (28/42w,34/50height);
+ fill z1l{down}..{z2l-z1l}z2l--z2r--z1r--cycle;
+ z3 = (12.5/42w,20/50height);
+% The portion going towards lower left
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook and the stem
+ z4 = 7/21[z3,z2r];
+ z5 = (xstem,topfrac*matra_h*h);
+ hookstem(z4,z3,z5,0,angle(z2r-z2l));
+ penlabels(1,2,3,4,5);
+ endgroup
+enddef;
+
+
+def la_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,balld,xecc,currenttransform;
+ numeric xstem,balld,xecc,height;
+ height = matra_f*h;
+ xstem = w-rindent; balld = 13/50height; xecc = xstem/w;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled (1/xecc) slanted slantval;
+% The ball
+ z1 = (.41w,.33h);
+ fill fullcircle scaled balld xscaled (xecc) shifted (z1);
+% The first wavy line coming out of the ball
+ z2l = z1 + .5balld * dir (-90); penpos2(.3balld,90);
+ z3l = (5.8/50w,28/50height);
+ z3r = (9/50w,26/50height);
+ z4l = (16/50w,41.5/50height);
+ z4r = (18/50w,36/50height);
+ z5l = (26.5/50w,36/50height);
+ z5r = (29/50w,27/50height);
+ penstroke z2e..z3e{up}..{right}z4e..{z5r-z4l}z5e;
+% The second wavy line connecting to the stem
+ z6l = (33/50w,y4l-1/100height);
+ z6r= (35/50w,y4r);
+ z7l = (xstem,31/50height);
+ z7r= (xstem,26/50height);
+ penstroke z5e{up}..z6e..tension1.4..{z6r-z6l}z7e;
+ penlabels(1,2,3,4,5,6,7);
+ endgroup
+enddef;
+
+
+def sha_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height = matra_f*h;
+% The balls
+ z1l = (14.5/40w,40/50height);
+ z1r = (17/40w,42/50height);
+ z2 = (5.5/40w,30/50height);
+ z3 = (11.5/40w,25/50height);
+ z4 = (19/40w,y2);
+ x5 -x4 = x4 - x3; y5 = y3;
+ x6 - x4 = x4 - x2; y6=y2;
+ z7l = z1r;
+ x7r - x4 = x4 - x1l; y7r = y1l;
+ fill z1r--z1l..tension1.4..{down}z2{down}..z3{right}..z4--cycle;
+ fill z7l--z7r..tension1.4..{down}z6{down}..z5{left}..z4--cycle;
+% The antenna to the left
+ z8r = (0,matra_f*h);
+ x8l = abs(cosd(matra_slope))*matra_t*h;
+ y8r-y8l = matra_t*h;
+ penstroke z8e{right}..tension0.9..{z4-z1l}z1e;
+% The line connecting the balls with the stem
+ z9l = (27/40w,y8r);
+ z9r = (29/40w,44.5/50height);
+ z10l = (w,40/50height);
+ z10r = (w,35/50height);
+ penstroke z7e..{right}z9e{right}..tension1.5..{z10r-z9r}z10e;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+ endgroup
+enddef;
+
+
+def Sha_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem, currenttransform;
+ numeric xstem,height; xstem = w-rindent; height=matra_f*h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled (w/xstem) slanted slantval;
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37.5/50height);
+ z2r = (28/42w,34/50height);
+ fill z1l{down}..{z2l-z1l}z2l--z2r--z1r--cycle;
+% The portion going towards lower left
+ z3 = (12.5/42w,20/50height);
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook
+ z4 = .33[z3,z2r];
+ z5 = (xstem,.5stem_width*sind(stem_slope));
+ hookjt(z3,z4,z5,.05h,.5,90);
+% The cross through the belly
+ x6 = xstem;
+ y6 = (y1r*(x2r-x6) - y2r*(x1r-x6))/(x2r-x1r);
+ z7 = .13[z2r,z3];
+ cwbar (z7,z2r,z6,90);
+ penlabels(1,2,3,4,5,6,7);
+ endgroup
+enddef;
+
+
+
+
+def sa_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ numeric xstem; xstem = w-rindent;
+ numeric midxl_sa,midyl_sa,midxr_sa,midyr_sa;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled(w/xstem) slanted slantval;
+% The wavy line
+ z5l = (5/46w,26/50h);
+ z5r = (7/46w,27/50h);
+ z6l = (14.5/46w,15/50h);
+ z6r = (12/46w,22/50h);
+ z8r= (xstem,28/50h);
+ z8l= (x8r,22.5/50h);
+ x7r = 2/3[x6r,x8r]; y7r = 38.5/50h;
+ x7l = 2/3[x6l,x8l]; y7l = 31.5/50h;
+ path pr; pr = z7r{left}..tension2..{left}z6r{left}..tension5..z5r;
+ path pl; pl = z5l..tension5..{right}z6l{right}..tension2..{right}z7l;
+ fill pl--pr--cycle;
+ penstroke z7e{right}..{z8l-z7r}z8e;
+% The upper left part
+ z1l = (3.5/46w,h); penpos1(12.5/46w,0);
+ z2 = (11/46w,43/50h);
+ z3l = ((21/46w,0)--(21/46w,h)) intersectionpoint pr;
+ z3r = ((23/46w,0)--(23/46w,h)) intersectionpoint pr;
+ fill z1l{down}..{right}z2{right}..{down}z3l--z3r{up}..tension1.2..z1r--cycle;
+% Exporting co-ordinates
+ midxl_sa = (x3l+xoff)*(w/xstem); midyl_sa = y3l+yoff;
+ midxr_sa = (x3r+xoff)*(w/xstem); midyr_sa = y3r+yoff;
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+def Ha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,phi; balld = 13/50h; phi=-60;
+%% The ball
+ z1r = (14.5/40w,34/50h); penpos1(.5balld,phi);
+ fill fullcircle scaled balld shifted z1r;
+%% The connector
+ z2 = (16/40w,h); penpos2(6.5/40w,0);
+ z3l = (19.5/40w,42/50h);
+ z3r = (23/40w,42/50h);
+ z4 = z1r + .5balld * dir(-90);
+ fill z4{right}..{up}z3r..z2r--z2l..{down}z3l..z1r--cycle;
+ z5 = (26/40w,37/50h);
+ z6l = (37/40w,31/50h);
+ z6r = (34/40w,32.5/50h);
+ z7l = (19/40w,13.5/50h);
+ z7r = (16.5/40w,19/50h);
+ fill z1l..{right}z3l..{down}z6l--z6r{up}..{left}z5..z1r--cycle;
+%% The swordlike line at the bottom
+ z9l = (10.5/40w,13/50h);
+ z9r = (5/40w,23/50h);
+ z10 = (46/40w,-ha_dip);
+ fill z6l{down}..{left}z7l..z9l--z9r..{right}z7r..{up}z6r--cycle;
+ hookjt(z9l,z9r,z10,.08h,.5,angle(z9r-z9l));
+ penlabels(1,2,3,4,5,6,7,9,10);
+ endgroup
+enddef;
+
+def khiyo(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem,balld,thinness,height,theta;
+ xstem=42/63w; thinness=.45; height = matra_f*h; balld=11/50height;
+ theta = -60;
+% The two balls
+ z0 = (xstem,height);
+ z1= (11/63w,34.5/50height);
+ z2= (24/63w,20/50height);
+ fill fullcircle scaled balld shifted (z1);
+ fill fullcircle scaled balld shifted (z2);
+% Points on the two circles
+ z1a = z1 + .5 * balld * dir(0);
+ z1b = thinness[z1a,z1];
+ z1c = z1 + .5balld * dir(90);
+ z2a = z2 + .5balld * dir(0);
+ z2b = thinness[z2a,z2];
+ z2c = z2 + .5balld * dir(90);
+% The line from the matra to the first dot
+ z6l = (7/63w,matra_h*h); penpos6(6.5/63w,0);
+ fill z6l..{down}z1b--z1a{up}..z6r--cycle;
+% The line between the two dots
+ fill z1c{right}..{down}z2a--z2b{up}..tension0.8..{left}z1b--cycle;
+% The stem
+ hookstem(z2c,z2a,z0,0,0);
+% This part is for the ball at the end of the hook
+ z3 = (51/63w,23/50height);
+ fill fullcircle scaled balld shifted z3;
+% The hook
+ z4l = (xstem,34.5/50height); penpos4(.5balld,90);
+ z5 = (x3,y4); penpos5(.45balld,90);;
+ z7 = (24/63w,matra_h*h); penpos7(4/63w,0);
+ z3a = z3 + .5balld * dir(theta);
+ z3b = thinness[z3a,z3];
+ fill z3a{dir (theta+90)}..tension1.4..{left}z5r..z4r{left}..tension0.8..{up}z7r--z7l..{right}z4l..z5l{right}..{dir (theta-90)}z3--cycle;
+ penlabels (0,1,1a,1b,1c,2,2a,2b,2c,3,3',3a,3b,4,5,6,7);
+% definitions to export
+ numeric ballx, bally;
+ ballx = x3; bally = y3;
+ endgroup
+enddef;
+
+
+
+%%% End of bangdefs.mf
diff --git a/language/bengali/bangtex/mf/bangfala.mf b/language/bengali/bangtex/mf/bangfala.mf
new file mode 100644
index 0000000000..cf6b2220b4
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangfala.mf
@@ -0,0 +1,133 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangfala.mf: METAFONT file that defines various "fala"s that
+% typically go below another consonant
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar(175,0u#,stht#,stdp#); "ref";
+ z1l = (4lindent,matra_f*h+.5matra_thickness);
+ penpos1(1.4stem_width,145);
+ z2l = (6.5lindent,h);
+ penpos2(.7stem_width,70);
+ penstroke z1e--z2e;
+ penlabels(1,2);
+endchar;
+
+beginchar("R", 0, stht#,stdp#); "ra-fala";
+ numeric Ewidth; Ewidth = .06h;
+ x1 = -rindent; y1=0;
+ z3 = (-5.5rindent,.2h);
+ Ebase(z1,z3,Ewidth);
+ halfstem(x1,y3,y1-.5Ewidth);
+endchar;
+
+
+beginchar("Y", 7.3u#, stht#,stdp#); "Ja-fala";
+ matra(0,w);
+ z1 = (14/20w,matra_h*h); penpos1(4/20w,0);
+ z2l = (8/20w,matra_f*35/50h);
+ z2r = (13/20w,matra_f*38/50h);
+ z3l = (11/20w,matra_f*10/50h); penpos3(4.7/20w,0);
+ z4l = (0,0); z4r = (1.5/20w,-matra_h*2/50h);
+ pickup penrazor scaled 1.3stem_width rotated 40;
+ fill z1l..{down}z2l..{down}z3l..tension1.2..z4l--z4r..tension1.2..z3r{up}..{up}z2r..{(w,y1)-z2l}z1r--cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar("W",0u#, stht#,stdp#); "Ba-fala, or Wa-fala";
+ numeric ww,hh,xstem,xshift;
+ ww=3rindent; hh=.6h; xstem=ww; xshift = ww+rindent;
+ ba(-xshift,0,ww,hh);
+endchar;
+
+beginchar(153,6u#, stht#,stdp#); "Ba-fala, or Wa-fala (with matra)";
+ numeric ww,hh,xstem,xshift;
+ ww=2.5rindent; hh=.5h; xstem=ww; xshift = ww+rindent-w;
+ ba(-xshift,-ha_dip,ww,hh);
+ matra(0,w);
+endchar;
+
+beginchar("M", 9u#, stht#, stdp#); "Ma-fala";
+ numeric xstem,balld;
+ xstem = w - rindent; balld = .5w;
+ matra(0,w);
+ z1 = (lindent,.3h);
+ x2 = x1 + .5(stem_width - balld); y2 = y1;
+ z3 = z2 + .5balld * dir(90);
+ z4 = (xstem,matra_f*h);
+ halfstem(x1,matra_f*h,y1);
+ fill fullcircle scaled balld shifted z2;
+ hookstem(z3,z2,z4,0,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar("L", 0u#, stht#,stdp#); "la-fala";
+ numeric ww,hh; ww=5rindent; hh=.7h;
+ la_(-ww,-.15h,ww,hh);
+ halfstem(-rindent,.2h,0);
+endchar;
+
+beginchar(25, 0u#, stht#,stdp#); "murdhanya na-fala";
+ numeric ww,hh; ww=3rindent; hh=.5h;
+ Na_(-4rindent,-.15h,ww,hh);
+endchar;
+
+beginchar(26, 0u#, stht#,stdp#); "na-fala";
+ numeric ww,hh; ww = 5rindent; hh = .25h;
+ na(-ww,0,ww,hh,.7);
+endchar;
+
+beginchar(27, 5u#, stht#, stdp#); "special form for Ma-fala";
+ numeric xstem,balld,ww,lshift; lshift = 2rindent; ww = w + lshift;
+ xstem = ww - rindent; balld = .4ww;
+ z1 = (lindent,.27h);
+ x2 = x1 + .5(stem_width - balld); y2 = y1;
+ z3 = z2 + .5balld * dir(90);
+ z4 = (xstem,matra_f*h);
+ fill fullcircle scaled balld shifted z2;
+ hookstem(z3,z2,z4,0,0);
+ matra(0,ww);
+ picture sp_ma_fala; sp_ma_fala = currentpicture;
+ currentpicture := currentpicture shifted (-lshift,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(13,0stwd#, stht#, stdp#); "hass (consonant) sign";
+ numeric width; width = stem_width/abs(sind(stem_slope));
+ z1r = (-rindent,0); penpos1(.8width,stem_slope);
+ z2r = (+1.1rindent,-d); penpos2(.5width,-20);
+ penstroke z1e..z2e;
+ penlabels(1,2);
+endchar;
+
+%%% End of bangfala.mf \ No newline at end of file
diff --git a/language/bengali/bangtex/mf/banghalf.mf b/language/bengali/bangtex/mf/banghalf.mf
new file mode 100644
index 0000000000..285fa1b6cc
--- /dev/null
+++ b/language/bengali/bangtex/mf/banghalf.mf
@@ -0,0 +1,198 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% banghalf.mf: METAFONT file that defines the broken form for
+% consonants to be used in conjuncts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+beginchar(160,12u#,stht#,stdp#); "k+";
+ numeric hh,hrise; hh=.6h;
+ hrise = matra_f*h-.75hh;
+ ka(0,hrise,w-rindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(161,8u#,stht#,stdp#); "g+";
+ numeric hh,hrise; hh = .75h; hrise = matra_f*(h-hh);
+ ga_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(162,9u#,stht#,stdp#); "unga+";
+ numeric ww,hh,hrise; ww=w+lindent; hh=.5h;
+ hrise = (matra_f+.5matra_t)*h-hh;
+ unga(0,hrise,ww,hh);
+endchar;
+
+beginchar(163,7u#,stht#,stdp#); "c+";
+ numeric ww,hh,hrise; ww = w+lindent; hh=.65h;
+ hrise = matra_h*(h-hh);
+ matra(0,w);
+ ca(0,hrise,ww,hh);
+endchar;
+
+beginchar(164,10u#,stht#,stdp#); "j+";
+ numeric hh,hrise; hh=.7h; hrise=matra_f*(h-hh);
+ ja_(0,hrise,w+lindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(165,12u#,stht#,stdp#); "ina+";
+ numeric hE,hrise; hE=.5h; hrise = matra_f*(h-hE);
+ ina(0,hrise,w+lindent,hE);
+endchar;
+
+beginchar(166,12u#,stht#,stdp#); "T+";
+ numeric hh,hrise; hh = .9h; hrise = matra_f*(h-hh);
+ Dha(0,hrise,w,hh);
+ matra(0,w);
+ Tiki(.9w,.1w);
+endchar;
+
+beginchar(167,14u#,stht#,stdp#); "D+";
+ numeric hrise,hh; hh = .75matra_f*h; hrise = matra_f*h-hh;
+ Da(0,hrise,w,hh,.88);
+ matra(0,w);
+endchar;
+
+beginchar(168,6u#,stht#,stdp#); "N+";
+ numeric hrise,hh; hh = .7h; hrise = matra_f*(h - hh)-matra_thickness;
+ Na_(.001w,hrise,w+lindent,hh);
+endchar;
+
+beginchar(169,14u#,stht#,stdp#); "t+";
+ numeric hrise,hta; hta = .65h; hrise = matra_f*(h - hta);
+ ta(.04w,hrise,.9w,matra_f*hta);
+ matra(0,w);
+endchar;
+
+beginchar(170,8u#,stht#,stdp#); "d+";
+ numeric hh,hrise; hh = .7h; hrise = matra_f*(h-hh);
+ matra(0,w);
+ da(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(171,5u#,stht#,stdp#); "n+";
+ numeric ww,hh,hrise; ww = w+lindent; hh=.8h;
+ matra(0,w);
+ hrise = matra_f*(h-hh);
+ na_(0,1.5hrise,ww,matra_f*hh);
+endchar;
+
+beginchar(172,10u#,stht#,stdp#); "p+";
+ numeric hh,hrise; hh = .8h; hrise = matra_h*(h-hh);
+ pa_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(173,9u#,stht#,stdp#); "b+";
+ numeric hh,hrise,ww;
+ hh = .7h; hrise = matra_f*(h-hh); ww = w - .5stem_width;
+ ba(0,hrise,ww,hh);
+ matra(0,w);
+endchar;
+
+beginchar(174,11u#,stht#,stdp#); "m+";
+ numeric balld,height;
+ balld = .35w; height = matra_f*h;
+ y1 = matra_h*h; x1r = x2l;
+ penpos1(.3balld,0);
+ z2l = (16/43w,37/50height); penpos2(.5balld,0);
+ fill z1l..{down}z2--z2r{up}..z1r--cycle;
+% The dot
+ fill fullcircle scaled balld shifted z2l;
+% The part to the right of the dot
+ pickup pencircle xscaled .5balld yscaled .25balld rotated -50;
+ top z3 = z2l + .5balld*dir 90;
+ z4 = (.75[x2l,w],30/50height);
+ rt z5 = (w+lindent,y3);
+ top z6 = (w,height);
+ draw z3{right}..{right}z4..{up}z5..z6;
+ penlabels(1,2,3,4,5,6);
+ picture shape_halfma; shape_halfma = currentpicture;
+ matra(0,w);
+endchar;
+
+beginchar(176,10u#,stht#,stdp#); "l+";
+ numeric hh,hrise; hh=.8h;
+ hrise = matra_f*h-.75hh;
+ matra(0,w);
+ la_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(177,9u#,stht#,stdp#); "sh+";
+ numeric hh,hrise; hh = .8h; hrise = matra_f*(h-hh);
+ sha_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(178,8u#,stht#,stdp#); "Sh+";
+ numeric balld; balld = w;
+ z1 = (w+rindent-.5balld,matra_f*h-.5balld);
+ golla(z1,balld);
+ matra(0,w);
+ pickup pencircle scaled .1w;
+ lft top z2 = z1 + .5balld * dir (135);
+ rt bot z3 = z1 + .5balld * dir (-45);
+ draw z2--z3;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(179,9u#,stht#,stdp#); "s+";
+ numeric ww,hh,hrise; ww = w+lindent; hh=.55h;
+ hrise = matra_h*h-hh;
+ sa_(0,hrise,ww,hh);
+ matra(0,w);
+endchar;
+
+beginchar(154,13u#,stht#,stdp#); "small bha";
+ numeric ww,hh,hrise; ww = w; hh=.7h;
+ hrise = matra_f*(h-hh);
+ bha(0,hrise,ww,matra_f*hh);
+ matra(0,w);
+endchar;
+
+beginchar(155,14u#,stht#,stdp#); "small ma";
+ numeric hh,hrise;
+ hh=.85h; hrise = matra_f*(h-hh);
+ ma_(0,hrise,w,hh);
+ matra(0,w);
+endchar;
+
+beginchar(156,14u#,stht#,stdp#); "small sa";
+ numeric hh,hrise,xstem;
+ hh=.5h; hrise = matra_h*h-hh; xstem = w - rindent;
+ sa_(0,hrise,xstem,hh);
+ matra(0,w);
+ stem(w-rindent);
+endchar;
+
+
+%%% End of banghalf.mf
diff --git a/language/bengali/bangtex/mf/bangjuk.mf b/language/bengali/bangtex/mf/bangjuk.mf
new file mode 100644
index 0000000000..dee644361a
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangjuk.mf
@@ -0,0 +1,800 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangjuk.mf: METAFONT file that defines jukto byanjons
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar(22,16u#, stht#,stdp#); "d+R";
+ numeric wda; wda = 14/16w;
+ da(w-wda,0,wda,h);
+ z1 = (da_tiplx+w-wda,da_tiply);
+ z2 = (.05w,.25h);
+ Ebase(z1,z2,.06h);
+ matra(0,w);
+endchar;
+
+
+beginchar(23,18u#, stht#,stdp#); "p+R";
+ numeric xstem,wpa; wpa = 17/18w; xstem = w-rindent;
+ stem(xstem);
+ matra(xstem,w);
+ pa_(w-wpa,0,wpa-rindent,h);
+ z1 = (xstem+.5stem_width,0);
+ z2 = (.05w,.3h);
+ Ebase(z1,z2,.06h);
+endchar;
+
+
+beginchar(24,18u#, stht#,stdp#); "sh+R";
+ numeric xstem,wsha; wsha=w; xstem = w-rindent;
+ sha_(w-wsha,0,wsha-rindent,h);
+ stem(xstem);
+ matra(xstem,w);
+ z1 = (xstem+.5stem_width,0); z2 = (.05w,.3h);
+ Ebase(z1,z2,.06h);
+ z3r = (0,matra_f*h); penpos3(matra_t*h,90);
+ z4r = z3r + (w-wsha,0); penpos4(matra_t*h,matra_slope);
+ penstroke z3e--z4e;
+endchar;
+
+beginchar(180,17u#, stht#,stdp#); "k+k";
+ numeric hrise,hh,xstem;
+ xstem = .75w; hh = .75h; hrise = matra_f*(h-hh);
+ ka(0,hrise,xstem,hh);
+ ba_remove(0,0,xstem-rindent,hh);
+ ka(0,0,xstem,hh);
+ ka(0,0,xstem,hh);
+ ka(0,0,xstem,hh);
+ matra(0,w);
+endchar;
+
+beginchar(181,16u#, stht#,stdp#); "k+t";
+ numeric hka,wka,rise_ka,hta,wta,rise_ta;
+ hka = .65h; rise_ka = matra_f*(h - hka); wka = .7w;
+ hta = .65matra_f*h; wta = .9w; rise_ta = -.035h;
+ ka(.05w,rise_ka,wka,hka);
+ ta(-.04w,rise_ta,wta,hta);
+ unfill (0,0)--(0,top_ta)--(w,top_ta)--(w,0)--cycle;
+ unfill (0,0)--(0,top_ta)--(w,top_ta)--(w,0)--cycle;
+ ta(-.04w,rise_ta,wta,hta);
+ ta(-.04w,rise_ta,wta,hta);
+ matra(0,w);
+endchar;
+
+beginchar(182,14u#, stht#,stdp#); "k+t+r";
+ numeric hka,wka,hrise;
+ hka = .55h; hrise = matra_f*(h - hka); wka = .75w;
+ ka(0,hrise,wka,hka);
+ E(.04w,-.02h,.9w,.6h);
+ matra(0,w);
+endchar;
+
+beginchar(183,19u#, stht#,stdp#); "k+n";
+ numeric xstem,hh,hrise,nashift;
+ xstem = 14/19w; hh = .9h; hrise = matra_f*(h-hh);
+ z1 = (xstem-rindent+.5stem_width,0);
+ nashift = 0.2x1;
+ ka(0,hrise,xstem,hh);
+ na(nashift,0,xstem-nashift,.3h,1);
+ matra(0,w);
+endchar;
+
+beginchar(184,19u#, stht#,stdp#); "k+r";
+ numeric xstem,hh,hrise;
+ xstem = 14/19w; hh = h; hrise = matra_f*(h-hh);
+ z1 = (xstem-rindent+.5stem_width,0); z2 = (.02w,.23h);
+ ka(0,hrise,xstem,hh);
+ Ebase(z1,z2,.06h);
+ matra(0,w);
+ stem(x1-.5stem_width);
+endchar;
+
+beginchar(185,19u#, stht#,stdp#); "k+l";
+ numeric xstem,hh,hrise;
+ xstem = 14/19w; hh = .86h; hrise = matra_f*(h-hh);
+ z1 = (xstem-rindent,0);
+ ka(0,hrise,xstem,hh);
+ la_(-.03w,-.18h,x1+.5stem_width,.7h);
+ matra(0,w);
+ stem(x1);
+endchar;
+
+beginchar(186,17u#, stht#,stdp#); "k+w";
+ numeric hrise,hh,xstem;
+ xstem = 13/17w; hh = .75h; hrise = matra_f*(h-hh);
+ ka(0,hrise,xstem,hh);
+ ba_remove(0,0,xstem-rindent,hh);
+ ba(0,0,xstem-rindent,hh);
+ ba(0,0,xstem-rindent,hh);
+ ba(0,0,xstem-rindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(187,18u#, stht#,stdp#); "k+s";
+ numeric xstem;
+ xstem = w-rindent;
+ matra(0,w);
+ stem(xstem);
+% The wavy line
+ sa_(0,-.15h,xstem,.75matra_f*h);
+ z11l = (midxl_sa,midyl_sa);
+ z11r = (midxr_sa,midyr_sa);
+ unfill z11l--z11r--(x11r,(matra_f-matra_t)*h)--(0,(matra_f-matra_t)*h)--(0,y11l)--cycle;
+ numeric ww,hh,hrise;
+ ww=x11l+rindent; hh=h-y11r; hrise = matra_f*(h-hh);
+ ka(0,hrise,ww,hh);
+ ka(0,hrise,ww,hh);
+ penlabels(11);
+endchar;
+
+beginchar(189,27u#,stht#,stdp#); "khiyo + m";
+ numeric ww,th; ww = 22/27w; th = 60;
+ khiyo(0,0,ww,h);
+ matra(0,w);
+ z11l = (ballx,bally); penpos11(.5balld,th);
+ z12 = (w-rindent,matra_h*h);
+ hookstem(z11r,z11l,z12,th-70,th-90);
+ penlabels(11,12);
+endchar;
+
+
+beginchar(190,13u#,stht#,stdp#); "g + g";
+ numeric xstem,ww,hh,hrise;
+ xstem = ww = w-rindent; hh = .67h; hrise = matra_h*(h-hh);
+ matra(xstem,w);
+ stem(xstem);
+ ga_(0,hrise,ww,hh);
+ ga_(0,-.1h,ww,hh);
+endchar;
+
+beginchar(192,14u#,stht#,stdp#); "ch + r";
+ numeric hh,hrise; hh=.8h;
+ hrise = matra_f*(h-hh);
+ cha(0,hrise,w,hh);
+ matra(0,w);
+ z1 = (w-rindent,0); z2 = (0,.2h);
+ Ebase(z1,z2,.06h);
+ halfstem(x1,0,.18h);
+endchar;
+
+beginchar(193,13u#,stht#,stdp#); "ch + W";
+ numeric hh,hrise,hb,wb,shxb;
+ hh=.7h; hrise = matra_f*(h-hh);
+ hb = .4h; wb = .5w; shxb = .15w;
+ cha(0,hrise,w,hh);
+ matra(0,w);
+ ba(shxb,0,wb,hb);
+endchar;
+
+beginchar(194,24u#, stht#,stdp#); "j+j";
+ numeric hrise,hha,hhb,ww,width,xshift,yshift;
+ ww = .7w; hha = .6h; hrise = matra_h*(h-hha); width = .18ww;
+ xshift = .31w; hhb = .8h; yshift = matra_f*(h-hhb);
+ ja_bare(0,hrise,7/8*37/56ww,hha);
+ z1'l = (topl_ja,matra_h*h);
+ z1'r = (topr_ja,matra_h*h);
+ ja_full(xshift,0,ww,hhb);
+ z2'l = (topl_ja+xshift,matra_h*hhb);
+ z2'r = (topr_ja+xshift,matra_h*hhb);
+ matra(0,w);
+ penstroke z1'e..tension1.2..{right}z2'e;
+ penlabels(1',2');
+endchar;
+
+beginchar(195,24u#, stht#,stdp#); "j+j+W";
+ numeric hrise,hha,hhb,ww,width,xshift,yshift;
+ ww = .7w; hha = .6h; hrise = matra_f*(h-hha); width = .18ww;
+ xshift = .25w; hhb = .8h; yshift = matra_f*(h-hhb);
+ ja_bare(0,hrise,7/8*37/56ww,hha);
+ ja_full(xshift,yshift,ww,3/4hhb);
+ matra(0,w);
+ z11r = (.5ww,matra_f*h-.5matra_thickness); penpos11(.5width,0);
+ z12 = z11 + (xshift,-yshift); penpos12(width,0);
+ z13 = .5[z11,z12] + (0,-.04h); penpos13(.8width,0);
+ penstroke z11e..z13e..z12e;
+ ba_(.45w,0,.35w,.35h);
+ halfstem(.8w,.3h,0);
+ penlabels(11,12,13);
+endchar;
+
+beginchar(196,20u#, stht#,stdp#); "j+ina";
+ numeric ww; ww = 37/56w;
+ ja_bare(0,0,ww,h);
+ matra(0,w);
+ z11l = (topl_ja,matra_h*h);
+ z11r = (topr_ja,matra_h*h);
+ z12r = (midlx_ja,midly_ja);
+ z12l = (midrx_ja,midry_ja); z12 = .5[z12l,z12r];
+ penstroke z11e..z12e;
+ clover(z12,w-ww,.23h,.08h);
+ penlabels(11,12,13);
+endchar;
+
+beginchar(197,18u#, stht#,stdp#); "j+r";
+ numeric width,hrise,hh,ww;
+ hh = .84h; hrise = matra_f*(h-hh); width = .18w;
+ ja_bare(0,hrise,37/56w,hh);
+ matra(0,w);
+ z7r = (.5w,matra_f*h-.5matra_thickness); penpos7(.5width,0);
+ z8 = (.68w,.54hh+hrise); penpos8(.5width,90);
+ z9 = (.84w,.54hh+hrise); penpos9(.7width,80);
+ penstroke z7e..z8e..z9e;
+ z10= (.79w,.18h); penpos10(.5length(z9l-z9r),-45);
+ z11= (.84w,0);penpos11(.5length(z9l-z9r),-30);
+ x12r = .96w; y12r = y9l;
+ z12l = z9r;
+ penstroke z12e..z10e{down}..z11e;
+ z13 = (.03w,.22h);
+ Ebase(z11,z13,.07h);
+ penlabels(7,8,9,10,11,12,13);
+endchar;
+
+beginchar(198,18u#, stht#,stdp#); "j+W";
+ numeric width,hrise,hj,hb,wb,ofxb;
+ hj = .8h; hrise = matra_f*(h-hj); width = .18w;
+ hb = .5h; wb = .4w; ofxb = x10-wb;
+ ja_bare(0,hrise,37/56w,hj);
+ matra(0,w);
+ z7r = (.5w,matra_f*h-.5matra_thickness); penpos7(.5width,0);
+ z8 = (.68w,.54hj+hrise); penpos8(.5width,90);
+ z9 = (.84w,.54hj+hrise); penpos9(.7width,80);
+ penstroke z7e..z8e..z9e;
+ z10= (w-1.3rindent,matra_f*hb); penpos10(stem_width,0);
+ x11r = .96w; y11r = y9l;
+ z11l = z9r;
+ penstroke z11e..z10e{down};
+ ba(x10-wb,0,wb,hb);
+ penlabels(7,8,9,10,11);
+endchar;
+
+beginchar(199,17u#, stht#,stdp#); "ina+ca";
+ numeric hrise,hh,xstem,ww,clovh;
+ xstem = .35w; hh = .4h; hrise = matra_f*(h-hh); ww = w-xstem;
+ clovh = .18h;
+ Estem(lindent,hrise,xstem,hh);
+ ca(xstem,0,ww,matra_f*h);
+ z11 = (xstem+lindent,matra_f*h-clovh);
+ clover(z11,.6ww,clovh,.13hh);
+ penlabels(11);
+endchar;
+
+beginchar(200,16u#, stht#,stdp#); "ina+cha";
+ numeric hrise,hh,xstem,ww,clovh;
+ xstem = .3w; hh = .4h; hrise = matra_f*(h-hh); ww = w-xstem;
+ clovh = .2h;
+ Estem(lindent,hrise,xstem,hh);
+ cha(xstem,0,ww,matra_f*(h-hh)/matra_h);
+ z11 = (xstem+lindent,matra_f*h-clovh);
+ clover(z11,.6ww,clovh,.12hh);
+ penlabels(11);
+endchar;
+
+beginchar(201,18u#, stht#,stdp#); "ina+ja";
+ numeric hrise,hh,hja,xshift,clovh;
+ xshift = .1w; clovh = .18h;
+ hh = .35h; hrise = matra_f*(h-hh);
+ hja = hrise/matra_h; wina = xstem-xshift;
+% The ja at the bottom
+ ja_full(0,0,w,hja);
+% The E-like stem at the top
+ numeric xstem,wina;
+ xstem = .5[topl_ja,topr_ja];
+ wina = xstem - xshift;
+ Estem(xshift,hrise,wina,hh);
+% The clover
+ z11 = (xstem,matra_f*h-.5hh);
+ clover(z11,.65(w-xstem),clovh,.12hh);
+ penlabels(11);
+endchar;
+
+beginchar(202,16u#, stht#,stdp#); "ina+jha";
+% I decided not to use a separate form for this.
+endchar;
+
+beginchar(203,12u#, stht#,stdp#); "Ta+Ta";
+ numeric hh,hrise; hh = .9h; hrise = matra_f*(h-hh);
+ Dha(0,hrise,w,hh);
+ matra(0,w);
+ Tiki(.9w,.1w);
+ z11 = (.65w,.3h);
+ z12 = (.4w,0);
+ z13 = (.05w,.1h);
+ pickup pencircle xscaled stem_width yscaled .6stem_width rotated 120;
+ draw z11..z12..z13;
+ penlabels(11,12,13);
+endchar;
+
+beginchar(204,20u#, stht#,stdp#); "Na+Ta";
+ numeric wNa,wTa,hh,hrise;
+ wNa=9/20w; hh = .7h; hrise = matra_f*(h-hh); wTa = 13/20w;
+ Dha(wNa-lindent,0,wTa,h);
+ Na_(0,hrise,wNa,hh);
+ pickup penrazor scaled matra_thickness rotated matra_slope;
+ draw (wNa-.5stem_width,matra_f*h)..(w,matra_f*h);
+ Tiki(.9w,.3w);
+endchar;
+
+beginchar(205,15u#, stht#,stdp#); "Na+Tha";
+ numeric ww,hh,hrise; ww=.65w; hh = .7h; hrise = matra_f*(h-hh);
+ currentpicture := currentpicture + shape_Tha;
+ currentpicture := currentpicture shifted (.1w,0);
+ Na_(0,hrise,ww,hh);
+ pickup penrazor scaled matra_thickness rotated matra_slope;
+ draw (ww,matra_f*h)..(w,matra_f*h);
+endchar;
+
+beginchar(206,18u#, stht#,stdp#); "N+D";
+ numeric hh,hrise;
+ hh = .65h; hrise = matra_f*(h-hh);
+ Da(0,0,w,matra_f*h,.6);
+ Na_(0,hrise,.5w,hh);
+ matra(.5w,w);
+endchar;
+
+beginchar(207,17u#, stht#,stdp#); "N+D+R";
+ numeric wDa,hDa,hNa,Darise,Narise;
+ hNa = .65h; wDa = w; hDa = .9h;
+ Narise = matra_f*(h-hNa); Darise = matra_f*(h-hDa);
+ numeric Ewidth; Ewidth = .05h;
+ Da(w-wDa,Darise,wDa,matra_f*hDa,.6);
+ Na_(0,Narise,.5w,hNa);
+ x1 = w-rindent; y1=0;
+ z3 = (.05w,.15h);
+ Ebase(z1,z3,Ewidth);
+ halfstem(x1,.28h,y1-.5Ewidth);
+ matra(.5wDa,w);
+endchar;
+
+beginchar(208,13u#, stht#,stdp#); "N+N";
+ numeric ww,hh,hrise; ww = w-rindent; hh=.8h; hrise = matra_f*(h-hh);
+ matra(ww,w);
+ stem(ww);
+ Na_(0,hrise,ww,hh);
+ Na_(0,-.18h,ww,hh);
+endchar;
+
+beginchar(209,17u#, stht#,stdp#); "t+t";
+ O(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar(210,14u#, stht#,stdp#); "t+t+W";
+ numeric hh,hrise,wba,hba,shiftba;
+ hh = .6h; hrise = (matra_h-matra_t)*(h-hh);
+ wba = .5w; hba = .48h; shiftba = .2w;
+ O(0,hrise,w,hh);
+ ba(shiftba,0,wba,hba);
+ matra(0,w);
+endchar;
+
+beginchar(211,15u#, stht#,stdp#); "t+th";
+ numeric xstem,balld,phi,height;
+ balld = .18h; phi=65; xstem=w-rindent; height = matra_f*h;
+ z1 = (.17w,.56h);
+ fill fullcircle scaled balld shifted (z1);
+ z2l = z1 + .5balld * dir (-179); z2r = z1;
+ z3l = (.05w,.63h);
+ z3r = (.1w,.6h);
+ z4l = (.28w,matra_h*h); penpos4(.08h,-90);
+ z6l = (.56w,y4l); penpos6(length(z4r-z4l),-90);
+ y5l = y4l-.5balld; x5l = .5[x4l,x6l]; penpos5(.09h,-90);
+ penstroke z2e{up}..{right}z4e..{dir -phi}z5e;
+%
+ z7r = (.64w,.52h); penpos7(.08w,180);
+ z8r = (5/42w,27/50height);
+ z8l = (8.5/42w,20/50height);
+ penstroke z5e{dir phi}..z6e{right}..z7e..{left}z8e;
+ z9 = (xstem,height);
+ hookstem(z8r,z8l,z9,0,0);
+ matra(xstem,w);
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(212,15u#, stht#,stdp#); "t+n";
+ numeric xstem,xshift,hh,hrise,nafrac;
+ xstem = w-rindent; xshift = .15w; hh = .7h; hrise = matra_f*(h-hh);
+ nafrac = .42;
+ matra(0,w);
+ ta(.05w,hrise,.9w,matra_f*hh);
+ na(xshift,0,.9w-xshift,nafrac*h,.35/nafrac);
+endchar;
+
+beginchar(213,17.5u#, stht#,stdp#); "t+r";
+ E(0,0,w,.94h);
+ matra(0,w);
+endchar;
+
+beginchar(214,16u#, stht#,stdp#); "d+d";
+ numeric wbar;
+%% Initial definitions
+ z1 = (lindent,matra_f*h); penpos1(stem_width,0);
+ z2l = (x1l,.43h);
+ z2r = (x1r,.35h);
+ wbar = length(z2r-z2l);
+%% The first diagonal line
+ z3l = (.5w,.65h); z3l-z3r=z2l-z2r; z3 = .5[z3l,z3r];
+ penstroke z2e..z3e;
+%% The first hanging line
+ x4 = .1[x3l,x2l]; y4 = .5y2l;
+ penpos4(.4wbar,angle(z3l-z2l));
+ penstroke z3e..{down}z4e;
+ currentpicture := currentpicture + currentpicture shifted (z4l-z2l - ((y2l/h)*slantval*w,0));
+%% The vertical bar at the left
+ penstroke z1e..z2e;
+ matra(0,w);
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(215,12u#, stht#,stdp#); "d+bh";
+ numeric hh,hrise; hh = .65h; hrise = matra_f*(h-hh);
+ da(0,hrise,w,hh);
+ bha(0,-.1hh,w,matra_f*hh);
+ matra(0,w);
+endchar;
+
+beginchar(216,12u#, stht#,stdp#); "d+W";
+ matra(0,w);
+%% The vertical bar at the left
+ z1 = (lindent,matra_f*h); penpos1(stem_width,0);
+ z2l = (x1l,.4h);
+ z2r = (x1r,.32h);
+ penstroke z1e..z2e;
+%% The diagonal line
+ y3r = .52h;
+ y3l-y3r=y2l-y2r;
+ x3r-x3l=stem_width;
+ z3 = .5[z3l,z3r];
+ x3 = w - rindent;
+ penstroke z2e{z3-z2r}..z3e;
+%% The "ba"
+ ba(x2l,0,w-rindent-lindent,.55h);
+% Connecting the ba-part and the da-part
+ z4l = (ba_topxl,ba_topy);
+ z4r = (ba_topxr,ba_topy);
+ penstroke z3e..{down}z4e;
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(217,14u#, stht#,stdp#); "dh+W";
+ numeric hh,ba_shift; hh = .7h; ba_shift = 2/14w;
+ currentpicture := currentpicture + shape_dha;
+ ba_remove(ba_shift,0,w-rindent-ba_shift,hh);
+ ba(ba_shift,0,w-rindent-ba_shift,hh);
+ ba(ba_shift,0,w-rindent-ba_shift,hh);
+ ba(ba_shift,0,w-rindent-ba_shift,hh);
+endchar;
+
+beginchar(218,15u#, stht#,stdp#); "n+t";
+ numeric xstem,xshift,hh,hrise,fracrise,wna;
+ xstem = w-rindent; xshift = .1w; hh = .5h; hrise = .3h;
+ fracrise = (matra_f*h-hh)/hrise; wna = .8w;
+ matra(0,w);
+ na(xshift,hrise,wna-xshift,hh,fracrise);
+ ta(.1w,-.03h,xstem,.7matra_f*h);
+endchar;
+
+beginchar(219,13u#, stht#,stdp#); "n+t+r";
+ numeric xshift,hna,hrise,stem_frac;
+ xshift = .06w; hna = .6h;
+ hrise = matra_f*h-(hna*stem_frac); stem_frac = .8;
+ matra(0,w);
+ na(xshift,hrise,w-xshift,hna,stem_frac);
+ E(0,0,w,.6h);
+endchar;
+
+beginchar(220,13u#, stht#,stdp#); "n+t+W";
+ numeric hh,hrise,xstem,xshift,bashift;
+ hh = .8h; hrise = matra_f*(h-hh); xstem = w-rindent; xshift = .06w;
+ bashift = .3w;
+ matra(0,w);
+ na(xshift,.25hh+hrise,w-xshift,.6hh,.8);
+ ta(0,hrise,xstem+.1w,.5hh);
+ ba(.7bashift,-.05h,xstem-bashift,.4h);
+endchar;
+
+beginchar(221,21u#, stht#,stdp#); "n+d";
+ numeric wna,hna,hrise;
+ wna=1/3w; hna = 33/50matra_f*h;
+ hrise = matra_f*h-hna;
+ matra(0,w);
+ na(0,hrise,wna+lindent+rindent,hna,1);
+ da(wna,0,w-wna,h);
+ matra(0,w);
+ picture shape_nd; shape_nd = currentpicture;
+endchar;
+
+beginchar(222,21u#, stht#,stdp#); "n+d+R";
+ currentpicture := currentpicture + shape_nd;
+ z1 = (w-rindent+.5stem_width,0); z2 = (.04w,.3h);
+ Ebase(z1,z2,.06h);
+endchar;
+
+
+beginchar(223,14.5u#, stht#,stdp#); "n+n";
+ numeric xstem,ww,hh; xstem = ww = w-rindent; hh=.6h;
+ matra(0,w);
+ na(0,0,w,hh,.8);
+ na(0,.25h,w,hh,.8);
+endchar;
+
+beginchar(224,13u#, stht#,stdp#); "n+W";
+ numeric xstem,ww,hh,hrise,bashift;
+ xstem = ww = w-rindent; hh=.5h; hrise = matra_f*h-hh; bashift = .15w;
+ matra(0,w);
+ na(0,hrise,w,hh,1);
+ ba(bashift,0,ww-bashift,.6h);
+endchar;
+
+beginchar(225,14u#, stht#,stdp#); "p+t";
+ numeric hrise,hh,xstem,xshift; xstem = w-rindent; xshift = .08xstem;
+ hh = .68h; hrise = matra_f*(h-hh);
+ pa_(xshift,hrise,xstem-xshift,hh);
+ ta(.09w,-.03h,.9w,.49h);
+ halfstem(xstem,matra_f*h,.33h);
+ matra(xstem,w);
+endchar;
+
+beginchar(226,14u#, stht#,stdp#); "p+p";
+ numeric ww,hh,hrise; ww=w-rindent; hh=.7h;
+ hrise = matra_f*(h-hh);
+ pa_(0,hrise,ww,hh);
+ pa_(0,-.08h,ww,hh);
+ matra(ww,w);
+ stem(ww);
+endchar;
+
+beginchar(227,18.5u#, stht#,stdp#); "ph+r";
+ numeric wpha; wpha = 28/37w;
+ currentpicture := currentpicture + shape_pha;
+ z1 = (wpha-rindent+.5stem_width,0);
+ z2 = (0,.2h);
+ Ebase(z1,z2,.06h);
+endchar;
+
+beginchar(228,18.5u#, stht#,stdp#); "ph+l";
+ numeric wpha; wpha = 28/37w;
+ currentpicture := currentpicture + shape_pha;
+ z1 = (wpha-rindent,0);
+ z2 = (0,.2h);
+ la_(0,-.2h,wpha-rindent,.6h);
+endchar;
+
+beginchar(229,20u#, stht#,stdp#); "b+j";
+ numeric ww, hh, hrise; ww = .4w; hh = .54h; hrise = matra_f*(h-hh);
+ ja_full(0,0,w,h);
+ ba_remove(0,hrise,ww,hh);
+ ba(0,hrise,ww,hh);
+ ba(0,hrise,ww,hh);
+ ba(0,hrise,ww,hh);
+ matra(0,w);
+endchar;
+
+
+
+beginchar(230,14u#, stht#,stdp#); "b+b";
+ numeric xstem,hh,hrise;
+ xstem = w - rindent; hh = .75h; hrise = matra_f*(h-hh);
+ ba(0,hrise,xstem,hh);
+ ba_remove(0,0,xstem,hh);
+ ba(0,0,xstem,hh);
+ ba(0,0,xstem,hh);
+ ba(0,0,xstem,hh);
+ matra(0,w);
+endchar;
+
+beginchar(231,17.5u#, stht#,stdp#); "bh+r";
+ numeric balld,height;
+ balld = .25w; height=matra_f*h;
+% The circle
+ z4 = (w-rindent,25/50height); penpos4(stem_width,0);
+ x1r = .5x4; y1r = 34/50height; penpos1(.5balld,60);
+ fill fullcircle scaled balld shifted (z1r);
+% The connector between the circle and the stem
+ z2l = (.7x4,26/50height); z2r = (32/54w,31/50height);
+ x3r = 42/54w; y3r = 39.5/50height; penpos3(stem_width,100);
+ penstroke z1e..z2e..z3e;
+ fill z3r{right}..{down}z4r--z4l{up}..z3l--cycle;
+% The wavy line
+ z5 = (.51w,.18h); penpos5(6/50height,90);
+ z6 = (.27w,.21h); penpos6(6/50height,90);
+ z7 = (4/48w,24/50height); penpos7(3/50height,0);
+ z8 = (6.5/48w,33/50height); penpos8(2/50height,-30);
+ penstroke z5e{left}..z6e..z7e..tension1.2..z8e;
+ hookstem(z5r,z5l,z4,0,0);
+ penlabels(1,2,3,4,5,6,7,8);
+ matra(0,w);
+endchar;
+
+beginchar(232,13u#, stht#,stdp#); "m+b";
+ numeric xstem,hh,hrise,bashift;
+ xstem = w - rindent; hh = .65h; hrise = matra_f*(h-hh); bashift = .1w;
+ ba(bashift,0,xstem-bashift,hh);
+ ma_(0,hrise,xstem+rindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(233,16u#, stht#,stdp#); "m+bh";
+ numeric hh; hh = .52h;
+ bha(0,0,w,hh);
+ currentpicture := currentpicture + shape_halfma shifted (.08w,0);
+ matra(0,w);
+endchar;
+
+beginchar(234,17u#, stht#,stdp#); "l+l";
+ numeric hh,xstem;
+ xstem = w-rindent; hh = .85h;
+ la_(0,.15h,xstem,hh);
+ la_(0,-.2h,xstem,hh);
+ stem(xstem);
+ matra(0,w);
+endchar;
+
+beginchar(235,20u#, stht#,stdp#); "Sh+T";
+ numeric hh,hrise,Tashift;
+ hh = .75h; hrise = matra_f*(h-hh); Tashift = .4w;
+ Sha_(0,hrise,Tashift+lindent-.5stem_width,hh);
+ Dha(Tashift,0,w-Tashift,h);
+ matra(0,w);
+ Tiki(.9w,Tashift);
+endchar;
+
+beginchar(236,15u#, stht#,stdp#); "Sh+Th";
+ numeric hh,hrise;
+ hh = .65h; hrise = matra_f*(h-hh);
+ Sha_(0,hrise,.55w,hh);
+ currentpicture := currentpicture + shape_Tha shifted (.08w,0);
+ matra(0,w);
+endchar;
+
+beginchar(237,22u#, stht#,stdp#); "Sh+N";
+ numeric wSha; wSha = 15/22w;
+ currentpicture := currentpicture + shape_Sha;
+ matra(0,wSha-rindent+.5stem_width);
+ z1 = (wSha-rindent+.25stem_width,.5h);
+ clover(z1,w-wSha,matra_f*h-y1,.08h);
+endchar;
+
+beginchar(238,16u#, stht#,stdp#); "s+k";
+ numeric hrise,hh,xstem,xshift;
+ xstem = w-2rindent; hh = .5h; hrise = matra_h*h-hh; xshift=.2w;
+ halfstem(xstem,matra_f*h,.35h);
+ sa_(0,hrise,xstem,hh);
+ ka(xshift,0,xstem+2rindent-xshift,.65h);
+ matra(0,w);
+endchar;
+
+beginchar(239,15u#, stht#,stdp#); "s+t";
+ numeric hrise,hh,xstem,xshift;
+ xstem = w-rindent; hh = .45h; hrise = matra_h*h-hh;
+ xshift=0w;
+ halfstem(xstem,matra_f*h,.33h);
+ sa_(xshift,hrise,xstem-xshift,hh);
+ ta(.09w,-.03h,.9w,.65matra_f*h);
+ matra(0,w);
+endchar;
+
+beginchar(240,14u#, stht#,stdp#); "s+t+r";
+ numeric hrise,hh,xstem,xshift;
+ xstem = w-rindent; hh = .45h; hrise = matra_h*h-hh; xshift=-.04w;
+ halfstem(xstem,matra_f*h,.33h);
+ sa_(xshift,hrise,xstem-xshift,hh);
+ E(0,0,w,.6h);
+ matra(0,w);
+endchar;
+
+beginchar(241,14u#, stht#,stdp#); "H+N";
+ numeric ww,shiftNa,hHa,hrise;
+ ww = .6w; shiftNa = .1w; hHa = .85h; hrise = matra_f*(h-hHa);
+ Na_(shiftNa,-.22h,ww,.6h);
+ Ha(0,hrise,w,matra_f*hHa);
+ halfstem(ww+shiftNa,.25h,-ha_dip);
+ matra(0,w);
+endchar;
+
+beginchar(242,21u#, stht#,stdp#); "H+n";
+ numeric ww,hh;
+ ww = .4w; hh = .7h;
+ na_(-.0w,.2h,ww,hh);
+ currentpicture := currentpicture reflectedabout ((w/2,0),(w/2,h)) shifted (1.2w*slantval,0);
+ Ha(0,0,14.5/21w,matra_f*h);
+ matra(0,w);
+endchar;
+
+beginchar(243,22u#, stht#,stdp#); "H+m";
+ numeric xstem,balld,thinness,height,theta;
+ xstem=42/63w; thinness=.45; height = matra_f*h; balld=11/50height;
+ theta = -60;
+ matra(0,w);
+% The two balls
+ z0 = (xstem,height);
+ z1= (11/63w,34.5/50height);
+ z2= (24/63w,20/50height);
+ fill fullcircle scaled balld shifted (z1);
+ fill fullcircle scaled balld shifted (z2);
+% Points on the two circles
+ z1a = z1 + .5 * balld * dir(0);
+ z1b = thinness[z1a,z1];
+ z1c = z1 + .5balld * dir(90);
+ z2a = z2 + .5balld * dir(0);
+ z2b = thinness[z2a,z2];
+ z2c = z2 + .5balld * dir(90);
+% The line from the matra to the first dot
+ z6l = (7/63w,matra_h*h); penpos6(6.5/63w,0);
+ fill z6l..{down}z1b--z1a{up}..z6r--cycle;
+% The line between the two dots
+ fill z1c{right}..{down}z2a--z2b{up}..tension0.8..{left}z1b--cycle;
+% The stem
+ hookstem(z2c,z2a,z0,0,0);
+% This part is for the ball at the end of the hook
+ z3r = (w-rindent,0);
+ x3l = x5l;
+ y3l = stem_width/sind(stem_slope);
+% The hook
+ z4l = (xstem,34.5/50height); penpos4(.5balld,90);
+ z5r = (w-rindent,.9[y3l,y4l]); penpos5(stem_width,0);
+ z7 = (24/63w,matra_h*h); penpos7(4/63w,0);
+ penstroke z3e{up}..{up}z5e..z4e{left};
+ fill z4l--z1a--z1c--z4r--cycle;
+ penlabels (0,1,1a,1b,1c,2,2a,2b,2c,3,4,5,6,7);
+endchar;
+
+beginchar(244,14u#, stht#,stdp#); "H+r";
+ numeric hHa,hrise;
+ hHa = .85h; hrise = matra_f*(h-hHa);
+ Ha(0,hrise,w,matra_f*hHa);
+ z1 = (w-rindent,0); z2 = (.02w,.23h);
+ Ebase(z1,z2,.06h);
+ halfstem(x1-.5stem_width,.2h,0);
+ matra(0,w);
+endchar;
+
+beginchar(245,14u#, stht#,stdp#); "H+l";
+ numeric ww,hh,hHa,hrise,lashift;
+ ww = w-rindent; hh = .6h; hHa = .85h; hrise = matra_f*(h-hHa);
+ lashift = -.07w;
+ la_(lashift,-.18h,ww-lashift,hh);
+ Ha(0,hrise,w,matra_f*hHa);
+ halfstem(ww,.2h,-ha_dip);
+ matra(0,w);
+endchar;
+
+beginchar(246,14u#, stht#,stdp#); "H+W";
+ numeric hrise,hHa;
+ hHa = .85h; hrise = matra_f*(h-hHa);
+ matra(0,w);
+ Ha(0,hrise,w,matra_f*hHa);
+ ba(.13w,0,.5w,.42h);
+endchar;
+
+
+%%% End of bangjuk.mf
+
diff --git a/language/bengali/bangtex/mf/bangkaar.mf b/language/bengali/bangtex/mf/bangkaar.mf
new file mode 100644
index 0000000000..b890e9fc7f
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangkaar.mf
@@ -0,0 +1,146 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangkaar.mf: METAFONT file that defines the Bangla conjunct vowels
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+beginchar("a",7u#, stht#,stdp#); "A-kar";
+ numeric xstem; xstem=.45w;
+ matra(0,w);
+ stem(xstem);
+endchar;
+
+
+beginchar("i",7u#, stht#, stdp#); "hraswa i-kar";
+ numeric xstem,height; xstem = .5w; height = matra_f*h;
+ matra(0,w);
+ stem(xstem);
+ pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+ z1 = (xstem,matra_h*h);
+ bot z6 = (25/20w,70/50*matra_f*h);
+ lft x5 = 0; y5=.3[y1,y6];
+ z7 = (53/20w,57/50height);
+ draw z1..tension1.5..z5..{right}z6..tension1.2..z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(140, 6u#,stht#,stdp#); "dirgha i-kar";
+ numeric xstem,height; xstem = w-rindent; height = matra_f*h;
+ matra(-rindent,w);
+ stem(xstem);
+ pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+ z3 = (xstem,matra_h*h);
+ z5 = (-20/17w,73/50height);
+ z6 = (-33/17w,65/50height);
+ z7 = (-21/17w,59/50height);
+ lft z8 = (-rindent,matra_h*h);
+ draw z3{up}..{left}z5{left}..{down}z6{down}..z7{right}..{dir -120}z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("u",0stwd#,stht#,stdp#); "hraswa-u-kar";
+ numeric width; width = stem_width/abs(sind(stem_slope));
+ z1l = (-rindent-.5stem_width,stem_width*sind(stem_slope));
+ z1r = (-rindent+.5stem_width,0);
+ z2r = (-rindent,-.25d); penpos2(.5width,0);
+ z3 = (-2rindent,-.6d); penpos3(.5width,-90);
+ z4 = (-3rindent,-.3d); penpos4(.5width,180);
+ z5 = (-2.2rindent,0); penpos5(.8width,90);
+ z6 = (+1.1rindent,-d); penpos6(.5width,0);
+ fill z1r{down}..{left}z3r..z4r..{right}z5r{right}..z2r..tension 2..z6r--z6l--z2l..{up}z1l--cycle;
+ unfill z3l..z4l..{right}z5l..{dir -30}z2l{dir -130}..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(142,0stwd#,stht#,stdp#); "dirgha-u-kar";
+ numeric width; width = stem_width/abs(sind(stem_slope));
+ z1r = (-rindent-.5stem_width,stem_width*sind(stem_slope));
+ z1l = (-rindent+.5stem_width,0);
+ z2r = (0,-.25d); penpos2(.5width,0);
+ z3 = (-1.5rindent,-.6d); penpos3(.6width,-90);
+ z4 = (-2.7rindent,-.3d); penpos4(.6width,180);
+ z5 = (-2.2rindent,0); penpos5(.5width,90);
+ z6 = (+1.5rindent,-d); penpos6(.5width,0);
+ fill z1r..z5r..z4r..z3r..z2r--z2l..z3l..z4l..z5l..{right}z1l--cycle;
+ penstroke z2e--z6e;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(144,0stwd#,stht#,stdp#); "ri-kar";
+z1 = (w-0.9pt,0); z2 = (w-2.1pt,-1/3d); z3 = (w,-d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2--z3;
+endchar;
+
+beginchar(146,8u#,stht#,stdp#); "ae-kar";
+ numeric balld; balld = 1.5dot_diam;
+ z1 = (w-.5balld,.5balld);
+ fill fullcircle scaled balld shifted z1;
+ z3l = (.5w,matra_f*h-.5matra_thickness); z3r = (w,y3l);
+ z4l = (.15w,.5matra_f*h); z4r = z4l + (.15w,0);
+ z5l = (x1,0); z5r = z1;
+ penstroke z3e..{down}z4e..{right}z5e;
+ picture shape_ekar; shape_ekar = currentpicture;
+ matra(0,w);
+ z9 = (0,.4h); z10 = (.8w,y9);
+ pickup penrazor xscaled 1.5stem_width rotated 90;
+ draw z9--z10;
+ matra(0,w);
+ penlabels (1,3,4,5,9,10);
+endchar;
+
+beginchar("e",8u#,stht#,stdp#); "e-kar";
+ currentpicture := shape_ekar;
+ matra(0,w);
+endchar;
+
+beginchar(148,8u#,stht#,stdp#); "oi-kar";
+ currentpicture := shape_ekar;
+ Tiki(.9w,0);
+ matra(0,w);
+endchar;
+
+
+beginchar("o",0,stht#,stdp#); "o-kar";
+endchar;
+
+beginchar(150,6u#,stht#,stdp#); "ou-kar";
+ numeric xstem; xstem=.5w;
+ Tiki(xstem,-3rindent);
+ matra(0,w);
+ stem(xstem);
+endchar;
+
+
+%%% End of bangkaar.mf
+
diff --git a/language/bengali/bangtex/mf/banglig.mf b/language/bengali/bangtex/mf/banglig.mf
new file mode 100644
index 0000000000..9b621c68bc
--- /dev/null
+++ b/language/bengali/bangtex/mf/banglig.mf
@@ -0,0 +1,183 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% banglig.mf: METAFONT file defining ligature tables for Bangla
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% double dNNarhi
+ligtable ".": "." =: 14;
+
+%% dot dot dot
+ligtable 14 : "." =: 15;
+
+%% peT-kaTa "e"
+ligtable "a": "a" =: 146;
+ligtable "A": "A" =: 147;
+
+%% bha
+ligtable "b": "h" =: "v", "/" =: 173;
+
+%% cha
+ligtable "c": "h" =: "q", "/" =: 163;
+
+%% dha, da + (fala)
+ligtable "d": "h" =: "z", "R" =: 22, "W" =: 216, "M"=:| 170, "/" =: 170;
+
+%% Dha, Da + (fala)
+ligtable "D": "h" =: "Z", "/" =: 167, "L" =:| 167, "R" =:| 167, "W" =:| 167;
+
+%% pha + (fala)
+ligtable "f": "R" =: 227, "L" =: 228;
+
+%% gha
+ligtable "g": "h" =: "G", "/" =: 161;
+
+%% Ha + (fala)
+ligtable "H": "R" =: 244, "W" =: 246, "M" =: 243, "L" =: 245;
+
+%% dirgha-i
+ligtable "i": "i" =: 140;
+ligtable "I": "I" =: 141;
+
+%% jha, ja + (fala)
+ligtable "j": "h" =: "C", "R" =: 197, "W" =: 198, "/" =: 164;
+
+%% kha, khiyo, ka + (fala)
+ligtable "k": "h" =: "x", "K" =: "X", "W" =: 186, "R" =: 184, "L" =: 185, "M" =:| 160, "/" =: 160;
+
+%% la +
+ligtable "l": "/" =: 176, "M" =:| 176;
+
+%% ma +
+ligtable "m": "/" =: 174, "M" =:| 174, "L" =:| 155, "W" =: 232;
+
+%% anuswar, unga, ina, candro-bindu
+ligtable "N": "G" =: 130, "J" =: 131, "N" =: 132, "/" =: 168;
+
+%% na +
+ligtable "n": "/" =: 171, "M" =:| 171, "W" =: 224;
+
+%% OI, OU
+ligtable "o": "i" =: 148, "u" =: 150;
+ligtable "O": "I" =: 149, "U" =: 151;
+
+%% pha, pa + (fala)
+ligtable "p": "R" =: 23, "h" =: "f", "/" =: 172, "M" =:| 172;
+
+%% murdhanya Sha +
+ligtable "P": "/" =: 178;
+
+%% cha + (fala)
+ligtable "q": "R" =: 192, "W" =: 193;
+
+%% ref, day-shunyo ra, ri, asamiya ra
+ligtable "r": "/" =: 175, "h" =: 136, "R" =: 144, "W" =: "B";
+ligtable "R": "R" =: 145;
+
+%% talabya sha, dantyo sa + (fala)
+ligtable "s": "h" =: "S", "/" =: 179, "M" =:| 179, "L" =:| 156, "W" =:| 156, "|" =:| 156;
+
+%% sha + (fala), murdhonyo sha
+ligtable "S": "R" =: 24, "h" =: "P", "/" =: 177, "M" =:| 177, "|" =: "S";
+
+%% tha, ta + (fala)
+ligtable "t": "h" =: "Q", "R" =: 213, "W" =:| 169, "L" =:| 169, "M" =:| 169, "/" =: 169;
+
+%% Tha, Ta + (fala)
+ligtable "T": "h" =: "F", "R" =:| 166, "W" =:| 166, "/" =: 166, "i" kern 3u#;
+
+%% dirgho-u
+ligtable "u": "u" =: 142;
+ligtable "U": "U" =: 143;
+
+%% bha + (fala)
+ligtable "v": "R" =: 231, "L" =:| 154, "W" =:| 154;
+
+%% khiyo + (fala)
+ligtable "X": "M" =: 189;
+
+%% dha + wa
+ligtable "z": "W" =: 217;
+
+%% double quotation
+ligtable "`": "`" =: 2;
+ligtable "'": "'" =: 1;
+
+%% endash, emdash
+ligtable "-": "-" =: 8;
+ligtable 8: "-" =: 9;
+
+ligtable 47: "n" =: 26, "N" =:25;
+ligtable 58: "/" =: 13;
+ligtable 124: "W" =: 153;
+ligtable 130: "/" =: 162;
+ligtable 131: "/" =: 165;
+ligtable 132: "G" =: "K";
+ligtable 136: "h" =: 137, "u" kern 5u#;
+ligtable 137: "u" kern 5u#;
+ligtable 155: "n" |=: 26;
+ligtable 160: "k" =: 180, "t" =: 181, "T" kern -7u#, "n" =: 183, "M" kern -7u#, "s"=: 187;
+ligtable 161: "g" =: 190, "Y" =: 196, "m" |=: "M", "n" |=: 26, 26 =:| "g";
+ligtable 164: "j" =: 194;
+ligtable 165: "c" =: 199, "j" =: 201;
+ligtable 166: "T" =: 203, "W" kern 4.5u#;
+ligtable 167: "D" kern -3u#;
+ligtable 168: "T" =: 204, "D" =: 206, "N" =: 208, "H" =: 241;
+ligtable 169: "t" =: 209, "n" =: 212, "r" =: 213, "M" |=: 27,
+27 kern -1u#, "/" =: 133;
+ligtable 170: "d" =: 214, "b" =: 216, "M" |=: 27, 27 kern1u#, "h" |=: 122;
+ligtable 171: "H" =: 242, "t" =: 218, "d" =: 221, "n" =: 223, "h" |=: "Q";
+ligtable 172: "t" =: 225, "p" =: 226, "l" |=: "L", "L" =:| "p", "n" |=: 26, 26 =:| "p";
+ligtable 173: "j" =: 229, "d" kern -3u#, "b" =: 230;
+ligtable 174: "b" =: 232, "n" |=: 26, 26 =:| 155, "m" |=: 77, "l" |=: "L", "L" =:| 155;
+ligtable 176: "l" =: 234, "g" kern 1.5u#, "p" kern .5u#, "m" |=: "M";
+ligtable 177: "l" |=: "L", "L" =:| "S", "n" |=: 26, 26 =:| "S", "m" |=: "M";
+ligtable 178: "T" =: 235, "N" =:237, "m" |=: 77;
+ligtable 179: "t" =: 239, "h" |=: "Q", "k" =: 238, "n" |=: 26, 26 =:| 156;
+ligtable 181: "R" =: 182;
+ligtable 194: "W" =: 195;
+ligtable 199: "h" =: 200;
+ligtable 201: "h" |=: 67, 67 =:| 165;
+ligtable 204: "h" =: 205;
+ligtable 206: "R" =: 207;
+ligtable 209: "W" =: 210, "h" =: 211;
+ligtable 214: "h" =:| 170;
+ligtable 216: "h" =: 215;
+ligtable 218: "R" =: 219, "W" =: 220, "h" =:| 171;
+ligtable 221: "h" |=: 122, 122 =:| 171, "R" =: 222, "W" |=: 216, 216 =:| 171;
+ligtable 232: "h" =: 233;
+ligtable 233: "R" |=: 231, 231 =:| 174;
+ligtable 235: "h" =: 236;
+ligtable 238: "h" |=: "x", "x" =:| 179, "R" |=: 184, 184 =:| 179;
+ligtable 239: "h" =:| 179, "R" =: 240;
+
+%%% End of banglig.mf
diff --git a/language/bengali/bangtex/mf/bangmac.mf b/language/bengali/bangtex/mf/bangmac.mf
new file mode 100644
index 0000000000..684ca8d6b1
--- /dev/null
+++ b/language/bengali/bangtex/mf/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
diff --git a/language/bengali/bangtex/mf/bangnum.mf b/language/bengali/bangtex/mf/bangnum.mf
new file mode 100644
index 0000000000..9677db2d19
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangnum.mf
@@ -0,0 +1,209 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangnum.mf: METAFONT file that defines the Bangla numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar("0",16u#,stht#,stdp#); "The number 0";
+ numeric balld; balld = .55h;
+ z1 = (.5w,matra_f*h/2);
+ golla (z1,balld);
+ penlabels(1);
+endchar;
+
+beginchar("1",16u#,stht#,stdp#); "The number 1";
+ numeric phi,xs,ys; xs = 20/45w; ys = 10/50h;
+ z1 = (13/45w,matra_f*45/50h);
+ z2l = z1 - (.5numball_two,0); penpos2(.8numball_two,0);
+ z3 = (34/45w,matra_f*18/50h); penpos3(3/45w,0);
+ z4 = .5[z3r,(w,y3r)];
+ z5l = (22/45w,matra_f*7/50h);
+ phi = angle(z4-z5l);
+ penpos5(.5ys,phi-90);
+ fill fullcircle scaled numball_two shifted z1;
+ fill z2l{down}..z3l..z5l--z5r..z3r{up}..{up}z2r--cycle;
+ fill fullcircle xscaled xs yscaled ys rotated phi shifted z5l;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("2",16u#,stht#,stdp#); "The number 2";
+ z1 = (17/45w,matra_f*45/50h);
+ z2l = z1 - (.5numball_two,0); penpos2(.8numball_two,0);
+ z3 = (34/45w,matra_f*26/50h); penpos3(3/45w,0);
+ z4l = (22/45w,matra_f*20/50h);
+ z4r = (19/45w,matra_f*14/50h);
+ z5l = (6/45w,matra_f*26/50h);
+ z5r = (10/45w,matra_f*16/50h);
+ z6 = (43/45w,-ha_dip); penpos6(length(z3l-z3r),angle(z5r-z5l));
+ fill fullcircle scaled numball_two shifted z1;
+ fill z2l{down}..{down}z3l..{left}z4l..z5l--z5r..z4r{right}..z3r{up}..{up}z2r--cycle;
+ fill z5l..{z6l-z4l}z6l--z6r{z4r-z6r}..z5r--cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("3",16u#,stht#,stdp#); "The number 3";
+ numeric balld; balld = 1.2numball_one;
+ z1r = (21/45w,matra_f*33/50h); penpos1(.5balld,0);
+ z2l = (25/45w,matra_f*44/50h);
+ z2r = (28/45w,matra_f*39/50h);
+ z5r = (38/45w,matra_f*25/50h);
+ z5l = (41/45w,matra_f*23/50h);
+ z6r = (26/45w,matra_f*12/50h);
+ z6l = (26/45w,matra_f*5.5/50h);
+ z7r = (3.5/45w,matra_f*39/50h);
+ z7l = (1/45w,matra_f*40/50h);
+ fill fullcircle scaled balld shifted z1r;
+ fill z1l{up}..tension0.95..z2l{right}..{down}z5l--z5r{up}..z2r{left}..z1r--cycle;
+ fill z5r{down}..{left}z6r..{z7l-(x2l,0)}z7r--z7l{(x1r,0)-z7r}..tension1.2..z6l{right}..{up}z5l--cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("4",16u#,stht#,stdp#); "The number 4";
+ numeric w_one, w_two; w_one = matra_f*2.5/50h; w_two = 5/45w;
+ z1l = (22/45w,matra_f*48/50h); penpos1(w_one,-90);
+ z2 = (11/45w,matra_f*36/50h); penpos2(w_two,0);
+ z3l = (18/45w,matra_f*24/50h);
+ z3r = (28/45w,matra_f*26/50h); z3 = .5[z3l,z3r];
+ z4 = (35/45w,matra_f*13/50h); penpos4(w_two,0);
+ z5r = (x1,matra_f*h-y1l); penpos5(w_one,-90);
+ z6 = (11/45w,y4); penpos6(w_two,180);
+ z7l = (21/45w,matra_f*22/50h);
+ z7r = (24.5/45w,matra_f*27/50h); z7 = z3;
+ z8 = (34/45w,y2); penpos8(w_two,180);
+ pickup pencircle xscaled (length(z3l-z3r)) yscaled (matra_f*3/50h) rotated (angle(z3r-z3l));
+ penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("5",16u#,stht#,stdp#); "The number 5";
+ z1l = (30/45w,matra_f*48/50h);
+ z1r = (23.5/45w,matra_f*41/50h);
+ z2 = (6.5/45w,matra_f*20/50h); penpos2(4/45w,0);
+ z3l = (22/45w,matra_f*2.5/50h);
+ z3r = (26/45w,matra_f*5/50h);
+ z4l = (35/45w,matra_f*4.5/50h);
+ z5l = (31/45w,matra_f*7/50h);
+ z4r = z5l;
+ z5r = z3r;
+ penstroke z1e..{down}z2e..z3e..z4e;
+ fill z5l--z4l--z3r--cycle;
+ z6l = (24/45w,matra_f*14/50h);
+ z6r = (19/45w,matra_f*18/50h);
+ z7l = (29/45w,matra_f*27/50h);
+ z7r = (x6l,matra_f*30/50h);
+ z8l = (40/45w,matra_f*33/50h);
+ z8r = (x7l,matra_f*33/50h);
+ z9l = (31/45w,matra_f*40/50h);
+ z9r = (25/45w,matra_f*36/50h);
+ penstroke z5e..z6e{up}..z7e..z8e;
+ penstroke z8e..z9e..{up}z1e;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar("6",16u#,stht#,stdp#); "The number 6";
+ z1l = (14/45w,matra_f*43/50h); penpos1(.5numball_two,0);
+ z2l = (16/45w,matra_f*31/50h); penpos2(4/45w,0);
+ z3l = (25/45w,matra_f*21/50h);
+ z3r = (22.5/45w,matra_f*26/50h);
+ z4l = (36/45w,matra_f*29/50h);
+ z4r = (33.5/45w,matra_f*37/50h);
+ z5l = (39/45w,matra_f*22/50h);
+ z5r = (41.5/45w,matra_f*22/50h);
+ z6l = (26/45w,matra_f*10.5/50h);
+ z6r = (26/45w,matra_f*4.5/50h);
+ z7l = (3.5/45w,matra_f*39/50h);
+ z7r = (1/45w,matra_f*40/50h);
+ fill fullcircle scaled numball_two shifted z1l;
+ fill z1l--z2l{z2l-z1l}..z3l..tension2..z4l--z4r..tension2..z3r..z2r..tension3..z1r--cycle;
+ fill z4r..{down}z5r--z5l{up}..z4l--cycle;
+% baTi(z5l,z5r,z6r,z7r);
+ fill z5r{down}..{left}z6r..{z7l-(x2l,y6l)}z7r--z7l{(x2l,y6r)-z7r}..z6l{right}..{up}z5l--cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+
+beginchar("7",16u#,stht#,stdp#); "The number 7";
+ z5r = (33/45w,matra_f*7/50h); penpos5(.5numball_two,0);
+ z4l = (28/45w,matra_f*26/50h); penpos4(stem_width,0);
+ z3' = (x4l,matra_f*30/50h);
+ z3l = (16/45w,y4l);
+ z3r = (x3l,y3');
+ z2l = (6.5/45w,matra_f*34/50h);
+ z2r = (11/45w,matra_f*31/50h);
+ z1l = (19/45w,matra_f*47/50h);
+ z1r = (22/45w,matra_f*43/50h);
+ fill fullcircle scaled numball_two shifted z5r;
+ fill z5l..z4l--z4l{left}..z3l..z2l{up}..{right}z1l..{down}z4r..z5r--cycle;
+ unfill z3'{left}..{left}z3r..z2r..tension1.5..z1r..tension2..cycle;
+ penlabels(1,2,3,3',4,5);
+endchar;
+
+beginchar("8",16u#,stht#,stdp#); "The number 8";
+ z1l = (6/45w,matra_f*43/50h); penpos1(.5numball_two,0);
+ z2r = (x1r,matra_f*27/50h); penpos2(stem_width,0);
+ z4l = (14/45w,matra_f*4/50h);
+ z4r = (x4l,matra_f*9/50h); z4 = .5[z4l,z4r];
+ z3r = (x1r,.7[y2,y4]); penpos3(stem_width,0);
+ z5l = (30/45w,matra_f*20/50h);
+ z5r = (26/45w,matra_f*23.5/50h);
+ z6l = (18/45w,matra_f*32/50h);
+ z6r = (x2r,matra_f*25/50h);
+ z7 = (32/45w,matra_f*28/50h);
+ z8 = (40/45w,matra_f*28.7/50h);
+ z9 = (43/45w,matra_f*33/50h);
+ fill fullcircle scaled numball_two shifted z1l;
+ path p; p = z4l..{up}z5l..tension1.2..{left}z6l{left};
+ fill z1l..{down}z2l..z3l{down}..{right}z4l..p..z2r--z1r--cycle;
+ unfill z6r{down}..{down}z3r..{right}z4r..tension1.8..z5r..tension2..z6r--cycle;
+ z10 = p intersectionpoint (z5r--z7);
+ pickup Tiki_pen;
+ draw z10..z7..z8..z9;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar("9",16u#,stht#,stdp#); "The number 9";
+ z1r = (15/45w,matra_f*7/50h); penpos1(.5numball_one,90);
+ z2l = (17/45w,matra_f*1/2h);
+ z2r = (16/45w,matra_f*22/50h);
+ z3l = (30/45w,matra_f*10/50h);
+ z3r = (25/45w,matra_f*3.5/50h);
+ z4 = (37.5/45w,matra_f*18/50h); penpos4(3/45w,0);
+ z5 = (x3r,matra_f*34/50h); penpos5(matra_f*5/50h,90);
+ z6l = (5/45w,matra_f*43/50h); penpos6(.5numball_two,0);
+ fill z1l{left}..{right}z2l..{down}z3l--z3r{up}..z2r{left}..z1r--cycle;
+ fill z3l..{up}z4l..z5l..{up}z6l--z6r{z4-z6}..z5r..z4r{down}..z3r--cycle;
+ fill fullcircle scaled numball_one shifted z1r;
+ fill fullcircle scaled numball_two shifted z6r;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+%%% End of bangnum.mf
diff --git a/language/bengali/bangtex/mf/bangpunc.mf b/language/bengali/bangtex/mf/bangpunc.mf
new file mode 100644
index 0000000000..7107bf3ba9
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangpunc.mf
@@ -0,0 +1,247 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangpunc.mf: METAFONT file that defines the Bangla punctuation symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar(".",12u#,stht#,stdp#); "dnari (period)";
+ z1 = (w-rindent,0);
+ stem(x1);
+ matra(x1,x1);
+ picture shape_dnari; shape_dnari:=currentpicture;
+ penlabels(1);
+endchar;
+
+beginchar(14,15u#,stht#,stdp#); "double dnari";
+ currentpicture := shape_dnari;
+ currentpicture := currentpicture + currentpicture shifted (2stem_width,0);
+endchar;
+
+beginchar(15,20u#, stht#, stdp#); "Three dots";
+ z1 = (1/4w,0); z2 = (1/2w,0); z3 = (w-x1,0);
+ fill fullcircle scaled dot_diam shifted z1;
+ fill fullcircle scaled dot_diam shifted z2;
+ fill fullcircle scaled dot_diam shifted z3;
+endchar;
+
+beginchar("!",12u#,stht#,stdp#); "exclamation mark";
+ numeric xx; xx = w - rindent;
+ z1 = (xx,matra_f*h); penpos1(.05w,0);
+ z2 = (xx,.65h); penpos2(.2w,0);
+ z3 = (xx,0); penpos3(.01w,0);
+ z0 = (xx,-ha_dip);
+ filldraw z1..z1l..{down}z2l{down}..z3l--cycle;
+ filldraw z1..z1r..{down}z2r{down}..z3r--cycle;
+ fill fullcircle scaled dot_diam shifted z0;
+ penlabels(1,2,3,0);
+endchar;
+
+beginchar(",",0.3stwd#,stht#,stdp#); "comma";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+ draw z1{dir -60}..{dir -130}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(":",0.3stwd#,stht#,stdp#); "colon";
+ z1 = (1/2w,1/6h); z2 = (1/2w,(3/4-1/6)*h);
+ fill fullcircle scaled 1.5pt shifted z1;
+ fill fullcircle scaled 1.5pt shifted z2;
+endchar;
+
+beginchar(";",0.3stwd#,stht#,stdp#); "semi colon";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+ draw z1{dir -60}..{dir -130}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,1.8pt));
+endchar;
+
+beginchar("`",0.3stwd#,stht#,stdp#); "backquote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (1/3w,(3/4-1/9)*h); z2 = (3/5w,h);
+ draw z1{dir 120}..{dir 50}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+endchar;
+
+beginchar("'",0.3stwd#,stht#,stdp#); "quote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/3w,24/25h); z2 = (2/5w,(3/4-1/9-1/25)*h);
+ draw z1{dir -60}..{dir -130}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(1,0.45stwd#,stht#,stdp#); "double quote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/5w,29/30h); z2 = (1/5w,(3/4-1/9-1/30)*h);
+ z1' = (4/5w,29/30h); z2' = (3/5w,(3/4-1/9-1/30)*h);
+ draw z1{dir -60}..{dir -130}z2;
+ draw z1'{dir -60}..{dir -130}z2';
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+ fill fullcircle scaled 1.5pt shifted (z1' + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(2,0.45stwd#,stht#,stdp#); "double backquote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (1/5w,(3/4-1/9)*h); z2 = (2/5w,h);
+ z1' = (3/5w,(3/4-1/9)*h); z2' = (4/5w,h);
+ draw z1{dir 120}..{dir 50}z2;
+ draw z1'{dir 120}..{dir 50}z2';
+ fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+ fill fullcircle scaled 1.5pt shifted (z1' + (0.50pt,0.22pt));
+endchar;
+
+beginchar("/",0.3stwd#,stht#,stdp#); "forward slash";
+ pickup pencircle scaled 0.5pt;
+ z1 = (7/8w,3/4h+2/3d); z2 = (1/8w,-2/3d);
+ draw z1--z2;
+endchar;
+
+beginchar("=",0.7stwd#,stht#,stdp#); "equality sign";
+ pickup pencircle scaled 0.5pt;
+ z3 = (1/10w,(1/4-1/30)*h); z4 = (9/10w,(1/4-1/30)*h);
+ z3' = (1/10w,(1/2-1/100)*h); z4' = (9/10w,(1/2-1/100)*h);
+ draw z3--z4; draw z3'--z4';
+endchar;
+
+beginchar("[",0.20stwd#,stht#,stdp#); "left square bracket";
+ pickup pencircle scaled 0.1pt;
+ z1=(w,h); z2 = (1/3w,h); z3 = (1/3w,-d); z4 = (w,-d);
+ z1 - z1' = (0,0.5pt); z2 - z2' = (-0.5pt,0.5pt);
+ z4 - z4' = (0,-0.5pt); z3 - z3' = (-0.5pt,-0.5pt);
+ filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("]",0.20stwd#,stht#,stdp#); "right square bracket";
+ pickup pencircle scaled 0.1pt;
+ z1=(0,h); z2 = (2/3w,h); z3 = (2/3w,-d); z4 = (0,-d);
+ z1 - z1' = (0,0.5pt); z2 - z2' = (0.5pt,0.5pt);
+ z4 - z4' = (0,-0.5pt); z3 - z3' = (0.5pt,-0.5pt);
+ filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("(",0.28stwd#,stht#,stdp#); "left parenthesis";
+ pickup pencircle scaled 0.1pt;
+ z1 = (8/9w,h); z3 = (8/9w,-d);
+ z2 = (1/4w,1/3h); z2' = z2 + (0.5pt,0);
+ filldraw z2'{up}..{dir 60}z1{dir -130}..{down}z2{down}
+ ..{dir -50}z3{dir 120}..cycle;
+ endchar;
+
+beginchar(")",0.28stwd#,stht#,stdp#); "right parenthesis";
+ pickup pencircle scaled 0.1pt;
+ z1 = (1/9w,h); z3 = (1/9w,-d);
+ z2 = (3/4w,1/3h); z2' = z2 - (0.5pt,0);
+ filldraw z2'{up}..{dir 120}z1{dir -50}..{down}z2{down}
+ ..{dir -130}z3{dir 60}..cycle;
+endchar;
+
+beginchar("*",0.48stwd#,stht#,stdp#); "asterisk";
+ numeric frac; frac = 1/8h;
+ z1 = (1/2w,h); z2 = (1/2w,3/7h);
+ z3 = (1/6w,h-frac); z4 = (5/6w,3/7h + frac);
+ z5 = (1/6w,3/7h+frac); z6 = (5/6w,h - frac);
+ pickup pencircle scaled 0.5pt;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+
+beginchar("+",0.68stwd#,stht#,stdp#); "plus sign";
+ pickup pencircle scaled 0.5pt;
+ z1 = (.1w,.5matra_f*h); z2 = (w-x1,y1);
+ top z3 = (1/2w,matra_f*h); bot z4 = (x3,0);
+ draw z1--z2; draw z3--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar("-",0.4stwd#,stht#,stdp#); "hyphen";
+ z1 = (1/9w,3/8h); penpos1(matra_t*h,90);
+ z2 = (w-x1,y1); penpos2(matra_t*h,90);
+ penstroke z1e--z2e;
+ penlabels(1,2);
+endchar;
+
+beginchar(8,0.60stwd#,stht#,stdp#); "endash";
+ pickup pencircle scaled (.5matra_t*h);
+ lft z1 = (0,3/8h); rt z2 = (w,3/8h);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar(9,1.10stwd#,stht#,stdp#); "emdash";
+ pickup pencircle scaled (.5matra_t*h);
+ lft z1 = (0,3/8h); rt z2 = (w,3/8h);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar("%",0.70stwd#,stht#,stdp#); "percent sign";
+ z1 = (5/6w,h); z2 = (1/6w,-1/3d);
+ pickup pencircle scaled 0.5pt;
+ draw z1--z2;
+ pickup pencircle xscaled 0.4pt yscaled 0.2pt;
+ draw fullcircle xscaled 11/40w yscaled 1/2h shifted (1/4w,3/4h);
+ draw fullcircle xscaled 11/40w yscaled 1/2h shifted (3/4w,-1/3d + 1/4h);
+ z3 = (11/40w,h);
+ pickup pencircle scaled 0.25pt;
+ draw z3{dir -45}..{dir 45}z1;
+endchar;
+
+beginchar("?",17u#,stht#,stdp#); "question mark";
+ numeric ww; ww=12/17w;
+ x3 = w - rindent;
+ z0 = (x0,3/5h);
+ pickup pencircle xscaled 0.5pt yscaled 0.25pt rotated -25;
+ lft z1=(x0-.5dot_diam,3/5h);
+ top z2=(x1+1/3ww,matra_f*h);
+ z3=(x2+1/3ww,3/5h);
+ z4=(x2,11/30h);
+ z5=(x2,1/7h);
+ z6 = (x5,0);
+ fill fullcircle scaled dot_diam shifted z0;
+ draw z1{up}..{right}z2{right}..{down}z3{down}..{dir -135}z4..{down}z5;
+ fill fullcircle scaled dot_diam shifted z6;
+ penlabels(0,1,2,3,4,5,6);
+endchar;
+
+beginchar("$",0.65stwd#,stht#,stdp#); "bucks";
+ z1 = (4/7w,h); z2 = (1/7w,-1/3d);
+ pickup pencircle scaled 0.5pt;
+ draw z1--z2;
+ z3 = (4/7w,3/7h); z4 = (8/9w,3/7h);
+ draw z3--z4;
+endchar;
+
+beginchar("|", 8u#, stht#, stdp#); "The pipe line";
+endchar;
+
+
+%%% End of bangpunc.mf
diff --git a/language/bengali/bangtex/mf/bangsl10.mf b/language/bengali/bangtex/mf/bangsl10.mf
new file mode 100644
index 0000000000..bb477152c0
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangsl10.mf
@@ -0,0 +1,86 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangsl10.mf: METAFONT file that defines the Bengali alphabet (slanted)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+mode_setup;
+font_size 10pt#;
+u# = 1/3pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+numeric stem_width, stem_slope;
+numeric matra_thickness, matra_f, matra_h,matra_t, matra_slope;
+numeric dot_diam, ball_hang, ha_dip;
+numeric lindent, rindent;
+numeric xmag; xmag = 1;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% matra_thickness should be removed at the end
+%%%%%%%%%%%%%%%%%%%%%%%%%
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+stem_width = xmag*.55pt;
+stem_slope = 45;
+dot_diam = 1pt; % diameter of dots in "ra", "ya" etc.
+matra_thickness = .75pt;
+matra_slope = 115;
+matra_f = .75; % fraction of h where normally the top end of matras rest
+matra_t = 3/50; % thickness of matras as a fraction of matra_f
+matra_h = matra_f-.5matra_t;
+ball_hang = .7pt;
+ha_dip = .7pt; % the depth by which the end of "ha" dips below baseline
+lindent = 1.5stem_width;
+rindent = 1.5stem_width;
+numball_one = 9/50*8pt; % large balls used in numerals
+numball_two = 0.8*numball_one; % small balls used in numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = .15;
+currenttransform := identity slanted slantval;
+
+
+input bangbase;
+end;
+
+%%% End of bangsl10.mf
diff --git a/language/bengali/bangtex/mf/bangvow.mf b/language/bengali/bangtex/mf/bangvow.mf
new file mode 100644
index 0000000000..da17c79212
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangvow.mf
@@ -0,0 +1,227 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangvow.mf: METAFONT file that defines bangla vowels
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+beginchar("A", 21u#, stht#, stdp#); "The letter a";
+ numeric xstem,balld,wta,height;
+ wta=31/40w; height = matra_f*h;
+ xstem = w-rindent; balld = 14/50height;
+ matra(0,w);
+% The ball
+ z1l = (25/57w,35/50height); penpos1(.5balld,120);
+ fill fullcircle scaled balld shifted (z1l);
+% Joining the ball and the cup
+ z2r = z1l + .5balld * (1.1dir(90) + .5 dir(0)) ;
+ z2l = z1l + .5balld * dir(35); z2 = .5[z2l,z2r];
+% The cup at the bottom
+ z3l = (40/57w,28/50height);
+ z3r = (43/57w,26.5/50height);
+ z4l = (29/57w,18/50height);
+ z4r = (32/57w,11/50height);
+ z5l = (5/57w,42/50height);
+ z5r = (3/57w,43/50height);
+ z6 = (0,63/50height);
+ path p; p = z4r{right}..{up}z3r{up}..{left}z2r;
+ fill z1l..z2l{right}..{down}z3l{down}..z4l{left}..tension1.4..{z6-z5l}z5l--z5r{z5r-z6}..tension1.4..{right}p{left}..z1r--cycle;
+% The stem and the hook
+ z7 = p intersectionpoint ((0,25/50height)--(w,25/50height));
+ z8 = p intersectionpoint ((0,20/50height)--(w,20/50height));
+ z9 = (xstem,height);
+ phil = angle(z3l-z2r); phir = angle(z3l-z2l);
+ hookstem(z7,z8,z9,phil,phir);
+% The little Tiki at the top
+ z12l = (18/57w,matra_h*h); penpos12(6/57w,0);
+ fill z2r{z2r-z2l}..z12r--z12l{z2r-z12l}..z2l--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar("I", 14.5u#, stht#, stdp#); "The letter hraswa i";
+ numeric height; height = matra_f*h;
+ Ha(0,0,w,height);
+% The matra and the Tiki
+ matra(0,w);
+ Tiki(.9w,.07w);
+endchar;
+
+beginchar(141,18u#, stht#,stdp#); "The letter dirgha I";
+ numeric balld,height,phii,phiii;
+ height=matra_f*h; balld = 13/50height; phii=0; phiii = 120;
+ matra(0,w);
+%% The ball
+ z2l = (12/50w,35/50height); penpos2(.5balld,phii);
+ fill fullcircle scaled balld shifted z2l;
+%% The line from matra to ball
+ z1l = (6/50w,(matra_h-.5matra_t)*h); penpos1(8/50w,0);
+ fill z1l{right}..z2l--z2r{dir (phii+90)}..z1r--cycle;
+%% The upward going part
+ z5l = (8.5/50w,23/50height);
+ z5r = (7.5/50w,22/50height); z5 = .5[z5l,z5r];
+ z6l = (14/50w,19/50height);
+ z6r = (17/50w,12/50height); z6 = .5[z6l,z6r];
+ penstroke z5e..{right}z6e;
+ z7l = (41/50w,41/50height);
+ z7r = (46/50w,37/50height); z7 = .5[z7l,z7r];
+ path ptop,pbot;
+ ptop = z6l{right}..tension1.5..{z7r-z5l}z7l;
+ pbot = z7r{z5l-z7r}..tension1.5..{left}z6r;
+ fill ptop--pbot--cycle;
+%% The part connecting the ball with the upward going line
+ z3l = z2l; penpos3(.5balld,phiii);
+ z4r = (ptop intersectionpoint ((28/50w,height)--(28/50w,0))) - .05(0,y6l-y6r);
+ z4l = (ptop intersectionpoint ((19/50w,height)--(19/50w,0))) - .05(0,y6l-y6r);
+ fill z3r{dir (phiii-90)}..{down}z4r--z6r--z4l{z4r-z4l}..z3l--cycle;
+%% The downward going part at the right end
+ z8l = (34/50w,24/50height);
+ z8r = (37.5/50w,23/50height);
+ z9l = (38/50w,2/50height);
+ z9r = (41/50w,0);
+ fill flex(z7l,z8l,z9l)--flex(z9r,z8r,z7r)--cycle;
+%% The Tiki
+ Tiki(x7,.05w);
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+beginchar("U",18u#, stht#,stdp#); "The letter hraswa u";
+ numeric height; height = matra_f*h;
+ Da(0,0,w,height,.88);
+ matra(0,w);
+ Tiki(.9w,.1w);
+endchar;
+
+beginchar(143,19u#, stht#,stdp#); "The letter dirgha u";
+% %%% The first part is the definition of "Da"
+ numeric xstem,height,shift;
+ xstem = .5w; height=matra_f*h; shift = .06w;
+% The vertical part
+ z1 = (xstem,height); penpos1(stem_width,0);
+ z2 = (x1,31/50height); penpos2(stem_width,0);
+ z3l = (27.5/49w,21.5/50height);
+ z3r= (x3l+1/49w,28/50height);
+ fill z1l..{down}z2l..{right}z3l--z3r{left}..{up}z2r--z1r--cycle;
+% The part going up
+ z4l = (42.5/49w,30/50height);
+ z4r = (40/49w,38/50height);
+ fill z3l{right}..tension1.5..z4l--z4r..tension1.8..{left}z3r--cycle;
+% The first cup
+ z5l = (44/49w,27/50height); penpos5(3/50w,0);
+ z6l = (29.5/49w,12/50height);
+ z6r = (31/49w,5/50height);
+ z7l = (7/49w,43/50height) + (shift,0);
+ z7r = (5/49w,44/50height) + (shift,0);
+ z8 = (0,63/50height); penpos8(shift,0);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8r-z7l}z7l--z7r{z7r-z8r}..{right}z6r{right}..z5r{up}..z4r--cycle;
+% The second cup
+ z8' = (0,height);
+ z7'l = (7/49w,43/50height) - (shift,0);
+ z7'r = (5/49w,44/50height) - (shift,0);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8l-z7'l}z7'l--z7'r{z7'r-z8l}..{right}z6r{right}..z5r{up}..z4r--cycle;
+% matra and tiki
+ matra(0,w);
+ Tiki(.9w,.1w);
+ penlabels(1,2,3,4,5,6,7,7',8,8');
+endchar;
+
+beginchar(145,20u#, stht#,stdp#); "The letter RI";
+ numeric xstem,balld,phi,wkha; wkha = 16/20w;
+ xstem=wkha-rindent; balld=.18h; phi=-90;
+ matra(xstem,xstem);
+ z1 = (.17wkha,.6h);
+ z2 = z1 + .5balld * dir(phi) + .02wkha * dir(phi+90);
+ z3 = z1 + .5balld * dir(phi+90);
+ z4 = (.5wkha,matra_f*h);
+ z5 = (.55wkha,.6h);
+ z6 = (.56wkha,.52h);
+ z7 = (.68wkha,y6);
+ z8 = (.12wkha,.41h);
+ z9 = (.28wkha,.25h);
+ z10 = (.48wkha,.34h);
+ z11 = (xstem,.5stem_width*sind(stem_slope));
+ stem(xstem);
+ hookcirc(z1,z2,z3,balld,-90);
+ fill z5..{left}z2..z3{right}..z4--cycle;
+ fill z5..z6--z7{up}..z4--cycle;
+ fill z6{down}..{z8-z7}z8--z9--z10..{up}z7--cycle;
+ hookjt(z9,z10,z11,.1h,.3,90);
+% The right stem and the connector
+ z12 = (w-rindent,.15h);
+ z13 = (xstem,.43h);
+ z14 = (x13,.35h);
+ hookjt(z14,z13,z12,.07h,.4,90);
+ halfstem(x12,matra_f*h,.13h);
+ matra(x12,x12);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(147,17.5u#, stht#,stdp#); "The letter peT-kaTa e (ae)";
+ E(0,0,w,h);
+% The cross line
+ z9 = (w,.4h); z10 = (w-2rindent,y9);
+ pickup penrazor xscaled 1.5stem_width rotated 90;
+ draw z9--z10;
+ penlabels(9,10);
+endchar;
+
+beginchar("E",17.5u#, stht#,stdp#); "The letter e";
+ E(0,0,w,h);
+endchar;
+
+beginchar(149,17.5u#, stht#,stdp#); "The letter oi";
+ numeric height; height = matra_f*h;
+ pickup Tiki_pen;
+ z1 = (w-rindent,38/50height);
+ rt x2 = w; y2 = height;
+ z3 = (19/48w,1.1h);
+ draw z1..{up}z2{up}..{dir 60}z3;
+ penlabels(1,2,3);
+ E(0,0,w,h);
+endchar;
+
+beginchar("O",18.5u#,stht#,stdp#); "The letter o";
+ O(0,0,w,h);
+endchar;
+
+beginchar(151,18.5u#, stht#,stdp#); "The letter ou";
+ numeric height; height = matra_f*h;
+ pickup Tiki_pen;
+ z1 = (rballx,rbally);
+ rt x2 = w; y2 = height;
+ z3 = (18/52w,1.1h);
+ draw z1..{up}z2..{dir 60}z3;
+ penlabels(1,2,3,4,5,6,7,8,9);
+ O(0,0,w,h);
+endchar;
+
+%% end of bangvow.mf \ No newline at end of file
diff --git a/language/bengali/bangtex/mf/bangwd10.mf b/language/bengali/bangtex/mf/bangwd10.mf
new file mode 100644
index 0000000000..bd8a8e09c6
--- /dev/null
+++ b/language/bengali/bangtex/mf/bangwd10.mf
@@ -0,0 +1,85 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bang10.mf: METAFONT file that defines the Bengali alphabet (wide)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% 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
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+mode_setup;
+font_size 10pt#;
+u# = .4pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+numeric stem_width, stem_slope;
+numeric matra_thickness, matra_f, matra_h,matra_t, matra_slope;
+numeric dot_diam, ball_hang, ha_dip;
+numeric lindent, rindent;
+numeric xmag; xmag=.4/.33;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% matra_thickness should be removed at the end
+%%%%%%%%%%%%%%%%%%%%%%%%%
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+stem_width = xmag*.55pt;
+stem_slope = 45;
+dot_diam = 1pt; % diameter of dots in "ra", "ya" etc.
+matra_thickness = .75pt;
+matra_slope = 115;
+matra_f = .75; % fraction of h where normally the top end of matras rest
+matra_t = 3/50; % thickness of matras as a fraction of matra_f
+matra_h = matra_f-.5matra_t;
+ball_hang = .7pt;
+ha_dip = .7pt; % the depth by which the end of "ha" dips below baseline
+lindent = 1.5stem_width;
+rindent = 1.5stem_width;
+numball_one = 9/50*8pt; % large balls used in numerals
+numball_two = 0.8*numball_one; % small balls used in numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+
+
+input bangbase;
+end;
+
+%%% End of bangwd10.mf
diff --git a/language/bengali/bngtoday.sty b/language/bengali/bngtoday.sty
new file mode 100644
index 0000000000..5e369c81d6
--- /dev/null
+++ b/language/bengali/bngtoday.sty
@@ -0,0 +1,89 @@
+% Style fle for printing western dates in Bangla in LaTeX by
+% using itrans.
+% Written by Muhammad Masroor Ali (masroor@human.ai.kyushu-u.ac.jp)
+% in February, 1996.
+
+% Usage is #bengali\BanglaToday#endbengali.
+
+% Itrans is an Indian language transliteration program
+% written and copyrighted by Avinash Chopde (avinash@acm.org).
+
+% LEGAL POINTS:
+% This style file is being distributed free for public use with
+% the express understanding that,
+% 1. The developer of this style file in no way can
+% be held responsible for any resulting mistakes,
+% expenditure, or outcome of any form.
+% 2. You may copy and re-distribute the style file so long
+% as you do not charge any fee, and re-distribute the
+% the file as a whole without any portion removed or
+% added or modified. Redistribution for any commercial
+% purpose is strictly prohibited.
+% 3. You may bundle the style file with any other software
+% you like, so long as the the conditions for re-distribution
+% described in the previous paragraph are met, so long as
+% the software is distributed free for public use, and so
+% long as the name of the style file and its developer is
+% clearly mentioned in an introductory article accompanying
+% the aforementioned software.
+% 4. No permission will be required for including the package
+% to a software, but a mail informing the matter will be
+% appreciated.
+% 5. This style file can be adapted for other languages, so
+% long as the original source of the adapted version is
+% clearly mentioned.
+
+
+% $Header: /home/users/masroor/TeX/sty/RCS/bngtoday.sty,v 1.3 1996/02/27 10:05:49 masroor Exp $
+
+\def\BanglaToday{
+ \number\day\relax
+ \ifcase\day \relax
+ \or {lA}% 1
+ \or {rA}% 2
+ \or {rA}% 3
+ \or {TA}% 4
+ \or {e}% 5
+ \or {e}% 6
+ \or {e}% 7
+ \or {e}% 8
+ \or {e}% 9
+ \or {e}% 10
+ \or {e}% 11
+ \or {e}% 12
+ \or {e}% 13
+ \or {e}% 14
+ \or {e}% 15
+ \or {e}% 16
+ \or {e}% 17
+ \or {e}% 18
+ \or {{\char60}S}% 19
+ \or {{\char60}S}% 20
+ \or {{\char60}S}% 21
+ \or {{\char60}S}% 22
+ \or {{\char60}S}% 23
+ \or {{\char60}S}% 24
+ \or {{\char60}S}% 25
+ \or {{\char60}S}% 26
+ \or {{\char60}S}% 27
+ \or {{\char60}S}% 28
+ \or {{\char60}S}% 29
+ \or {{\char60}S}% 30
+ \or {{\char60}S}% 31
+ \fi\ %
+ \ifcase\month\relax%
+ \or{zAnuOArI}%
+ \or{{\char60}f{\char203}uOArI}%
+ \or{mAx{\char193}}%
+ \or{wi{\char208}l}%
+ \or{{\char60}}m%
+ \or{zun}%
+ \or{zulAe}%
+ \or{aAg{\char171}t}%
+ \or{{\char60}s{\char60}{\char175}tm{\char191}r}%
+ \or{a{\char60}{\char188}tAbr}%
+ \or{n{\char60}vm{\char191}r}%
+ \or{iD{\char60}sm{\char191}r}%
+ \fi
+ , \number\year
+ }
diff --git a/language/bengali/ebong/ANNOUNCE.txt b/language/bengali/ebong/ANNOUNCE.txt
new file mode 100644
index 0000000000..f01726c919
--- /dev/null
+++ b/language/bengali/ebong/ANNOUNCE.txt
@@ -0,0 +1,8 @@
+ EBONG 1.0
+A tool (preprocessor) for writing your pRaa-ne-r ka-thaa in
+the bengali langauage. It allows one to write the text in
+Rapid Roman Bangla and convert it to the bangtex format by a python program.
+All LaTeX markups are preserved in the target file. A tentative
+userguide is provided with the distro.
+
+Shibaji Banerjee (shibaji_ban@yahoo.co.in) \ No newline at end of file
diff --git a/language/bengali/ebong/README b/language/bengali/ebong/README
new file mode 100644
index 0000000000..6bf29e4571
--- /dev/null
+++ b/language/bengali/ebong/README
@@ -0,0 +1,52 @@
+EBONG VER 1.0 (Free : Public Domain software)
+=============
+[Intro]
+EBONG is a preprocessor that writes bangtex files from a
+file in "Rapid Roman Bangla" format.
+
+bangtex, developed by Palas Baran PAl is the LaTeX way of generating
+crisp bengali text (Read Publication Quality PDF) from a tex source.
+
+EBONG, written by Shibaji Banerjee (hopefullY) makes the task
+easier (It is more linear and easier to remember, even after a really
+long break)
+
+[How it works]: The comamnd
+ ebong.py xyz.b
+
+Will produce xyz.tex. This xyz.tex file can be texified normally, if you
+already have the bangtex package in your TeX setup. If you do not already
+have it, you may obtain it from
+ http://tnp.saha.ernet.in/~pbpal/bangtex/bangtex.html
+
+To preprocess the userguide, use
+ ebong.py eb.b
+
+in ebong/doc. Alternately you can just read the PS / PDF files eb.ps / eb.pdf
+
+[Usage Notes]
+In MS you can just use
+ ebong eb.b
+
+In *nix you can rename the file ebong.py to ebong and do a chmod +x ebong
+to achive the same effect.
+
+[Files]
+ebong.py : The application
+README.txt : Read this first
+doc\eb.pdf : Userguide
+doc\eb.ps : ditto
+doc\src\eb.b : EBONG Source of the userguide
+doc\src\eb_tex.tex : LaTeX Source of the userguide, converted using EBONG
+
+[REQUIREMENTS]
+Platform : Any platform that can make LaTeX and Python work.
+A working TeX setup like MikTeX or TeTeX
+bangtex
+python > 2.3 (lesser will probably do)
+
+
+[Author]
+Shibaji Banerjee (shibaji_ban@yahoo.co.in)
+Physics Dept.
+St. Xavier's College, Kolkata, India
diff --git a/language/bengali/ebong/doc/eb.pdf b/language/bengali/ebong/doc/eb.pdf
new file mode 100644
index 0000000000..1542912ee7
--- /dev/null
+++ b/language/bengali/ebong/doc/eb.pdf
Binary files differ
diff --git a/language/bengali/ebong/doc/src/eb.b b/language/bengali/ebong/doc/src/eb.b
new file mode 100644
index 0000000000..009506e931
--- /dev/null
+++ b/language/bengali/ebong/doc/src/eb.b
@@ -0,0 +1,227 @@
+\documentclass{barticle}
+\begin{document}
+\bng
+@\section{@ U-po-kRa-mo-^ni-kaa }
+
+@{\rm \textbf{ebong}}@ A-tho-baa @\sh{@ E-bo-^ng } kaa-je laa-g-be _t^aa-_de-r J^aa-raa
+@{\rm bangtex}@ bYa-bo-haa-r ko-re baa-^ng-laa li-kh-^che-n A-tho-baa li-kh-be-n
+bo-le sthi-r ko-re-^che-n-.
+
+E-bo-^ng ke ba-laa ^jaa-y @{\rm bangtex}@ E-r @{\rm preprocessor}@ .
+E-taa laa-te-k_ koo-d le-khaa-r bY-paa-re koo-no saa-haa-^jYa naa
+ko-r-le-O-, baa-^ng-laa le-khaa-r pRo-se-s-taa-ke be-sh khaa-ni-k-taa
+saa-b-lii-l ko-r-_te paa-re . @{\rm ebong}@ E-r muu-l boi-shi-^s^thY-gu-li
+E-k-dash-na-ja-re _de-khe ne-O-yaa ^jaa-k :
+
+\begin{enumerate}
+
+@\item@ le-khaa-taa @{\rm source code}@ E-r mo-_too _de-kh-_te naa ho-ye
+_di-bYi baa-^ng-laa g-^r-ne-r _de-kh-_te ho-y-, ^je-mo-n fou-j ka-thaa-taa
+@{\rm bangtex}@ E taa-I-p ko-r-_te h-be @\verb!\*ph*eouj!@ ki-n_tu @{\rm ebong}@
+E shu-_dhu @\verb!fou-j!@ li-kh-le-I ch-a-l-be-.
+
+@\item@ _du-too E-kse-p__-saa-naa-l ke-s ^cha-^raa-,
+( RI kaar _di-_te @{\rm RII}@ AA-r J li-kh-_te @{\rm J}@ ) ^choo-too haa-_te-r
+roo-maa-n h-ro-f bY-b-haa-r ko-re-I sa-b bYa-njo-n le-khaa ^jaa-y : _taa-I mo-ne raa-kha
+soo-jaa dash shu-_d_dha ka-raa-O sa-ha-j . E-k-taa na-^r-b-^re goo-^che-r
+si-ntYaa-ks che-ki-^ng E-r bY-b-sthaa-O re-khe-^chi-.
+
+@\item@ E-k-I chi-nhe-r jo-nYa E-kaa-_dhi-k @{\rm roman symbol}@ AA-^che dash
+Je-khaa-ne Je-taa cha-l_-le vaa-loo _de-khaa-y-! @{\rm a}@ A-th-baa @{\rm o}@
+_du-too-I g^oo-j hi-se-be kaa-je laa-gaa-noo Jaa-be-, A-rthaa-__t
+@{\rm ka-thaa, ko-tha}@ @$\rightarrow$@ ka-thaa-.
+
+
+@\item@ @{\rm \LaTeX}@ le-khaa-r ni-yo-m dash kaa-nu-n-O Ja-thaa-saa-_dhYo sa-ha-j
+raa-khaa-r che-^shtaa ko-re-^chi-.
+
+\end{enumerate}
+
+@\section{@ ni-ya-m dash kaa-nu-n }
+
+pRo-tho-m kaaj ho-loo sh-b_d-taa-ke @{\rm strutural syllable }@ E ve-nge
+ne-O-yaa-. ^je-mo-n mu-k_ti = mu + k_ti-, bo-n_du-k = bo + n_du + k-,
+E-I-ra-ka-m-. _du-too @{\rm syllable}@ paa-shaa-paa-shi raa-kh-_te
+ge-le E-k-taa @{\rm hyphen}@ / `` dash '' _di-_te ho-be-, ^je-mo-n-,
+raa dash m = @{\rm raa-m}@, ha dash r dash boo dash laa = @{\rm ha-r-boo-laa}@.
+@{\rm syllable}@ le-khaa-r ni-y-m E-I-ra-ko-m-.
+
+\begin{enumerate}
+
+@\item@ sWa-r-chi-nho E-k-laa bo-s-be-. Je-koo-no sWa-r-chi-nho li-kh-_te ge-le
+laa-g-be kYaa-pi-taa-l roo-maa-n ha-ro-f-, Ja-thaa : E-I ( @{\rm E-I}@ ).
+
+@\item@ bYa-njo-n + kaa-r : Je-mo-n bi-bi ( @{\rm bi-bi}@ ), bii-r ( @{\rm bii-r}@ )
+I-_tYaa-_di-.
+
+@\item@ bYa-njo-n + fa-laa : @{\rm M, Y, R, L, W} E-I p^aa-ch-ti fa-laa-, U-_dhaa-ro-^n
+dash pa-_dMo @\verb!pa-_dMo!@, sa-hJYo @\verb!sa-hJYo!@, baa-kYo @\verb!ba-kYo!,
+pRo-mii-laa @\verb!pRo-mii-laa!@, AA-hLaa-_d @\verb!AA-hLaa-_d!@,
+sWa-ro-ba-r^no @\verb!sWa-ro-ba-r^no!@.
+
+
+@\item@ Ju-k_to-bYa-njo-n : bYa-njo-n _du-too pa-shaa-paa-shi li-kh-_te ha-be-, Ja-thaa
+I-n_dRa-lu-p_to ( @\verb!I-n_dRa-lu-p_to!@ ) . Ju-k_to-bYa-njo-n E-r sa-ngge koo-no
+kaa-r baa fa-laa baa AA-re-k-ti bYa-njo-n Ju-k_to ka-raa-r ni-y-m huu-bo-huu bYa-njo-n
+E-r mo-_to-.
+
+@\item@ @{\rm , ; ! ? .} E-raa E-k-laa-O bo-s-_te paa-re-,
+AA-tho-baa sha-b_de-r E-k-ti @{\rm syllable }@ hi-se-be Je-_te paa-re-, Je-mo-n
+ka|-baa-bu-, kha|-baa-bu-, ga|-baa-bu-. ( @{\rm ka\verb!|!-baa-bu-, kha\verb!|!-baa-bu-, ga\verb!|!-baa-bu.}@ )
+
+@\item@ cha-n_dRa-bi-n_du AA-tho-baa ha-s_o-n_t bYa-njo-n E-r p-re Joo-g
+ko-r-_te ho-le bYa-njo-n E-r po-re ( Ja-thaa-kRo-me ) @\verb!^!@ baa @\verb!_!@
+s^e-te _di-n-, Je-mo-n p^aa-ch ( @\verb!p^aa-ch!@ ) baa kha-t_-kaa ( @\verb!kha-t_-kaa!@ ) .
+
+
+\end{enumerate}
+
+
+@\section{@ @{\rm \LaTeX\ }@ li-kh-_te ho-le }
+\begin{enumerate}
+
+@\item@ laa-I-ne-r shu-ru Ja-_di ho-y @\verb!\\!@ _di-ye _ta-be se laa-I-n te-ks
+faa-I-le-O E-k-I thaa-k-be-.
+
+@\item@ ( laa-I-ne-r pRo-tho-m ) @\verb!#! E-r pa-re Jaa thaa-k-be _taa-I s-raa-so-ri
+te-ks faa-I-le cho-le Jaa-be-.
+
+@\item@ _du-too @\verb!#AT ... #AT sign!@ E-r mo-_dhYe Jaa le-khaa ho-be _taa-I s-raa-so-ri
+te-ks faa-I-le cho-le Jaa-be-. laa-I-ne-r E-k-_do-m she-^she E-ro-ka-m sha-b_d naa thaa-kaa-I
+ba-n^ch-nii-y-.
+
+@\item@ A-nYo Je-koo-no si-mbo-l, @{\rm bangtex }@ E-r ni-y-me li-kh-_te ho-be-.
+
+@\item@ baa-^ng-laa-r mo-_dhYe @\verb!-!@ li-kh-_te ge-le li-khu-n @\verb!dash!
+sh-b_d-taa-I-, Je-mo-n : ja-le dash ja-ngg-le ( @\verb!ja-le dash ja-ngg-le!@ )
+
+@\item@ @\verb!#AT! le-khaa-r khu-b _da-r-kaa-r ho-le _taa-r Jaa-y-gaa-y li-khu-n
+@{\rm \texttt{\#}}@@{\rm \texttt{AT}}@ .
+
+\end{enumerate}
+
+@\section{@ ba-r^no-maa-laa }
+
+@\subsection{@ sWa-ro-chi-nho }
+
+\begin{table}[h]
+\bng
+\begin{tabular}{clll}
+A & @\verb!A!@ & ne-I @\\@
+AA & @\verb!AA!@ & kaa & @{\rm kaa}@ @\\@
+I & @\verb!I!@ & ki & @{\rm ki}@ @\\@
+II & @\verb!II!@ & kii & @{\rm kii}@ @\\@
+U & @\verb!U!@ & ku & @{\rm ku}@ @\\@
+UU & @\verb!UU!@ & kuu & @{\rm kuu}@ @\\@
+RI & @\verb!RI!@ & kRII & @{\rm kRII}@ @\\@
+E & @\verb!E!@ & ke & @{\rm ke}@ @\\@
+OI & @\verb!OI!@ & koi & @{\rm koi}@ @\\@
+O & @\verb!O!@ & koo & @{\rm koo}@ @\\@
+OU & @\verb!OU!@ & kou & @{\rm kou}@ @\\@
+\end{tabular}
+\end{table}
+
+@\subsection{@ bYaa-njo-n }
+
+#%\begin{table}
+\bng
+\begin{tabular}{cll}
+k & @\verb!k!@ @\\@
+kh & @\verb!kh!@ @\\@
+g & @\verb!g!@ @\\@
+gh & @\verb!gh!@ @\\@
+ng & @\verb!ng!@ @\\@
+\hline
+ch & @\verb!ch!@ @\\@
+^ch & @\verb!^ch!@ @\\@
+j & @\verb!j!@ @\\@
+jh & @\verb!jh!@ @\\@
+_n & @\verb!_n,^y!@ @\\@
+\hline
+t & @\verb!t!@ @\\@
+^th & @\verb!^th!@ @\\@
+d & @\verb!d!@ @\\@
+dh & @\verb!dh!@ @\\@
+^n & @\verb!^n!@ @\\@
+\hline
+_t & @\verb!_t!@ @\\@
+th & @\verb!th!@ @\\@
+_d & @\verb!_d!@ @\\@
+_dh & @\verb!_dh!@ @\\@
+n & @\verb!n!@ @\\@
+\hline
+p & @\verb!p!@ @\\@
+f & @\verb!ph,f!@ @\\@
+b & @\verb!b!@ @\\@
+bh & @\verb!v,bh!@ @\\@
+m & @\verb!m!@ & @\verb!(M)!@ @\\@
+\hline
+^j & @\verb!^j,J!@ & @\verb!(Y)!@ @\\@
+r & @\verb!r!@ & @\verb!(R)!@ @\\@
+l & @\verb!l!@ & @\verb!(L)!@ @\\@
+b & ne-I & @\verb!(W)!@ @\\@
+h & @\verb!h!@ @\\@
+\hline
+sh & @\verb!sh!@ @\\@
+^s & @\verb!^s!@ @\\@
+s & @\verb!s!@ @\\@
+\hline
+^r & @\verb!^r!@\ @\\@
+^rh & @\verb!^rh!@ @\\@
+y & @\verb!y!@ & @\verb!(Y)!@ @\\@
+^ng & @\verb!^ng!@ @\\@
+__t & @\verb!__t!@ @\\@
+: & @\verb!:!@ @\\@
+\hline
+\end{tabular}
+#%\end{table}
+
+@\section{@ shoo-_dho-n }
+
+\begin{itemize}
+
+@\item@ A-shu-_d_dh : @\verb!kha|-baa-bu,!@ shu-_d_dho : @\verb!kha|-baa-bu-,!@
+@\item@ A-shu-_d_dh : @\verb!\item!@ shu-_d_dho : @\verb!#AT\item#AT!@
+@\item@ A-shu-_d_dh : @\verb!ja-le - ja-ngg-le!@ shu-_d_dho : @\verb!ja-le dash ja-ngg-le!@
+@\item@ A-shu-_d_dh : @\verb!\section{ pu-no-shcho }!@ shu-_d_dho : @\verb!#AT\section{#AT pu-no-shcho }!@
+@\item@ A-shu-_d_dh : @\verb!{\rm hello world}!@ shu-_d_dho : @\verb!#AT{\rm hello world}#AT!@
+\end{itemize}
+
+@\section{@ no-mu-naa }
+
+\begin{verse}
+_too-maa-r koo-thaa-y _de-sh-? ki-baa pa-ro-maa-_tMo po-ri-cha-y-? @\\@
+_tu-mi ^choo-to gha-re bo-se AA-jii-bo-n pa-^raa-shu-noo ka-roo @\\@
+_too-maa-r saa-maa-nYo AA-y-, _tu-mi sphii-_too-_da-r .. @\\@
+\end{verse}
+
+( sha-k_ti cha-ttoo-paa-_dhYaa-y-, A-no-n_to na-kko-_tRo-bii-thii ... ) @\\@
+
+ni-che-, Ja-thaa-kRo-me @{\rm ebong}@ E-bo-^ng @{\rm \emph{Translated} bangtex code}@ .
+
+
+\begin{verbatim}
+#\begin{verse}
+#_too-maa-r koo-thaa-y _de-sh-? ki-baa pa-ro-maa-_tMo po-ri-cha-y-? @#AT\\#AT@
+#_tu-mi ^choo-to gha-re bo-se AA-jii-bo-n pa-^raa-shu-noo ka-roo @#AT\\#AT@
+#_too-maa-r saa-maa-nYo AA-y-, _tu-mi sphii-_too-_da-r .. @#AT\\#AT@
+#\end{verse}
+
+#( sha-k_ti cha-ttoo-paa-_dhYaa-y-, A-no-n_to na-kko-_tRo-bii-thii ... )
+\end{verbatim}
+
+
+\begin{verbatim}
+#\begin{verse}
+#\*t*eamar \*k*eathay \*d*esh? \*k*iba poromatMo po\*r*icoy? \\
+#tu\*m*i \*ch*eaTo gho\*r*e bo\*s*e Aajiibon porhashu\*n*ea ko\*r*ea \\
+#\*t*eamar samanYo Aay, tu\*m*i s/phii\*t*eador .. \\
+#\end{verse}
+
+#( sho\*k/t*i co\*T/T*eapadhYay, Anon/to nokKotRobiithii ... )
+
+\end{verbatim}
+
+
+
+\end{document}
diff --git a/language/bengali/ebong/doc/src/eb_tex.tex b/language/bengali/ebong/doc/src/eb_tex.tex
new file mode 100644
index 0000000000..6b4f7b1b49
--- /dev/null
+++ b/language/bengali/ebong/doc/src/eb_tex.tex
@@ -0,0 +1,227 @@
+\documentclass{barticle}
+\begin{document}
+\bng
+\section{ UpokRomo\*N*ika }
+
+{\rm \textbf{ebong}} Athoba \sh{ EboNNG } ka\*j*e lag\*b*e tNNa\*d*er JNNara
+{\rm bangtex} bYoboHar ko\*r*e baNNGla \*l*ikh\*ch*en Athoba \*l*ikh\*b*en
+bo\*l*e \*s/th*ir ko\*r*e\*ch*en.
+
+EboNNG \*k*e bola Jay {\rm bangtex} Er {\rm preprocessor} .
+ETa la\*T*ek:/ \*k*eaD \*l*ekhar bYpa\*r*e \*k*eano saHaJYo na
+kor\*l*eO, baNNGla \*l*ekhar pRo\*s*esTa\*k*e \*b*esh kha\*n*ikTa
+sabliil kor\*t*e pa\*r*e . {\rm ebong} Er muul \*b*{oi}\*sh*iSh/ThYgu\*l*i
+Ek-nojo\*r*e \*d*e\*kh*e \*n*eOya Jak :
+
+\begin{enumerate}
+
+\item \*l*ekhaTa {\rm source code} Er mo\*t*ea \*d*ekh\*t*e na Ho\*y*e
+\*d*i\*bY*i baNNGla grh\*n*er \*d*ekh\*t*e Hoy, \*J*emon \*ph*eouj kothaTa
+{\rm bangtex} E TaIp kor\*t*e H\*b*e \verb!\*ph*eouj! \*k*in/tu {\rm ebong}
+E shudhu \verb!fou-j! \*l*ikh\*l*eI col\*b*e.
+
+\item du\*T*ea E\*k/s*ep:/:/sanal \*k*es chorha,
+( RR kar \*d*i\*t*e {\rm RII} Aar J \*l*ikh\*t*e {\rm J} ) \*ch*ea\*T*ea Ha\*t*er
+\*r*eaman Hroph bYbHar ko\*r*eI sob bYon/jon \*l*ekha Jay : taI mo\*n*e rakho
+\*s*eaja - shud/dho koraO soHoj . EkTa norhb\*rh*e \*g*ea\*ch*er
+\*s*in/TYak/s \*c*e\*k*iNNG Er bYbs/thaO \*r*e\*kh*e\*ch*i.
+
+\item EkI \*c*i\*n/H*er jonYo Eka\*dh*ik {\rm roman symbol} Aa\*ch*e -
+\*J*ekha\*n*e \*J*eTa col:/\*l*e bha\*l*ea \*d*ekhay! {\rm a} Athba {\rm o}
+du\*T*eaI \*gNN*eaj \*H*i\*s*e\*b*e ka\*j*e laga\*n*ea Ja\*b*e, Ar/that//
+{\rm ka-thaa, ko-tha} $\rightarrow$ kotha.
+
+
+\item {\rm \LaTeX} \*l*ekhar \*n*iyom - kanunO JothasadhYo soHoj
+rakhar \*c*eSh/Ta ko\*r*e\*ch*i.
+
+\end{enumerate}
+
+\section{ \*n*iyom - kanun }
+
+pRothom kaj Ho\*l*ea shb/dTa\*k*e {\rm strutural syllable } E \*bh*e\*NG*e
+\*n*eOya. \*J*emon mu\*k/t*i = mu + \*k/t*i, bon/duk = bo + n/du + k,
+EIrokom. du\*T*ea {\rm syllable} pashapa\*sh*i rakh\*t*e
+\*g*e\*l*e EkTa {\rm hyphen} / `` - '' \*d*i\*t*e Ho\*b*e, \*J*emon,
+ra - m = {\rm raa-m}, Ho - r - \*b*ea - la = {\rm ha-r-boo-laa}.
+{\rm syllable} \*l*ekhar \*n*iym EIrokom.
+
+\begin{enumerate}
+
+\item sWor\*c*in/Ho Ekla bos\*b*e. \*J*e\*k*eano sWor\*c*in/Ho \*l*ikh\*t*e \*g*e\*l*e
+lag\*b*e kYa\*p*iTal \*r*eaman Horoph, Jotha : EI ( {\rm E-I} ).
+
+\item bYon/jon + kar : \*J*emon \*b*i\*b*i ( {\rm bi-bi} ), biir ( {\rm bii-r} )
+ItYa\*d*i.
+
+\item bYon/jon + phola : {\rm M, Y, R, L, W} EI pNNac\*T*i phola, UdharoN
+- podMo \verb!pa-_dMo!, soHYo \verb!sa-hJYo!, bakYo \verb!ba-kYo!,
+pRomiila \verb!pRo-mii-laa!, AaHLad \verb!AA-hLaa-_d!,
+sWorobor/No \verb!sWa-ro-ba-r^no!.
+
+
+\item Juk/tobYon/jon : bYon/jon du\*T*ea poshapa\*sh*i \*l*ikh\*t*e Ho\*b*e, Jotha
+In/dRolup/to ( \verb!I-n_dRa-lu-p_to! ) . Juk/tobYon/jon Er so\*NG/g*e \*k*eano
+kar ba phola ba Aa\*r*ek\*T*i bYon/jon Juk/to korar \*n*iym HuuboHuu bYon/jon
+Er moto.
+
+\item {\rm , ; ! ? .} Era EklaO bos\*t*e pa\*r*e,
+Aathoba sho\*b/d*er Ek\*T*i {\rm syllable } \*H*i\*s*e\*b*e \*J*e\*t*e pa\*r*e, \*J*emon
+ko|babu, kho|babu, go|babu. ( {\rm ka\verb!|!-baa-bu-, kha\verb!|!-baa-bu-, ga\verb!|!-baa-bu.} )
+
+\item con/dRo\*b*in/du Aathoba Hos:/on/t bYon/jon Er p\*r*e \*J*eag
+kor\*t*e Ho\*l*e bYon/jon Er po\*r*e ( JothakRo\*m*e ) \verb!^! ba \verb!_!
+\*sNN*e\*T*e \*d*in, \*J*emon pNNac ( \verb!p^aa-ch! ) ba khoT:/ka ( \verb!kha-t_-kaa! ) .
+
+
+\end{enumerate}
+
+
+\section{ {\rm \LaTeX\ } \*l*ikh\*t*e Ho\*l*e }
+\begin{enumerate}
+
+\item laI\*n*er shuru Jo\*d*i Hoy \verb!\\! \*d*i\*y*e to\*b*e \*s*e laIn \*T*ek/s
+phaI\*l*eO EkI thak\*b*e.
+
+\item ( laI\*n*er pRothom ) \verb!#! Er po\*r*e Ja thak\*b*e taI sraso\*r*i
+\*T*ek/s phaI\*l*e co\*l*e Ja\*b*e.
+
+\item du\*T*ea \verb!@ ... @ sign! Er mo\*dhY*e Ja \*l*ekha Ho\*b*e taI sraso\*r*i
+\*T*ek/s phaI\*l*e co\*l*e Ja\*b*e. laI\*n*er Ekdom \*sh*e\*Sh*e Erokom shob/d na thakaI
+bon/chniiy.
+
+\item AnYo \*J*e\*k*eano \*s*im/bol, {\rm bangtex } Er \*n*iy\*m*e \*l*ikh\*t*e Ho\*b*e.
+
+\item baNNGlar mo\*dhY*e \verb!-! \*l*ikh\*t*e \*g*e\*l*e \*l*ikhun \verb!dash!
+shb/dTaI, \*J*emon : jo\*l*e - joNG/g\*l*e ( \verb!ja-le dash ja-ngg-le! )
+
+\item \verb!@! \*l*ekhar khub dorkar Ho\*l*e tar Jaygay \*l*ikhun
+{\rm \texttt{\#}}{\rm \texttt{AT}} .
+
+\end{enumerate}
+
+\section{ bor/Nomala }
+
+\subsection{ sWoro\*c*in/Ho }
+
+\begin{table}[h]
+\bng
+\begin{tabular}{clll}
+A & \verb!A! & \*n*eI \\
+Aa & \verb!AA! & ka & {\rm kaa} \\
+I & \verb!I! & \*k*i & {\rm ki} \\
+II & \verb!II! & kii & {\rm kii} \\
+U & \verb!U! & ku & {\rm ku} \\
+UU & \verb!UU! & kuu & {\rm kuu} \\
+RR & \verb!RI! & krR & {\rm kRII} \\
+E & \verb!E! & \*k*e & {\rm ke} \\
+OI & \verb!OI! & \*k*{oi} & {\rm koi} \\
+O & \verb!O! & \*k*ea & {\rm koo} \\
+OU & \verb!OU! & \*k*eou & {\rm kou} \\
+\end{tabular}
+\end{table}
+
+\subsection{ bYan/jon }
+
+%\begin{table}
+\bng
+\begin{tabular}{cll}
+k & \verb!k! \\
+kh & \verb!kh! \\
+g & \verb!g! \\
+gh & \verb!gh! \\
+NG & \verb!ng! \\
+\hline
+c & \verb!ch! \\
+ch & \verb!^ch! \\
+j & \verb!j! \\
+jh & \verb!jh! \\
+NJ & \verb!_n,^y! \\
+\hline
+T & \verb!t! \\
+Th & \verb!^th! \\
+D & \verb!d! \\
+Dh & \verb!dh! \\
+N & \verb!^n! \\
+\hline
+t & \verb!_t! \\
+th & \verb!th! \\
+d & \verb!_d! \\
+dh & \verb!_dh! \\
+n & \verb!n! \\
+\hline
+p & \verb!p! \\
+ph & \verb!ph,f! \\
+b & \verb!b! \\
+bh & \verb!v,bh! \\
+m & \verb!m! & \verb!(M)! \\
+\hline
+J & \verb!^j,J! & \verb!(Y)! \\
+r & \verb!r! & \verb!(R)! \\
+l & \verb!l! & \verb!(L)! \\
+b & \*n*eI & \verb!(W)! \\
+H & \verb!h! \\
+\hline
+sh & \verb!sh! \\
+Sh & \verb!^s! \\
+s & \verb!s! \\
+\hline
+rh & \verb!^r!\ \\
+rhh & \verb!^rh! \\
+y & \verb!y! & \verb!(Y)! \\
+NNG & \verb!^ng! \\
+t// & \verb!__t! \\
+: & \verb!:! \\
+\hline
+\end{tabular}
+%\end{table}
+
+\section{ \*sh*eadhon }
+
+\begin{itemize}
+
+\item Ashud/dh : \verb!kha|-baa-bu,! shud/dho : \verb!kha|-baa-bu-,!
+\item Ashud/dh : \verb!\item! shud/dho : \verb!@\item@!
+\item Ashud/dh : \verb!ja-le - ja-ngg-le! shud/dho : \verb!ja-le dash ja-ngg-le!
+\item Ashud/dh : \verb!\section{ pu-no-shcho }! shud/dho : \verb!@\section{@ pu-no-shcho }!
+\item Ashud/dh : \verb!{\rm hello world}! shud/dho : \verb!@{\rm hello world}@!
+\end{itemize}
+
+\section{ nomuna }
+
+\begin{verse}
+\*t*eamar \*k*eathay \*d*esh? \*k*iba poromatMo po\*r*icoy? \\
+tu\*m*i \*ch*eaTo gho\*r*e bo\*s*e Aajiibon porhashu\*n*ea ko\*r*ea \\
+\*t*eamar samanYo Aay, tu\*m*i s/phii\*t*eador .. \\
+\end{verse}
+
+( sho\*k/t*i co\*T/T*eapadhYay, Anon/to nokKotRobiithii ... ) \\
+
+\*n*i\*c*e, JothakRo\*m*e {\rm ebong} EboNNG {\rm \emph{Translated} bangtex code} .
+
+
+\begin{verbatim}
+\begin{verse}
+_too-maa-r koo-thaa-y _de-sh-? ki-baa pa-ro-maa-_tMo po-ri-cha-y-? @\\@
+_tu-mi ^choo-to gha-re bo-se AA-jii-bo-n pa-^raa-shu-noo ka-roo @\\@
+_too-maa-r saa-maa-nYo AA-y-, _tu-mi sphii-_too-_da-r .. @\\@
+\end{verse}
+
+( sha-k_ti cha-ttoo-paa-_dhYaa-y-, A-no-n_to na-kko-_tRo-bii-thii ... )
+\end{verbatim}
+
+
+\begin{verbatim}
+\begin{verse}
+\*t*eamar \*k*eathay \*d*esh? \*k*iba poromatMo po\*r*icoy? \\
+tu\*m*i \*ch*eaTo gho\*r*e bo\*s*e Aajiibon porhashu\*n*ea ko\*r*ea \\
+\*t*eamar samanYo Aay, tu\*m*i s/phii\*t*eador .. \\
+\end{verse}
+
+( sho\*k/t*i co\*T/T*eapadhYay, Anon/to nokKotRobiithii ... )
+
+\end{verbatim}
+
+
+
+\end{document}
diff --git a/language/bengali/ebong/ebong.py b/language/bengali/ebong/ebong.py
new file mode 100644
index 0000000000..c4162cf0ef
--- /dev/null
+++ b/language/bengali/ebong/ebong.py
@@ -0,0 +1,346 @@
+#!/usr/bin/env python
+# look in newbong
+import sre
+A='A'
+B='B'
+S='S'
+s='s'
+F='F'
+X='X'
+
+NCLINE = 0
+global NCWORD,CWORD
+
+AKSAR={
+ 'k' :[B,'k'],
+ 'kh' :[B,'kh'],
+ 'g' :[B,'g'],
+ 'gh' :[B,'gh'],
+ 'ng' :[B,'NG'],
+
+ 'ch' :[B,'c'],
+ '^ch' :[B,'ch'],
+ 'j' :[B,'j'],
+ 'jh' :[B,'jh'],
+ '^y' :[B,'NJ'],
+ '_n' :[B,'NJ'],
+
+ 't' :[B,'T'],
+ '^th' :[B,'Th'],
+ 'd' :[B,'D'],
+ 'dh' :[B,'Dh'],
+ '^n' :[B,'N'],
+
+ '_t' :[B,'t'],
+ 'th' :[B,'th'],
+ '_d' :[B,'d'],
+ '_dh' :[B,'dh'],
+ 'n' :[B,'n'],
+
+ 'p' :[B,'p'],
+ 'ph' :[B,'ph'],
+ 'f' :[B,'ph'],
+ 'b' :[B,'b'],
+ 'bh' :[B,'bh'],
+ 'v' :[B,'bh'],
+ 'm' :[B,'m'],
+ 'M' :[F,'M'],
+
+ '^j' :[B,'J'],
+ 'J' :[B,'J'],
+ 'r' :[B,'r'],
+ 'R' :[F,'R'],
+ 'l' :[B,'l'],
+ 'L' :[F,'L'],
+ 'W' :[F,'W'],
+ 'V' :[F,'W'],
+ 'h' :[B,'H'],
+ 'kk' :[B,'kK'],
+ 'kkm' :[B,'kK/N'],
+
+ 'sh' :[B,'sh'],
+ '^s' :[B,'Sh'],
+ '^sh' :[B,'Sh'],
+ 's' :[B,'s'],
+
+ '^r' :[B,'rh'],
+ '^rh' :[B,'rhh'],
+ 'y' :[B,'y'],
+ 'Y' :[F,'Y'],
+ 'JY' :[F,'Y'],
+ '__t' :[B,'t//'],
+ '^ng' :[B,'NNG'],
+ ':h' :[B,'h'],
+ '^' :[F,'NN'],
+ '_' :[F,':/'],
+
+ 'A' :[S,'A'],
+ 'AA' :[S,'Aa'],
+ 'I' :[S,'I'],
+ 'II' :[S,'II'],
+ 'U' :[S,'U'],
+ 'UU' :[S,'UU'],
+ 'RI' :[S,'RR'],
+ 'E' :[S,'E'],
+ 'OI' :[S,'OI'],
+ 'O' :[S,'O'],
+ 'OU' :[S,'OU'],
+
+ 'a' :[X,'o',1],
+ 'aa' :[s,'a',1],
+ 'i' :[s,'i',-1],
+ 'ii' :[s,'ii',1],
+ 'u' :[s,'u',1],
+ 'uu' :[s,'uu',1],
+ 'RII' :[s,'rR',1],
+ 'e' :[s,'e',-1],
+ 'oi' :[s,'oi',-2],
+ 'oo' :[s,'oo',11],
+ 'o' :[X,'o',1],
+ 'ou' :[s,'ou',12],
+
+ '.' :[F,'.'],
+ '..' :[F,'..'],
+ '...' :[F,'...'],
+ '|' :[F,'|'],
+
+ '~' :[F,'~'],
+ '`' :[F,'`'],
+ '!' :[F,'!'],
+ '1' :[F,'1'],
+ '2' :[F,'2'],
+ 'at' :[F,'@'],
+ '#' :[F,'#'],
+ '3' :[F,'3'],
+ '$' :[F,'$'],
+ '4' :[F,'4'],
+ '%' :[F,'%'],
+ '5' :[F,'5'],
+ '6' :[F,'6'],
+ '&' :[F,'&'],
+ '7' :[F,'7'],
+ '*' :[F,'*'],
+ '8' :[F,'8'],
+ '(' :[F,'('],
+ '9' :[F,'9'],
+ ')' :[F,')'],
+ '0' :[F,'0'],
+ 'dash' :[F,'-'],
+ '+' :[F,'+'],
+ '=' :[F,'='],
+ '|' :[F,'|'],
+ '{' :[F,'{'],
+ '[' :[F,'['],
+ '}' :[F,'}'],
+ ']' :[F,']'],
+ ':' :[F,':'],
+ ';' :[F,';'],
+ '"' :[F,'"'],
+ "'" :[F,"'"],
+ '<' :[F,'<'],
+ ',' :[F,','],
+ '>' :[F,'>'],
+ '.' :[F,'.'],
+ '?' :[F,'?'],
+ '/' :[F,'/']}
+
+CATCODES = {'SS' :[S,'','','',1],
+ 'SB' :[B,'','','',1],
+ 'BS' :[S,'','','',1],
+ 'BB' :[B,'','/','',1],
+ 'BF' :[F,'','','',1],
+ 'Bs1' :[S,'','','',1],
+ 'Bs-1':[S,'\*','','*',1],
+ 'Bs-2':[S,'\*','','*{oi}',0],
+ 'Bs11':[S,'\*','','*ea',0],
+ 'Bs12':[S,'\*','','*eou',0],
+ 'Fs1' :[S,'','','',1],
+ 'Fs-1':[S,'\*','','*',1],
+ 'Fs-2':[S,'\*','','*{oi}',0],
+ 'Fs11':[S,'\*','','*ea',0],
+ 'Fs12':[S,'\*','','*eou',0],
+ 'FF' :[F,'','','',1],
+ 'AX' :[F,'','','',1]}
+
+def blocked(line):
+ #print '@ blocked', line , '->',
+ m = sre.findall('@[^@]+@',line)
+ outline = line
+ if not m :
+ #print outline
+ return(outline)
+ else:
+ for i in range(len(m)):
+ s=m[i][:-1].replace(' ','%X%')
+ outline = outline.replace(m[i],s,1)
+ #print outline
+ return(outline)
+
+def unblock(line):
+ #print '@unblock', line, '->',
+ m = sre.findall('@[^\s]+',line)
+ outline = line
+ if not m :
+ #print outline
+ return(outline)
+ else:
+ for i in range(len(m)):
+ s=m[i].replace('@','').replace('%X%',' ')
+ outline = outline.replace(m[i],s)
+ #print outline
+ return(outline)
+
+def printamp(line):
+ #print '@unblock', line, '->',
+ m = sre.findall('#AT',line)
+ outline = line
+ if not m :
+ #print outline
+ return(outline)
+ else:
+ for i in range(len(m)):
+ outline = outline.replace('#AT','@')
+ #print outline
+ return(outline)
+
+def readsyll(syll):
+ syllparts=[]
+ start = 0; end = len(syll)
+ while syll[start : end]:
+ slice = syll[start : end]
+ #print slice
+ if AKSAR.has_key(slice):
+ syllparts.append(AKSAR[slice])
+ start = start + len(slice)
+ end = len(syll)
+ else :
+ end = end -1
+ return(syllparts)
+
+def fuse(list1,list2):
+ global CCATCODE
+ #print list1,list2
+ Type1 = list1[0]
+ Type2 = list2[0]
+
+ if Type2 == s:
+ Type3 = str(list2[2])
+ elif Type2 == X:
+ Type1=A
+ Type3=''
+ else:
+ Type3 =''
+
+ Type = Type1+Type2+Type3
+
+ #print 'Type:', Type
+
+ try:
+ CATCODE = CATCODES[Type]
+ TARGET = CATCODE[0]
+ PREFIX = CATCODE[1]
+ MIDFIX = CATCODE[2]
+ POSTFIX = CATCODE[3]
+ FLAG = CATCODE[4]
+
+ #print 'TGT:', TARGET, PREFIX,MIDFIX,POSTFIX,FLAG
+ #print 'RAWC', AKSAR[list1[1]][1],AKSAR[list2[1]][1]
+
+ c1=list1[1]
+ c2=list2[1]
+
+ if FLAG == 1 :
+ c = PREFIX + c1 + MIDFIX + POSTFIX + c2
+ else :
+ c = PREFIX + c1 + MIDFIX + POSTFIX
+
+ fused = [TARGET,c]
+ #print CATCODE
+ return(fused)
+ except KeyError:
+ print '\n ERROR AT LINE:', NCLINE, 'WORD:',NCWORD, '(',CWORD,')'
+ return(['ERROR','UNKNOWN CATCODE'])
+
+def fuseatoms(syll):
+ slist=readsyll(syll);
+ #print slist
+ lslist=len(slist);
+ l0=slist[0];
+ for i in range(1,lslist):
+ nextitem = slist[i]
+ l0=fuse(l0,nextitem)
+
+ return(l0[1])
+
+def fuseword(wrd):
+ if wrd[0] == '@' :
+ return(wrd)
+ syllables = wrd.split('-')
+ w0=''
+ for eachsyll in syllables:
+ syll=eachsyll
+ thesyll = fuseatoms(syll)
+ w0 = w0 + thesyll
+ #print 'FUSED WORD',w0
+ return(w0)
+
+def fuseline(line):
+ global NCWORD,CWORD
+ NCWORD = 0
+ #line = blocked(line)
+ words = line.split()
+ l0=''
+ for eachword in words:
+ NCWORD=NCWORD+1
+ word = eachword
+ CWORD=word
+ theword=fuseword(word)
+ #print 'XX',theword
+ l0=l0+' '+theword
+ #print 'FUSED LINE', l0
+ return(l0)
+
+# The main program
+import sys
+OK=1
+finnam = sys.argv[1]
+foutnam = finnam.split('.')[0] + '.' + 'tex'
+
+fin = file(finnam,'rt')
+fout = file(foutnam,'wt')
+
+textin = fin.readlines()
+nlines = len(textin)
+
+textout = []
+
+fin.close()
+
+for eachline in textin:
+ NCLINE = NCLINE+1
+ if eachline[0] == '#' :
+ lineout = eachline[1:]
+ elif eachline[0] == '\\' :
+ lineout = eachline
+ elif eachline == '\n':
+ lineout = eachline
+ else :
+ line1 = eachline.strip()
+ line2 = blocked(line1)
+ lineout = fuseline(line2) + '\n'
+ lineout = lineout[1:]
+ #print ':::', lineout
+ if lineout.find('UNKNOWN CATCODE') == -1 :
+ lineout = unblock(lineout)
+ #print ':::', lineout
+ textout.append(printamp(lineout))
+ else :
+ OK = 0
+ fout.close()
+
+if OK == 1:
+ fout.writelines(textout)
+ fout.close()
+ print 'done'
+else:
+ print 'Unknown CATCODE, Fix The errors and try again'
diff --git a/language/bengali/latexbangla/README b/language/bengali/latexbangla/README
new file mode 100644
index 0000000000..305113abbc
--- /dev/null
+++ b/language/bengali/latexbangla/README
@@ -0,0 +1,27 @@
+ ----------------------------------------------------------------
+ LaTeXbangla package - Enhanced LaTeX integration for Bangla
+ E-mail: adib.hasan8@gmail.com
+ Released under the LaTeX Project Public License v1.3c or later
+ See http://www.latex-project.org/lppl.txt
+ ----------------------------------------------------------------
+ This package simplifies the process of writing Bangla in LaTeX and
+ addresses most of the common typesetting issues. Additional features
+ include automatic transition between languages and many more. (See
+ examples) The user can just type in usual LaTeX syntax and expect
+ everything to work as it should.
+ ------------------------------------------------------------------
+ Copyright (C) 2016 by Adib Hasan adib.hasan8@gmail.com
+
+ This work may be distributed and/or modified under the
+ conditions of the LaTeX Project Public License (LPPL), either
+ version 1.3c of this license or (at your option) any later
+ version. The latest version of this license is in the file:
+
+ http://www.latex-project.org/lppl.txt
+
+ This work is "maintained" (as per LPPL maintenance status) by
+ Adib Hasan
+
+ This work consists of the files: latexbangla.sty,
+ latexbangla.tex, and
+ latexbangla.pdf
diff --git a/language/bengali/latexbangla/latexbangla.pdf b/language/bengali/latexbangla/latexbangla.pdf
new file mode 100644
index 0000000000..9c1b62e449
--- /dev/null
+++ b/language/bengali/latexbangla/latexbangla.pdf
Binary files differ
diff --git a/language/bengali/latexbangla/latexbangla.sty b/language/bengali/latexbangla/latexbangla.sty
new file mode 100644
index 0000000000..71ffb3549f
--- /dev/null
+++ b/language/bengali/latexbangla/latexbangla.sty
@@ -0,0 +1,242 @@
+% ----------------------------------------------------------------
+% LaTeXbangla package - Enhanced LaTeX integration for Bangla
+% E-mail: adib.hasan8@gmail.com
+% Released under the LaTeX Project Public License v1.3c or later
+% See http://www.latex-project.org/lppl.txt
+% ----------------------------------------------------------------
+% This package simplifies the process of writing Bangla in LaTeX and
+% addresses most of the common typesetting issues. Additional features
+% include automatic transition between languages and many more. (See
+% examples) The user can just type in usual LaTeX syntax and expect
+% everything to work as it should.
+% ------------------------------------------------------------------
+% Copyright (C) 2016 by Adib Hasan adib.hasan8@gmail.com
+
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License (LPPL), either
+% version 1.3c of this license or (at your option) any later
+% version. The latest version of this license is in the file:
+
+% http://www.latex-project.org/lppl.txt
+
+% This work is "maintained" (as per LPPL maintenance status) by
+% Adib Hasan
+
+% This work consists of the files: latexbangla.sty,
+% latexbangla.tex, and
+% latexbangla.pdf
+%
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{latexbangla}[2016/10/31 v0.2 Enhanced LaTeX integration for Bangla]
+
+\RequirePackage{polyglossia, fontspec, xkeyval, ifxetex}
+
+% Because this package depends on ucharclasses which itself
+% requires XeTeX's interchar classes
+\RequireXeTeX
+
+%Fully supported Bangla Fonts
+%Other banglafonts *are* supported but there might be issues with whitespaces.
+\def\@@Kalpurush{Kalpurush}
+\def\@Kalpurush#1{
+ \ifcase#1{Kalpurush} %name
+ \or{MatchLowercase} %Scale
+ \or{1.1} %main WordSpace
+ \or{1.5} %tt WordSpace
+ \else\fi
+}
+\def\@@SiyamRupali{SiyamRupali}
+\def\@SiyamRupali#1{
+ \ifcase#1{SiyamRupali} %name
+ \or{0.8} %Scale
+ \or{1.2} %main WordSpace
+ \or{1.8} %tt WordSpace
+ \else\fi
+}
+\def\@@SolaimanLipi{SolaimanLipi}
+\def\@SolaimanLipi#1{
+ \ifcase#1{SolaimanLipi} %name
+ \or{0.9} %Scale
+ \or{1.5} %main WordSpace
+ \or{2.1} %tt WordSpace
+ \else\fi
+}
+
+\DeclareOptionX{banglamainfont}{%
+ \if\relax\detokenize{#1}\relax
+ \errmessage{Bangla main font not defined}
+ \else
+ \def\bm@name{#1}
+ \def\bm@@name{bmfont}
+ \bm@init{\bm@name}
+ \fi
+}
+\DeclareOptionX{banglattfont}{%
+ \if\relax\detokenize{#1}\relax
+ \errmessage{Bangla tt font not defined}
+ \else
+ \def\btt@name{#1}
+ \def\btt@@name{bttfont}
+ \btt@init{\btt@name}
+ \fi
+}
+
+\newif\if@none
+\newif\if@recom
+\newif\if@full
+\@recomtrue
+\DeclareOptionX{feature}{
+ \if\relax\detokenize{#1}\relax\fi
+ \ifcase#1
+ \@recomfalse
+ \@nonetrue
+ \or\or\@fulltrue\fi
+}
+
+\newif\ifchange@num
+\change@numtrue
+\DeclareOptionX{changecounternumbering}{
+ \if\relax\detokenize{#1}\relax\fi
+ \ifcase#1\change@numfalse\fi
+}
+
+\def\bm@init#1{
+ \ifx#1\@@Kalpurush
+ \def\bm@scale{\@Kalpurush{1}}
+ \def\bm@wordspace{\@Kalpurush{2}}
+ \else\ifx#1\@@SiyamRupali
+ \def\bm@scale{\@SiyamRupali{1}}
+ \def\bm@wordspace{\@SiyamRupali{2}}
+ \else\ifx#1\@@SolaimanLipi
+ \def\bm@scale{\@SolaimanLipi{1}}
+ \def\bm@wordspace{\@SolaimanLipi{2}}
+ \else
+ \def\bm@scale{MatchLowercase}
+ \def\bm@wordspace{1}
+ \fi\fi\fi
+}
+\def\btt@init#1{
+ \ifx#1\@@Kalpurush
+ \def\btt@scale{\@Kalpurush{1}}
+ \def\btt@wordspace{\@Kalpurush{3}}
+ \else\ifx#1\@@SiyamRupali
+ \def\btt@scale{\@SiyamRupali{1}}
+ \def\btt@wordspace{\@SiyamRupali{3}}
+ \else\ifx#1\@@SolaimanLipi
+ \def\btt@scale{\@SolaimanLipi{1}}
+ \def\btt@wordspace{\@SolaimanLipi{3}}
+ \else
+ \def\btt@scale{MatchLowercase}
+ \def\btt@wordspace{1.2}
+ \fi\fi\fi
+}
+
+\ProcessOptionsX\relax
+
+%From polyglossia
+\ifchange@num
+ \setmainlanguage[changecounternumbering=true]{bengali}
+\else
+ \setmainlanguage{bengali}
+\fi
+
+\newfontfamily\bengalifont[%
+ Script=Bengali,%
+ Scale=\bm@scale,%
+ NFSSFamily=\bm@@name,%
+ WordSpace=\bm@wordspace,%
+ AutoFakeSlant,
+ AutoFakeBold
+ ]{\bm@name}
+
+\newfontfamily\bengalifonttt[%
+ Script=Bengali,%
+ Scale=\btt@scale,%
+ NFSSFamily=\btt@@name,
+ WordSpace=\btt@wordspace,%
+ AutoFakeSlant,
+ AutoFakeBold
+ ]{\btt@name}
+
+\newenvironment{latin}{\fontencoding{OT1}\ifx\f@family\btt@@name\fontfamily{lmtt}\else\fontfamily{lmr}\fi\selectfont}\relax
+
+%Devanagari is required since Bangla fullstop dari ("0964) is in
+%Devanagari block of Unicode
+\RequirePackage[Latin, Bengali, Devanagari]{ucharclasses}
+\setTransitionsForLatin{\begin{latin}}{\end{latin}}
+
+%if feature=0 is provided no other modifications will be enabled
+%However, from my personal experience, I find the following modifications to be useful.
+
+%the default for feature option is 1, which enables the recommended modifications
+\if@recom
+ \RequirePackage{titlesec, amsthm, xpatch, amsfonts, amssymb, amsmath, enumerate, chngcntr, hyperref}
+ %adding a dot after the number in titles
+ \titlelabel{\thetitle.\enspace}
+
+ %making the word "proof" in proof env. bold and adding a : after it.
+ \xpatchcmd{\proof}{\itshape}{\bfseries}{}{}
+ \xpatchcmd{\proof}{\@addpunct{.}}{\@addpunct{:}}{}{}
+
+ \counterwithin{equation}{section}
+
+ \renewcommand\UrlFont{\fontencoding{OT1}\fontfamily{lmtt}\selectfont}
+
+ %increases gap between lines
+ \linespread{1.1}
+
+ %defining a \tobangla which converts numbers in any counter to bangla
+ \def\@banglanumber#1{\expandafter\@@banglanumber\number#1\@nil}
+ \def\@@banglanumber#1{\ifx#1\@nil
+ \else\char\numexpr#1+"09E6\relax\expandafter\@@banglanumber\fi}
+ \def\tobangla#1{\expandafter\@banglanumber\csname c@#1\endcsname}
+ \def\numtobangla#1{\@@banglanumber#1\@nil}
+
+ %Because polyglossia itself defines প্রমাণ as italic. I'm making it bold.
+ \addto\captionsbengali{\renewcommand\proofname{\bfseries প্রমাণ}}
+
+ %a new solution environment
+ \newenvironment{solution}{\proof[\bfseries সমাধান]}{\endproof}
+
+ \newtheoremstyle{custom}% name
+ {3pt}% space above
+ {3pt}% space below
+ {\rm}% body font
+ {}% indent amount
+ {\bfseries}% theorem head font
+ {:}% punctuation after theorem head
+ {.5em}% space after theorem head
+ {}% theorem head spec
+ \theoremstyle{custom}
+ \newtheorem{example}{\bfseries উদাহরণ}
+ \newtheorem{problem}{\bfseries সমস্যা}
+ \newtheorem{theorem}{\bfseries উপপাদ্য}[section]
+
+ %converting all the useful counters not handled by polyglossia to bangla
+ \renewcommand{\theequation}{\thesection.\tobangla{equation}}
+ \renewcommand{\thetheorem}{\thesection.\tobangla{theorem}}
+ \renewcommand{\theexample}{\tobangla{example}}
+ \renewcommand{\theproblem}{\tobangla{problem}}
+ \renewcommand{\theenumi}{\tobangla{enumi}}
+ \renewcommand{\theenumii}{\tobangla{enumii}}
+ \renewcommand{\theenumiii}{\tobangla{enumiii}}
+ \renewcommand{\thefootnote}{\tobangla{footnote}}
+\fi
+
+%feature=2 enabes further modifiations as follows
+\if@full
+ \RequirePackage{titlesec, amsthm, xpatch, amsfonts, amssymb, amsmath, enumerate, chngcntr}
+ \theoremstyle{custom}
+ \newtheorem{corollary}{\bfseries অনুসিদ্ধান্ত}[section]
+ \newtheorem{property}{\bfseries বৈশিষ্ট্য}[section]
+ \newtheorem*{remark}{\bfseries মন্তব্য}
+ \newtheorem*{hint} {\bfseries হিন্ট}
+ \renewcommand{\thecorollary}{\thesection.\tobangla{corollary}}
+ \renewcommand{\theproperty}{\thesection.\tobangla{property}}
+ \addto\captionsbengali{\renewcommand\abstractname{\bfseries সারসংক্ষেপ}}
+ %\addto\captionsbengali{\renewcommand\referencename{\bfseries তথ্যসূত্রসমূহ}}
+ \newenvironment{motive}{\proof[\bfseries মোটিভেশন]}{\phantom\qedhere\endproof}
+ \def\equationautorefname~#1\null{(#1)\null}
+\fi
+\endinput
diff --git a/language/bengali/latexbangla/latexbangla.tex b/language/bengali/latexbangla/latexbangla.tex
new file mode 100644
index 0000000000..1dd8cc7d38
--- /dev/null
+++ b/language/bengali/latexbangla/latexbangla.tex
@@ -0,0 +1,428 @@
+\documentclass[11pt]{article}
+
+\usepackage[banglamainfont=Kalpurush, banglattfont=Siyam Rupali, feature=0, changecounternumbering=0]{latexbangla}
+\usepackage[top=8em, left=10em, right=10em, bottom=8em]{geometry}
+\usepackage{verbatim,spverbatim, hyperref, tcolorbox, hologo, enumerate, amsthm, xpatch, amsfonts, amssymb, amsmath, enumerate, chngcntr, pgffor}
+\hypersetup{hidelinks=yes}
+\tcbuselibrary{breakable}
+
+\def\fileversion{v0.2}
+\def\filedate{31 October, 2016}
+\def\latexbangla{\hologo{LaTeX}\texttt{bangla}}
+\newcommand{\pkn}[1]{\texttt{#1}}
+\addto\captionsbengali{%
+ \renewcommand{\contentsname}{Table of Contents}%
+}
+
+\makeatletter
+%making the word "proof" in proof env. bold and adding a : after it.
+\xpatchcmd{\proof}{\itshape}{\bfseries}{}{}
+\xpatchcmd{\proof}{\@addpunct{.}}{\@addpunct{:}}{}{}
+\linespread{1.1}
+\def\@banglanumber#1{\expandafter\@@banglanumber\number#1\@nil}
+\def\@@banglanumber#1{\ifx#1\@nil
+\else\char\numexpr#1+"09E6\relax\expandafter\@@banglanumber\fi}
+\def\tobangla#1{\expandafter\@banglanumber\csname c@#1\endcsname}
+\def\numtobangla#1{\@@banglanumber#1\@nil}\addto\captionsbengali{\renewcommand\proofname{\bfseries প্রমাণ}}
+\newenvironment{solution}{\proof[\bfseries সমাধান]}{\endproof}
+
+\newtheoremstyle{custom}% name
+{3pt}% space above
+{3pt}% space below
+{\rm}% body font
+{}% indent amount
+{\bfseries}% theorem head font
+{:}% punctuation after theorem head
+{.5em}% space after theorem head
+{}% theorem head spec
+\theoremstyle{custom}
+\newtheorem{problem}{\bfseries সমস্যা}
+\renewcommand{\theequation}{\thesection.\tobangla{equation}}
+\renewcommand{\theproblem}{\tobangla{problem}}
+\makeatother
+
+
+
+
+\title{The \latexbangla~Package\\
+Enhanced \LaTeX\ integration for Bangla}
+\author{Adib Hasan\\
+\texttt{adib.hasan8@gmail.com}}
+\date{\filedate\qquad\fileversion}
+
+\begin{document}
+\maketitle
+\tableofcontents
+\pagebreak
+\section{Introduction}
+Including any unicode text in \hologo{LaTeX} has become very simple thanks to the \hologo{XeLaTeX} engine. To do so, the user only has to use the {\tt fontspec} package and load an appropriate font. This is the standard technique for including multiple languages in one document. The {\tt polyglossia} package even facilitates the process for many languages by providing refined controls. Unfortunately, {\tt polyglossia}'s support for Bangla is too limited to produce good quality Bangla documents.
+
+So, I decided to address all the common Bangla typesetting problems in this package, \latexbangla. I have also added useful functionalities to it such as, automated transition between Bangla and English (by exploiting \hologo{XeTeX}'s internal character class feature) and many more.
+\section{How to use}
+\subsection{Sample Code}
+Here is the simplest example for \latexbangla:
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\documentclass{article}
+\usepackage[banglamainfont=Kalpurush,
+ banglattfont=Siyam Rupali
+ ]{latexbangla}
+\begin{document}
+পিথাগোরাস(Pythagoras)-এর উপপাদ্যটি হল,\\
+\textit{সমকোণী ত্রিভুজের অতিভুজের উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফল অপর দুই বাহুর
+উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফলের সমষ্টির সমান।}\\
+অর্থাৎ কোন সমকোণী ত্রিভুজের অতিভুজ $c$ এবং অপর দুই বাহু $a$ এবং $b$ হলে,
+\[c^2=a^2+b^2\]
+লক্ষ্য করুন, এখন পর্যন্ত টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ} ফন্ট ব্যবহৃত হয়েছে।\\
+\texttt{এবার, টেলিটাইপ(Teletype) টেক্সট প্রদর্শনের জন্য \textbf{সিয়াম রূপালী}
+ফন্ট ব্যবহৃত হল।}\\
+পুনরায় টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ} ফন্ট ব্যবহৃত হচ্ছে।
+\end{document}
+\end{verbatim}
+\end{tcolorbox}
+\begin{tcolorbox}[breakable, colback=white]
+পিথাগোরাস(Pythagoras)-এর উপপাদ্যটি হল,\\
+\textit{সমকোণী ত্রিভুজের অতিভুজের উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফল অপর দুই বাহুর
+উপর অঙ্কিত বর্গক্ষেত্রের ক্ষেত্রফলের সমষ্টির সমান।}\\
+অর্থাৎ কোন সমকোণী ত্রিভুজের অতিভুজ $c$ এবং অপর দুই বাহু $a$ এবং $b$ হলে,
+\[c^2=a^2+b^2\]
+লক্ষ্য করুন, এখন পর্যন্ত টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ} ফন্ট ব্যবহৃত হয়েছে।\\
+\texttt{এবার, টেলিটাইপ(Teletype) টেক্সট প্রদর্শনের জন্য \textbf{সিয়াম রূপালী}
+ফন্ট ব্যবহৃত হল।}\\
+পুনরায় টেক্সট প্রদর্শনের জন্য \textbf{কালপুরুষ} ফন্ট ব্যবহৃত হচ্ছে।
+\end{tcolorbox}
+As you see, no special command was required to switch language or to use any other facility. With \latexbangla, you don't need to learn a hundred new commands to type Bangla. You simply type normal \hologo{LaTeX} syntax and expect everything to work as it should.
+
+\latexbangla~does have some limitations, however. (Most of which are due to my lack of time to implement solutions.) So, do take a look at the known issues section.
+\section{Functionalities}
+\subsection{Package options}
+Package options are listed below:\vspace*{2mm}
+\begin{itemize}
+\renewcommand\labelitemi{}
+
+\item\noindent\texttt{banglamainfont}\textbf{(Required)}\\
+Sets the default Bangla font for the document, but does not affect the Latin characters. (They are rendered by the \hologo{LaTeX} default Latin Modern font.) \latexbangla~will automatically fake bold, italic and bolditalic variants for \pkn{banglamainfont} if no font from the appropriate subfamily is found.\\
+
+\item\texttt{banglattfont}\textbf{(Required)}\\
+The default Teletype Bangla font. (Again, Latin characters are rendered by the \hologo{LaTeX} default Latin Modern Teletype.) \latexbangla~will also fake bold, italic and bolditalic variants automatically for this font if no font from the appropriate subfamily is found.\\
+
+\item\texttt{feature}(Optional, default=1)(\texttt{0->none, 1->recommended, 2->full})\\
+To which extent \latexbangla~should enable additional features. For \pkn{feature=1}, the following features will be enabled:
+\begin{enumerate}
+\item the following packages are loaded: \pkn{titlesec, amsthm, xpatch, amsfonts, amssymb, amsmath, enumerate, chngcntr}.
+\item a ``Dot" is added after chapter, section, subsection etc. numbers.
+\item \textit{প্রমাণ.} is replaced by \textbf{প্রমাণ:} in \pkn{proof} environment.
+\item Line height is set to 110\%.
+\item A new command \verb|\tobangla{counter name}| is defined. (See commands subsection for description)
+\item \pkn{example, problem, solution, theorem} environments are defined. The counter associated with \texttt{theorem} environment resets in every section.
+\item The counters associated with \pkn{enumerate, footnote} environments are converted to Bangla.
+\end{enumerate}
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\usepackage[banglamainfont=Kalpurush,
+ banglattfont=Siyam Rupali,
+ ]{latexbangla}
+\begin{document}
+\begin{problem}
+$p$ একটি মৌলিক সংখ্যা এবং $n$ একটি স্বাভাবিক সংখ্যা হলে প্রমাণ কর যে
+$p|n^p-n$
+\end{problem}
+\begin{proof}
+$p|n$ হলে এটি স্বাভাবিকভাবেই সত্যি। অন্যথায়, $\{n,2n,\ldots,(p-1)n\}$
+ একটি পূর্ণাঙ্গ রেসিডিও ক্লাস তৈরি করে। যার ফলে...
+\end{proof}
+\begin{problem}
+$a$ এবং $n$ পরস্পর সহমৌলিক স্বাভাবিক সংখ্যা হলে দেখাও যে $a^{\phi(n)}
+\equiv 1\pmod n$
+\end{problem}
+\end{document}
+\end{verbatim}
+\end{tcolorbox}
+\begin{tcolorbox}[breakable, colback=white]
+\begin{problem}
+$p$ একটি মৌলিক সংখ্যা এবং $n$ একটি স্বাভাবিক সংখ্যা হলে প্রমাণ কর যে $p|n^p-n$
+\end{problem}
+\begin{proof}
+$p|n$ হলে এটি স্বাভাবিকভাবেই সত্যি। অন্যথায়, $\{n,2n,\ldots,(p-1)n\}$ একটি
+পূর্ণাঙ্গ রেসিডিও ক্লাস তৈরি করে। যার ফলে...
+\end{proof}
+\begin{problem}
+$a$ এবং $n$ পরস্পর সহমৌলিক স্বাভাবিক সংখ্যা হলে দেখাও যে $a^{\phi(n)}\equiv 1\pmod n$
+\end{problem}
+\end{tcolorbox}
+
+If \pkn{feature} is set to 2, the following additional features will be enabled:
+\begin{enumerate}
+\item \texttt{corollary, property, hint, remarks} environments. The counters of \texttt{corollary} and \texttt{property} environment reset in every section. \pkn{hint} and \pkn{remarks} environments have no counter.
+\item Automated parentheses around equation references, activated by the \pkn{autoref} command of the \pkn{hyperref} package.
+\end{enumerate}
+\item\pkn{changecounternumbering}(Optional, default=1)\\
+The \pkn{polyglossia} package does have an option to convert some important counters (like those of chapters and sections) to Bangla. This option asks whether \latexbangla~should enable that option. By default, it is set to be enabled. You may consider disabling it if your document mostly contains English text.
+\end{itemize}
+\subsection{Commands}
+\begin{itemize}
+\renewcommand\labelitemi\relax
+\item\verb|\tobangla{counter name}|\\
+Converts a counter to Bangla.
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\newcounter{test}
+A new counter `test' is defined.\\
+test is in English: \thetest\\
+\renewcommand{\thetest}{\tobangla{test}}
+test is now in Bangla: \thetest\\
+\stepcounter{test}
+Incrementing test: \thetest\\
+\renewcommand{\thetest}{\arabic{test}}
+test is again in English: \thetest
+\end{verbatim}
+\end{tcolorbox}
+\begin{tcolorbox}[breakable, colback=white]
+\newcounter{test}
+A new counter `test' is defined.\\
+test is in English: \thetest\\
+\renewcommand{\thetest}{\tobangla{test}}
+test is now in Bangla: \thetest\\
+\stepcounter{test}
+Incrementing test: \thetest\\
+\renewcommand{\thetest}{\arabic{test}}
+test is again in English: \thetest
+\end{tcolorbox}
+\item\verb|\numtobangla{number}|\\
+same as \verb|\tobangla|. It converts an English number to Bangla.
+\end{itemize}
+\section{Known Issues}
+You might face the following issues for this (v 0.1) release of \latexbangla. I hope to fix them in the upcoming releases. If you have any question or suggestion, don't hesitate to contact me.
+\begin{enumerate}
+\item You \textit{must} define both {\tt banglamainfont} and {\tt banglattfont} even if you use only one or (possibly) none of them in the document.
+\item A font can't be both {\tt banglamainfont} and {\tt banglattfont} due to limitation in the internal logics. Until I fix it, you can set Kalpurush and SolaimanLipi as your main and tt fonts since they look identical.
+\item The whitespace character in many Bangla fonts is too short for \hologo{LaTeX}. This can't be `fixed', since it is purely a font specific issue. Nevertheless, I have manually reset relative whitespace lengths for ``Kalpurush'', ``SolaimanLipi'' and ``Siyam Rupali'' (precisely these names without the quotes). So, for the best results, you should consider installing these fonts before using \latexbangla. (Other Bangla fonts \textit{will} work with \latexbangla, but their interword spacings might be unsatisfactory.) My personal choice for main/tt font combination is Kalpurush/Siyam Rupali.
+\item Package \texttt{listings} does not work with Teletype texts.
+\end{enumerate}
+\section{Implementation}
+Because this package depends on \pkn{ucharclasses} (which itself depends on XeTeX's \pkn{interchar classes}).
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\RequirePackage{polyglossia, fontspec, xkeyval, ifxetex}
+\RequireXeTeX
+\end{verbatim}
+\end{tcolorbox}
+The following Bangla fonts are fully supported. (Other Bangla fonts \textit{are} supported, but some issues might arise with whitespaces.
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\def\@@Kalpurush{Kalpurush}
+\def\@Kalpurush#1{
+ \ifcase#1{Kalpurush} %name
+ \or{MatchLowercase} %Scale
+ \or{1.1} %main WordSpace
+ \or{1.5} %tt WordSpace
+ \else\fi
+}
+\def\@@SiyamRupali{SiyamRupali}
+\def\@SiyamRupali#1{
+ \ifcase#1{SiyamRupali} %name
+ \or{0.8} %Scale
+ \or{1.2} %main WordSpace
+ \or{1.8} %tt WordSpace
+ \else\fi
+}
+\def\@@SolaimanLipi{SolaimanLipi}
+\def\@SolaimanLipi#1{
+ \ifcase#1{SolaimanLipi} %name
+ \or{0.9} %Scale
+ \or{1.5} %main WordSpace
+ \or{2.1} %tt WordSpace
+ \else\fi
+}
+\end{verbatim}
+\end{tcolorbox}
+Now declaring options.
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\DeclareOptionX{banglamainfont}{%
+ \if\relax\detokenize{#1}\relax
+ \errmessage{Bangla main font not defined}
+ \else
+ \def\bm@name{#1}
+ \def\bm@@name{bmfont}
+ \bm@init{\bm@name}
+ \fi
+}
+\DeclareOptionX{banglattfont}{%
+ \if\relax\detokenize{#1}\relax
+ \errmessage{Bangla tt font not defined}
+ \else
+ \def\btt@name{#1}
+ \def\btt@@name{bttfont}
+ \btt@init{\btt@name}
+ \fi
+}
+
+\newif\if@none
+\newif\if@recom
+\newif\if@full
+\@recomtrue
+\DeclareOptionX{feature}{
+ \if\relax\detokenize{#1}\relax\fi
+ \ifcase#1
+ \@recomfalse
+ \@nonetrue
+ \or\or\@fulltrue\fi
+}
+
+\newif\ifchange@num
+\change@numtrue
+\DeclareOptionX{changecounternumbering}{
+ \if\relax\detokenize{#1}\relax\fi
+ \ifcase#1\change@numfalse\fi
+}
+\end{verbatim}
+\end{tcolorbox}
+Now initialize \pkn{banglamain} and \pkn{banglatt} fonts.
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\def\bm@init#1{
+ \ifx#1\@@Kalpurush
+ \def\bm@scale{\@Kalpurush{1}}
+ \def\bm@wordspace{\@Kalpurush{2}}
+ \else\ifx#1\@@SiyamRupali
+ \def\bm@scale{\@SiyamRupali{1}}
+ \def\bm@wordspace{\@SiyamRupali{2}}
+ \else\ifx#1\@@SolaimanLipi
+ \def\bm@scale{\@SolaimanLipi{1}}
+ \def\bm@wordspace{\@SolaimanLipi{2}}
+ \else
+ \def\bm@scale{MatchLowercase}
+ \def\bm@wordspace{1}
+ \fi\fi\fi
+}
+\def\btt@init#1{
+ \ifx#1\@@Kalpurush
+ \def\btt@scale{\@Kalpurush{1}}
+ \def\btt@wordspace{\@Kalpurush{3}}
+ \else\ifx#1\@@SiyamRupali
+ \def\btt@scale{\@SiyamRupali{1}}
+ \def\btt@wordspace{\@SiyamRupali{3}}
+ \else\ifx#1\@@SolaimanLipi
+ \def\btt@scale{\@SolaimanLipi{1}}
+ \def\btt@wordspace{\@SolaimanLipi{3}}
+ \else
+ \def\btt@scale{MatchLowercase}
+ \def\btt@wordspace{1.2}
+ \fi\fi\fi
+}
+
+\ProcessOptionsX\relax
+\end{verbatim}
+\end{tcolorbox}
+Automating transition between Bangla and English.
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\ifchange@num
+ \setmainlanguage[changecounternumbering=true]{bengali}
+\else
+ \setmainlanguage{bengali}
+\fi
+
+\newfontfamily\bengalifont[%
+ Script=Bengali,%
+ Scale=\bm@scale,%
+ NFSSFamily=\bm@@name,%
+ WordSpace=\bm@wordspace,%
+ AutoFakeSlant,
+ AutoFakeBold
+ ]{\bm@name}
+
+\newfontfamily\bengalifonttt[%
+ Script=Bengali,%
+ Scale=\btt@scale,%
+ NFSSFamily=\btt@@name,
+ WordSpace=\btt@wordspace,%
+ AutoFakeSlant,
+ AutoFakeBold
+ ]{\btt@name}
+
+\newenvironment{latin}
+{\fontencoding{OT1}\ifx\f@family\btt@@name\fontfamily{lmtt}
+\else\fontfamily{lmr}\fi\selectfont}\relax
+\end{verbatim}
+\end{tcolorbox}
+Devanagari is required since Bangla fullstop dari ("0964) is in Devanagari block of Unicode
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\RequirePackage[Latin, Bengali, Devanagari]{ucharclasses}
+\setTransitionsForLatin{\begin{latin}}{\end{latin}}
+\end{verbatim}
+\end{tcolorbox}
+if \pkn{feature=0} is provided no other modifications will be enabled. However, from my personal experience, I find the following modifications to be useful. (the default for feature option is 1, which enables the recommended modifications).
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\if@recom
+ \RequirePackage{titlesec, amsthm, xpatch, amsfonts,
+ amssymb, amsmath, enumerate, chngcntr}
+ \titlelabel{\thetitle.\enspace}
+
+ \xpatchcmd{\proof}{\itshape}{\bfseries}{}{}
+ \xpatchcmd{\proof}{\@addpunct{.}}{\@addpunct{:}}{}{}
+
+ \counterwithin{equation}{section}
+
+ \linespread{1.1}
+
+ \def\@banglanumber#1{\expandafter\@@banglanumber\number#1\@nil}
+ \def\@@banglanumber#1{\ifx#1\@nil\else\char\numexpr#1+"09E6\relax
+ \expandafter\@@banglanumber\fi}
+ \def\banglacounter#1
+ {\expandafter\@banglanumber\csname c@#1\endcsname}
+ \def\banglanumeral#1{\@@banglanumber#1\@nil}
+
+ \addto\captionsbengali{\renewcommand\proofname{\bfseries প্রমাণ}}
+ \newenvironment{solution}{\proof[\bfseries সমাধান]}{\endproof}
+
+ \newtheoremstyle{custom}% name
+ {3pt}% space above
+ {3pt}% space below
+ {\rm}% body font
+ {}% indent amount
+ {\bfseries}% theorem head font
+ {:}% punctuation after theorem head
+ {.5em}% space after theorem head
+ {}% theorem head spec
+ \theoremstyle{custom}
+ \newtheorem{example}{\bfseries উদাহরণ}
+ \newtheorem{problem}{\bfseries সমস্যা}
+ \newtheorem{theorem}{\bfseries উপপাদ্য}[section]
+ \renewcommand{\theequation}{\thesection.\banglacounter{equation}}
+ \renewcommand{\thetheorem}{\thesection.\banglacounter{theorem}}
+ \renewcommand{\theexample}{\banglacounter{example}}
+ \renewcommand{\theproblem}{\banglacounter{problem}}
+ \renewcommand{\theenumi}{\banglacounter{enumi}}
+ \renewcommand{\theenumii}{\banglacounter{enumii}}
+ \renewcommand{\theenumiii}{\banglacounter{enumiii}}
+ \renewcommand{\thefootnote}{\banglacounter{footnote}}
+\fi
+\end{verbatim}
+\end{tcolorbox}
+\pkn{feature=2} enables further modifiations as follows.
+\begin{tcolorbox}[breakable]
+\begin{verbatim}
+\if@full
+ \RequirePackage{titlesec, amsthm, xpatch, amsfonts, amssymb,
+ amsmath, enumerate, chngcntr}
+ \theoremstyle{custom}
+ \newtheorem{corollary}{\bfseries অনুসিদ্ধান্ত}[section]
+ \newtheorem{property}{\bfseries বৈশিষ্ট্য}[section]
+ \newtheorem*{remark}{\bfseries মন্তব্য}
+ \newtheorem*{hint} {\bfseries হিন্ট}
+ \renewcommand{\thecorollary}{\thesection.\banglacounter{corollary}
+ }
+ \renewcommand{\theproperty}{\thesection.\banglacounter{property}}
+ \addto\captionsbengali
+ {\renewcommand\abstractname{\bfseries সারসংক্ষেপ}}
+ \newenvironment{motive}{\proof[\bfseries মোটিভেশন]}
+ {\phantom\qedhere\endproof}
+ \def\equationautorefname~#1\null{(#1)\null}
+\fi
+\end{verbatim}
+\end{tcolorbox}
+\end{document}
diff --git a/language/bengali/mkbangtex/README b/language/bengali/mkbangtex/README
new file mode 100644
index 0000000000..9c7eb813cf
--- /dev/null
+++ b/language/bengali/mkbangtex/README
@@ -0,0 +1,38 @@
+mkbangtex Version 1.1.
+
+It creates a BangTeX file from a Bengali document written
+phonetically in Roman script and more ...
+
+[See accompanying documentation for further details.]
+---
+
+Usage: mkbangtex [-h, --alphabet] [-o <out_file> --transparent] <in_file>
+ -h, --help : print this page
+ -o <out_file> : specify output file
+ (default: in_file.tex)
+ --transparent : use default transparent symbols &
+ positioning of u, uu etc. for all
+ consonants and conjunctions
+ --alphabet : transliteration table
+ (with Unicode Bengali symbols)
+ --ancient : ancient Bengali --- without antastha ya
+ (NEW in v.1.1)
+
+
+Package Content:
+----------------
+README : This file
+mkbangtex : python code
+mkbangtex.bang : source file for documentation
+mkbangtex.tex : tex file for documentation
+mkbangtex.pdf : pdf file for documentation
+
+Updates from v.1.0:
+------------------
+1] added ancient option for writing old Bengali (e.g. charJaagIti)
+2] simplified usage for text-only files --- no need to specify modes
+3] fixed a bug about the units cm and in of latex
+4] alphabet shows Bengali letters (needs Unicode support)
+
+Report bugs to: koushik(at)iacs(dot)res(dot)in
+License: GPL
diff --git a/language/bengali/mkbangtex/mkbangtex b/language/bengali/mkbangtex/mkbangtex
new file mode 100644
index 0000000000..b7c3d016f7
--- /dev/null
+++ b/language/bengali/mkbangtex/mkbangtex
@@ -0,0 +1,560 @@
+#!/usr/bin/python
+
+# Last updated: 13-09-2006:
+# added the unicode-bengali alphabet list
+# added --ancient option
+# fixed the problem of unit specification
+# This code uses Xavier Defrang's Single-Pass Multiple Replace,
+# Py Cookbook 81330 (=3.14 hardcopy) in an essential fashion.
+
+from __future__ import nested_scopes
+
+import string, re, sys, getopt, timing
+timing.start()
+
+version = "1.1"
+
+usage = '''
+This is mkbangtex Version %s.
+It creates a BangTeX file from a Bengali document written
+phonetically in Roman script. It works in two modes, which
+are automatically detected:
+bengali: converts anything but single-word latex
+ commands not enclosing within a pair of '@fn's
+foreign: converts only the portions enclosed within a pair of '@bn's
+CAUTION: Only ONE mode can be used in a file
+
+A piece of text enclosed within a pair of '@b2e's is converted
+from Bengali to acctented Roman script following the IAST (1912)
+rules. Works in both modes.
+[See accompanying documentation for further details]
+---
+
+Usage: mkbangtex [-h, --alphabet --transparent, --ancient, -o <out_file>] <in_file>
+ -h, --help : print this page
+ --alphabet : transliteration table
+ --transparent : transparent symbols and default positioning
+ --ancient : ancient Bengali --- without antastha ya
+ -o <out_file> : specify output file (default: <in_file>.tex)
+ '''
+
+bengali_alphabet = u'''
+ BENGALI ALPHABET
+
+a( \u0985 ) aa( \u0986 ) i( \u0987 ) ii( \u0988 )
+u( \u0989 ) uu( \u098A ) Ri( \u098B ) \u098C (not used)
+e( \u098F ) oi( \u0990 ) o( \u0993 ) ou( \u0994 )
+------------------------------------------------
+ka( \u0995 ) kha( \u0996 ) ga( \u0997 ) gha( \u0998 ) NG( \u0999 )
+ca/cha( \u099A ) chha( \u099B ) ja( \u099C ) jha( \u099D ) NJ( \u099E )
+Ta( \u099F ) Tha( \u09A0 ) Da( \u09A1 ) Dha( \u09A2 ) Na( \u09A3 )
+ta( \u09A4 ) tha( \u09A5 ) da( \u09A6 ) dha( \u09A7 ) na( \u09A8 )
+pa( \u09AA ) pha( \u09AB ) ba( \u09AC ) bha( \u09AD ) ma( \u09AE )
+Ja( \u09AF ) ra( \u09B0 ) la( \u09B2 ) wa( \u09AC )
+sha( \u09B6 ) Sha/shha( \u09B7 ) sa( \u09B8 ) ha/Ha( \u09B9 )
+rh( \u09DC ) rhh( \u09DD ) _m( \u0982 ) ~h( \u0983 ) ~n( \u0981 )
+------------------------------------------------
+khaNDa ta: _t( \u09CE ); hasanta: _h( \u09CD ); k+shh: x antastha y: y( \u09DF )
+'''
+
+
+
+try:
+ opts, args = getopt.getopt(sys.argv[1:], 'ho:',
+["help","outfile","transparent","alphabet","ancient"])
+except getopt.GetoptError:
+# print help information and exit:
+ print usage
+ sys.exit(2)
+
+# Help menu
+for o , a in opts:
+ if o in ("-h", "--help"):
+ print usage % version
+ sys.exit()
+ output = None
+ if o in ("--alphabet"):
+ print bengali_alphabet.encode('utf-8')
+ sys.exit()
+ output = None
+
+
+# define input file
+
+# Check if the file exists
+try:
+ fi = open(args[0], 'r')
+ input_filename = args[0]
+ print '''
+mkbangtex %s
+Got %s. Processing ...''' % (version, input_filename)
+except:
+ input_filename = "file"
+ print '''
+Can\'t open %s for reading.
+For help menu use: mkbangtex --help
+''' % input_filename
+ sys.exit(0)
+
+
+out_file_name = args[0]+'.tex' # initialize the ouput file
+cosmetix = "True" # initialize cosmetics to TRUE
+Ancient_bng = "False" # intialize Ancient_bng to FALSE
+
+# Set up the options
+for o , a in opts:
+ if o == "-o":
+ out_file_name = a
+ if o == "--transparent":
+ cosmetix = "False"
+ if o == "--ancient":
+ Ancient_bng = "True"
+
+
+# define and open output file
+o_file = open(out_file_name,'w')
+
+# setting up delimiters for both modes
+fnmod_delim = re.compile(r'@bengali|@bnstart|@bnend|@bn')
+bnmod_delim = re.compile(r"@fn")
+bndelim = re.compile(r'@@@') # change these to @@@
+sndelim = re.compile(r'@b2e') # for transliteration
+fndelim = re.compile(r"(\$+|@@@)", re.X) # dollar and @@@ treated together
+dollar = re.compile(r"(\$)", re.X) # dollar and @@@ treated together
+
+
+# define non-latex words
+nonltx_word = re.compile(r"\s-?(?![\d+])\w*-?\(?\~?[\`]*\w+\S*|{o}\S+|{i}\S+", re.X)
+
+# compile patterns to be substituted
+ns_k = re.compile('n(?=k|g|x)') # nasals before k-barga
+ns_c = re.compile('n(?=c|j)') # nasals before c-barga
+tal_s = re.compile(r'sh(?=[bcdfghjklmnpqrstwxyz])')
+ # sh followed by coonsonants, (for b2e)
+xX = re.compile(r"x", re.I)
+unga = re.compile(r"NG")
+ch = re.compile(r"ch")
+jh = re.compile(r"jh")
+Dh = re.compile(r"Dh")
+sh = re.compile(r"sh")
+ha = re.compile(r"~ha|~h")
+Ri = re.compile(r"Ri")
+jn = re.compile(r"jn")
+onuswar = re.compile(r"_m")
+rikar = re.compile(r"_r")
+hasanta = re.compile(r"_h")
+rh = re.compile("rh")
+Rh = re.compile("Rh")
+R = re.compile("R")
+J = re.compile("J")
+oi = re.compile("oi")
+ou = re.compile("ou")
+aii = re.compile(r"aii")
+ai = re.compile(r"ai")
+au = re.compile(r"au")
+aa = re.compile(r"aa")
+ao = re.compile(r"ao")
+a = re.compile(r"a")
+ao = re.compile(r"ao")
+ae = re.compile(r"ae")
+ei = re.compile(r"ei")
+eo = re.compile(r"eo")
+eu = re.compile(r"eu")
+io = re.compile(r"io")
+iu = re.compile(r"iu")
+ui = re.compile(r"ui")
+ii = re.compile(r"ii")
+oioi = re.compile(r"oioi")
+III = re.compile(r"III")
+XzX = re.compile(r"XzX")
+VxV = re.compile(r"VxV")
+chandra = re.compile(r"~n")
+ng_prob = re.compile(r"NG(?=M|r)")
+ngm = re.compile(r"NG/M")
+Ha = re.compile(r'~Ho|~Ha')
+H = re.compile("H")
+uu = re.compile("uu")
+inya = re.compile("NJ")
+T = re.compile('T')
+D = re.compile('D')
+N = re.compile('N')
+Th = re.compile('Th')
+shh = re.compile('shh')
+vw_b = re.compile(r'\b[aeiou]+') # vowels at word-beginning
+p_i = re.compile('([\^\~]|[b-dB-Df-hF-Hj-nJ-Np-tP-Tv-zV-Z])+(?=i)')
+p_e = re.compile('([\^\~]|[b-dB-Df-hF-Hj-nJ-Np-tP-Tv-zV-Z])+(?=e)')
+p_YA = re.compile('([\^\~]|[b-dB-Df-hF-Hj-nJ-Np-tP-Tv-zV-Z])+(?=(YA))')
+ # for YA-kar's bangtex symbol
+p_o = re.compile('([\^\~]|[b-dB-Df-hF-Hj-nJ-Np-tP-Tv-zV-Z])+(?=o)')
+p_ou = re.compile('([\^\~]|[b-df-hj-np-tv-z])+(?=ou)', re.I)
+p_oi = re.compile('([\^\~]|[b-df-hj-np-tv-z])+(?=oi)', re.I)
+p_begin_Ha = re.compile(r'\bh', re.X) # Ha at word-beginning
+yukta_bnj = re.compile(r'[kxgcjTDNtdmnpblhHSsXZ](?=[kxgcCjTDNtTdnpbHSsXZ])')
+p_tkp = re.compile('(\_*)t(?=k|x|p|f|s|X)') # t before ka,kha,pa,pha,s,X is khanda t
+# consonants under which u, uu and Ri-kar need be shifted
+anomaly_u = re.compile(r'(k|kR|NG|c|C|T|D|Z|t|ph|f|phR|bh|X)(?=u|{rR})|(T(?=R))')
+u_kern = re.compile(r'em}u(?!u)')
+uu_kern = re.compile(r'em}uu')
+
+
+
+
+# DEFINING VARIOUS FUNCTIONS
+#
+# Functions from Defrang's code
+
+def multiple_replace(dict, text):
+
+ """ Replace in 'text' all occurences of any key in the given
+ dictionary by its corresponding value. Returns the new tring."""
+
+ # Create a regular expression from the dictionary keys
+ regex = re.compile("(%s)" % "|".join(map(re.escape, dict.keys())))
+
+ # For each match, look-up corresponding value in dictionary
+ return regex.sub(lambda mo: dict[mo.string[mo.start():mo.end()]], text)
+
+
+
+from UserDict import UserDict
+class Xlator(UserDict):
+
+ """ An all-in-one multiple string substitution class """
+
+ def _make_regex(self):
+
+ """ Build a regular expression object based on the keys of
+ the current dictionary """
+
+ return re.compile("(%s)" % "|".join(map(re.escape, self.keys())))
+
+ def __call__(self, mo):
+
+ """ This handler will be invoked for each regex match """
+
+ # Count substitutions
+ self.count += 1 # Look-up string
+
+ return self[mo.string[mo.start():mo.end()]]
+
+ def xlat(self, txt):
+
+ """ Translate text, returns the modified text. """
+
+ # Reset substitution counter
+ self.count = 0
+
+ # Process text
+ return self._make_regex().sub(self, txt)
+
+
+# BENGALI Functions for -fala's and -kar's
+
+# Various -kar's
+
+def eikar(self):
+ anomi = self.group()
+ return '\*'+anomi+'*'
+
+def okar(self):
+ anome = self.group()
+ return '\*'+anome+'*ea'
+
+def oukar(self):
+ anome = self.group()
+ return '\*'+anome+'*'+'e'
+
+def oikar(self):
+ anome = self.group()
+ return '\*'+anome+'*'+'oi'
+
+
+def fala(self, c_list): # Various -fala's
+ return dict([(x+self, x+self.upper()) for x in c_list])
+
+
+def nasa(self,replmnt): # Nasals
+ return dict([('n'+x, replmnt+'/'+x) for x in self])
+
+def caps(self):
+ capup = self.group()
+ return '{'+capup.upper()+'}'
+
+def yukta(self):
+ ykt = self.group()
+ return ykt + '/'
+
+def ukar(self): # for shifting u/uu under
+ anomu = self.group() # some consonants
+ return anomu+'{\\kern-.23em}'
+
+def YAkar(self): # for YA-kar's bangtex symbol
+ anomi = self.group()
+ return '\*'+anomi+'*'
+
+
+def y_blank_ancient(self):
+ y_anc = self.group()
+ y_blnk = y_anc.replace("y","{}")
+ return y_blnk
+# LISTS and DICTIONARIES:
+#
+# Define groups of letters from the alphabet:
+barga_k = list('xGX')
+barga_c = list('qC')
+# Ha after volwels
+dict_ha = fala('h', list('aeiouAEIOU'))
+# Ref
+dict_rf = dict([('r'+x, 'r'+'/'+x) for x in '[kxgGcqjCTFDZNtQdznpfbvmJlHPSs]'])
+# Nasals
+dict_k = nasa(barga_k,'VNV')
+dict_c = nasa(barga_c, 'NJ')
+dict_nasa = dict()
+dict_nasa.update(dict_k)
+dict_nasa.update(dict_c)
+## Dictionary constructing the conjunctions
+dict_conj = {
+ "AA" : "Aa" ,
+ "VVV":"g/Y",
+ "_t" : "t//",
+ "nh" : "n/H",
+ "Nh" : "N/H",
+ "mh" : "HM",
+ "\"V" : "NN",
+ "VV\"" : "NNG",
+ "VNV" : "NG",
+ "th/th" : "{\char211}",
+ "rh/g" : "rhg",
+ ":/:" : ":/",
+ r"*YA" : "*{aa}", # for YA-kar's bangtex symbol
+ r"YA" : "{AA}", # for YA-kar's bangtex symbol
+ }
+
+# FUNCTIONS for mkbangtex
+
+def b2e(self): # b2e : for transliteration
+ self = ns_k.sub('NG',self)
+ self = ns_c.sub('NJ',self)
+ self = xX.sub("kshh", self)
+ self = ch.sub("c", self)
+ self = H.sub("h", self)
+ self = aa.sub('{\=a}',self)
+ self = ii.sub('{\=\i}',self)
+ self = uu.sub('{\=u}', self)
+ self = Ri.sub('\d{ri}', self)
+ self = unga.sub('{\.n}', self)
+ self = inya.sub(r'\~{n}', self)
+ self = Th.sub('\d{th}', self)
+ self = T.sub('\d{t}', self)
+ self = Dh.sub('\d{dh}', self)
+ self = D.sub('\d{d}', self)
+ self = N.sub('\d n', self)
+ self = shh.sub('\d{s}', self)
+ self = sh.sub("{\\'s}", self)
+ self = chandra.sub("\u{n}", self)
+ self = onuswar.sub("\d{m}", self)
+ self = ha.sub("\d{h}", self)
+ self = hasanta.sub("", self)
+ self = self.replace('_t',"t")
+ self = rikar.sub("\d{ri}", self)
+ self = rh.sub(r'R', self)
+ #self = Rh.sub(r'\d{Rh}', self)
+ self = R.sub(r"\d{R}", self)
+ self = J.sub("y", self)
+ self = oi.sub("ai", self)
+ self = ou.sub("au", self)
+ return self
+
+
+def bn(self): # bn : for fnmode = FALSE
+ self = xX.sub(r"X", self)
+ self = unga.sub("VNV", self)
+ self = ch.sub("c", self)
+ self = jh.sub("C", self)
+ self = Dh.sub("Z", self)
+ self = sh.sub("S", self)
+ self = ha.sub("~ha", self)
+ self = Ri.sub("{RR}", self)
+ self = jn.sub("VVV", self)
+ self = vw_b.sub(caps, self)
+ self = p_tkp.sub(r't//', self) # khanDa t
+ self = onuswar.sub('{VV"}', self) # onu:sar
+ self = rikar.sub('{rR}', self) # ri-fala
+ self = hasanta.sub(':/:', self) # hasanta
+ self = p_begin_Ha.sub('H', self) # Ha in middle must be before -kars
+ xlat = Xlator(dict_ha)
+ self = xlat.xlat(self)
+ self = ao.sub(r"aO", self)
+ self = ei.sub(r"eI", self)
+ self = eo.sub(r"eO", self)
+ self = eu.sub(r"eU", self)
+ self = io.sub(r"iO", self)
+ self = iu.sub(r"iU", self)
+ self = ui.sub(r"uI", self)
+ self = p_e.sub(eikar, self)
+ self = ii.sub('III', self)
+ self = p_i.sub(eikar, self) # these have to appear before
+ self = p_ou.sub(oukar, self)
+ self = p_oi.sub(oikar, self)
+ self = p_o.sub(okar, self) # changing a to o
+ self = oioi.sub(r'{oi}', self)
+ self = III.sub('ii', self)
+ self = aii.sub('aII', self)
+ self = ai.sub('aI',self)
+ self = ae.sub('aE',self)
+ self = au.sub('aU',self)
+ self = aa.sub('VxV',self)
+ self = ao.sub('XzX',self) # ko --> ekao ---> eka
+ self = a.sub('o',self)
+ self = XzX.sub('a',self)
+ self = VxV.sub('a',self)
+ # ORDERS IN FOLLOWING IMPORTANT
+ self = chandra.sub('"V', self)
+ xlat = Xlator(dict_nasa)
+ self = xlat.xlat(self)
+ self = yukta_bnj.sub(yukta,self)
+ self = xlat.xlat(self)
+ xlat = Xlator(dict_rf)
+ self = xlat.xlat(self)
+ xlat = Xlator(fala('r',list('bcdfghjklmpqstvwxzBCDFGHJLMPQRSTWXYZ\/')))
+ self = xlat.xlat(self)
+ xlat = Xlator(fala('y',list('bcdfghjklmnpqrstvwxyzBCDFGHJLMNPQRSTVWXYZ\/')))
+ # putting in r,h in this list
+ self = p_YA.sub(YAkar, self) # for YA-kar's bangtex symbol
+ self = xlat.xlat(self)
+ xlat = Xlator(dict_conj)
+ self = xlat.xlat(self)
+ for f in list('[mlw]'):
+ xlat = Xlator(fala(f,list('bcdfghjklmnpqstvwxyzBCDFGHJLMNPQRSTVWXYZ')))
+ self = xlat.xlat(self)
+ self = Ha.sub('h', self)
+ ng_prob = re.compile(r'NG(?=M|r)')
+ self = ng_prob.sub('NG/',self)
+ self = ngm.sub('NG/m', self) # only for the exceptional baNGmay
+ return self
+
+
+def bn_cosmetic(self):
+ self = bn(self)
+ # cosmetic changes
+ # changing position of u and uu under anomalous consonants
+ self = self.replace(r'Yuu', 'uu{\kern-.06em}Y')
+ self = self.replace(r'Yu', 'u{\kern-.06em}Y')
+ self = anomaly_u.sub(ukar, self)
+ self = u_kern.sub('em}u{\\kern.23em}', self)
+ self = uu_kern.sub('em}uu{\\kern.23em}', self)
+ self = self.replace(r'{\kern-.23em}{rR}','{\\kern-.23em}{rR}{\\kern.23em}')
+ self = self.replace(r'XW', 'X\\kern-.25em\lower.2em\hbox{W}\\kern.25em')
+ # for xwa need to lower ba-fala
+ self = self.replace(r'TW', 'T\\kern-.1em\lower.3em\hbox{W}\\kern.1em')
+ # for Twa need to position ba-fala
+ self = self.replace(r'T{\kern-.23em}Ru','''T{\kern-.2em}\lower.1em\hbox{R}\lower.15em
+ \hbox{u}\kern.2em''')
+ # for Tru you need to lower R & u
+ # changing shhT and shhTha from default to more orthodox forms
+ self = self.replace(r'Sh/Th', '{\char178\kern-2pt\char70}')
+ self = self.replace(r'Sh/T', '{\char178\kern0pt\char84}')
+ return self
+
+
+def bnfn(self): # for using in fnmode as a function
+ return bn(self.group()) # in a re.sub statement
+
+def bnfn_cosmetic(self): # for using in fnmode as a function
+ return bn_cosmetic(self.group()) # in a re.sub statement
+
+
+# SUBSTITUTIONS :
+
+if __name__ == "__main__":
+
+ text = fi.read() # Read text --- treating the whole
+ # content as a SINGLE string
+ fn_test = re.search(fnmod_delim, text)
+ bn_test = re.search(bnmod_delim, text)
+ fnmode = ""
+ if fn_test:
+ fnmode = "True"
+ print "fnmode selected."
+ elif bn_test:
+ fnmode = "False"
+ print "bnmode selected."
+
+# Now translate the text
+# The delimiters are handled differently in BNMODE and FNMODE.
+# Hence, the delimiter substitution and transliteration
+# are to be performed inside the loops.
+
+ if fnmode == "True": # case: FOREIGN MODE: START
+ # Manipulating delimiters
+ text = fnmod_delim.sub("@@@", text)
+ # first do the roman transliteration, if any
+ sn_list = sndelim.split(text)
+ for i in range(len(sn_list)):
+ if i%2 == 0:
+ pass
+ else:
+ text = sn_list[i]
+ text = b2e(text).strip()
+ sn_list[i] = text
+ text = "".join(sn_list)
+ big_list = bndelim.split(text)
+ for i in range(len(big_list)):
+ if i%2 == 0 :
+ pass
+ else:
+ text = big_list[i]
+ smal_list = dollar.split(text)
+ for j in range(len(smal_list)):
+ if j%4 == 0 : # Recall that for dollars
+ text = smal_list[j] # we have kept the delimiters
+ if Ancient_bng == "True": # for --ancient option
+ text = text.replace("y","{}")
+ else:
+ pass
+ if cosmetix == "False": # for --transparent option
+ text = bn(text)
+ else:
+ text = bn_cosmetic(text)
+ smal_list[j] = text
+ text = "".join(smal_list)
+ big_list[i] = text.strip()
+ text = "".join(big_list) # FOREIGN MODE: END
+ else: # case: BNMODE: START
+ # Manipulating delimiters
+ text = sndelim.sub("@b2e @@@ ", text)
+ text = bnmod_delim.sub("@@@", text)
+ # first do the roman transliteration, if any
+ sn_list = sndelim.split(text)
+ for i in range(len(sn_list)):
+ if i%2 == 0:
+ pass
+ else:
+ text = sn_list[i]
+ text = b2e(text).strip()
+ sn_list[i] = text
+ text = "".join(sn_list)
+ big_list = fndelim.split(text)
+ for i in range(len(big_list)):
+ if i%4 == 0 :
+ text = big_list[i]
+ if Ancient_bng == "True": # for --ancient option
+ text = nonltx_word.sub(y_blank_ancient, text)
+ else:
+ pass
+ if cosmetix == "False": # for --transparent option
+ text = nonltx_word.sub(bnfn, text)
+ else:
+ text = nonltx_word.sub(bnfn_cosmetic, text)
+ big_list[i] = text.strip("\n")
+ text = "".join(big_list)
+ # now split and join again to get rid of the delimiter @@@
+ text = "".join(text.split("@@@")) # BNMODE: END
+# write in the output file
+ o_file.write(text)
+
+ timing.finish()
+
+# on standard output
+ time_taken = float(timing.micro()) / 1000000
+ print "Processed %s in %ss. Output written in %s." % (input_filename, time_taken, out_file_name )
diff --git a/language/bengali/mkbangtex/mkbangtex.bang b/language/bengali/mkbangtex/mkbangtex.bang
new file mode 100644
index 0000000000..7679a6b534
--- /dev/null
+++ b/language/bengali/mkbangtex/mkbangtex.bang
@@ -0,0 +1,420 @@
+\documentclass[11pt]{barticle}
+\usepackage{amsmath,amssymb,amsfonts,pifont,mathbang}
+\usepackage{pstricks}
+\hoffset -1.2in
+\voffset -.5in
+\textwidth 7in
+\textheight = 8.5in
+\def\mkbangtexversion{1.1}
+\title{ baaNGalaa theke {\rm\LARGE \bangtex: \mkbangtex}\\
+\hskip 2.5in \foreign{\tt(Version \mkbangtexversion)}}
+\author{ koushik raay}
+\date{ taattwik padaarthabijnaan bibhaag\\
+iNDiyaan esosiyeshan far di kaalTibheshan af saayens\\kalikaataa 700 032, bhaaratabarshha}
+\renewcommand{\theequation}{\bng\arabic{equation}}
+\renewcommand\emph[1]{{\bns #1}}
+\renewcommand{\contentsname}{{\lbng suucii}}
+\newcommand\foreign[1]{{\rm #1}}
+\newcommand\fncmd[2]{{\tt {#1}{#2}}}
+\newcommand\bangtex{{\rm @fn Bang\TeX @fn }}
+\newcommand\mkbangtex{{\tt @fn mkbangtex @fn }}
+\begin{document}
+\bng
+\maketitle
+\thispagestyle{empty}
+\setcounter{page}{0}
+\vfill
+\tableofcontents
+\clearpage
+\section{ prabeshak}
+\mkbangtex ekaTi \foreign{Python} \foreign{pre-processor}. eTi \bangtex -er sahaayikaa.
+er muul uddeshya romaan harafe baaNGalaa lekhaar
+kichhu subidhaa bidhaan.
+\bangtex -e Taaip karaar samay Juktabyanjan eba_m e-kaar,
+i-kaar, oi-kaar o ou-kaar lekhaar janya kichhu niyam maanate hay.
+ei niyamaguli aadyopaanta Juktinirbhar, byatikramahiin, gaaNitik niyamer mata.
+Jeman, Juktabyanjan lekhaa hay bhagnaa_msha hisaabe. r, m, l, J-phalaa
+lekhaa hay i_mreji kyaapiTaal harafe. kintu, ei riiti baaNGalaa
+uchchaaraNaanuga naa haoyaay
+taate Taaip karate beshi samay laage. \mkbangtex
+ucchaaraNaanuga romaan haraphe Taaip karaa baaNGalaa lekhaa theke
+\bangtex -er upaJogii ekaTi \foreign{\LaTeX} faail baaniye
+dey.
+\verb|mkbangtex| \verb|--help| byabahaar kare sa_mxipta saahaaJyasuutra o byabahaarabidhi
+paaoyaa Jaabe:
+%\begin{verbatim}
+{\tt\small \obeylines
+@fn\noindent
+This is mkbangtex Version \mkbangtexversion.
+It creates a BangTeX file from a Bengali document written
+phonetically in Roman script. It works in two modes, which
+are automatically detected:
+bengali: converts anything but single-word latex
+\hskip .8in commands not protected by enclosing with \fncmd{@}{fn}'s.
+foreign: converts only the portions enclosed within
+\hskip .8in a pair of \fncmd{@}{bn}'s.
+CAUTION: Only ONE mode can be used in a file.
+A piece of text enclosed within a pair of \fncmd{@}{b2e}'s is converted
+from Bengali to acctented Roman script following the IAST (1912)
+rules. Works in both modes.
+[See accompanying documentation for further details.]
+---
+\begin{verbatim}
+ Usage: mkbangtex [-h, --alphabet --transparent, --ancient, -o <out_file>] <in_file>
+ -h, --help : print this page
+ --alphabet : transliteration table
+ --transparent : transparent symbols and default positioning
+ --ancient : ancient Bengali --- without antastha ya
+ -o <out_file> : specify output file (default: <in_file>.tex)
+
+@fn
+\end{verbatim}
+}
+\noindent\verb|<out_file>| nirdishhTa karaa naa thaakale \verb|<in_file>.tex|
+naame ekaTi \foreign{\LaTeX} faail toiri habe.
+
+{\color{red}
+Jadi kebal \verb|text| Taaipa karate hay, taahale ei \foreign{pre-processor} byabahaar
+karaar sahajatama upaay hala ucchaaraNaanuga baaNGalaa \verb|text| sa_mbalita
+ekaTi \foreign{\LaTeX} phaail likhe
+\begin{verbatim}
+@fn
+mkbangtex -o <out_file> <in_file>
+@fn
+\end{verbatim}
+chaaliye neoyaa. \verb|mkbangtex| eka shabda-bishishhTa
+\foreign{\LaTeX} \foreign{command} guli chhaarhaa
+anya shabdagulike badale ekaTi \foreign{\bangtex} phaail toiri kare debe.
+`shabda' arthe duTi \foreign{whitespace}
+-er madhyabartii a_msha. Jeman, \verb|\section{prabeshak}| ekaTi shabda. ataeb,
+\verb|\section| -er naam baaNGalaay likhate hale \verb|prabeshak| kathaar aage o pare
+ph~naak diye @fn \verb|\section{ prabeshak }| @fn likhate habe.
+paxaantare, \verb|\begin{center}| ekaTi shabda, kaajei taa' aparibartita thaakabe.}
+
+kintu lekhaar madhye i_mreji shabda, chhabi baa gaaNitik pharmuulaa thaakale kaaj kichhu
+beshi. ebaar taar aalochanaa.
+%%%%%%%%%%%
+\subsection{ duTi dhaaraa: \foreign{bengali} o \foreign{foreign} }
+\verb|mkbangtex| -er du'Ti dhaaraa baa
+\foreign{mode} aachhe: \verb|bengali| o \verb|foreign|.
+Je dhaaraay phaaile mulata~h baaNGalaay lekhaa aachhe, seTi \verb|bengali| dhaaraa.
+ei dhaaraay \verb|mkbangtex| eka shabda-bishishhTa
+\foreign{@fn \LaTeX~command @fn} guli aparibartita rekhe anyaanya shabdaguli paribartita karabe.
+ei dhaaraay konao a_msha aparibartita raakhaar janye ( Jeman, baaNGalaa lekhaar madhye
+i_mreji shabda likhate hale) sei a_msha \fncmd{@}{fn} dwaaraa beshhTita ka're dite habe.
+udaaharaNaswaruup, niicher samiikaraNaTi,
+\begin{equation}
+@fn
+a = b+ cd/5!
+@fn
+\end{equation}
+eibhaabe lekhaa Jaabe:\\
+\verb|\begin{equation}| \\
+\fncmd{@}{fn}\\
+@fn\verb|a = b+cd/5!| @fn \\
+\fncmd{@}{fn} \\
+\verb|\end{equation}| \\
+spashhTata~h, \verb|\begin{equation}|, \verb|\end{figure}| ityaadi eka-shabda-bishishhTa
+\foreign{@fn \LaTeX~command @fn} haoyaay
+eder beshhTaniir baaire raakhaa Jaay. bisheshhata~h \verb|mathmode|, \verb|figure|,
+\verb|verbatim| ityaadi \foreign{environment} -er madhye
+\fncmd{@}{fn} beshhTanii atyanta upaJogii.
+
+\verb|foreign| dhaaraa er Thik bipariit. dharaa Jaak ekaTi muulata~h bideshii bhaashhaay
+(Jeman \foreign{\LaTeX}!)
+lekhaar madhye kichhu baaNGalaa shabda byabahaar karate habe. er janye \verb|bengali|
+byabahaar karaa anarthak --- \verb|bengali| dhaaraay \verb|mkbangtex| chalate
+apexaak_rta beshi samay laage.
+ei xetre muul phaailer madhye Je Je a_msha baaNGalaay likhate habe, sei a_mshagulike
+\fncmd{@}{bn} dwaaraa beshhTita ka're dilei chalabe. ete \foreign{runtime} anek kam
+laagabe. \verb|foreign| dhaaraay \foreign{@fn \LaTeX~command @fn} guli
+\fncmd{@}{bn} beshhTaniir baairei thaakabe. phale, eder konao paribartan habe naa. Jeman,
+\verb|\section| -er naam likhate \verb|\section{|\fncmd{@}{bn} \verb|prabeshak|
+\fncmd{@}{bn}\verb|}|
+likhate habe. paashaapaashi dubaar \fncmd{@}{bn} lekhaa Jaabe naa --- ete gaNDagol habe.
+duTi dhaaraar bibaraN o beshhTaniir taalikaa niiche punaraay deoyaa ha'la:
+\begin{center}
+\begin{tabular}{|lcc|}
+\hline
+dhaaraa (\foreign{mode}) & prakaar (\foreign{type})
+& beshhTanii (\foreign{delimiter}) \\
+\hline
+\verb|bengali| & baaNGalaa & \fncmd{@}{fn} \\
+\verb|foreign| & bideshii & \fncmd{@}{bn}\\
+\hline
+\end{tabular}
+\end{center}
+ubhay dhaaraatei Dalaar diye
+gaaNitik farmuulaa swaabhaabik bhaabei lekhaa Jaabe: $a = bd + c$.
+eibhaabe kam-sa_mkhyak i_mreji
+shabdao lekhaa Jaay: $\text{like this}$.
+
+phaaile \fncmd{@}{bn} \sh{ athabaa} \fncmd{@}{fn} thaakale \verb|mkbangtex| saThik \foreign{mode}
+byabahaar karabe. sutaraa_m, ekai phaaile du'Ti dhaaraa byabahaar karaa Jaabe naa.
+paxaantare,
+\fncmd{@}{fn} baa \fncmd{@}{bn} -er konaoTi{i} naa thaakale \verb|bengali| dhaaraa byabah_rta
+habe. ei dhaaraai \foreign{\mkbangtex} -er puurbokta \foreign{default} dhaaraa.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{ niyamaabalii}
+ebaar ucchaaraNaaanuga baaNGalaa lekhaar bidhi. \verb|bengali| eba_m \verb|foreign| ubhay
+dhaaraatei ei bidhi praJojya.
+ucchaaraN anusaare lekhaar subidhaa ha'la, niyamaguli anumaan ka're
+neoyaa Jaay. uparantu, muul lekhaar paaThaJogyataa b_rddhi paay.
+\mkbangtex -eo sei subidhaa paaoyaa Jaabe.
+anumaan-nirbhar lekhaay bhul habaar sambhaabanaa atyanta kam. ha'le ei
+DakumenTeshaner parabartii
+a_msha parhabaar prayojan ha'te paare.
+echhaarhaa, \verb|--alphabet| \foreign{option} byabahaar kare samasta cinher taalikaa
+milabe.
+\subsection{ byanjan barNa}
+byanjan barNagulir janya du'Timaatra byatikram chhaarhaa sab
+cinhai \bangtex -er DakumenTeshane
+Jeman balaa aachhe, temanai lekhaa Jaabe. byatikramii o atirikta
+cinhaguli,
+\begin{center}
+\begin{tabular}{ll}
+\foreign{@fn c, ch @fn} & ch \\
+\foreign{@fn chh @fn} & chh \\
+\foreign{@fn Sh, shh @fn} & shh \\
+\foreign{@fn x @fn} & x \\
+\foreign{@fn h, H @fn} & h \\
+\end{tabular}
+\end{center}
+anyaanya byanjan barNer cinhaguli \bangtex -er matai. shudhu ekhan aar
+bhagnaa_msha diye
+Juktaaxar athabaa kyaapiTaal harafe -falaa
+likhate habe naa. byanjan barNaguli parapar likhalei
+chalabe, Jeman,
+ucchhanna, gaangeya, ashwaththa,
+uchchiNGRe, mandrya, pouNDrabardhan,
+marmantuda, ei shabdaguli likhate Jathaakrame
+@fn
+\begin{verbatim}
+ucchhanna, gaangeya, ashwaththa, uchchiNGrhe, mandrya, pouNDrabardhan, marmantuda
+\end{verbatim}
+@fn
+Taaip karate habe. kintu, ekhan du'Ti
+byanjan barNa paashaapaashi abik_rta
+lekhaar janya taader maajhe \verb|a| likhate habe, Jeman
+\verb|chalabe|: chalabe, aar \verb|chaalaabe|: chaalaabe kintu \verb|chalbe|: chalbe.
+ekhaane \verb|a| -r bhuumikaa \bangtex -er \verb|o| -r mata.
+\verb|o| diye ekhan o-kaar baa o lekhaa habe.
+\subsection{ swarabarNa }
+swarabarNa o tadbhuuta `kaar' lekhaar niyam ei rakam:
+\begin{center}
+\begin{tabular}{lccc}
+&$\text{a}$ & @fn \verb|a, aman| @fn & a, aman \\
+&$\text{aa}$ & @fn \verb|aa, aami, maataa| @fn & aa, aami, maataa \\
+&$\text{i}$ & @fn \verb|i, icchhe, pitaa| @fn & i, icchhe, pitaa \\
+&$\text{ii}$ & @fn \verb|ii, iishaan, riiti| @fn & ii, iishaan, riiti \\
+&$\text{u}$ & @fn \verb|u, uT, baabu | @fn & u, uT, baabu, \\
+&$\text{uu}$ & @fn \verb|uu, ruup| @fn & uu, ruup \\
+\ding{235} &$\text{Ri}$ & @fn \verb|Ri, {RR}, Rishhi| @fn & Ri,{RR}, Rishhi \\
+\ding{235} &$\text{Ri-kaar}$ & @fn \verb|_r, k_rshhak, baTak_rshhNa, h_rday| @fn &
+ _r, k_rshhak, baTak_rshhNa, h_rday \\
+&$\text{e}$ & @fn \verb|e, bane, ebaar| @fn & e, bane, ebaar \\
+&$\text{oi}$ & @fn \verb|oi, oisab, boitaalik| @fn & oi, oisab, boitaalik \\
+\ding{235} &$\text{o+i}$ & @fn \verb|{o}{i}, {o}{i}sab| @fn &
+ {o}{i}, {o}{i}sab \\
+&$\text{o}$ & @fn \verb|o, bhaalo, obhaabe| @fn & o, bhaalo, obhaabe \\
+&$\text{ou}$ & @fn \verb|ou, outsukya, noukaa| @fn & ou, ou_tsukya, noukaa \\
+&$\text{ai, aai}$ & @fn \verb|ai, bai, aai, Jaaiba| @fn & ai, bai, aai, Jaaiba \\
+&$\text{ae, aae}$ & @fn \verb|ae, ataeb, aae, naae| @fn & ae, ataeb, aae, naae \\
+&$\text{aii, aaii}$ & @fn \verb|aii, aaii, baaiijii| @fn &
+ aii, aaii, baaiijii \\
+&$\text{au, aau}$ & @fn \verb|mau, jhaaugaachh| @fn & mau, jhaaugaachh \\
+&$\text{ao, aao}$ & @fn \verb|ao, aao, haaoyaa| @fn & ao, aao, haaoyaa \\
+&$\text{iu, iiu}$ & @fn \verb|iu, iiu, piu, jiiu| @fn & iu, iiu, piu, jiiu \\
+\ding{235} &$\text{i+i}$ & @fn \verb|i{i}| @fn & ekaTi{i} \\
+&$\text{io, iio}$ & @fn \verb|io, iio, kario, baaTiio| @fn &
+ io, iio, kario, baaTiio \\
+&$\text{ei}$ & @fn \verb|ei, nei| @fn & ei, nei \\
+&$\text{eu}$ & @fn \verb|eu, bheu| @fn & eu, bheu \\
+&$\text{eo}$ & @fn \verb|eo, Jeo| @fn & eo, Jeo \\
+&$\text{ui, uii, uui, uuii}$ & @fn \verb|ui, uui, uii, uuii, bh~nuiNJaa, shyuui| @fn
+& ui, uui, uii, uuii, bh~nuiNJaa, shyuui \\
+\end{tabular}
+\end{center}
+Je chaaraTi ruup anumaan karate saamaanya beg pete ha'te paare taader
+cinhita karaa aachhe.
+
+\subsection{ naasikya dhwani}
+naasikya dhwanir xetre
+\bangtex -er subidhaa aparibartita aachhe.
+Jeman,
+helasinki anka shankha anga anchal manobaanchhaa byanjan jhanjhaa
+baNTan luNThan kaaNDa DheNDhan danta paantha bandar aandhaar m_rnmay
+--- kintu chinha aparaaNha bramhaa baaNGmay baaNGalaa:
+\begin{verbatim}
+@fn
+helasinki anka shankha anga anchal manobaanchhaa byanjan jhanjhaa
+baNTan luNThan kaaNDa DheNDhan danta paantha bandar aandhaar m_rnmay
+--- chinha aparaNha bramhaa baanNGmay baaNGalaa
+@fn
+\end{verbatim}
+\subsection{ khaNDa _t , hasanta, bisarga o saanunaasik barNa}
+khaNDa _t , hasanta, bisarga o saanunaasik barNa
+lekhaar janya ei saaraNii byabahaar karate habe:
+\begin{center}
+\begin{tabular}{rcc}
+ khaNDa _t: & @fn \verb|_t| @fn & _t \\
+ hasanta: & @fn \verb|_h| @fn & _h \\
+ bisarga: & @fn \verb|~h| @fn & ~h \\
+ anuswaar: & @fn \verb|_m| @fn & _m \\
+ chandrabindu: & @fn \verb|~n| @fn & ~n
+\end{tabular}
+\end{center}
+tabe, _t-er pare k, kh, x, p, ph ki_mbaa s thaakale kebal \verb|t| -o lekhaa Jaabe. Jeman,
+utkaT, utkhaat, u_txipta, utpal, u_tphulla, utsa e'guli
+emani{o} lekhaa Jaabe. arthaa_t ei du'Ti{i} Thik:
+@fn \verb|utkaT, u_tkaT, u_tpal, utpal| @fn ityaadi. kintu
+sthaanuba_t: @fn \verb|sthaanuba_t|@fn, jalabhaat: \verb|jalabhaat|.
+%%%%%%
+\subsubsection{ aarao udaaharaN }
+\verb|bhoir~no| - \verb|bhair~no| - \verb|bhoiro~n|, \verb|s~nodaraban| -
+\verb|so~ndaraban|:
+bhoir~no - bhair~no - bhoiro~n, s~nodaraban - so~ndaraban --- chandrabindur abasthaanik
+paarthakya laxyaNiiya. temanai,
+saala_mkaaraa, si_mha, sig_hnyaal:
+@fn \verb|saala_mkaaraa, si_mha, sig_hnyaal|. @fn
+
+bisarga-Jukta shabder udaaharaN:
+praata~hraash, ota~hprota, swabhaabata~h, maabhoi~h. e'guli Jathaakrame
+\verb|praata~hraash|, \verb|ota~hprota|, \verb|swabhaabata~h|, \verb|maabhoi~h|.
+\section{ romaan pratibarNiikaraN }
+baaNGalaa baa sa_msk_rta shabda romaan haraphe lekhaar janya
+\foreign{@fn accented letters @fn} byabah_rta hay. erajanya paribartaniiya
+a_msher aage o pare \fncmd{@}{b2e} likhate habe. Jathaa, aadi shlok, \\
+\parbox{.5\textwidth}{%
+maa nishhaada pratishhThaa_m twama gamaa~h shaashwatiisamaa.\\
+Ja_tkrounchamithunaadekamabadhi kaamamohitam_h..\\
+}%
+\parbox[b]{.5\textwidth}{%
+@b2e
+{\rm maa nishhaada pratishhThaa_m twama gamaa~h shaashwatiisamaa.\\
+Ja_tkrounchamithunaadekamabadhi kaamamohitam_h..}
+@b2e
+}%
+
+\noindent
+eibhaabe likhate habe:\\
+\noindent\fncmd{@}{b2e}
+\begin{verbatim}
+@fn
+{\rm maa nishhaada pratishhThaa_m twama gamaa~h shaashwatiisamaa.\\
+Ja_tkrounchamithunaadekamabadhi kaamamohitam_h..}
+@fn
+\end{verbatim}
+\fncmd{@}{b2e}\\
+\foreign{@fn International Alphabet of Sanskrit Transliteration (IAST), 1912 @fn}
+ anuJaayii pratibarNiikaraN-bidhi niicher saaraNiite deoyaa ha'la.
+\parbox{.5\textwidth}{%
+a aa i ii u uu Ri e oi o ou\\
+ka kha ga gha NG\\
+ch chh ja jha NJ\\
+Ta Tha Da Dha Na\\
+ta tha da dha na\\
+pa pha ba bha ma\\
+Ja ra la ba\\
+sha shha sa ha\\
+rh rhh _m ~ha ~n
+}%
+\parbox{.5\textwidth}{%
+@b2e
+{\rm
+a aa i ii u uu Ri e oi o ou\\
+ka kha ga gha NG\\
+ch chh ja jha NJ\\
+Ta Tha Da Dha Na\\
+ta tha da dha na\\
+pa pha ba bha ma\\
+Ja ra la wa\\
+sha shha sa ha\\
+rh rhh _m ~ha ~n}
+@b2e
+}%
+
+\noindent
+sa_msk_rta bhaashhaay chandrabindu-r astitwa nei. phale, \foreign{IAST} -r niyame
+er janye konao
+cinha nirdishhTa nei. ekhaane ekaTi cinha nirdishhTa ha'la. paxaantare,
+baaNGalaay oshhThyabargiiya o anta~hasthabargiiya `ba'-er konao paarthakya nei.
+anta~hasthabargiiya `ba'-er janya \foreign{IAST} -te \foreign{wa} baa
+\foreign{va} lekhaa saabyasta hayechhe.
+ekhaane prathamaTi raakhaa ha'la.
+%%%%%%%%%%%%%
+\section{ truTi sa_mshodhan}
+\bangtex -e k, x, NG, ch, jha, Ta, Da, Dha, pha eba_m bha --- ei barNagulir o
+J-falaa Jukta barNer u-kaar,
+uu-kaar eba_m Ri-kaar kichhuTaa sthaanachyuta dekhaay. \mkbangtex ei truTi meraamat
+ka're dey. Jeman kul, kuul, xudhaarta, ghuNGur, chula, jhulojhuli, Tul, Dumur,
+DhuluDhulu, phulamaalaa, bhulabhraanti, bhuut, k_rsha, bh_rngaar.
+T-e o x-e ba-falaar truTi \bangtex -er DakumenTeshane ullekh karaa hayechhe.
+Ta-e Jugapa_t ra-falaa o u-kaar thaakaleo saamaanya
+abasthaanik truTi hay. egulio meraamat karaa ha'la: khaTwaa, ixwaaku, Truth.
+parisheshhe, \bangtex -e {\char235} o {\char236} lekhaa hay \emph{ swacchha} chinhe,
+kintu shhka, shhpa, shhpha aswacchha chinhe. \mkbangtex pratham du'Tikeo
+`aswacchha' ka're debe: JashhTi, shushhkakaashhTha, baashhpa, nishhphalaa.
+
+\mkbangtex -er \verb|--transparent| \foreign{option} byabahaar ka're ei a_msher
+paribartita chinhagulir paribarte \bangtex -er \foreign{default} riiti byabahaar karaa
+Jaabe.
+%%%%%%%%%%%%
+\section{ @fn {\tt ancient}@fn ap_hshan}
+praachiin baaNGalaa lekhaar janya ei \foreign{option} -Tir byabahaar siimita.
+praachiina baaNGalaay antastha ya-r byabahaar chhila naa. ei praachiin ruuper byabahaar
+charJaagiitite dekhaa Jaay. udaaharaNaswaruup, ei riitite kaayaa hay `kaa{aa}'.
+@fn \verb|mkbangtex --ancient|
+@fn \foreign{option} byabahaar kare ei praachiin baaNGalaa lekhaa Jaay. niicher
+udaaharaNe @fn{\tt --ancient} \foreign{option} @fn saha o taa chhaarhaa \verb|mkbangtex| chaalaale ei
+paarthakya bojhaa Jaabe:
+\begin{verbatim}
+@fn
+kaayaa tarubara pancha bi Daal. \\
+chanchala chiiye paiTho kaal.. \\
+dirhha kari mahaasuha parimaaN. \\
+lui bhaNayi guru puchchhiya jaaN..\\
+sayala samaahiya kaahi kariyai. \\
+sukha dukhete~n nichita mariyai..\\
+erhi eu chhaandaka baandha karaNaka paaTera aas.\\
+sunupaakha bhiti lehu re paasa..\\
+bhaNai lui aameh_h jhaane diThaa.\\
+dhamaNa chamaNa beNi piNDi baiThaa..
+@fn
+\end{verbatim}
+%%%%%%%%%%%%
+\section{ byatyay}
+\bangtex -e `aYaa' chhaapaar janya \verb|AYa| likhalei chale. kintu \mkbangtex -e
+\verb|AYa| baa \verb|aYa| likhale AYa, \verb|Aya| baa \verb|aya| likhale aya chhaapaa haya.
+phale, ekhan \bangtex o \mkbangtex -er
+Joutha niyame \verb|aYaa| likhate habe, \verb|aYaasiD|: aYaasiD.
+parantu, \bangtex -e aYaa-r
+dhwani o tatsa_mshlishhTa -kaar lekhaar janya
+natun chinha prastaabita hayechhe:
+\verb|AA|: {AA} o \verb|aa|: {aa}.
+kintu \mkbangtex -e \verb|AA=aa|: aa. phalata~h, \bangtex -er chinhagulir janya
+natun niyam dhaarJa hayechhe. \verb|YA| likhale oi cinhaguli chhaapaa habe:
+@fn \foreign{\tt YAkaa kYAna ele?} @fn: YAkaa kYAna ele?
+laxyaNiiya Je, YA eba_m {aa}
+lekhaar janya du'Ti p_rthak chinha lekhaar prayojan nei.
+
+echhaarhaa aami ekaTi golamaal peyechhi, \verb|dhanyabaadaarha|:
+dhanyabaadaarha, dhanyabaadaarHa likhate giye! e'Ti besh majaar.
+\verb|rh| maane rh, aabaar h-ye ref-o.
+anya sab jaayagaay dwitiiyaTi{i} habe,
+Jeman barNa baa barSha.
+kintu, ei xetre du'Ti niyam \foreign{clash} karachhe.
+ekhaane \bangtex -er niyam mene prathamaTi{i}
+\foreign{default} -e raakhaa ha'la. fale, dwitiiya xetre
+\bangtex er niyamamaafik \foreign{H}
+diye ``dhanyabaadaarHa'' likhate habe: \verb|dhanyabaadaarHa|. arthaa_t, \bangtex -er
+niyamaabalii baada deoyaa Jaabe naa --- seigulio $\text{Z}\!\!$ Vaan_hti habe!
+%%%%%%%%%%%%%%%%%%%%%%
+\subsection*{ k_rtajnataa}
+\mkbangtex prograamaTi \verb|Python2.4.1| -e pariixita.
+ei prograamer ekaTi gurutwapurNa a_msha
+\foreign{@fn Xavier Defrang @fn} -er {\rm @fn Single-Pass Multiple Replace,
+Py Cookbook 81330 @fn} theke g_rhiita hayechhe.
+ei prograamer byaapaare afuranta saahaaJya ka'rechhen jayadiip
+majumadaar.
+\end{document}
diff --git a/language/bengali/mkbangtex/mkbangtex.pdf b/language/bengali/mkbangtex/mkbangtex.pdf
new file mode 100644
index 0000000000..25f283bb2d
--- /dev/null
+++ b/language/bengali/mkbangtex/mkbangtex.pdf
Binary files differ
diff --git a/language/bengali/mkbangtex/mkbangtex.tex b/language/bengali/mkbangtex/mkbangtex.tex
new file mode 100644
index 0000000000..a4c23ad9b5
--- /dev/null
+++ b/language/bengali/mkbangtex/mkbangtex.tex
@@ -0,0 +1,396 @@
+\documentclass[11pt]{barticle}
+\usepackage{amsmath,amssymb,amsfonts,pifont,mathbang}
+\usepackage{pstricks}
+\hoffset -1.2in
+\voffset -.5in
+\textwidth 7in
+\textheight = 8.5in
+\def\mkbangtexversion{1.1}
+\title{ baNGola \*th*e\*k*e {\rm\LARGE \bangtex: \mkbangtex}\\
+\hskip 2.5in \foreign{\tt(Version \mkbangtexversion)}}
+\author{ \*k*eou\*S*ik ray}
+\date{ ta\*t/tW*ik podar/tho\*b*ig/Yan \*b*ibhag\\
+{I}\*N/D*iyan {E}\*s*ea\*s*i\*y*eSon for \*d*i ka\*l/T*i\*bh*eSon {A}f sa\*y*en/s\\ko\*l*ikata 700 032, bharotobor/Sho}
+\renewcommand{\theequation}{\bng\arabic{equation}}
+\renewcommand\emph[1]{{\bns #1}}
+\renewcommand{\contentsname}{{\lbng suucii}}
+\newcommand\foreign[1]{{\rm #1}}
+\newcommand\fncmd[2]{{\tt {#1}{#2}}}
+\newcommand\bangtex{{\rm Bang\TeX }}
+\newcommand\mkbangtex{{\tt mkbangtex }}
+\begin{document}
+\bng
+\maketitle
+\thispagestyle{empty}
+\setcounter{page}{0}
+\vfill
+\tableofcontents
+\clearpage
+\section{ pRo\*b*eSok}
+\mkbangtex {E}ko\*T*i \foreign{Python} \foreign{pre-processor}. {E}\*T*i \bangtex -{E}r soHa\*y*ika.
+{E}r muul {U}\*d/d*eSYo \*r*eaman Horo\*f*e baNGola \*l*ekhar
+\*k*ichu su\*b*idha \*b*idhan.
+\bangtex -{E} TaIp korar somoy Juk/tobYon/jon {E}bo{NNG} {E}-kar,
+{I}-kar, {OI}-kar {O} {OU}-kar \*l*ekhar jonYo \*k*ichu \*n*iyom mano\*t*e Hoy.
+{EI} \*n*iyomogu\*l*i {Aa}\*dY*eapan/to Ju\*k/t*i\*n*ir/bhor, bYo\*t*ikRomoHiin, ga\*N*i\*t*ik \*n*iyo\*m*er moto.
+\*J*emon, Juk/tobYon/jon \*l*ekha Hoy bhog/na{NNG}So \*H*isa\*b*e. r, m, l, J-phola
+\*l*ekha Hoy {I}{NNG}\*r*e\*j*i kYa\*p*iTal Horo\*f*e. \*k*in/t{\kern-.23em}u{\kern.23em}, {EI} rii\*t*i baNGola
+{U}c/caroNanugo na HoOyay
+ta\*t*e TaIp koro\*t*e \*b*e\*S*i somoy la\*g*e. \mkbangtex
+{U}c/caroNanugo \*r*eaman Horo\*ph*e TaIp kora baNGola \*l*ekha \*th*e\*k*e
+\bangtex -{E}r {U}po\*J*eagii {E}ko\*T*i \foreign{\LaTeX} faIl ba\*n*i\*y*e
+\*d*ey.
+\verb|mkbangtex| \verb|--help| bYoboHar ko\*r*e so{NNG}\*X*ip/to saHaJYosuutRo {O} bYoboHaro\*b*i\*dh*i
+paOya Ja\*b*e:
+%\begin{verbatim}
+{\tt\small \obeylines\noindent
+This is mkbangtex Version \mkbangtexversion.
+It creates a BangTeX file from a Bengali document written
+phonetically in Roman script. It works in two modes, which
+are automatically detected:
+bengali: converts anything but single-word latex
+\hskip .8in commands not protected by enclosing with \fncmd{@}{fn}'s.
+foreign: converts only the portions enclosed within
+\hskip .8in a pair of \fncmd{@}{bn}'s.
+CAUTION: Only ONE mode can be used in a file.
+A piece of text enclosed within a pair of \fncmd{@}{b2e}'s is converted
+from Bengali to acctented Roman script following the IAST (1912)
+rules. Works in both modes.
+[See accompanying documentation for further details.]
+---
+\begin{verbatim}
+ Usage: mkbangtex [-h, --alphabet --transparent, --ancient, -o <out_file>] <in_file>
+ -h, --help : print this page
+ --alphabet : transliteration table
+ --transparent : transparent symbols and default positioning
+ --ancient : ancient Bengali --- without antastha ya
+ -o <out_file> : specify output file (default: <in_file>.tex)
+
+\end{verbatim}
+}
+\noindent\verb|<out_file>| \*n*i\*r/d*i{\char178\kern0pt\char84}o kora na thako\*l*e \verb|<in_file>.tex|
+na\*m*e {E}ko\*T*i \foreign{\LaTeX} faIl \*t*{oi}\*r*i Ho\*b*e.
+
+{\color{red}
+Jo\*d*i \*k*ebol \verb|text| TaIpo koro\*t*e Hoy, taHo\*l*e {EI} \foreign{pre-processor} bYoboHar
+korar soHojotomo {U}pay Holo {U}c/caroNanugo baNGola \verb|text| so{NNG}bo\*l*ito
+{E}ko\*T*i \foreign{\LaTeX} phaIl \*l*i\*kh*e
+\begin{verbatim}
+mkbangtex -o <out_file> <in_file>
+\end{verbatim}
+ca\*l*i\*y*e \*n*eOya. \verb|mkbangtex| {E}ko Sob/do-\*b*i\*S*i{\char178\kern0pt\char84}o
+\foreign{\LaTeX} \foreign{command} gu\*l*i charha
+{A}nYo Sob/dogu\*l*i\*k*e bodo\*l*e {E}ko\*T*i \foreign{\bangtex} phaIl \*t*{oi}\*r*i ko\*r*e \*d*e\*b*e.
+`Sob/do' {A}\*r/th*e du\*T*i \foreign{whitespace}
+-{E}r modhYobor/tii {A}{NNG}So. \*J*emon, \verb|\section{prabeshak}| {E}ko\*T*i Sob/do. {A}toEb,
+\verb|\section| -{E}r nam baNGolay \*l*ikho\*t*e Ho\*l*e \verb|prabeshak| kothar {Aa}\*g*e {O} po\*r*e
+phNNak \*d*i\*y*e \verb|\section{ prabeshak }| \*l*ikho\*t*e Ho\*b*e.
+poXan/to\*r*e, \verb|\begin{center}| {E}ko\*T*i Sob/do, ka\*j*eI ta' {A}po\*r*ibo\*r/t*ito thako\*b*e.}
+
+\*k*in/t{\kern-.23em}u{\kern.23em} \*l*ekhar mo\*dhY*e {I}{NNG}\*r*e\*j*i Sob/do, cho\*b*i ba ga\*N*i\*t*ik phor/muula thako\*l*e kaj \*k*ichu
+\*b*e\*S*i. {E}bar tar {Aa}\*l*eacona.
+%%%%%%%%%%%
+\subsection{ du\*T*i dhara: \foreign{bengali} {O} \foreign{foreign} }
+\verb|mkbangtex| -{E}r du'\*T*i dhara ba
+\foreign{mode} {Aa}\*ch*e: \verb|bengali| {O} \verb|foreign|.
+\*J*e dharay phaI\*l*e mulotoh baNGolay \*l*ekha {Aa}\*ch*e, \*s*e\*T*i \verb|bengali| dhara.
+{EI} dharay \verb|mkbangtex| {E}ko Sob/do-\*b*i\*S*i{\char178\kern0pt\char84}o
+\foreign{ \LaTeX~command } gu\*l*i {A}po\*r*ibo\*r/t*ito \*r*e\*kh*e {A}nYanYo Sob/dogu\*l*i po\*r*ibo\*r/t*ito koro\*b*e.
+{EI} dharay \*k*eanoO {A}{NNG}So {A}po\*r*ibo\*r/t*ito rakhar jo\*nY*e ( \*J*emon, baNGola \*l*ekhar mo\*dhY*e
+{I}{NNG}\*r*e\*j*i Sob/do \*l*ikho\*t*e Ho\*l*e) \*s*eI {A}{NNG}So \fncmd{@}{fn} dWara \*b*e\*{\char178\kern0pt\char84}*ito ko'\*r*e \*d*i\*t*e Ho\*b*e.
+{U}daHoroNosWoruup, nii\*c*er somiikoroNo\*T*i,
+\begin{equation}
+a = b+ cd/5!
+\end{equation}
+{EI}bha\*b*e \*l*ekha Ja\*b*e:\\
+\verb|\begin{equation}| \\
+\fncmd{@}{fn}\\\verb|a = b+cd/5!| \\
+\fncmd{@}{fn} \\
+\verb|\end{equation}| \\
+s/po{\char178\kern0pt\char84}otoh, \verb|\begin{equation}|, \verb|\end{figure}| {I}tYa\*d*i {E}ko-Sob/do-\*b*i\*S*i{\char178\kern0pt\char84}o
+\foreign{ \LaTeX~command } HoOyay
+{E}\*d*er \*b*e{\char178\kern0pt\char84}oniir baI\*r*e rakha Jay. \*b*i\*S*eShotoh \verb|mathmode|, \verb|figure|,
+\verb|verbatim| {I}tYa\*d*i \foreign{environment} -{E}r mo\*dhY*e
+\fncmd{@}{fn} \*b*e{\char178\kern0pt\char84}onii {A}tYon/to {U}po\*J*eagii.
+
+\verb|foreign| dhara {E}r \*Th*ik \*b*iporiit. dhora Jak {E}ko\*T*i muulotoh \*b*i\*d*eSii bhaShay
+(\*J*emon \foreign{\LaTeX}!)
+\*l*ekhar mo\*dhY*e \*k*ichu baNGola Sob/do bYoboHar koro\*t*e Ho\*b*e. {E}r jo\*nY*e \verb|bengali|
+bYoboHar kora {A}nor/thok --- \verb|bengali| dharay \verb|mkbangtex| colo\*t*e
+{A}\*p*eXak{\kern-.23em}{rR}{\kern.23em}to \*b*e\*S*i somoy la\*g*e.
+{EI} \*X*e\*tR*e muul phaI\*l*er mo\*dhY*e \*J*e \*J*e {A}{NNG}So baNGolay \*l*ikho\*t*e Ho\*b*e, \*s*eI {A}{NNG}Sogu\*l*i\*k*e
+\fncmd{@}{bn} dWara \*b*e\*{\char178\kern0pt\char84}*ito ko'\*r*e \*d*i\*l*eI colo\*b*e. {E}\*t*e \foreign{runtime} {A}\*n*ek kom
+lago\*b*e. \verb|foreign| dharay \foreign{ \LaTeX~command } gu\*l*i
+\fncmd{@}{bn} \*b*e{\char178\kern0pt\char84}oniir baI\*r*eI thako\*b*e. pho\*l*e, {E}\*d*er \*k*eanoO po\*r*ibor/ton Ho\*b*e na. \*J*emon,
+\verb|\section| -{E}r nam \*l*ikho\*t*e \verb|\section{|\fncmd{@}{bn} \verb|prabeshak|
+\fncmd{@}{bn}\verb|}|
+\*l*ikho\*t*e Ho\*b*e. paSapa\*S*i dubar \fncmd{@}{bn} \*l*ekha Ja\*b*e na --- {E}\*t*e goN/Do\*g*eal Ho\*b*e.
+du\*T*i dharar \*b*iboroN {O} \*b*e{\char178\kern0pt\char84}oniir ta\*l*ika nii\*c*e punoray \*d*eOya Ho'lo:
+\begin{center}
+\begin{tabular}{|lcc|}
+\hline
+dhara (\foreign{mode}) & pRokar (\foreign{type})
+& \*b*e{\char178\kern0pt\char84}onii (\foreign{delimiter}) \\
+\hline
+\verb|bengali| & baNGola & \fncmd{@}{fn} \\
+\verb|foreign| & \*b*i\*d*eSii & \fncmd{@}{bn}\\
+\hline
+\end{tabular}
+\end{center}
+{U}bhoy dhara\*t*eI Dolar \*d*i\*y*e
+ga\*N*i\*t*ik for/muula sWabha\*b*ik bha\*b*eI \*l*ekha Ja\*b*e: $a = bd + c$.
+{EI}bha\*b*e kom-so{NNG}khYok {I}{NNG}\*r*e\*j*i
+Sob/doO \*l*ekha Jay: $\text{like this}$.
+
+phaI\*l*e \fncmd{@}{bn} \sh{ {A}thoba} \fncmd{@}{fn} thako\*l*e \verb|mkbangtex| so\*Th*ik \foreign{mode}
+bYoboHar koro\*b*e. sutora{NNG}, {E}koI phaI\*l*e du'\*T*i dhara bYoboHar kora Ja\*b*e na.
+poXan/to\*r*e,
+\fncmd{@}{fn} ba \fncmd{@}{bn} -{E}r \*k*eanoO\*T*i{{I}} na thako\*l*e \verb|bengali| dhara bYoboH{rR}to
+Ho\*b*e. {EI} dharaI \foreign{\mkbangtex} -{E}r puu\*r/b*eak/to \foreign{default} dhara.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{ \*n*iyomabolii}
+{E}bar {U}c/caroNaonugo baNGola \*l*ekhar \*b*i\*dh*i. \verb|bengali| {E}bo{NNG} \verb|foreign| {U}bhoy
+dhara\*t*eI {EI} \*b*i\*dh*i pRo\*J*eajYo.
+{U}c/caroN {A}nusa\*r*e \*l*ekhar su\*b*idha Ho'lo, \*n*iyomogu\*l*i {A}numan ko'\*r*e
+\*n*eOya Jay. {U}poron/t{\kern-.23em}u{\kern.23em}, muul \*l*ekhar paTho\*J*eagYota b{rR}\*d/dh*i pay.
+\mkbangtex -{EO} \*s*eI su\*b*idha paOya Ja\*b*e.
+{A}numan-\*n*ir/bhor \*l*ekhay bh{\kern-.23em}u{\kern.23em}l Hobar som/bhabona {A}tYon/to kom. Ho'\*l*e {EI}
+Dok{\kern-.23em}u{\kern.23em}\*m*e\*n/T*eSo\*n*er porobor/tii
+{A}{NNG}So porhobar pRo\*y*eajon Ho'\*t*e pa\*r*e.
+{E}charha, \verb|--alphabet| \foreign{option} bYoboHar ko\*r*e somos/to \*c*i\*n/H*er ta\*l*ika
+\*m*ilo\*b*e.
+\subsection{ bYon/jon bor/No}
+bYon/jon bor/Nogu\*l*ir jonYo du'\*T*imatRo bYo\*t*ikRom charha sob
+\*c*in/HoI \bangtex -{E}r Dok{\kern-.23em}u{\kern.23em}\*m*e\*n/T*eSo\*n*e
+\*J*emon bola {Aa}\*ch*e, \*t*emonoI \*l*ekha Ja\*b*e. bYo\*t*ikRomii {O} {A}\*t*i\*r*ik/to
+\*c*in/Hogu\*l*i,
+\begin{center}
+\begin{tabular}{ll}
+\foreign{ c, ch } & c \\
+\foreign{ chh } & ch \\
+\foreign{ Sh, shh } & Sh \\
+\foreign{ x } & X \\
+\foreign{ h, H } & H \\
+\end{tabular}
+\end{center}
+{A}nYanYo bYon/jon bo\*r/N*er \*c*in/Hogu\*l*i \bangtex -{E}r motoI. Sudhu {E}khon {Aa}r
+bhog/na{NNG}So \*d*i\*y*e
+Juk/taXor {A}thoba kYa\*p*iTal Horo\*f*e -fola
+\*l*ikho\*t*e Ho\*b*e na. bYon/jon bor/Nogu\*l*i poropor \*l*ikho\*l*eI
+colo\*b*e, \*J*emon,
+{U}c/chon/no, ga\*n/g*eyo, {A}SWo{\char211}o,
+{U}\*c/c*i\*NGR*e, mon/dRYo, \*p*eouN/DRobor/dhon,
+mor/mon/t{\kern-.23em}u{\kern.23em}do, {EI} Sob/dogu\*l*i \*l*ikho\*t*e JothakRo\*m*e
+\begin{verbatim}
+ucchhanna, gaangeya, ashwaththa, uchchiNGrhe, mandrya, pouNDrabardhan, marmantuda
+\end{verbatim}
+TaIp koro\*t*e Ho\*b*e. \*k*in/t{\kern-.23em}u{\kern.23em}, {E}khon du'\*T*i
+bYon/jon bor/No paSapa\*S*i {A}\*b*ik{\kern-.23em}{rR}{\kern.23em}to
+\*l*ekhar jonYo ta\*d*er ma\*C*e \verb|a| \*l*ikho\*t*e Ho\*b*e, \*J*emon
+\verb|chalabe|: colo\*b*e, {Aa}r \verb|chaalaabe|: cala\*b*e \*k*in/t{\kern-.23em}u{\kern.23em} \verb|chalbe|: co\*l/b*e.
+{E}kha\*n*e \verb|a| -r bh{\kern-.23em}uu{\kern.23em}\*m*ika \bangtex -{E}r \verb|o| -r moto.
+\verb|o| \*d*i\*y*e {E}khon {O}-kar ba {O} \*l*ekha Ho\*b*e.
+\subsection{ sWorobor/No }
+sWorobor/No {O} tod/bh{\kern-.23em}uu{\kern.23em}to `kar' \*l*ekhar \*n*iyom {EI} rokom:
+\begin{center}
+\begin{tabular}{lccc}
+&$\text{a}$ & \verb|a, aman| & {A}, {A}mon \\
+&$\text{aa}$ & \verb|aa, aami, maataa| & {Aa}, {Aa}\*m*i, mata \\
+&$\text{i}$ & \verb|i, icchhe, pitaa| & {I}, {I}\*c/ch*e, \*p*ita \\
+&$\text{ii}$ & \verb|ii, iishaan, riiti| & {II}, {II}San, rii\*t*i \\
+&$\text{u}$ & \verb|u, uT, baabu | & {U}, {U}T, babu, \\
+&$\text{uu}$ & \verb|uu, ruup| & {UU}, ruup \\
+\ding{235} &$\text{Ri}$ & \verb|Ri, {RR}, Rishhi| & {RR},{RR}, {RR}\*Sh*i \\
+\ding{235} &$\text{Ri-kaar}$ & \verb|_r, k_rshhak, baTak_rshhNa, h_rday| &
+ {rR}, k{\kern-.23em}{rR}{\kern.23em}Shok, boTok{\kern-.23em}{rR}{\kern.23em}Sh/No, H{rR}doy \\
+&$\text{e}$ & \verb|e, bane, ebaar| & {E}, bo\*n*e, {E}bar \\
+&$\text{oi}$ & \verb|oi, oisab, boitaalik| & {OI}, {OI}sob, \*b*{oi}ta\*l*ik \\
+\ding{235} &$\text{o+i}$ & \verb|{o}{i}, {o}{i}sab| &
+ {{O}}{{I}}, {{O}}{{I}}sob \\
+&$\text{o}$ & \verb|o, bhaalo, obhaabe| & {O}, bha\*l*ea, {O}bha\*b*e \\
+&$\text{ou}$ & \verb|ou, outsukya, noukaa| & {OU}, {OU}t//sukYo, \*n*eouka \\
+&$\text{ai, aai}$ & \verb|ai, bai, aai, Jaaiba| & {AI}, boI, {AaI}, JaIbo \\
+&$\text{ae, aae}$ & \verb|ae, ataeb, aae, naae| & {AE}, {A}toEb, {AaE}, naE \\
+&$\text{aii, aaii}$ & \verb|aii, aaii, baaiijii| &
+ {AII}, {AaII}, baIIjii \\
+&$\text{au, aau}$ & \verb|mau, jhaaugaachh| & moU, CaUgach \\
+&$\text{ao, aao}$ & \verb|ao, aao, haaoyaa| & {AO}, {AaO}, HaOya \\
+&$\text{iu, iiu}$ & \verb|iu, iiu, piu, jiiu| & {IU}, {IIU}, \*p*iU, jiiU \\
+\ding{235} &$\text{i+i}$ & \verb|i{i}| & {E}ko\*T*i{{I}} \\
+&$\text{io, iio}$ & \verb|io, iio, kario, baaTiio| &
+ {IO}, {IIO}, ko\*r*iO, baTiiO \\
+&$\text{ei}$ & \verb|ei, nei| & {EI}, \*n*eI \\
+&$\text{eu}$ & \verb|eu, bheu| & {EU}, \*bh*eU \\
+&$\text{eo}$ & \verb|eo, Jeo| & {EO}, \*J*eO \\
+&$\text{ui, uii, uui, uuii}$ & \verb|ui, uui, uii, uuii, bh~nuiNJaa, shyuui|
+& {UI}, {UUI}, {UII}, {UUII}, bhNNuINJa, Suu{\kern-.06em}YI \\
+\end{tabular}
+\end{center}
+\*J*e caro\*T*i ruup {A}numan koro\*t*e samanYo \*b*eg \*p*e\*t*e Ho'\*t*e pa\*r*e ta\*d*er
+\*c*i\*n/H*ito kora {Aa}\*ch*e.
+
+\subsection{ na\*s*ikYo dhWo\*n*i}
+na\*s*ikYo dhWo\*n*ir \*X*e\*tR*e
+\bangtex -{E}r su\*b*idha {A}po\*r*ibo\*r/t*ito {Aa}\*ch*e.
+\*J*emon,
+\*H*elo\*s*i\*n/k*i {A}n/ko Son/kho {A}n/go {A}n/col mo\*n*eaban/cha bYon/jon CoNJ/Ca
+boN/Ton luN/Thon kaN/Do \*Z*eN/Zon don/to pan/tho bon/dor {Aa}n/dhar m{rR}nMoy
+--- \*k*in/t{\kern-.23em}u{\kern.23em} \*c*in/Ho {A}poraN/Ho bRoHMa baNG/moy baNGola:
+\begin{verbatim}
+helasinki anka shankha anga anchal manobaanchhaa byanjan jhanjhaa
+baNTan luNThan kaaNDa DheNDhan danta paantha bandar aandhaar m_rnmay
+--- chinha aparaNha bramhaa baanNGmay baaNGalaa
+\end{verbatim}
+\subsection{ khoN/Do t// , Hoson/to, \*b*isor/go {O} sanuna\*s*ik bor/No}
+khoN/Do t// , Hoson/to, \*b*isor/go {O} sanuna\*s*ik bor/No
+\*l*ekhar jonYo {EI} saroNii bYoboHar koro\*t*e Ho\*b*e:
+\begin{center}
+\begin{tabular}{rcc}
+ khoN/Do t//: & \verb|_t| & t// \\
+ Hoson/to: & \verb|_h| & :/ \\
+ \*b*isor/go: & \verb|~h| & h \\
+ {A}nusWar: & \verb|_m| & {NNG} \\
+ con/dRo\*b*in/du: & \verb|~n| & NN
+\end{tabular}
+\end{center}
+to\*b*e, t//-{E}r po\*r*e k, kh, X, p, ph \*k*i{NNG}ba s thako\*l*e \*k*ebol \verb|t| -{O} \*l*ekha Ja\*b*e. \*J*emon,
+{U}t//koT, {U}t//khat, {U}t//\*X*ip/to, {U}t//pol, {U}t//ph{\kern-.23em}u{\kern.23em}lLo, {U}t//so {E}'gu\*l*i
+{E}mo\*n*i{{O}} \*l*ekha Ja\*b*e. {A}r/that// {EI} du'\*T*i{{I}} \*Th*ik: \verb|utkaT, u_tkaT, u_tpal, utpal| {I}tYa\*d*i. \*k*in/t{\kern-.23em}u{\kern.23em}
+s/thanubot//: \verb|sthaanuba_t|, jolobhat: \verb|jalabhaat|.
+%%%%%%
+\subsubsection{ {Aa}roO {U}daHoroN }
+\verb|bhoir~no| - \verb|bhair~no| - \verb|bhoiro~n|, \verb|s~nodaraban| -
+\verb|so~ndaraban|:
+\*bh*{oi}\*rNN*ea - bhoI\*rNN*ea - \*bh*{oi}\*r*eaNN, \*sNN*eadorobon - \*s*eaNNdorobon --- con/dRo\*b*in/dur {A}bos/tha\*n*ik
+par/thokYo loXYoNiiyo. \*t*emonoI,
+salo{NNG}kara, \*s*i{NNG}Ho, \*s*ig:/nYal: \verb|saala_mkaaraa, si_mha, sig_hnyaal|. \*b*isor/go-Juk/to So\*b/d*er {U}daHoroN:
+pRatohraS, {O}toh\*pR*eato, sWobhabotoh, ma\*bh*{oi}h. {E}'gu\*l*i JothakRo\*m*e
+\verb|praata~hraash|, \verb|ota~hprota|, \verb|swabhaabata~h|, \verb|maabhoi~h|.
+\section{ \*r*eaman pRo\*t*ibor/NiikoroN }
+baNGola ba so{NNG}s/k{\kern-.23em}{rR}{\kern.23em}to Sob/do \*r*eaman Horo\*ph*e \*l*ekhar jonYo
+\foreign{ accented letters } bYoboH{rR}to Hoy. {E}rojonYo po\*r*ibor/toniiyo
+{A}{NNG}\*S*er {Aa}\*g*e {O} po\*r*e \fncmd{@}{b2e} \*l*ikho\*t*e Ho\*b*e. Jotha, {Aa}\*d*i \*SL*eak, \\
+\parbox{.5\textwidth}{%
+ma \*n*iShado pRo\*t*i{\char178\kern-2pt\char70}a{NNG} tWomo gomah SaSWotiisoma.\\
+Jot//\*kR*eoun/co\*m*ithuna\*d*ekomobo\*dh*i kamo\*m*ea\*H*itom:/..\\
+}%
+\parbox[b]{.5\textwidth}{%
+{\rm m{\=a} ni\d{s}{\=a}da prati\d{s}\d{th}{\=a}\d{m} twama gam{\=a}\d{h} {\'s}{\=a}{\'s}wat{\=\i}sam{\=a}.\\
+yatkrau\~{n}camithun{\=a}dekamabadhi k{\=a}mamohitam..}
+}%
+
+\noindent
+{EI}bha\*b*e \*l*ikho\*t*e Ho\*b*e:\\
+\noindent\fncmd{@}{b2e}
+\begin{verbatim}
+{\rm maa nishhaada pratishhThaa_m twama gamaa~h shaashwatiisamaa.\\
+Ja_tkrounchamithunaadekamabadhi kaamamohitam_h..}
+\end{verbatim}
+\fncmd{@}{b2e}\\
+\foreign{ International Alphabet of Sanskrit Transliteration (IAST), 1912 }
+ {A}nuJayii pRo\*t*ibor/NiikoroN-\*b*i\*dh*i nii\*c*er saroNii\*t*e \*d*eOya Ho'lo.
+\parbox{.5\textwidth}{%
+{A} {Aa} {I} {II} {U} {UU} {RR} {E} {OI} {O} {OU}\\
+ko kho go gho NG\\
+c ch jo Co NJ\\
+To Tho Do Zo No\\
+to tho do dho no\\
+po pho bo bho mo\\
+Jo ro lo bo\\
+So Sho so Ho\\
+rh rhh {NNG} h NN
+}%
+\parbox{.5\textwidth}{%
+{\rm
+a {\=a} i {\=\i} u {\=u} \d{ri} e ai o au\\
+ka kha ga gha {\.n}\\
+c ch ja jha \~{n}\\
+\d{t}a \d{th}a \d{d}a \d{dh}a \d na\\
+ta tha da dha na\\
+pa pha ba bha ma\\
+ya ra la wa\\
+{\'s}a \d{s}a sa ha\\
+\d{R} \d{R}h \d{m} \d{h} \u{n}}
+}%
+
+\noindent
+so{NNG}s/k{\kern-.23em}{rR}{\kern.23em}to bhaShay con/dRo\*b*in/du-r {A}\*s/t*itWo \*n*eI. pho\*l*e, \foreign{IAST} -r \*n*iyo\*m*e
+{E}r jo\*nY*e \*k*eanoO
+\*c*in/Ho \*n*i\*r/d*i{\char178\kern0pt\char84}o \*n*eI. {E}kha\*n*e {E}ko\*T*i \*c*in/Ho \*n*i\*r/d*i{\char178\kern0pt\char84}o Ho'lo. poXan/to\*r*e,
+baNGolay {O}{\char178\kern-2pt\char70}Yobor/giiyo {O} {A}n/tohs/thobor/giiyo `bo'-{E}r \*k*eanoO par/thokYo \*n*eI.
+{A}n/tohs/thobor/giiyo `bo'-{E}r jonYo \foreign{IAST} -\*t*e \foreign{wa} ba
+\foreign{va} \*l*ekha sabYos/to Ho\*y*e\*ch*e.
+{E}kha\*n*e pRothomo\*T*i rakha Ho'lo.
+%%%%%%%%%%%%%
+\section{ tRu\*T*i so{NNG}\*S*eadhon}
+\bangtex -{E} k, X, NG, c, Co, To, Do, Zo, pho {E}bo{NNG} bho --- {EI} bor/Nogu\*l*ir {O}
+J-fola Juk/to bo\*r/N*er {U}-kar,
+{UU}-kar {E}bo{NNG} {RR}-kar \*k*ichuTa s/thanoc{\kern-.23em}u{\kern.23em}{\kern-.06em}Yto \*d*ekhay. \mkbangtex {EI} tRu\*T*i \*m*eramot
+ko'\*r*e \*d*ey. \*J*emon k{\kern-.23em}u{\kern.23em}l, k{\kern-.23em}uu{\kern.23em}l, X{\kern-.23em}u{\kern.23em}dhar/to, ghuNG{\kern-.23em}u{\kern.23em}r, c{\kern-.23em}u{\kern.23em}lo, C{\kern-.23em}u{\kern.23em}\*l*eaC{\kern-.23em}u{\kern.23em}\*l*i, T{\kern-.23em}u{\kern.23em}l, D{\kern-.23em}u{\kern.23em}mur,
+Z{\kern-.23em}u{\kern.23em}luZ{\kern-.23em}u{\kern.23em}lu, ph{\kern-.23em}u{\kern.23em}lomala, bh{\kern-.23em}u{\kern.23em}lobhRa\*n/t*i, bh{\kern-.23em}uu{\kern.23em}t, k{\kern-.23em}{rR}{\kern.23em}So, bh{\kern-.23em}{rR}{\kern.23em}n/gar.
+T-{E} {O} X-{E} bo-folar tRu\*T*i \bangtex -{E}r Dok{\kern-.23em}u{\kern.23em}\*m*e\*n/T*eSo\*n*e {U}\*lL*ekh kora Ho\*y*e\*ch*e.
+To-{E} Jugopot// ro-fola {O} {U}-kar thako\*l*eO samanYo
+{A}bos/tha\*n*ik tRu\*T*i Hoy. {E}gu\*l*iO \*m*eramot kora Ho'lo: khoT\kern-.1em\lower.3em\hbox{W}\kern.1ema, {I}X\kern-.25em\lower.2em\hbox{W}\kern.25emak{\kern-.23em}u{\kern.23em}, T{\kern-.2em}\lower.1em\hbox{R}\lower.15em
+ \hbox{u}\kern.2emth.
+po\*r*i\*S*e\*Sh*e, \bangtex -{E} {\char235} {O} {\char236} \*l*ekha Hoy \emph{ sWoc/cho} \*c*i\*n/H*e,
+\*k*in/t{\kern-.23em}u{\kern.23em} Sh/ko, Sh/po, Sh/pho {A}sWoc/cho \*c*i\*n/H*e. \mkbangtex pRothom du'\*T*i\*k*eO
+`{A}sWoc/cho' ko'\*r*e \*d*e\*b*e: Jo\*{\char178\kern0pt\char84}*i, SuSh/koka{\char178\kern-2pt\char70}o, baSh/po, \*n*iSh/phola.
+
+\mkbangtex -{E}r \verb|--transparent| \foreign{option} bYoboHar ko'\*r*e {EI} {A}{NNG}\*S*er
+po\*r*ibo\*r/t*ito \*c*in/Hogu\*l*ir po\*r*ibo\*r/t*e \bangtex -{E}r \foreign{default} rii\*t*i bYoboHar kora
+Ja\*b*e.
+%%%%%%%%%%%%
+\section{ {\tt ancient} {A}p:/Son}
+pRaciin baNGola \*l*ekhar jonYo {EI} \foreign{option} -\*T*ir bYoboHar sii\*m*ito.
+pRaciino baNGolay {A}n/tos/tho yo-r bYoboHar \*ch*ilo na. {EI} pRaciin ruu\*p*er bYoboHar
+cor/Jagii\*t*i\*t*e \*d*ekha Jay. {U}daHoroNosWoruup, {EI} rii\*t*i\*t*e kaya Hoy `ka{{Aa}}'. \verb|mkbangtex --ancient|
+ \foreign{option} bYoboHar ko\*r*e {EI} pRaciin baNGola \*l*ekha Jay. nii\*c*er
+{U}daHoro\*N*e {\tt --ancient} \foreign{option} soHo {O} ta charha \verb|mkbangtex| cala\*l*e {EI}
+par/thokYo \*b*eaCa Ja\*b*e:
+\begin{verbatim}
+kaayaa tarubara pancha bi Daal. \\
+chanchala chiiye paiTho kaal.. \\
+dirhha kari mahaasuha parimaaN. \\
+lui bhaNayi guru puchchhiya jaaN..\\
+sayala samaahiya kaahi kariyai. \\
+sukha dukhete~n nichita mariyai..\\
+erhi eu chhaandaka baandha karaNaka paaTera aas.\\
+sunupaakha bhiti lehu re paasa..\\
+bhaNai lui aameh_h jhaane diThaa.\\
+dhamaNa chamaNa beNi piNDi baiThaa..
+\end{verbatim}
+%%%%%%%%%%%%
+\section{ bYotYoy}
+\bangtex -{E} `{A}Ya' chapar jonYo \verb|AYa| \*l*ikho\*l*eI co\*l*e. \*k*in/t{\kern-.23em}u{\kern.23em} \mkbangtex -{E}
+\verb|AYa| ba \verb|aYa| \*l*ikho\*l*e AYo, \verb|Aya| ba \verb|aya| \*l*ikho\*l*e {A}yo chapa Hoyo.
+pho\*l*e, {E}khon \bangtex {O} \mkbangtex -{E}r
+\*J*eoutho \*n*iyo\*m*e \verb|aYaa| \*l*ikho\*t*e Ho\*b*e, \verb|aYaasiD|: {A}Ya\*s*iD.
+poron/t{\kern-.23em}u{\kern.23em}, \bangtex -{E} {A}Ya-r
+dhWo\*n*i {O} tot//so{NNG}\*SL*i{\char178\kern0pt\char84}o -kar \*l*ekhar jonYo
+not{\kern-.23em}u{\kern.23em}n \*c*in/Ho pRos/ta\*b*ito Ho\*y*e\*ch*e:
+\verb|AA|: {AA} {O} \verb|aa|: {aa}.
+\*k*in/t{\kern-.23em}u{\kern.23em} \mkbangtex -{E} \verb|AA=aa|: {Aa}. pholotoh, \bangtex -{E}r \*c*in/Hogu\*l*ir jonYo
+not{\kern-.23em}u{\kern.23em}n \*n*iyom dhar/Jo Ho\*y*e\*ch*e. \verb|YA| \*l*ikho\*l*e {OI} \*c*in/Hogu\*l*i chapa Ho\*b*e: \foreign{\tt YAkaa kYAna ele?} : {AA}ka \*k*{aa}no {E}\*l*e?
+loXYoNiiyo \*J*e, {AA} {E}bo{NNG} {aa}
+\*l*ekhar jonYo du'\*T*i p{rR}thok \*c*in/Ho \*l*ekhar pRo\*y*eajon \*n*eI.
+
+{E}charha {Aa}\*m*i {E}ko\*T*i \*g*ealomal \*p*e\*y*e\*ch*i, \verb|dhanyabaadaarha|:
+dhonYobadarho, dhonYobadar/Ho \*l*ikho\*t*e \*g*i\*y*e! {E}'\*T*i \*b*eS mojar.
+\verb|rh| ma\*n*e rh, {Aa}bar H-\*y*e \*r*ef-{O}.
+{A}nYo sob jayogay \*dW*itiiyo\*T*i{{I}} Ho\*b*e,
+\*J*emon bor/No ba bor/Sho.
+\*k*in/t{\kern-.23em}u{\kern.23em}, {EI} \*X*e\*tR*e du'\*T*i \*n*iyom \foreign{clash} koro\*ch*e.
+{E}kha\*n*e \bangtex -{E}r \*n*iyom \*m*e\*n*e pRothomo\*T*i{{I}}
+\foreign{default} -{E} rakha Ho'lo. fo\*l*e, \*dW*itiiyo \*X*e\*tR*e
+\bangtex {E}r \*n*iyomoma\*f*ik \foreign{H}
+\*d*i\*y*e ``dhonYobadar/Ho'' \*l*ikho\*t*e Ho\*b*e: \verb|dhanyabaadaarHa|. {A}r/that//, \bangtex -{E}r
+\*n*iyomabolii bado \*d*eOya Ja\*b*e na --- \*s*eIgu\*l*iO $\text{Z}\!\!$ Van:/\*t*i Ho\*b*e!
+%%%%%%%%%%%%%%%%%%%%%%
+\subsection*{ k{\kern-.23em}{rR}{\kern.23em}tog/Yota}
+\mkbangtex \*pR*eagRamo\*T*i \verb|Python2.4.1| -{E} porii\*X*ito.
+{EI} \*pR*eagRa\*m*er {E}ko\*T*i gurutWopur/No {A}{NNG}So
+\foreign{ Xavier Defrang } -{E}r {\rm Single-Pass Multiple Replace,
+Py Cookbook 81330 } \*th*e\*k*e g{rR}Hiito Ho\*y*e\*ch*e.
+{EI} \*pR*eagRa\*m*er bYapa\*r*e {A}f{\kern-.23em}u{\kern.23em}ron/to saHaJYo ko'\*r*e\*ch*en joyodiip
+mojumodar.
+\end{document} \ No newline at end of file
diff --git a/language/bengali/pandey/README b/language/bengali/pandey/README
new file mode 100644
index 0000000000..3f12a17d6f
--- /dev/null
+++ b/language/bengali/pandey/README
@@ -0,0 +1,11 @@
+This is a package for typesetting Bengali.
+
+Copyright 2002 Anshuman Pandey
+The entire package is released under the terms of the
+LaTeX Project Public License, version 1, or (at your option) any later
+version. The file manifest.txt gives the list of files included in the
+package.
+
+Contact information:
+ http://www-personal.umich.edu/~pandey/
+ (see also the umich.edu directory search)
diff --git a/language/bengali/pandey/beng.c b/language/bengali/pandey/beng.c
new file mode 100644
index 0000000000..18b69463b9
--- /dev/null
+++ b/language/bengali/pandey/beng.c
@@ -0,0 +1,1153 @@
+/***************************************************************************/
+/* */
+/* beng.c v2.0 */
+/* */
+/* Source code for "Bengali for TeX" preprocessor. */
+/* Anshuman Pandey <apandey@u.washington.edu>, 2002/03/27 */
+/* */
+/* Based on Revision 1.1 1996/03/05 of skt.c preprocessor developed by */
+/* Charles Wikner <wikner@nacdh4.nac.ac.za> */
+/* */
+/***************************************************************************/
+
+#include <stdio.h>
+#include <ctype.h>
+#include <string.h>
+
+/* DECLARE FUNCTIONS */
+void exit (int);
+void search (void);
+void write_outbuf(void);
+void write_line (char *);
+char * str_find (char *, char *);
+void getline (void);
+char * command (char *);
+void error (char *, int);
+void process (void);
+void chrcat (char *, char);
+void bncont (void);
+void bnword (void);
+void single (char);
+void frontac (void);
+void backac (void);
+void sam_warning (void);
+void samyoga (void);
+
+FILE *infile, *outfile, *fopen();
+char infilename[80];
+char outfilename[80];
+
+#define TRUE 1
+#define FALSE 0
+
+unsigned char bnline; /* flag TRUE if there is any Bengali on this line */
+unsigned char bnmode; /* flag TRUE while within {\bn } */
+unsigned char eof_flag; /* flag True when end of file detected */
+unsigned char ac_flag; /* flag TRUE while processing Bengali vowels */
+unsigned char roman_flag; /* flag TRUE if previous output was Roman string */
+
+int nest_cnt; /* '{' increments, '}' decrements, while in \bn */
+int err_cnt; /* incremented by any error while in \bn */
+#define err_max 10 /* after err_max errors, program aborts */
+int line_cnt; /* line number of current input line */
+
+char inbuf[133]; /* input file line buffer of text being processed */
+char *i_ptr; /* general pointer to input buffer */
+char outbuf[512]; /* output file line buffer of text processed */
+char *o_ptr; /* general pointer to output buffer */
+
+unsigned char cont_end; /* flag TRUE when line ends with %-continuation */
+unsigned char cont_begin; /* flag TRUE when line begins after %-continuation */
+unsigned char hal_flag; /* flag TRUE when hal_type detected in syllable */
+unsigned char ac_char; /* storage for working vowel character */
+unsigned char pre_ra; /* storage/flag for 'r' at beginning of samyoga */
+char ac_hook; /* vowel diacritic code */
+char bnbuf[255]; /* storage for Bengali in internal code */
+char *s_ptr; /* general pointer to Bengali buffer */
+char *old_sptr; /* points to samyoga start; used by warning message */
+char work[80]; /* general scratchpad */
+char *w_ptr; /* general pointer to work buffer */
+char tmp[80]; /* temporary buffer for previous syllable */
+int ra; /* post_ra type to use with this character */
+int ya; /* post_ya type to use with this character */
+int post_ra; /* flag to append ra to samyoga */
+int post_ya; /* flag to append ya to samyoga */
+int hasanta; /* flag to add hasanta to samyoga (i.e. no vowel) */
+int hr_flag; /* flag indicates vowel picked up in samyoga (h.r) */
+
+
+/***************************************************************************/
+/* Function: main() */
+/***************************************************************************/
+
+main(argc,argv)
+int argc;
+char *argv[];
+{ char *p; int k;
+
+ /* Initialization */
+
+ bnmode = eof_flag = FALSE;
+ nest_cnt = err_cnt = 0;
+ line_cnt = 0;
+ i_ptr = inbuf; *i_ptr = '\0';
+ s_ptr = bnbuf; *s_ptr = '\0';
+ o_ptr = outbuf; *o_ptr = '\0';
+
+ /* handle command-line options */
+
+ k=0;
+ if (argc>1) strcpy(infilename,argv[1]);
+ if (strcmp(infilename,"-h")==0)
+ { k=1;
+ strcpy(infilename,"");
+ printf("Preprocessor for \"Bengali for TeX\" package, v2.0, 2002.03.27\n");
+ printf("Anshuman Pandey <apandey@u.washington.edu>\n");
+ printf("Syntax: beng infile[.bn] [outfile[.tex]]\n");
+ exit(0);
+ }
+
+ /* then get file names */
+ switch(argc-k)
+ { case 3: strcpy(infilename,argv[1+k]);
+ strcpy(outfilename,argv[2+k]);
+ break;
+ case 2: strcpy(infilename,argv[1+k]);
+ strcpy(outfilename,"");
+ break;
+ default: strcpy(infilename,"");
+ while(strlen(infilename) == 0)
+ { printf("Input file: "); gets(infilename); }
+ printf("Output file: ");
+ gets(outfilename);
+ }
+
+ if (strlen(outfilename) == 0)
+ { strcpy (outfilename,infilename); /* default output file name */
+ p = strchr(outfilename,'.');
+ if (p != 0) *p = '\0'; /* delete out file name extension */
+ }
+ p = strchr(infilename,'.');
+ if (p == 0) strcat(infilename,".bn"); /* default input file extension */
+ if ((infile=fopen(infilename,"r")) == NULL)
+ { printf("Cannot open file %s\n",infilename); exit(1); }
+ getline(); if (eof_flag)
+ { printf("Input file %s is empty.\n",infilename); exit(1); }
+ p = strchr(outfilename,'.');
+ if (p == 0)
+ { if (inbuf[0] == '@') strcat(outfilename,".dn");
+ else strcat(outfilename,".tex"); /* set default output file extension */
+ }
+ if ((outfile=fopen(outfilename,"w")) == NULL)
+ { printf("Cannot open output file %s\n",outfilename); exit(1); }
+
+ /* Normal main loop */
+
+ while(eof_flag == 0)
+ { while(!bnmode && !eof_flag) search(); /* search for \bn command */
+ while( bnmode && !eof_flag) process(); /* process bengali text */
+ if (err_cnt >= err_max)
+ { printf("Too many (%d) errors, aborting program\n",err_cnt); break; }
+ }
+ if ((err_cnt < err_max) && (nest_cnt != 0))
+ printf("Brace mismatch within \\bn = %d\n",nest_cnt);
+ fclose(infile);
+ fclose(outfile);
+ exit(1);
+
+}
+
+
+/***************************************************************************/
+/* Function: search() */
+/* */
+/* Search inbuf for '{\bn', getting more input lines as necessary */
+/* until string found or end of file, copying input to output; if */
+/* the string is found but command not recognised, it is treated as */
+/* ordinary text; if valid command i_ptr points to first sanskrit */
+/* char after command, and sets bnmode TRUE. */
+/***************************************************************************/
+
+void search(void)
+{
+unsigned char c;
+char *p,*q;
+ while (eof_flag == 0)
+ { p = str_find(i_ptr,"{\\bn");
+ if (p == 0)
+ { if (bnline == TRUE) { strcat(outbuf,i_ptr); write_outbuf(); }
+ else { write_line(inbuf); o_ptr = outbuf; *o_ptr = '\0'; }
+ getline();
+ continue;
+ }
+ q = i_ptr; i_ptr = p;
+ if ((p = command(p)) == 0) /* test command string \bn */
+ { p = i_ptr; i_ptr = q; /* if bad \bn command */
+ c = *++p; *p = '\0'; /* copy partial line, and search more */
+ strcat(outbuf,i_ptr); *p = c; i_ptr = p; continue;
+ }
+ i_ptr = q;
+ nest_cnt++; c = *p; *p = '\0'; /* skip over '{\bn' */
+ strcat(outbuf,i_ptr); /* append partial line to outbuf */
+ *p = c; i_ptr = p;
+ bnmode = TRUE; bnline = TRUE; /* now comes the fun! */
+ break;
+ }
+}
+
+
+/***************************************************************************/
+/* Function: write_outbuf() */
+/* */
+/* Write outbuf in 80 character lines */
+/***************************************************************************/
+
+void write_outbuf(void)
+{
+char c, d, e;
+ while(1)
+ { c = '\0';
+ if (strlen(outbuf) < 81) { write_line(outbuf); break; }
+ for (o_ptr = outbuf + 78; o_ptr > outbuf + 50; o_ptr--)
+ { if (*o_ptr == ' ') break; }
+ if (*o_ptr != ' ') { for (o_ptr = outbuf+78; o_ptr > outbuf + 50; o_ptr--)
+ if ((*o_ptr=='\\') && (*(o_ptr-1)!='\\')) break;
+ if (o_ptr == outbuf+50) o_ptr = outbuf+78;
+ c = *o_ptr; *o_ptr++ = '%'; d = *o_ptr;
+ }
+ *o_ptr++ = '\n'; e = *o_ptr; *o_ptr = '\0';
+ write_line(outbuf);
+ *o_ptr = e;
+ if (c!='\0') { *--o_ptr = d; *--o_ptr = c; } /* restore displaced chars */
+ strcpy(outbuf,o_ptr);
+ }
+ o_ptr = outbuf;
+ *o_ptr = '\0';
+}
+
+
+/***************************************************************************/
+/* Function: write_line() */
+/* */
+/* Write p-string to output device */
+/***************************************************************************/
+
+void write_line(char *p)
+{
+ if (err_cnt == 0) fputs(p,outfile);
+}
+
+
+/***************************************************************************/
+/* Function: str_find() */
+/* */
+/* Find first occasion of string *str within *buf before '%' char; */
+/* return pointer first char of str within buf, else 0. */
+/***************************************************************************/
+
+char * str_find(char *buf, char *str)
+{ char *p, *x;
+ p = strstr(buf,str);
+ if (p == 0) return(0);
+ x = strchr(buf,'%');
+ if ((x != 0) && (p > x)) return(0);
+ return(p);
+}
+
+
+/***************************************************************************/
+/* Function: getline() */
+/* */
+/* Get another line from input file; reset i_ptr, increments */
+/* line_cnt, and sets eof_flag if EOF. */
+/***************************************************************************/
+
+void getline(void)
+{
+char *p;
+ i_ptr = inbuf;
+ *i_ptr = '\0';
+ line_cnt++;
+ if (fgets(inbuf,133,infile) == NULL) eof_flag = TRUE;
+ if (bnmode == FALSE) bnline = FALSE;
+}
+
+
+/***************************************************************************/
+/* Function: command() */
+/* */
+/* Check for valid \bn command; if invalid command, print error message */
+/***************************************************************************/
+
+char * command(char *p)
+{ p += 4; /* skip over '{\bn' */
+ if (*p++ != ' ') p = 0;
+ if (p == 0) error("Unrecognised command string",7);
+ return(p);
+}
+
+
+/***************************************************************************/
+/* Function: error() */
+/* */
+/* Print out error message, including string *s and 'n' characters */
+/* of inbuf. */
+/***************************************************************************/
+
+void error(char *s, int n)
+{ char err_str[80]; int j;
+ if (++err_cnt <= err_max)
+ { if (n > 0) { for (j=0; j<n; j++) err_str[j] = *(i_ptr+j);
+ err_str[j] = '\0';
+ }
+ if (n == 0) { strcpy(err_str,"oct(");
+ chrcat(err_str,'0' + (*i_ptr/64));
+ chrcat(err_str,'0' + (*i_ptr/8));
+ chrcat(err_str,'0' + (*i_ptr & 7));
+ strcat(err_str,")");
+ }
+ if (n < 0) { err_str[0] = '\0'; }
+ }
+ printf("Line %4d Error: %s %s\n",line_cnt,s,err_str);
+}
+
+
+/***************************************************************************/
+/* Function: process() */
+/* */
+/* Process input text within {\bn, converting to internal format in bnbuf */
+/***************************************************************************/
+
+#define ISAC(c) (((strchr("aAiIuUxeEoO",c) != 0) && c) ? TRUE : FALSE)
+
+/* wWX removed from the definition of ISAC above (.R .l .L) */
+
+void process(void)
+{ int cap_flag, underscore;
+unsigned char *i, c, d;
+#define CF ac_flag=underscore=cap_flag=roman_flag=FALSE
+#define CC CF; continue
+#define CR ac_flag=underscore=cap_flag=FALSE;
+#define CI i_ptr++; CC
+
+ CF;
+ while(1)
+ { if (eof_flag) return;
+ if (err_cnt >= err_max)
+ { bnmode = FALSE; return; }
+ c = *i_ptr; d = *(i_ptr+1);
+/* END OF LINE */
+ if ((c == '\0') || (c == '\n'))
+ { bnword(); strcat (outbuf,i_ptr); write_outbuf(); getline(); CC; }
+/* IMBEDDED ROMAN */
+ if (strchr("!'()*+,-/:;=?[]`",c) || ((c == '.') && (*(i_ptr+1) == '.')))
+ { if (c == '.') i_ptr++;
+ if (bnbuf[0]) { bnword(); }
+ while(1)
+ { chrcat(outbuf,c); c = *++i_ptr;
+ if (c == '.')
+ { if (*(i_ptr+1) != '.') break;
+ i_ptr++; continue;
+ }
+ if ((strchr("!'()*+,-/:;=?[]`",c) && c) == 0) break;
+ }
+ CR; continue;
+ }
+/* ILLEGAL CHARS */
+ if (strchr("_$fqwxzBCDEFGJKLNOPQSVWXYZ\177",c))
+ { error("Illegal bengali character: ",1); CI; }
+ if (c>127) { error("Invalid character >80H: ",1); CI; }
+/*?? Since we are now case sensitive (unlike skt), the list of */
+/*?? illegal chars has been increased (_ added, and & removed) */
+/* CONTROL CHARACTERS */
+ if (c < ' ')
+ { error("Illegal control character: ",0); CI; }
+/* IMBEDDED LATEX COMMAND STRINGS */
+ if (c == '\\')
+ { if (d == '-') /* imbedded discretionary hyphen */
+ { strcat(bnbuf,"!"); i_ptr++; CI; }
+ bnword();
+ if (isalpha(d) == 0)
+ { chrcat(outbuf,c); chrcat(outbuf,*++i_ptr); CI; }
+ else
+ { while (1)
+ { chrcat(outbuf,c); c = *++i_ptr; if (isalpha(c) == 0) break; }
+ }
+ CC;
+ }
+/* SPACE CHAR */
+ if (c == ' ')
+ { bnword(); while(*++i_ptr == ' '); chrcat(outbuf,c); CC;
+ }
+/*?? slight change here, since underscore is now an illegal character */
+/* COMMENT DELIMITER */
+ if (c == '%')
+ { if (*(i_ptr+1) == '\n') bncont();
+ else bnword();
+ strcat(outbuf,i_ptr); write_outbuf(); getline(); CC;
+ }
+
+/* HASANTA */
+ if (c == '&') {
+ c = '@';
+ }
+
+/* BRACES */
+ if (c == '{') { if (d == '}') { i_ptr++; CI; } /* for words like pra{}uga */
+ else { nest_cnt++; bncont(); chrcat(outbuf,c); CI; }
+ }
+ if (c == '}')
+ { bnword(); chrcat(outbuf,c);
+ if (--nest_cnt == 0)
+ { bnmode = FALSE;
+ i_ptr++; return;
+ }
+ else CI;
+ }
+/* UPPER CASE */
+ if (isupper(c))
+ { switch (c)
+ { case 'A':
+ case 'I':
+ case 'U':
+ case 'M':
+ case 'H': break;
+ case 'T': c = 'L'; break;
+ case 'R': c = 'w'; break;
+ default: c = '*'; break;
+ }
+ if (c=='*') { error("Invalid upper case: ",1); CI; }
+ }
+/*?? big change with that code: the upper case has a different *meaning* than */
+/*?? the lower case: fortunately, AIUMH are the same as the internal code :-) */
+/* DOT_CHAR */
+ if (c == '.') { switch(d)
+ { case 'y': c = 'Y'; break;
+ case 'd': c = 'q'; break;
+ case 'h': c = 'H'; break;
+ /* case 'l': c = 'w'; break; */
+ case 'm': c = 'M'; break;
+ case 'n': c = 'N'; break;
+ case 'o': c = '%'; break;
+ case 'r': c = 'x'; break;
+ case 's': c = 'S'; break;
+ case 't': c = 'f'; break;
+ }
+ if (c=='.') { error("Invalid dot_character: ",2); CI; }
+ i_ptr++; d = *(i_ptr+1);
+ }
+
+/* NEXT CHAR IS H */
+ if (d=='h')
+ { if (strchr("bcdfgjkptqw",c)) { c=toupper(c); i_ptr++; d=*(i_ptr+1); }
+ }
+
+/* The upper/lowercase stuff removed: a following 'h' converts a consonant */
+/* to its upper case internal code, e.g th --> T. Note that 'w' is added */
+/* to the list for R Rh */
+
+/* QUOTE CHAR */
+ if (c == '\"') { switch(d)
+ { case 'n': c = 'z'; break;
+ case 's': c = 'Z'; break;
+ }
+ if (c=='\"') { error("Invalid quote_character",2); CI; }
+ i_ptr++; d = *(i_ptr+1);
+ }
+
+/* TILDE CHAR */
+ if (c == '~') { switch (d)
+ { case 'n': c = 'V'; break;
+ case 'm': c = '~'; break;
+ case 'r': c = 'R'; break;
+ default : c = '*'; break;
+ }
+ if (c=='*')
+ { error("Invalid use of tilde character: ",2); CI; }
+ i_ptr++; d = *(i_ptr+1);
+ }
+/* TWO CHAR VOWELS */
+ if ( strchr("aiu",c) && strchr("aiu",d) )
+ { switch(c)
+ { case 'a': switch(d)
+ { case 'a': c = 'A'; break;
+ case 'i': c = 'E'; break;
+ case 'u': c = 'O'; break;
+ } break;
+ case 'i': if (d=='i') c = 'I'; break;
+ case 'u': if (d=='u') c = 'U'; break;
+ }
+ if (isupper(c)) { i_ptr++; d = *(i_ptr+1); }
+ }
+/*?? all the upper/lowercase stuff removed */
+/* NOW CHAR SHOULD BE INTERNAL REPRESENTATION OF SANSKRIT CHAR */
+ if ( ((c=='~' || c=='M') && !(ac_flag)) ) {
+ i_ptr -=2; error("No vowel before nasal: ",3); i_ptr +=2; CF;
+ }
+
+ if (c=='H' && !(ac_flag)) {
+ i_ptr -=2; error("No vowel before visarga: ",3); i_ptr +=2; CF;
+ }
+
+ chrcat(bnbuf,c);
+ CR;
+ if (ISAC(c)) ac_flag = TRUE;
+ i_ptr++;
+ }
+}
+
+#undef CI
+#undef CC
+#undef CR
+#undef CF
+
+
+/***************************************************************************/
+/* Function: chrcat() */
+/* */
+/* Append character c to end of buffer s */
+/***************************************************************************/
+
+void chrcat(char *s, char c)
+{ char temp[] = " "; temp[0] = c; strcat(s,temp);
+}
+
+
+/***************************************************************************/
+/* Function: bncont() */
+/* */
+/* Similar to bnword() but used where input text line ends in '%' to */
+/* continue on next line. */
+/***************************************************************************/
+
+void bncont(void)
+{
+ cont_end = TRUE; bnword();
+ cont_end = FALSE; cont_begin = TRUE;
+}
+
+
+/***************************************************************************/
+/* Function: bnword() */
+/* */
+/* Convert contents of bnbuf to output string in outbuf */
+/***************************************************************************/
+
+/* internal code for consonants */
+static char hal_chars[] = "BCDFGJKLNPQRSTVWYZbcdfghjklmnpqrstvwyz";
+
+#define ISHAL(c) (((strchr(hal_chars,c) != 0) && c) ? TRUE : FALSE)
+
+#define CLRFLAGS ac_hook=post_ra=pre_ra=hasanta=hal_flag=post_ya=0
+
+#define CAT(w,x,z) \
+strcat(w,x); strcat(w,z)
+
+void bnword(void)
+{ char c;
+ if (roman_flag && bnbuf[0]) { strcat(outbuf,"\\,"); roman_flag = FALSE; }
+
+/* A word is built up one syllable at a time: a syllable typically comprises */
+/* a consonant (or samyoga) followed by a vowel (with its nasalisation). */
+/* If there is no consonant, then a front-vowel is output; if there */
+/* is no vowel, then a viraama is appended to the consonant/samyoga. */
+/* One effect of this is that, if a consonant cluster is not fully resolved */
+/* into a single samyoga, it will be treated as two syllable: in particular, */
+/* the hook of the short-i will span one samyoga only. */
+/* */
+/* The `work' buffer is used as a scratchpad while building a syllable; on */
+/* completion it is stored in the `tmp' buffer before shipping to the output */
+/* buffer. This temporary storage while working on the next syllable, allows */
+/* changes to the back spacing of the previous syllable for more effiecient */
+/* output. */
+/* */
+/* `ra' is difficult: the first `r' of a consonant cluster is simply flagged */
+/* in `pre_ra', and similarly the final `r' in `post_ra', and then these are */
+/* dealt with when appending a vowel. */
+
+ CLRFLAGS;
+ s_ptr = bnbuf; c = *s_ptr;
+ if (c == '\0') return;
+ *tmp = '\0'; *work = '\0';
+ while (1)
+ { CLRFLAGS; /* in particular, need to clear hal_flag for the likes of kara */
+ c= *s_ptr++;
+ if (c == '\0')
+ { if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}");
+ strcat(outbuf,tmp);
+ }
+ break;
+ }
+ if (ISAC(c))
+ { ac_char = c;
+ frontac();
+ if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}");
+ strcat(outbuf,tmp);
+ }
+ strcpy(tmp,work);
+ *work = '\0'; cont_begin = 0;
+ continue;
+ }
+ if (strchr("0123456789\"!%|\\@~HM",c))
+ { single(c);
+ if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}");
+ strcat(outbuf,tmp);
+ }
+ strcpy(tmp,work);
+ *work = '\0'; cont_begin = 0;
+ continue;
+ }
+ if (c == 'r') { pre_ra = TRUE; c = *s_ptr; }
+ else s_ptr--;
+ old_sptr = s_ptr; /* save pointer to start of samyoga */
+ if (ISHAL(c)) { hal_flag = TRUE; samyoga(); c = *s_ptr; }
+ ac_char = hasanta = 0;
+ if (!hr_flag) { if (ISAC(c)) { ac_char = *s_ptr++; }
+ else hasanta = TRUE; /* hr_flag = h.r parsed by samyoga */
+ }
+ backac(); hr_flag = FALSE;
+ if (*tmp) { if (outbuf[0]=='\0' && tmp[0]=='[') strcat(outbuf,"{}");
+ strcat(outbuf,tmp);
+ }
+ strcpy(tmp,work);
+ *work = '\0'; cont_begin = FALSE;
+
+ }
+ strcat(outbuf,work);
+ s_ptr = bnbuf; *s_ptr = '\0';
+ cont_begin = 0;
+}
+
+
+/***************************************************************************/
+/* Function: single() */
+/* */
+/* Output single (stand-alone) character to work buffer */
+/***************************************************************************/
+
+void single(char c)
+{
+ switch(c)
+ { case '0': strcat(work,"0"); break; /* numerals */
+ case '1': strcat(work,"1"); break;
+ case '2': strcat(work,"2"); break;
+ case '3': strcat(work,"3"); break;
+ case '4': strcat(work,"4"); break;
+ case '5': strcat(work,"5"); break;
+ case '6': strcat(work,"6"); break;
+ case '7': strcat(work,"7"); break;
+ case '8': strcat(work,"8"); break;
+ case '9': strcat(work,"9"); break;
+ case '!': strcat(tmp,"\\-"); break; /* discretionary hyphen */
+/* case '%': strcat(work,"?"); break; */
+ case '|': strcat(work,"."); break; /* dnari */
+/* case '\\': strcat(work,"H1"); break; */
+ case '@': strcat(work,"\\30Cz"); break; /* hasanta */
+ case '~': strcat(work,"w"); break; /* candrabindu */
+ case 'H': strcat(work,"H"); break; /* visarga */
+ case 'M': strcat(work,"M"); break; /* anusvara */
+ }
+}
+
+
+/***************************************************************************/
+/* Function: frontac() */
+/* */
+/* Process a front-vowel to workbuf */
+/***************************************************************************/
+
+void frontac(void)
+{
+ CLRFLAGS;
+ switch(ac_char)
+ { case 'a': strcat(work,"a"); break;
+ case 'A': strcat(work,"aA"); break;
+ case 'i': strcat(work,"\\302z"); break;
+ case 'I': strcat(work,"\\303z"); break;
+ case 'u': strcat(work,"\\304z"); break;
+ case 'U': strcat(work,"\\305z"); break;
+ case 'x': strcat(work,"\\306z"); break;
+ /* case 'w': strcat(work,"--"); break; */
+ case 'e': strcat(work,"\\308z"); break;
+ case 'E': strcat(work,"\\309z"); break;
+ case 'o': strcat(work,"\\30Az"); break;
+ case 'O': strcat(work,"\\30Bz"); break;
+ default : error("Lost in frontac()",-1);
+ }
+}
+
+
+/***************************************************************************/
+/* Function: sam_warning() */
+/* */
+/* Print a warning message that a hasanta will be used within a */
+/* samyoga. Also print input file line number, together with an */
+/* indication of the samyoga and where the viraama will be placed. */
+/***************************************************************************/
+
+void sam_warning(void)
+{
+ char *p, msg[80]="";
+ p = old_sptr;
+ if (pre_ra)
+ { strcat(msg,"r");
+ if (p==s_ptr) strcat(msg,"-");
+ }
+ while (ISHAL(*p))
+ { switch (*p)
+ { case 'B': strcat(msg,"bh"); break;
+ case 'C': strcat(msg,"ch"); break;
+ case 'D': strcat(msg,"dh"); break;
+ case 'G': strcat(msg,"gh"); break;
+ case 'H': strcat(msg,".h"); break;
+ case 'J': strcat(msg,"jh"); break;
+ case 'K': strcat(msg,"kh"); break;
+ case 'P': strcat(msg,"ph"); break;
+ case 'T': strcat(msg,"th"); break;
+ case 'f': strcat(msg,".t"); break;
+ case 'F': strcat(msg,".th"); break;
+ case 'N': strcat(msg,".n"); break;
+ case 'q': strcat(msg,".d"); break;
+ case 'Q': strcat(msg,".dh"); break;
+ case 'S': strcat(msg,".s"); break;
+ case 'V': strcat(msg,"~n"); break;
+ case 'Y': strcat(msg,".y"); break;
+ case 'z': strcat(msg,"\"n"); break;
+ case 'Z': strcat(msg,"\"s"); break;
+ default: chrcat(msg,*p); break;
+ }
+ if (++p == s_ptr) strcat(msg,"-");
+ }
+ if (ISAC(*p))
+ { switch (*p)
+ { /* case 'w': strcat(msg,".l"); break; */
+ case 'x': strcat(msg,".r"); break;
+ default: chrcat(msg,*p); break;
+ }
+ }
+ printf("Line %4d Warning: samyoga viraama: %s\n",line_cnt,msg);
+}
+
+
+/***************************************************************************/
+/* Function: backac() */
+/* */
+/* Handle vowel diacritics */
+/***************************************************************************/
+
+void backac(void)
+{ int j,k; char c, *p;
+
+ if (pre_ra && (*work=='\0')) /* case r.r, r.R, r.l, r.L, ru, rU, ra */
+ { c = toupper(ac_char);
+ /* if ((c =='X') || (c == 'W')) {frontac(); return; } */
+ if (c == 'U')
+ { if (ac_char == 'u')
+ { strcat(work,"\\319z"); ac_char = 'a'; }
+ else { strcat(work,"\\31Az"); ac_char = 'a'; }
+ }
+
+ else { strcat(work,"r"); } /* ra */
+ pre_ra = FALSE; hal_flag = TRUE;
+ }
+
+ if (post_ra) { strcat(work,"\\30Fz"); } /* ra-phala */
+ if (post_ya) { strcat(work,"\\30Dz"); } /* ya-phala */
+ post_ya = post_ra = 0;
+
+c = ac_char;
+
+if (pre_ra) { strcat(work,"\\30Ez"); } /* add repha */
+/* if (hasanta) { strcat(work,"\\30Cz"); } /* add hasanta */
+
+if (ac_char == 'A') { strcat(work,"A");} /* add aa-dia */
+if (ac_char == 'i') { CAT(tmp,"i",""); } /* add i-dia */
+if (ac_char == 'I') { strcat(work,"I"); } /* add ii-dia */
+if (ac_char == 'u') { strcat(work,"u");} /* add u-dia */
+if (ac_char == 'U') { strcat(work,"U");} /* add uu-dia */
+if (ac_char == 'x') { strcat(work,"W");} /* add .r dia */
+if (ac_char == 'e') { CAT(tmp,"e",""); } /* add e-dia */
+if (ac_char == 'E') { CAT(tmp,"E",""); } /* add ai-dia */
+if (ac_char == 'o') { CAT(tmp,"e",""); strcat(work,"A");} /* add o-dia */
+if (ac_char == 'O') { CAT(tmp,"e",""); strcat(work,"O");} /* add au-dia */
+
+}
+
+/***************************************************************************/
+/* Function: samyoga() */
+/* */
+/* Work along bnbuf sequentially to build up a samyoga print */
+/* string in the work buffer and update the samyoga parameters. */
+/* */
+/* The method is quite unsophisticated, but its simplicity lends */
+/* clarity for later additions or changes, and for this reason */
+/* is done in Devanagari alphabetical order, but with longer */
+/* strings before shorter. */
+/* */
+/* Cr and Cy conjuncts are not defined in the individual cases for each */
+/* consonant. Rather these are handled in bulk by the program at the end */
+/* of the function. */
+/* */
+/* Macros are used to simplify reading the program --- believe it or not! */
+/* */
+/* Switch/case is used on the first letter, then the main LS macro tests: */
+/* (1) if the test string matches the input exactly, then */
+/* (2) bump input pointer to the character after string match */
+/* (3) use NC etc macro to break out of switch instruction */
+/***************************************************************************/
+
+
+#define LS(a,c,z) n=strlen(a); \
+ if(strncmp(p,a,n)==0) { strcat(work,z); p+=n; c;}
+
+#define NX sam_flag = 'X'; break;
+#define NR sam_flag = 'R'; break;
+#define NC sam_flag = 'C'; break;
+
+#define IX p++; sam_flag = 'X'; break;
+#define IR p++; sam_flag = 'R'; break;
+#define IC p++; sam_flag = 'C'; break;
+
+/******************************************************************************/
+
+void samyoga(void)
+{
+char *p, sam_flag; int n;
+ sam_flag = 0;
+ p = s_ptr;
+ while (1)
+ { if (!ISHAL(*p)) { NX; }
+ switch (*p++)
+ {
+
+ /* k */
+ case 'k': if(*p=='u')
+ {p+=1; strcat(work,"k{\\kern-.25em}u{\\kern.25em}");NX;}
+ if(*p=='U')
+ {p+=1; strcat(work,"k{\\kern-.25em}U{\\kern.25em}");NX;}
+ if(*p=='x')
+ {p+=1; strcat(work,"k{\\kern-.25em}W{\\kern.25em}");NX;}
+ if(*p=='S' && *(p+1)=='N')
+ {p+=2; strcat(work,"\\388z");NR;}
+ if(*p=='S' && *(p+1)=='m')
+ {p+=2; strcat(work,"\\389z");NR;}
+ LS("k", NR, "\\380z" );
+ LS("f", NR, "\\381z" );
+ LS("t", NR, "\\382z" );
+ LS("b", NR, "\\383z" );
+ LS("m", NR, "\\384z" );
+ LS("r", NR, "\\385z" );
+ LS("l", NR, "\\386z" );
+ LS("v", NR, "\\383z" );
+ LS("s", NR, "\\38Az" );
+ LS("S", NR, "\\387z" );
+ strcat(work,"k"); NR;
+
+ /* kh */
+ case 'K': strcat(work,"K"); NR;
+
+ /* g */
+ case 'g': LS("D", NR, "\\38Bz" );
+ LS("n", NR, "\\38Cz" );
+ LS("b", NR, "\\38Dz" );
+ LS("m", NR, "\\38Ez" );
+ LS("l", NR, "\\38Fz" );
+ LS("v", NR, "\\38Dz" );
+ strcat(work,"g"); NR;
+
+ /* gh */
+ case 'G': LS("n", NR, "\\390z");
+ strcat(work,"G"); NR;
+
+ /* "n */
+ case 'z': if(*p=='k' && *(p+1)=='S')
+ {p+=2; strcat(work,"\\392z");NR;}
+ LS("k", NR, "\\391z");
+ LS("K", NR, "\\393z");
+ LS("g", NR, "\\394z");
+ LS("G", NR, "\\395z");
+ LS("m", NR, "\\396z");
+ strcat(work,"q"); NR;
+
+ /* c */
+ case 'c': if(*p=='C' && (*(p+1)=='b' || *(p+1)=='v'))
+ {p+=2; strcat(work,"\\399z");NR;}
+ LS("c", NR, "\\397z");
+ LS("C", NR, "\\398z");
+ LS("V", NR, "\\39Az");
+ strcat(work,"c"); NR;
+
+ /* ch */
+ case 'C': strcat(work,"C"); NR;
+
+ /* j */
+ case 'j': if(*p=='j' && (*(p+1)=='b' || *(p+1)=='v'))
+ {p+=2; strcat(work,"\\39Cz");NR;}
+ LS("j", NR, "\\39Bz" );
+ LS("J", NR, "\\39Dz" );
+ LS("V", NR, "\\39Ez" );
+ LS("b", NR, "\\39Fz" );
+ LS("v", NR, "\\39Fz" );
+ strcat(work,"j"); NR;
+
+ /* jh */
+ case 'J': if(*p=='u')
+ {p+=1; strcat(work,"J{\\kern-.24em}u{\\kern.24em}");NX;}
+ if(*p=='U')
+ {p+=1; strcat(work,"J{\\kern-.24em}U{\\kern.24em}");NX;}
+ if(*p=='x')
+ {p+=1; strcat(work,"J{\\kern-.24em}W{\\kern.24em}");NX;}
+ strcat(work,"J"); NR;
+
+ /* ~n */
+ case 'V': if(*p=='u')
+ {p+=1; strcat(work,"Q{\\kern-.39em}u{\\kern.39em}");NX;}
+ if(*p=='U')
+ {p+=1; strcat(work,"Q{\\kern-.39em}U{\\kern.39em}");NX;}
+ if(*p=='x')
+ {p+=1; strcat(work,"Q{\\kern-.39em}W{\\kern.39em}");NX;}
+ LS("c", NR, "\\3A0z" );
+ LS("C", NR, "\\3A1z" );
+ LS("j", NR, "\\3A2z" );
+ LS("J", NR, "\\3A3z" );
+ strcat(work,"Q"); NR;
+
+ /* .t */
+ case 'f': LS("f", NR, "\\3A4z" );
+ LS("b", NR, "\\3A5z" );
+ LS("v", NR, "\\3A5z" );
+ strcat(work,"T"); NR;
+
+ /* .th */
+ case 'F': strcat(work,"Z"); NR;
+
+ /* .da */
+ case 'q': LS("q", NR, "\\3A6z" );
+ strcat(work,"D"); NR;
+
+ /* .dh */
+ case 'Q': strcat(work,"X"); NR;
+
+ /* .n */
+ case 'N': LS("f", NR, "\\3A7z" );
+ LS("F", NR, "\\3A8z" );
+ LS("q", NR, "\\3A9z" );
+ LS("N", NR, "\\3AAz" );
+ LS("t", NR, "\\3ACz" );
+ LS("m", NR, "\\3ABz" );
+ strcat(work,"N"); NR;
+
+ /* t */
+ case 't': if(*p=='t' && (*(p+1)=='b' || *(p+1)=='v'))
+ {p+=2; strcat(work,"\\3ADz"); NR;}
+ if(*p=='r' && *(p+1)=='u')
+ {p+=2; strcat(work,"\\3B3z"); NX;}
+ LS("t", NR, "\\3ACz" );
+ LS("T", NR, "\\3AEz" );
+ LS("n", NR, "\\3AFz" );
+ LS("b", NR, "\\3B0z" );
+ LS("m", NR, "\\3B1z" );
+ LS("r", NR, "\\3B2z" );
+ LS("v", NR, "\\3B0z" );
+ strcat(work,"t"); NR;
+
+ /* th */
+ case 'T': LS("b", NR, "\\4Lz");
+ LS("v", NR, "\\4Lz");
+ strcat(work,"z"); NR;
+
+ /* d */
+ case 'd': if(*p=='B' && *(p+1)=='r')
+ {p+=2; strcat(work,"\\3BAz");NR;}
+ LS("g", NR, "\\3B4z");
+ LS("G", NR, "\\3B5z");
+ LS("d", NR, "\\3B6z");
+ LS("D", NR, "\\3B7z");
+ LS("b", NR, "\\3B8z");
+ LS("B", NR, "\\3B9z");
+ LS("m", NR, "\\3BBz");
+ LS("v", NR, "\\3B8z" );
+ strcat(work,"d"); NR;
+
+ /* dh */
+ case 'D': LS("n", NR, "\\3BCz" );
+ LS("b", NR, "\\3BDz" );
+ LS("v", NR, "\\3BDz" );
+ strcat(work,"x"); NR;
+
+ /* n */
+ case 'n': if(*p=='t' && *(p+1)=='u')
+ {p+=2; strcat(work,"\\3C1z");NR;}
+ if(*p=='t' && (*(p+1)=='b' || *(p+1)=='v'))
+ {p+=2; strcat(work,"\\3C2z");NR;}
+ if(*p=='t' && *(p+1)=='r')
+ {p+=2; strcat(work,"\\3C3z");NR;}
+ if(*p=='d' && (*(p+1)=='b' || *(p+1)=='v'))
+ {p+=2; strcat(work,"\\4Pz");NR;}
+ LS("f", NR, "\\3BEz" );
+ LS("q", NR, "\\3BFz" );
+ LS("t", NR, "\\3C0z" );
+ LS("T", NR, "\\3C4z" );
+ LS("d", NR, "\\3C5z" );
+ LS("D", NR, "\\3C6z" );
+ LS("n", NR, "\\3C7z" );
+ LS("b", NR, "\\3C8z" );
+ LS("m", NR, "\\3C9z" );
+ LS("s", NR, "\\3CAz" );
+ LS("v", NR, "\\3C8z" );
+ strcat(work,"n"); NR;
+
+ /* p */
+ case 'p': LS("f", NR, "\\3CBz" );
+ LS("t", NR, "\\3CCz" );
+ LS("n", NR, "\\3CDz" );
+ LS("p", NR, "\\3CEz" );
+ LS("l", NR, "\\3CFz" );
+ LS("s", NR, "\\3D0z" );
+ strcat(work,"p"); NR;
+
+ /* ph */
+ case 'P': if(*p=='u')
+ {p+=1; strcat(work,"f{\\kern-.21em}u{\\kern.21em}");NX;}
+ if(*p=='U')
+ {p+=1; strcat(work,"f{\\kern-.21em}U{\\kern.21em}");NX;}
+ if(*p=='x')
+ {p+=1; strcat(work,"f{\\kern-.21em}W{\\kern.21em}");NX;}
+ LS("l", NR, "\\3D1z" );
+ strcat(work,"f"); NR;
+
+ /* b */
+ case 'b': LS("j", NR, "\\3D2z" );
+ LS("d", NR, "\\3D3z" );
+ LS("D", NR, "\\3D4z" );
+ LS("b", NR, "\\3D5z" );
+ LS("l", NR, "\\3D6z" );
+ strcat(work,"b"); NR;
+
+ /* bh */
+ case 'B': LS("r", NR, "\\3D7z" );
+ LS("l", NR, "\\3D8z" );
+ strcat(work,"v"); NR;
+
+ /* m */
+ case 'm': if(*p=='B' && *(p+1)=='r')
+ {p+=2; strcat(work,"\\3DEz");NR;}
+ LS("n", NR, "\\3D9z" );
+ LS("p", NR, "\\3DAz" );
+ LS("P", NR, "\\3DBz" );
+ LS("b", NR, "\\3DCz" );
+ LS("B", NR, "\\3DDz" );
+ LS("m", NR, "\\3DFz" );
+ LS("l", NR, "\\3E0z" );
+ LS("v", NR, "\\3DCz" );
+ strcat(work,"m"); NR;
+
+ /* y */
+ case 'y': strcat(work,"Y"); NR;
+
+ /* .y */
+ case 'Y': strcat(work,"y"); NR;
+
+ /* r */
+ case 'r': strcat(work,"r"); NR;
+
+ /* l */
+ case 'l': if(*p=='g' && *(p+1)=='u')
+ {p+=2; strcat(work,"\\3E3z");NX;}
+ LS("k", NR, "\\3E1z" );
+ LS("g", NR, "\\3E2z" );
+ LS("f", NR, "\\3E4z" );
+ LS("q", NR, "\\3E5z" );
+ LS("p", NR, "\\3E6z" );
+ LS("b", NR, "\\3E7z" );
+ LS("m", NR, "\\3E8z" );
+ LS("l", NR, "\\3E9z" );
+ strcat(work,"l"); NR;
+
+ /* "s */
+ case 'Z': LS("c", NR, "\\3EAz" );
+ LS("C", NR, "\\3EBz" );
+ LS("n", NR, "\\3ECz" );
+ LS("m", NR, "\\3EDz");
+ LS("b", NR, "\\3EFz" );
+ LS("l", NR, "\\3EEz" );
+ LS("v", NR, "\\3EFz" );
+ strcat(work,"S"); NR;
+
+ /* .s */
+ case 'S': if(*p=='k' && *(p+1)=='r')
+ {p+=2; strcat(work,"\\3F1z");NR;}
+ LS("k", NR, "\\3F0z" );
+ LS("f", NR, "\\3F2z" );
+ LS("F", NR, "\\3F3z" );
+ LS("N", NR, "\\3F4z" );
+ LS("p", NR, "\\3F5z" );
+ LS("P", NR, "\\3F6z" );
+ LS("m", NR, "\\3F7z" );
+ strcat(work,"F"); NR;
+
+ /* s */
+ case 's': if(*p=='k' && *(p+1)=='r')
+ {p+=2; strcat(work,"\\3F9z");NR;}
+ if(*p=='k' && *(p+1)=='l')
+ {p+=2; strcat(work,"\\3FAz");NR;}
+ if(*p=='t' && *(p+1)=='u')
+ {p+=2; strcat(work,"\\3FEz");NX;}
+ if(*p=='t' && *(p+1)=='r')
+ {p+=2; strcat(work,"\\3FFz");NR;}
+ if(*p=='p' && *(p+1)=='l')
+ {p+=2; strcat(work,"\\313z");NR;}
+ LS("k", NR, "\\3F8z" );
+ LS("K", NR, "\\3FBz" );
+ LS("f", NR, "\\3FCz" );
+ LS("t", NR, "\\3FDz" );
+ LS("T", NR, "\\310z" );
+ LS("n", NR, "\\311z" );
+ LS("p", NR, "\\312z" );
+ LS("P", NR, "\\314z" );
+ LS("b", NR, "\\315z" );
+ LS("m", NR, "\\316z" );
+ LS("l", NR, "\\317z" );
+ LS("v", NR, "\\315z" );
+ strcat(work,"s"); NR;
+
+ /* h */
+ case 'h': if(*p=='x') { strcat(work,"\\31Cz");hr_flag = TRUE; IX; }
+ LS("N", NR, "\\318z");
+ LS("n", NR, "\\31Fz");
+ LS("b", NR, "\\33Ez");
+ LS("m", NR, "\\320z");
+ LS("l", NR, "\\37Dz");
+ LS("v", NR, "\\33Ez");
+ strcat(work,"h"); NR;
+
+ case 'w': LS("g", NR, "\\37Fz");
+ strcat(work,"R"); NR;
+
+ case 'W': strcat(work,"V"); NR;
+
+ case 'L': strcat(work,"B"); NR;
+
+ /* Assamese r */
+ case 'R': strcat(work,"\\4rz"); NR;
+
+ /* Assamese v */
+ case 'v': strcat(work,"\\4vz"); NR;
+
+ default: error("Lost in samyoga()",-1); NX;
+ }
+
+ if (sam_flag == 'X') { s_ptr = p; break; }
+ if (sam_flag == 'R') { /* if ((*p=='r') && ra) { post_ra = TRUE; p++; } */
+ if ((*p=='r')) { post_ra = TRUE; p++; }
+ /* if ((*p=='y') && ya) { post_ya = TRUE; p++; } */
+ if ((*p=='y')) { post_ya = TRUE; p++; }
+ s_ptr = p; break;
+ }
+ if (!ISHAL(*p)) { s_ptr = p; break; }
+ }
+}
+
+/***************************************************************************/
+/* samapta */
+/***************************************************************************/
diff --git a/language/bengali/pandey/beng.sty b/language/bengali/pandey/beng.sty
new file mode 100644
index 0000000000..b8ed4a437c
--- /dev/null
+++ b/language/bengali/pandey/beng.sty
@@ -0,0 +1,51 @@
+% LaTeX2e package for using "Bengali for TeX".
+% ============================================
+%
+% Sample input .bn file:
+%
+% \documentclass{article}
+% \usepackage{beng}
+% \begin{document}
+% {\bn baa"ngalaa bhaa.saa}
+% \end{document}
+%
+
+%\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesFile{beng.sty}[2002/03/27 v2.0 Bengali for TeX]
+
+% Error message for someone running LaTeX 2.09:
+
+\@ifundefined{selectfont}
+{\@latexerr{This style option may only be used with LaTeX2e.}\@eha
+ \endinput}{}
+%
+
+\DeclareFontSubstitution{U}{bn}{m}{n}
+
+% Define \bn macro:
+
+\DeclareRobustCommand\bn{%
+ \usefont{U}{bn}{m}{n}%
+ \tolerance=10000\pretolerance=10000
+ \emergencystretch=.2\hsize
+ \baselineskip1.30\baselineskip }
+
+% Define counter for Bengali numerals. This allows for the
+% printing of page numbers in Bengali: \pagenumbering{beng}
+
+%\def\@beng#1{{\bn\number #1}}
+
+% Define macros to access characters in font:
+
+\def\3#1z{{\char"#1}}
+\def\4#1z{{\usefont{U}{bnx}{m}{n}#1}}
+
+%\newcommand*\bnnum{\let\nstyle=d}
+%\newcommand*\cmnum{\let\nstyle=r}
+%\cmnum
+%\DeclareRobustCommand*\rn[1]{\if\nstyle r{\rm #1}\else#1\fi}
+
+%\def\@bengali#1{{\bn\number #1}} % allows counters in bengali
+%\def\bengali#1{\expandafter\@bengali\csname c@#1\endcsname}
+
+\endinput
diff --git a/language/bengali/pandey/doc/bengdoc.bn b/language/bengali/pandey/doc/bengdoc.bn
new file mode 100644
index 0000000000..aa9fdc8c7e
--- /dev/null
+++ b/language/bengali/pandey/doc/bengdoc.bn
@@ -0,0 +1,731 @@
+\documentclass[11pt]{article}
+\usepackage{beng,multicol}
+
+\def\portraitpage{%
+ \setlength{\topmargin}{-0.50in} % real margin == this + 1in
+ \setlength{\oddsidemargin}{-0.0in} % real margin == this + 1in
+ \setlength{\evensidemargin}{-0.0in} % real margin == this + 1in
+ \setlength{\columnsep}{20pt}
+ \setlength{\columnseprule}{0.4pt}
+
+ % Use Portrait Size Page
+ \setlength{\textwidth}{6.5in}
+ \setlength{\textheight}{9.0in}%
+}
+\portraitpage
+\parindent=0pt
+
+\begin{document}
+
+\begin{center}
+{\LARGE \bfseries Bengali for \TeX{}}
+\medskip
+
+{\Large Version 2.0}
+\medskip
+
+Anshuman Pandey
+\medskip
+
+27 March 2002
+\end{center}
+
+\section{Introduction}
+The \textit{Bengali for \TeX{}} ({\sf bengali}) package provides
+the capability to typeset Bengali in \TeX{}. This latest version,
+2.0, is a major revision to the package. Assamese is supported in
+this version.
+
+\section{Transliterated Input}
+The package uses a version of the Velthuis transliteration
+scheme which has been extended to accommodate certain Bengali
+characters not found in Devanagari (the script for which
+the Velthuis scheme was originally developed). Table \ref{chars}
+provides the characters and the respective transliteration
+codes.
+\medskip
+
+The Bengali text is delimited by the \verb+\+\verb+bn+
+macro, eg. \verb+{\+\verb+bn baa.mlaa}+ produces
+{\bn baa.mlaa}.
+
+\section{Preprocessor}
+Once a document is prepared using the transliterated input,
+it must be run rough the preprocessor. The preprocessor
+must first be compiled with a C compiler. For the
+preprocessor to recognize the document, it must have
+the extension {\tt .bn}. Typing {{\tt beng} \textit{infile}}
+will cause the preprocessor {\tt beng} to read the
+given file and output a \TeX{} by the same name.
+\LaTeX{} is to be then run on the output.
+\medskip
+
+{\bf Note:} The preprocessor does not implicitly produce a
+\textit{hasanta} if the inherent \textit{a} is missing in the
+word final position. Explicit \textit{hasanta} is produced
+by {\tt \&}.
+\medskip
+
+Page numbers may be printed in Bengali by placing
+\verb+\pagenumbering{beng}+ in the preamble
+of your document.
+
+\section{Examples}
+The file {\tt example.bn} contains the short story
+``Aj\=ante'' by Bonaphul. The following example is
+a poem by Rabindranath Tagore:
+\medskip
+
+\begin{multicols}{2}
+{\renewcommand{\baselinestretch}{1}
+{\large {\bn ke la{}ibe mor kaar.ya, kahe sandhyaa rabi \\
+"suniyaa jagaT rahe niruttar chabi | \\
+maa.tir pradiip chila, se kahila, svaami \\
+aamaar .ye.tuku saadhya kariba taa aami |\par}}}
+\columnbreak
+
+{\small
+\verb+ke la{}ibe mor kaar.ya, kahe sandhyaa rabi+ \\
+\verb+"suniyaa jagaT rahe niruttar chabi |+ \\
+\verb+maa.tir pradiip chila, se kahila, svaami+ \\
+\verb+aamaar .ye.tuku saadhya kariba taa aami |+ \\}
+\end{multicols}
+\vfill
+
+\hrule
+\smallskip
+
+Anshuman Pandey \\
+\textit{apandey@u.washington.edu}
+
+\begin{table*}[p]
+\begin{center}
+\renewcommand{\doublerulesep}{.5cm}
+\renewcommand{\arraystretch}{1.40}
+
+\begin{tabular}{|lc|lc|lc|lc|}
+\hline
+\multicolumn{8}{|c|}{\textit{Vowels}} \\
+\hline
+ \texttt{a} & {\bn a}
+& \texttt{aa} & {\bn aa}
+& \texttt{i} & {\bn i}
+& \texttt{ii} & {\bn ii} \\
+
+ \texttt{u} & {\bn u}
+& \texttt{uu} & {\bn uu}
+& \texttt{.r} & {\bn .r}
+& \texttt{e} & {\bn e} \\
+
+ \texttt{ai} & {\bn ai}
+& \texttt{o} & {\bn o}
+& \texttt{au} & {\bn au}
+& \texttt{a.m} & {\bn a.m} \\
+
+ \texttt{a\char`~m} & {\bn a~m}
+& \texttt{aH} & {\bn a.h}
+& &
+& & \\
+
+\hline
+\end{tabular}
+\vspace*{.5cm}
+
+\begin{tabular}{|ll|ll|ll|ll|ll|}
+\hline
+\multicolumn{10}{|c|}{\textit{Consonants}} \\
+\hline
+ \texttt{ka} & {\bn ka}
+& \texttt{kha} & {\bn kha}
+& \texttt{ga} & {\bn ga}
+& \texttt{gha} & {\bn gha}
+& \texttt{"na} & {\bn "na} \\
+
+ \texttt{ca} & {\bn ca}
+& \texttt{cha} & {\bn cha}
+& \texttt{ja} & {\bn ja}
+& \texttt{jha} & {\bn jha}
+& \texttt{\char`~na} & {\bn ~na} \\
+
+ \texttt{.ta} & {\bn .ta}
+& \texttt{.tha} & {\bn .tha}
+& \texttt{.da} & {\bn .da}
+& \texttt{.dha} & {\bn .dha}
+& \texttt{.na} & {\bn .na} \\
+
+ \texttt{ta} & {\bn ta}
+& \texttt{tha} & {\bn tha}
+& \texttt{da} & {\bn da}
+& \texttt{dha} & {\bn dha}
+& \texttt{na} & {\bn na} \\
+
+ \texttt{pa} & {\bn pa}
+& \texttt{pha} & {\bn pha}
+& \texttt{ba} & {\bn ba}
+& \texttt{bha} & {\bn bha}
+& \texttt{ma} & {\bn ma} \\
+\hline
+\end{tabular}
+\vspace*{.5cm}
+
+\begin{tabular}{|ll|ll|ll|ll|ll|}
+\hline
+\multicolumn{10}{|c|}{\textit{Semi-vowels}} \\
+\hline
+ \texttt{ya} & {\bn ya}
+& \texttt{.ya} & {\bn .ya}
+& \texttt{ra} & {\bn ra}
+& \texttt{la} & {\bn la}
+& \texttt{ba} & {\bn ba} \\
+\hline
+\end{tabular}
+\hspace*{.4cm}
+\begin{tabular}{|ll|ll|ll|}
+\hline
+\multicolumn{6}{|c|}{\textit{Sibilants}} \\
+\hline
+
+ \texttt{"sa} & {\bn "sa}
+& \texttt{.sa} & {\bn .sa}
+& \texttt{sa} & {\bn sa} \\
+\hline
+\end{tabular}
+\vspace*{.5cm}
+
+\begin{tabular}{|ll|}
+\hline
+\multicolumn{2}{|c|}{\textit{Aspirate}} \\
+\hline
+\texttt{ha} & {\bn ha} \\
+\hline
+\end{tabular}
+\hspace*{.4cm}
+\begin{tabular}{|ll|ll|}
+\hline
+\multicolumn{4}{|c|}{\textit{Flaps}} \\
+\hline
+ \texttt{Ra} & {\bn Ra}
+& \texttt{Rha} & {\bn Rha} \\
+\hline
+\end{tabular}
+\vspace*{.5cm}
+
+\begin{tabular}{|ll|ll|ll|ll|ll|}
+\hline
+\multicolumn{10}{|c|}{\textit{Numerals}} \\
+\hline
+ \texttt{0} & {\bn 0} & \texttt{1} & {\bn 1}
+& \texttt{2} & {\bn 2} & \texttt{3} & {\bn 3}
+& \texttt{4} & {\bn 4} \\
+ \texttt{5} & {\bn 5}
+& \texttt{6} & {\bn 6} & \texttt{7} & {\bn 7}
+& \texttt{8} & {\bn 8} & \texttt{9} & {\bn 9} \\
+\hline
+\end{tabular}
+\vspace*{.5cm}
+
+\begin{tabular}{|ll|ll|}
+\hline
+\multicolumn{4}{|c|}{\textit{Assamese Variants}} \\
+\hline
+ \texttt{\char`~ra} & {\bn ~ra}
+& \texttt{va} & {\bn va} \\
+\hline
+\end{tabular}
+
+\vspace*{.5cm}
+\begin{tabular}{|lll|lll|lll|lll|}
+\hline
+\multicolumn{12}{|c|}{\textit{Special Characters}} \\
+\hline
+ \texttt{.m} & {\bn a.m} & \textit{anusv\=ara}
+& \texttt{\char`~m} & {\bn a~m} & \textit{candrabindu}
+& \texttt{.h} & {\bn a.h} & \textit{visarga}
+& \texttt{T} & {\bn Ta} & \textit{kha\d{n}\d{d}a ta} \\
+
+ \texttt{|} & {\bn |} & \textit{d\=a\d{m}\d{r}{\=\i}}
+& \texttt{\&} & {\bn &} & \textit{hasanta}
+& & &
+& & & \\
+
+\hline
+\end{tabular}
+\caption{Transliteration Scheme for \textit{Bengali for \TeX{}}}
+\label{chars}
+\end{center}
+\end{table*}
+
+%%% Consonant-Vowel Combinations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\renewcommand{\arraystretch}{1.25}
+\begin{table}[p]
+\vspace*{-0.5in}
+\hspace*{0.0in}\vbox{
+\begin{center}
+\begin{tabular}{|c||c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
+\hline
+ / &
+ {\tt a} &
+ {\tt aa} &
+ {\tt i} &
+ {\tt ii} &
+ {\tt u} &
+ {\tt uu} &
+ {\tt .r} &
+ {\tt e} &
+ {\tt ai} &
+ {\tt o} &
+ {\tt au} \\ \hline \hline
+
+ {\tt k} &
+{\bn ka} &
+{\bn kaa} &
+{\bn ki} &
+{\bn kii} &
+{\bn ku} &
+{\bn kuu} &
+{\bn k.r} &
+{\bn ke} &
+{\bn kai} &
+{\bn ko} &
+{\bn kau}
+\\ \hline
+ {\tt kh} &
+{\bn kha} &
+{\bn khaa} &
+{\bn khi} &
+{\bn khii} &
+{\bn khu} &
+{\bn khuu} &
+{\bn kh.r} &
+{\bn khe} &
+{\bn khai} &
+{\bn kho} &
+{\bn khau} \\ \hline
+ {\tt g} &
+{\bn ga} &
+{\bn gaa} &
+{\bn gi} &
+{\bn gii} &
+{\bn gu} &
+{\bn guu} &
+{\bn g.r} &
+{\bn ge} &
+{\bn gai} &
+{\bn go} &
+{\bn gau} \\ \hline
+ {\tt gh} &
+{\bn gha} &
+{\bn ghaa} &
+{\bn ghi} &
+{\bn ghii} &
+{\bn ghu} &
+{\bn ghuu} &
+{\bn gh.r} &
+{\bn ghe} &
+{\bn ghai} &
+{\bn gho} &
+{\bn ghau} \\ \hline
+ {\tt "n} &
+{\bn "na} &
+{\bn "naa} &
+{\bn "ni} &
+{\bn "nii} &
+{\bn "nu} &
+{\bn "nuu} &
+{\bn "n.r} &
+{\bn "ne} &
+{\bn "nai} &
+{\bn "no} &
+{\bn "nau} \\ \hline
+ {\tt c} &
+{\bn ca} &
+{\bn caa} &
+{\bn ci} &
+{\bn cii} &
+{\bn cu} &
+{\bn cuu} &
+{\bn c.r} &
+{\bn ce} &
+{\bn cai} &
+{\bn co} &
+{\bn cau} \\ \hline
+ {\tt ch} &
+{\bn cha} &
+{\bn chaa} &
+{\bn chi} &
+{\bn chii} &
+{\bn chu} &
+{\bn chuu} &
+{\bn ch.r} &
+{\bn che} &
+{\bn chai} &
+{\bn cho} &
+{\bn chau} \\ \hline
+ {\tt j} &
+{\bn ja} &
+{\bn jaa} &
+{\bn ji} &
+{\bn jii} &
+{\bn ju} &
+{\bn juu} &
+{\bn j.r} &
+{\bn je} &
+{\bn jai} &
+{\bn jo} &
+{\bn jau} \\ \hline
+ {\tt jh} &
+{\bn jha} &
+{\bn jhaa} &
+{\bn jhi} &
+{\bn jhii} &
+{\bn jhu} &
+{\bn jhuu} &
+{\bn jh.r} &
+{\bn jhe} &
+{\bn jhai} &
+{\bn jho} &
+{\bn jhau} \\ \hline
+ {\tt \char`~n} &
+{\bn ~na} &
+{\bn ~naa} &
+{\bn ~ni} &
+{\bn ~nii} &
+{\bn ~nu} &
+{\bn ~nuu} &
+{\bn ~n.r} &
+{\bn ~ne} &
+{\bn ~nai} &
+{\bn ~no} &
+{\bn ~nau} \\ \hline
+ {\tt .t} &
+{\bn .ta} &
+{\bn .taa} &
+{\bn .ti} &
+{\bn .tii} &
+{\bn .tu} &
+{\bn .tuu} &
+{\bn .t.r} &
+{\bn .te} &
+{\bn .tai} &
+{\bn .to} &
+{\bn .tau} \\ \hline
+ {\tt .th} &
+{\bn .tha} &
+{\bn .thaa} &
+{\bn .thi} &
+{\bn .thii} &
+{\bn .thu} &
+{\bn .thuu} &
+{\bn .th.r} &
+{\bn .the} &
+{\bn .thai} &
+{\bn .tho} &
+{\bn .thau} \\ \hline
+ {\tt .d} &
+{\bn .da} &
+{\bn .daa} &
+{\bn .di} &
+{\bn .dii} &
+{\bn .du} &
+{\bn .duu} &
+{\bn .d.r} &
+{\bn .de} &
+{\bn .dai} &
+{\bn .do} &
+{\bn .dau} \\ \hline
+ {\tt .dh} &
+{\bn .dha} &
+{\bn .dhaa} &
+{\bn .dhi} &
+{\bn .dhii} &
+{\bn .dhu} &
+{\bn .dhuu} &
+{\bn .dh.r} &
+{\bn .dhe} &
+{\bn .dhai} &
+{\bn .dho} &
+{\bn .dhau} \\ \hline
+ {\tt .n} &
+{\bn .na} &
+{\bn .naa} &
+{\bn .ni} &
+{\bn .nii} &
+{\bn .nu} &
+{\bn .nuu} &
+{\bn .n.r} &
+{\bn .ne} &
+{\bn .nai} &
+{\bn .no} &
+{\bn .nau} \\ \hline
+ {\tt t} &
+{\bn ta} &
+{\bn taa} &
+{\bn ti} &
+{\bn tii} &
+{\bn tu} &
+{\bn tuu} &
+{\bn t.r} &
+{\bn te} &
+{\bn tai} &
+{\bn to} &
+{\bn tau} \\ \hline
+ {\tt th} &
+{\bn tha} &
+{\bn thaa} &
+{\bn thi} &
+{\bn thii} &
+{\bn thu} &
+{\bn thuu} &
+{\bn th.r} &
+{\bn the} &
+{\bn thai} &
+{\bn tho} &
+{\bn thau} \\ \hline
+ {\tt d} &
+{\bn da} &
+{\bn daa} &
+{\bn di} &
+{\bn dii} &
+{\bn du} &
+{\bn duu} &
+{\bn d.r} &
+{\bn de} &
+{\bn dai} &
+{\bn do} &
+{\bn dau} \\ \hline
+ {\tt dh} &
+{\bn dha} &
+{\bn dhaa} &
+{\bn dhi} &
+{\bn dhii} &
+{\bn dhu} &
+{\bn dhuu} &
+{\bn dh.r} &
+{\bn dhe} &
+{\bn dhai} &
+{\bn dho} &
+{\bn dhau} \\ \hline
+ {\tt n} &
+{\bn na} &
+{\bn naa} &
+{\bn ni} &
+{\bn nii} &
+{\bn nu} &
+{\bn nuu} &
+{\bn n.r} &
+{\bn ne} &
+{\bn nai} &
+{\bn no} &
+{\bn nau} \\ \hline
+ {\tt p} &
+{\bn pa} &
+{\bn paa} &
+{\bn pi} &
+{\bn pii} &
+{\bn pu} &
+{\bn puu} &
+{\bn p.r} &
+{\bn pe} &
+{\bn pai} &
+{\bn po} &
+{\bn pau} \\ \hline
+ {\tt ph} &
+{\bn pha} &
+{\bn phaa} &
+{\bn phi} &
+{\bn phii} &
+{\bn phu} &
+{\bn phuu} &
+{\bn ph.r} &
+{\bn phe} &
+{\bn phai} &
+{\bn pho} &
+{\bn phau} \\ \hline
+ {\tt b} &
+{\bn ba} &
+{\bn baa} &
+{\bn bi} &
+{\bn bii} &
+{\bn bu} &
+{\bn buu} &
+{\bn b.r} &
+{\bn be} &
+{\bn bai} &
+{\bn bo} &
+{\bn bau} \\ \hline
+ {\tt bh} &
+{\bn bha} &
+{\bn bhaa} &
+{\bn bhi} &
+{\bn bhii} &
+{\bn bhu} &
+{\bn bhuu} &
+{\bn bh.r} &
+{\bn bhe} &
+{\bn bhai} &
+{\bn bho} &
+{\bn bhau} \\ \hline
+ {\tt m} &
+{\bn ma} &
+{\bn maa} &
+{\bn mi} &
+{\bn mii} &
+{\bn mu} &
+{\bn muu} &
+{\bn m.r} &
+{\bn me} &
+{\bn mai} &
+{\bn mo} &
+{\bn mau} \\ \hline
+ {\tt y} &
+{\bn ya} &
+{\bn yaa} &
+{\bn yi} &
+{\bn yii} &
+{\bn yu} &
+{\bn yuu} &
+{\bn y.r} &
+{\bn ye} &
+{\bn yai} &
+{\bn yo} &
+{\bn yau} \\ \hline
+ {\tt .y} &
+{\bn .ya} &
+{\bn .yaa} &
+{\bn .yi} &
+{\bn .yii} &
+{\bn .yu} &
+{\bn .yuu} &
+{\bn .y.r} &
+{\bn .ye} &
+{\bn .yai} &
+{\bn .yo} &
+{\bn .yau} \\ \hline
+ {\tt r} &
+{\bn ra} &
+{\bn raa} &
+{\bn ri} &
+{\bn rii} &
+{\bn ru} &
+{\bn ruu} &
+{\bn r.r} &
+{\bn re} &
+{\bn rai} &
+{\bn ro} &
+{\bn rau} \\ \hline
+ {\tt \char`~r} &
+{\bn ~ra} &
+{\bn ~raa} &
+{\bn ~ri} &
+{\bn ~rii} &
+{\bn ~ru} &
+{\bn ~ruu} &
+{\bn ~r.r} &
+{\bn ~re} &
+{\bn ~rai} &
+{\bn ~ro} &
+{\bn ~rau} \\ \hline
+ {\tt l} &
+{\bn la} &
+{\bn laa} &
+{\bn li} &
+{\bn lii} &
+{\bn lu} &
+{\bn luu} &
+{\bn l.r} &
+{\bn le} &
+{\bn lai} &
+{\bn lo} &
+{\bn lau} \\ \hline
+ {\tt v} &
+{\bn va} &
+{\bn vaa} &
+{\bn vi} &
+{\bn vii} &
+{\bn vu} &
+{\bn vuu} &
+{\bn v.r} &
+{\bn ve} &
+{\bn vai} &
+{\bn vo} &
+{\bn vau} \\ \hline
+ {\tt "s} &
+{\bn "sa} &
+{\bn "saa} &
+{\bn "si} &
+{\bn "sii} &
+{\bn "su} &
+{\bn "suu} &
+{\bn "s.r} &
+{\bn "se} &
+{\bn "sai} &
+{\bn "so} &
+{\bn "sau} \\ \hline
+ {\tt .s} &
+{\bn .sa} &
+{\bn .saa} &
+{\bn .si} &
+{\bn .sii} &
+{\bn .su} &
+{\bn .suu} &
+{\bn .s.r} &
+{\bn .se} &
+{\bn .sai} &
+{\bn .so} &
+{\bn .sau} \\ \hline
+ {\tt s} &
+{\bn sa} &
+{\bn saa} &
+{\bn si} &
+{\bn sii} &
+{\bn su} &
+{\bn suu} &
+{\bn s.r} &
+{\bn se} &
+{\bn sai} &
+{\bn so} &
+{\bn sau} \\ \hline
+ {\tt h} &
+{\bn ha} &
+{\bn haa} &
+{\bn hi} &
+{\bn hii} &
+{\bn hu} &
+{\bn huu} &
+{\bn h.r} &
+{\bn he} &
+{\bn hai} &
+{\bn ho} &
+{\bn hau} \\ \hline
+ {\tt R} &
+{\bn Ra} &
+{\bn Raa} &
+{\bn Ri} &
+{\bn Rii} &
+{\bn Ru} &
+{\bn Ruu} &
+{---} &
+{\bn Re} &
+{\bn Rai} &
+{\bn Ro} &
+{\bn Rau} \\ \hline
+ {\tt Rh} &
+{\bn Rha} &
+{\bn Rhaa} &
+{\bn Rhi} &
+{\bn Rhii} &
+{\bn Rhu} &
+{\bn Rhuu} &
+{---} &
+{\bn Rhe} &
+{\bn Rhai} &
+{\bn Rho} &
+{\bn Rhau} \\ \hline
+\end{tabular}
+\vspace{0.10in}
+\end{center}
+} % end vbox
+\end{table}
+
+\end{document}
diff --git a/language/bengali/pandey/doc/bengdoc.pdf b/language/bengali/pandey/doc/bengdoc.pdf
new file mode 100644
index 0000000000..e1efdf0a55
--- /dev/null
+++ b/language/bengali/pandey/doc/bengdoc.pdf
Binary files differ
diff --git a/language/bengali/pandey/doc/example.bn b/language/bengali/pandey/doc/example.bn
new file mode 100644
index 0000000000..c8498e8017
--- /dev/null
+++ b/language/bengali/pandey/doc/example.bn
@@ -0,0 +1,55 @@
+% Example for "Bengali for TeX" package.
+% "Ajante" by Bonaphul
+
+\documentclass[12pt]{article}
+\usepackage{beng}
+
+\begin{document}
+\centerline{{\bn \LARGE ajaante}}
+\centerline{{\bn \Large banaphula}}
+\bigskip
+
+{\bn \large sedina aaphise maa{}ine peyechi|
+
+baaRi pherabaara pathe bhaabalaama `ora' janye eka.taa `ba.disa'
+kine niye .yaa{}i| becaarii aneka dina thekei balache|
+
+e -- dokaana se -- dokaana khu~mje jaamaa kinate praaya sandhyaa
+haye gela| jaamaa.ti kine beriyechi, b.r.s.tio aaramba ha'la| ki
+kari, daa~mRaate ha'la| b.r.s.ti.taa ek.tu dharate, jaamaa.ti bagale
+ka're, chaataa.ti maathaaya diye .yaacchi| baRa raastaa.tuku bena elaama,
+taar para{}i gali, taa -- o andhakaara|
+
+galite cuke anyamanaska haye bhaabate bhaabate .yaacchi, anekdin
+pare aaja natuna jaamaa peye taara mane ki aananda{}i na habe| aami --
+
+emana samaya ha.thaaTa eka.taa loka ghaaRe ese paRala| seo pa'Re
+gela, aamio pa'Re gelaama, jaamaa.taa kaadaaya maakhaamaakhi haye gela|
+
+aami u.the dekhi, loka.taa takhanao u.the ni, u.thabaara upakrama
+karache| baage jaamaara sarbaa"nga jva'le gela, maaralaama eka laakhi|
+
+raastaa dekhe calate paara na suyaara?
+
+maarera co.te se aabaara pa'Re gela, kintu kona javaaba karale na| taate
+aamaara aarao raaga ha'la, aarao maarate laagalaama|
+
+golamaala "sune paasera baaRira eka duuyaara khule gela| haate eka
+bhadraloka beriye ese jij~naasaa karalena, byaapaara ki masaa{}i?
+
+dekhuna diki masaa{}i, raaskela.taa aamaara eta .taakaara jaamaa.taa
+maa.ti ka're dile| kaadaaya maakhaamaakhi haye geche ekebaare|
+patha calate jaane naa, ghaaRe ese paRala|
+
+ke -- o? o.h, thaaka masaa{}i, maapa karuna, oke aara maarabena na |
+o becaaraa andha bobaa bhikhaarii, ei galitei thaake|
+
+taara dike ceye dekhi, maarera co.te se becaaraa kaa~mpache,
+gaa-maya kaadaa| aara aamaara dike kaataramukhe andhad.r.s.ti
+tule haata du.ti joRa ka're aache|}
+\vfill
+
+{\noindent\small Typeset with Bengali for \TeX{}}
+\end{document}
+
+
diff --git a/language/bengali/pandey/doc/example.pdf b/language/bengali/pandey/doc/example.pdf
new file mode 100644
index 0000000000..1af7ed15ec
--- /dev/null
+++ b/language/bengali/pandey/doc/example.pdf
Binary files differ
diff --git a/language/bengali/pandey/manifest.txt b/language/bengali/pandey/manifest.txt
new file mode 100644
index 0000000000..a0cc6ff63c
--- /dev/null
+++ b/language/bengali/pandey/manifest.txt
@@ -0,0 +1,28 @@
+beng.c
+beng.sty
+ubn.fd
+ubnx.fd
+doc/bengdoc.bn
+doc/bengdoc.pdf
+doc/example.bn
+doc/example.pdf
+mf/bn.mf
+mf/bnbanjon.mf
+mf/bndigit.mf
+mf/bnjuk.mf
+mf/bnkaar.mf
+mf/bnlig.mf
+mf/bnligtbl.mf
+mf/bnmacro.mf
+mf/bnmisc.mf
+mf/bnpunct.mf
+mf/bnr10.mf
+mf/bnsl10.mf
+mf/bnswar.mf
+mf/xbnr10.mf
+mf/xbnsl10.mf
+mf/xbnsupp.mf
+tfm/bnr10.tfm
+tfm/bnsl10.tfm
+tfm/xbnr10.tfm
+tfm/xbnsl10.tfm
diff --git a/language/bengali/pandey/mf/bn.mf b/language/bengali/pandey/mf/bn.mf
new file mode 100644
index 0000000000..89a96afef9
--- /dev/null
+++ b/language/bengali/pandey/mf/bn.mf
@@ -0,0 +1,17 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bn.mf: METAFONT file that calls the base files
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input bnswar;
+input bnkaar;
+input bnbanjon;
+input bndigit;
+input bnpunct;
+input bnlig;
+input bnmisc;
+input bnjuk;
+input bnligtbl;
+
+%% End of the file bn.mf
diff --git a/language/bengali/pandey/mf/bnbanjon.mf b/language/bengali/pandey/mf/bnbanjon.mf
new file mode 100644
index 0000000000..d2fc9de15f
--- /dev/null
+++ b/language/bengali/pandey/mf/bnbanjon.mf
@@ -0,0 +1,508 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnbanjon.mf: METAFONT file that defines the Bengali consonants
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("k",0.70stwd#,stht#,stdp#); "The letter ka";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (5/8w,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/8w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (5/8w,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (5/8w,3/4h);
+draw z3..z4;
+z8 = (7/8w,2/7h); z8r = z8 + (len/2,-len/2); z8l = z8 - (len/2,-len/2);
+penstroke z5e{right}..z8e;
+fill fullcircle scaled 1.1pt shifted (z8 - (0.44pt,-0.2pt));
+endchar;
+
+beginchar("K",0.62stwd#,stht#,stdp#); "The letter kha";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = (1/6w,14/25h); z5 = (1/2w,3/4h);
+z6 = (2/3w,3/5h); z7 = (1/4w,11/30h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4{right}..{dir 30}z5{dir -45}..{down}z6{down}..{dir -165}z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z2l + (0.15pt,0) = z2r - (0.15pt,0) = z2 + (0,0.17pt);
+penstroke z7e{dir -10}..{dir -65}z2e;
+fill fullcircle scaled 1.3pt shifted (z4 + (0.15pt,0.39pt));
+endchar;
+
+beginchar("g",0.56stwd#,stht#,stdp#); "The letter ga";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = (5/6w,4/7h); top z5 = (9/20w,3/4h); rt z6 = (1/7w,11/21h);
+z7 = (1/2w,19/40h); z8 = (17/50w,4/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z4{dir 120}..{left}z5{left}..{down}z6{dir 30}..{down}z7{down}..{dir -125}z8;
+endchar;
+
+beginchar("G",0.56stwd#,stht#,stdp#); "The letter gha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+z5 = (1/5w,3/4h-0.05pt); z6 = (1/8w,14/23h);
+z7 = (14/25w,21/40h); z8 = (2/9w,3/10h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z5{dir -120}..{down}z6{down}..{dir 30}z7--z8;
+z8r + (0.25pt,-0.25pt) = z8l - (0.25pt,-0.25pt) = z8;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z8e{right}..tension 1.5 ..{dir -75}z4e;
+endchar;
+
+beginchar("q",0.62stwd#,stht#,stdp#); "The letter una";
+z1 = (1/5w,3/4h); z2 = (19/40w,19/31h); z3 = (23/29w,23/31h);
+z4 = (1/2w,3/4h); z5 = (4/9w,3/8h); z6 = (19/40w,16/45h);
+z7 = (4/5w,1/2h); lft z8 = (7/8w,5/16h); z9 = (23/40w,1/12h);
+z10 = (9/50w,1/3h); z11 = (1/10w,13/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..tension 1.2..{right}z2{right}..tension 1.2..
+{up}z3{up}..{dir -130}z4{dir -130}..
+tension 2..z5--z6{dir 0}..{dir 60}z7{dir -60}..{down}z8{down}
+..{left}z9{left}..z10..z11;
+endchar;
+
+beginchar("c",0.48stwd#,stht#,stdp#); "The letter cha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6{dir 165}..{dir 100}z3;
+endchar;
+
+beginchar("C",0.55stwd#,stht#,stdp#); "The letter chha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top z3 = (1/6w,3/4h); z4 = (1/6w,5/12h); z5 = (1/5w,3/8h);
+z6 = (11/20w,9/16h); z7 = (13/20w,9/16h); z8 = (5/6w,4/9h);
+z9 = (1/5w,9/40h); z10 = (w,-1/3d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3..z4{down}..{right}z5{right}..{dir 80}z6{left}..{up}z3;
+draw z6{right}..z7..{down}z8{down}..{left}z9;
+z9r + (0.2pt,-0.2pt) = z9l - (0.2pt,-0.2pt) = z9;
+z10l + (0,0.15pt) = z10r - (0,0.15pt) = z10;
+penstroke z9e{right}..{dir -45}z10e;
+endchar;
+
+beginchar("j",0.70stwd#,stht#,stdp#); "The letter ja";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (8/20w,3/4h); z4 = (5/21w,1/2h); z5 = (8/20w,9/24h);
+z6 = (21/36w,37/80h); z7 = (11/16w,3/10h); z8 = (1/2w,1/8h);
+rt z9 = (1/10w,5/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir -135}..{down}z4{down}..{right}z5{right}..{dir30}z6
+ {dir -60}..{down}z7{down}..{left}z8{left}..{up}z9;
+rt z11 = z11l + (0.2pt,-0.2pt) = z11r - (0.2pt,-0.2pt) = (11/12w,3/5h);
+z12 = z12l + (0.15pt,0) = z12r - (0.15pt,0) = (8/9w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z3{dir -90}..{dir 15}z11;
+penstroke z11e{dir -120}..{dir -75}z12e;
+endchar;
+
+beginchar("J",0.68stwd#,stht#,stdp#); "The letter jha";
+z1 = (w-0.9pt,3/4h); z2 = (w-0.9pt,1/11h);
+z3 = (5/8w,3/4h); z4 = (5/8w,0); lft z5 = 4/7[z3,z4];
+pickup pencircle scaled penth#; draw (z1+(0,0.3pt))..z2; draw z3..z4;
+draw (0,3/4h)..z3; draw z1..(w,3/4h);
+draw z5{dir -45}..{dir -75}z2;
+rt z6 = (5/8w,13/20h); z7 = (1/7w,8/21h);
+pickup pencircle scaled 0.5pt;
+draw z6{z7-z6 rotated -8}..z7;
+z4 + (0,0.2pt) = z4l + (0.15pt,0) = z4r - (0.15pt,0);
+z7 = z7r + (0.2pt,-0.2pt) = z7l - (0.1pt,-0.27pt);
+penstroke z7e{right}.. tension 1.5 .. z4e;
+endchar;
+
+beginchar("Q",0.90stwd#,stht#,stdp#); "The letter ina";
+numeric wd; wd = 17/24w;
+z1 = (9/20wd,2/5h); z2 = (19/25wd,3/4h); z3 = (6/7wd,2/3h);
+z4 = (6/7wd,0); z5 = (1/2wd,1/6h);
+z6 = (1/5wd,1/5h); z7 = (1/8wd,3/8h); z8 = (1/6wd,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 1.4pt shifted (z1 + (0.47pt,0.38pt));
+z9 = 9/20[z3,z4] + (0,0.4pt); z13 = 11/20[z3,z4] + (0,0.4pt); z10 = (8/9w,13/24h) + (0,0.4pt);
+z11 = (5/6w,1/3h) + (0,0.4pt); z12 = (8/9w,3/24h) + (0,0.4pt);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated 60;
+draw z9{dir 75}..z10..z11;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -60;
+draw z13{dir -75}..z12..z11;
+fill fullcircle scaled 1.1pt shifted (z11 + (-0.1pt,0));
+endchar;
+
+beginchar("T",0.48stwd#,stht#,stdp#); "The letter Ta";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+z7 = (w-0.7pt,3/4h); z8 = (1/2w,31/32h); z9 = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7{dir 60}..{left}z8{left}...z9{dir 75};
+endchar;
+
+beginchar("Z",0.5stwd#,stht#,stdp#); "The letter Tha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (4/7w,3/4h); z4 = (1/6w,9/40h); z5 = (7/16w,1/16h);
+z6 = (5/6w,3/8h); z7 = (1/3w,9/8h); z8 = (2/5w,19/16h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3{dir -75}..{dir -150}z4{down}..{right}z5{right}..{up}z6{up}
+ ..{dir 120}z3..{up}z7{up}..{dir 45}z8;
+endchar;
+
+beginchar("D",0.60stwd#,stht#,stdp#); "The letter Da";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+endchar;
+
+beginchar("X",0.48stwd#,stht#,stdp#); "The letter Dha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+endchar;
+
+beginchar("N",0.52stwd#,stht#,stdp#); "The letter murdhanya Na";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = 1/4[z1,z2]; z5 = (7/16w,3/4h); rt z6 = (1/6w,9/16h); z7 = (3/8w,27/64h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -30;
+draw z4{dir 130}..{left}z5{left}..{down}z6{down}...{dir 20}z7;
+fill fullcircle scaled 1.1pt shifted (z7+(0.08pt,0.37pt));
+endchar;
+
+beginchar("t",0.60stwd#,stht#,stdp#); "The letter ta";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (1/2w,5/9h); lft z4 = (6/7w,7/20h);
+z5 = (3/5w,1/12h); rt z6 = (1/10w,13/20h); z7 = (1/5w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z7..z6;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endchar;
+
+beginchar("z",0.58stwd#,stht#,stdp#); "The letter tha";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z4 = (1/7w,5/8h); z5 = (3/8w,3/4h);
+z6 = (3/5w,5/8h); z7 = (1/5w,3/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4{dir 90}...{right}z5{right}..{down}z6{down}..{dir -160}z7;
+z2l + (0.1pt,-0.4pt) = z2r - (0.1pt,0.4pt) = z2;
+z7r + (0.1pt,-0.24pt) = z7l - (0.1pt,-0.24pt) = z7;
+penstroke z7e{right}..tension1.2..{dir -75}z2e;
+fill fullcircle scaled 1pt shifted (z4 + (0.33pt,0pt));
+endchar;
+
+beginchar("d",0.47stwd#,stht#,stdp#); "The letter da";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (1/6w,3/4h); z4 = (1/6w,3/10h); draw z3..z4;
+z5 = (6/7w,4/7h); z4' = 1/2[z4,z5] + (0,0.25pt);
+pickup pencircle xscaled 0pt yscaled 0.5pt rotated 45;
+draw z4{z4'-z4}..z4'..{z5-z4'}z5;
+z6 = z6l + (0.17pt,0) = z6r - (0.17pt,0) = (3/4w,0);
+z5l + (0.2pt,-0.2pt) = z5r - (0.2pt,-0.2pt) = z5;
+penstroke z5e{dir -120}..{dir -75}z6e;
+endchar;
+
+beginchar("x",0.52stwd#,stht#,stdp#); "The letter dha";
+pickup pencircle scaled penth#;
+z1 = (w-0.9pt,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+z8 = 9/20[z5,z6] + (0,0.2pt); z9 = (1/4w,27/40h); bot z10 = (11/30w,3/4h);
+pickup pencircle scaled 0.3pt;
+draw z8{left}..{up}z9{up}..{right}z10;
+fill fullcircle scaled 1.0pt shifted (z10 + (0.1pt,-0.33pt));
+endchar;
+
+beginchar("n",0.52stwd#,stht#,stdp#); "The letter na";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+z5 = (1/4w,5/12h); bot z6 = z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{dir 20}..{down}z6;
+fill fullcircle scaled 1.5pt shifted (z5 - (-0.14pt,0.485pt));
+endchar;
+
+beginchar("p",0.60stwd#,stht#,stdp#); "The letter pa";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = (5/6w,5/9h); top z5 = (8/19w,3/4h); rt z6 = (1/8w,17/28h);
+z7 = (2/7w,3/8h); z8 = (17/24w,5/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4--z8{z8-z4}..{left}z5{left}..{dir -140}z6{dir 30}..{dir -140}z7;
+pickup pencircle xscaled 0pt yscaled 0.6pt rotated 50;
+draw z7--z8;
+endchar;
+
+beginchar("f",0.67stwd#,stht#,stdp#); "The letter pha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (13/20w,3/5h); z4 = (13/20w,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (2/5w,43/80h); z7 = (1/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 1.5 ..{dir -75}z4e;
+lft z8 = (7/8w,4/9h); z9 = (5/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z8{down}..z9;
+fill fullcircle scaled 1.2pt shifted (z9 + (-0.18pt,0.30pt));
+endchar;
+
+beginchar("b",0.52stwd#,stht#,stdp#); "The letter ba";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+endchar;
+
+beginchar("v",0.63stwd#,stht#,stdp#); "The letter bha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (2/5w,3/7h); z4 = (4/5w,1/2h); lft z5 = (7/8w,5/16h);
+z6 = (17/30w,1/12h); rt z7 = (1/10w,13/20h); z8 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 15;
+draw z3{dir -29}..{dir 60}z4{dir -50}..{down}z5{down}..{left}z6{left}..z8..z7;
+fill fullcircle scaled 1.65pt shifted (z3 + (0.36pt,0.48pt));
+endchar;
+
+beginchar("m",0.55stwd#,stht#,stdp#); "The letter ma";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+z5 = (1/6w,3/4h-0.04pt); z6 = (7/16w,1/4h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z5{dir -135}..z6{dir -142};
+z4l + (0.1pt,0) = z4r - (0.1pt,0) = z4;
+z6l + (0,0.23pt) = z6r - (0,0.23pt) = z6 + (0,0.27pt);
+penstroke z6e{right}..{down}z4e;
+fill fullcircle scaled 1.5pt shifted (z6 - (0.21pt,-0.03pt));
+endchar;
+
+beginchar("Y",0.55stwd#,stht#,stdp#); "The letter antashthya ja";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2w,43/80h); z7 = (1/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 1.5 ..{dir -75}z4e;
+endchar;
+
+beginchar("r",0.52stwd#,stht#,stdp#); "The letter ra";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+fill fullcircle scaled 0.9pt shifted (9/20w,2/21h);
+endchar;
+
+beginchar("l",0.62stwd#,stht#,stdp#); "The letter la";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+z5 = (5/6w,9/20h); z6 = (16/24w,5/9h); z7 = (9/16w,2/5h);
+z8 = (1/3w,5/9h); z9 = (1/8w,13/32h); z10 = (3/8w,4/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z5{dir 135}..{left}z6{left}..{dir -75}z7{dir 105}..{left}z8{left}
+ ..{down}z9{down}..{dir 14.5}z10;
+fill fullcircle scaled 1.2pt shifted (z10 + (-0.09pt,0.32pt));
+endchar;
+
+beginchar("S",0.56stwd#,stht#,stdp#); "The letter talabya sha";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z4 = (0,3/4h); z5 = (5/16w,19/32h);
+top z6 = (14/25w,3/4h); z7 = 2/7[z1,z2];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4{right}..{dir -60}z5{dir 60}..{right}z6{right}..{z7-z6}z7;
+fill fullcircle xscaled 1.4pt yscaled 2.5pt rotated -45 shifted (z5 + (-0.50pt,-0.62pt));
+fill fullcircle xscaled 1.4pt yscaled 2.5pt rotated 45 shifted (z5 + (0.50pt,-0.62pt));
+endchar;
+
+beginchar("F",0.55stwd#,stht#,stdp#); "The letter murdhanya sa";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2w,43/80h); z7 = (1/6w,1/3h); rt z8 = (5/6w,8/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7; draw (z6+(0,0.1pt))--z8;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 2.5 ..{dir -75}z4e;
+endchar;
+
+beginchar("s",0.60stwd#,stht#,stdp#); "The letter danto sa";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+top z5 = (1/9w,3/4h); rt z10 = (w-0.9pt,5/13h); z7 = (1/6w,1/3h); z8 = (1/4w,3/11h);
+z9 - z10 = 3/2(z7 - z8); rt z6 = 5/8[z8,z9];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{right}..{down}z6;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z7..z8..z9...{dir -45}z10;
+endchar;
+
+beginchar("h",0.5stwd#,stht#,stdp#); "The letter ha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (3/10w,3/4h); z4 = (1/3w,3/5h); z5 = (5/6w,1/2h);
+lft z6 = (1/8w,5/16h); z7 = (w,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+penstroke z6e{dir -30}..{dir -45}z7e;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+endchar;
+
+beginchar("R",0.60stwd#,stht#,stdp#); "The letter Da-e bindu ra";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+fill fullcircle scaled 1.2pt shifted (23/40w,-2/5d);
+endchar;
+
+beginchar("V",0.48stwd#,stht#,stdp#); "The letter Dha-e bindu ra";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+fill fullcircle scaled 1.2pt shifted (3/8w,-2/5d);
+endchar;
+
+beginchar("y",0.55stwd#,stht#,stdp#); "The letter antashthya ya";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2w,43/80h); z7 = (1/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 1.5 ..{dir -75}z4e;
+fill fullcircle scaled 1.2pt shifted (11/25w,1/20h);
+endchar;
+
+beginchar("B",0.52stwd#,stht#,stdp#); "The letter khanda-ta";
+z1 = (17/60w,28/40h); z2 = (1/2w,4/7h); z3 = (2/3w,52/80h);
+z4 = (1/2w,3/4h); z5 = (1/7w,21/40h); z6 = (9/10w,0);
+pickup pencircle xscaled 0.5pt yscaled 0.3pt rotated 60;
+%pickup pencircle scaled 0.4pt;
+draw z1..{right}z2{right}..{up}z3{up}..{left}z4{left} ..z1..
+{down}z5{down}..{down}z6;
+endchar;
+
+beginchar("M",0.32stwd#,stht#,stdp#); "The letter anuswar";
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+z1 = (1/2w,3/4h); z2 = (1/2w,3/4h-11/20w); draw z1..z2..cycle;
+z3 = z3l - (0,0.30pt) = z3r + (0,0.30pt) = (1/5w,17/40h);
+z4 = z4l - (0,0.20pt) = z4r + (0,0.20pt) = (w,0);
+penstroke z3e{dir -45}...{dir -75}z4e;
+endchar;
+
+beginchar("H",0.27stwd#,stht#,stdp#); "The letter bisarga";
+z1 = (1/2w,3/4h); z4 = (1/2w,1/10h); z2 = (1/2w,3/4h-2/3w); z3 = (1/2w,1/10h+2/3w);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z1..z2..cycle; draw z3..z4..cycle;
+endchar;
+
+beginchar("w",0stwd#,stht#,stdp#); "chandrabindu";
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+z1 = (w-2.6pt,h); z2 = (w-1pt,3/4h+0.4pt); z3 = (w+0.6pt,h);
+draw z1..{right}z2{right}..z3;
+fill fullcircle scaled 1.1pt shifted (-1pt,h);
+endchar;
+
+%%% End of bnbanjon.mf
diff --git a/language/bengali/pandey/mf/bndigit.mf b/language/bengali/pandey/mf/bndigit.mf
new file mode 100644
index 0000000000..a77a226f27
--- /dev/null
+++ b/language/bengali/pandey/mf/bndigit.mf
@@ -0,0 +1,86 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bndigit.mf: METAFONT file that defines the Bengali digits
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("0",0.48stwd#,stht#,stdp#); "The number 0";
+z1 = (1/2w,7/16h+19/50w); z2 = (1/2w,7/16h-19/50w);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..z2..cycle;
+endchar;
+
+beginchar("1",0.52stwd#,stht#,stdp#); "The number 1";
+z1 = (1/5w,3/4h); z2 = (3/4w,3/8h); z3 = (5/6w,1/4h); z4 = (7/12w,1/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir -135}..z2..{down}z3{down}..{dir -160}z4;
+fill fullcircle xscaled 2.0pt yscaled 1.3pt rotated 20 shifted (z4 + (-0.12pt,0.35pt));
+endchar;
+
+beginchar("2",0.52stwd#,stht#,stdp#); "The number 2";
+z1 = (1/4w,3/4h); z2 = (5/9w,11/24h); z3 = (3/4w,21/41h);
+z4 = (1/5w,1/3h); z5 = (9/10w,-d/5);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt;
+draw z1{dir -135}..tension 2..{dir -45}z3{dir -45}..{dir 150}z4;
+z4l + (0.1pt,-0.35pt) = z4r - (0.1pt,-0.35pt) = z4 - (0.30pt,-0.04pt);
+z5l - (0.15pt,0) = z5r + (0.15pt,0) = z5;
+penstroke z4e{dir -30}..{dir -45}z5e;
+endchar;
+
+beginchar("3",0.60stwd#,stht#,stdp#); "The number 3";
+z3 = (1/2w,5/9h); lft z4 = (6/7w,7/20h);
+z5 = (3/5w,1/12h); rt z6 = (1/10w,13/20h); z7 = (1/5w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z7..z6;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endchar;
+
+beginchar("4",0.54stwd#,stht#,stdp#); "The number 4";
+z1 = (1/2w,3/4h); z2 = (1/6w,9/16h); z3 = (1/2w,3/8h);
+z4 = (5/6w,3/16h); z5 = (1/2w,0); z6 = (1/6w,3/16h); z7 = (5/6w,9/16h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated 45;
+draw z1..z2..z3..z4..z5..z6..z3..z7..cycle;
+endchar;
+
+beginchar("5",0.54stwd#,stht#,stdp#); "The number 5";
+z1 = (1/2w,3/4h); z2 = (1/5w,1/9h); z3 = (3/4w,0); z4 = (9/10w,11/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir -145}..{dir -50}z2{dir -50}..{right}z3{dir 150}..
+{dir 30}z4{left}..{up}z1;
+endchar;
+
+beginchar("6",0.59stwd#,stht#,stdp#); "The number 6";
+top z3 = (7/20w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir -10}..tension 1.2..{dir -70}z4{dir -60}..{dir -60}z5{dir 30}..{dir 60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+endchar;
+
+beginchar("7",0.48stwd#,stht#,stdp#); "The number 7";
+z1 = (3/4w,10/21h); z2 = (1/6w,1/2h); z3 = (1/2w,3/4h); z4 = (8/9w,0);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{left}..tension 1.4..{dir 135}z2{dir 135}..tension 1.4..
+{right}z3{right}..z1..tension 2.2..{dir -15}z4;
+endchar;
+
+beginchar("8",0.55stwd#,stht#,stdp#); "The number 8";
+z1 = (1/10w,3/4h); z2 = (1/6w,3/7h); z3 = (1/6w,1/6h);
+z4 = (1/4w,1/16h); z5 = (13/20w,17/42h); z6 = (9/10w,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z1{right}..tension 2.2..{down}z2--z3{down}..z4{right}..
+{up}z5{dir 135}..tension 2..{dir -135}z2;
+pickup pencircle xscaled 0 yscaled 0.5pt rotated 30;
+draw z5{dir 75}..{dir 75}z6;
+endchar;
+
+beginchar("9",0.55stwd#,stht#,stdp#); "The number 9";
+z1 = (1/6w,3/4h); z2 = (7/8w,1/5h); z3 = (2/3w,0);
+z4 = (23/60w,1/4h); z5 = (1/6w,1/10h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated 45;
+draw z1{down}..{down}z2{down}..{dir -165}z3{up}..{left}z4{left}..{dir -75}z5;
+fill fullcircle scaled 1.2pt shifted (z5 + (0.39pt,-0.1pt));
+endchar;
+
+%%% End of bndigit.mf
diff --git a/language/bengali/pandey/mf/bnjuk.mf b/language/bengali/pandey/mf/bnjuk.mf
new file mode 100644
index 0000000000..365448cac8
--- /dev/null
+++ b/language/bengali/pandey/mf/bnjuk.mf
@@ -0,0 +1,980 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnjuk.mf: METAFONT file that defines the Bengali conjunct consonants
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input bnmacro;
+
+newchar(128,0.70,"k + k");
+matra(w,h);
+ka_(1/7w,1/3h,6/7w-0.9pt,(3/4-1/3)*h,3/10);
+ka(4/17w,0,(6/7-4/17)*w-0.25pt,11/20h,3/10);
+endchar;
+
+newchar(129,0.55,"k + T");
+matra(w,h); tiki(w,h,0);
+ka(1/7w,11/40h,13/20w,(3/4-11/40)*h,3/8);
+_Dha(3/10w,0,7/10w-0.9pt,3/10h);
+endchar;
+
+newchar(130,0.75,"k + t");
+matra(w,h);
+tta(1/11w,0,(16/25-1/11)*w,3/4h-0.8pt);
+shnur(15/25w,3/8h,10/25w-0.4pt,11/60h);
+endchar;
+
+newchar(131,0.70,"k + b");
+matra(w,h);
+ka_(1/7w,1/3h,6/7w-0.9pt,(3/4-1/3)*h,1/10);
+ba(4/17w,0,(5/7-4/17)*w-0.6pt,11/20h);
+endchar;
+
+newchar(132,0.68,"k + m");
+matra(w,h);
+ka(1/10w,3/10h,15/26w,(3/4 - 3/10)*h,3/10);
+ma(29/50w,0,21/50w-0.9pt,1/3h,1.2,-0.5pt);
+endchar;
+
+newchar(133,0.84,"k + r");
+matra(w,h);
+tra(1/11w,0,(16/25-1/11)*w,2/3h);
+shnur(16/25w,3/8h,9/25w-0.4pt,11/60h);
+endchar;
+
+newchar(134,0.65,"k + l");
+matra(w,h);
+ka(1/4w,3/10h,3/4w-0.9pt,(3/4-3/10)*h,3/10);
+la(1/10w,0,(3/4-1/10)*w-0.6pt,3/10h,0);
+endchar;
+
+newchar(135,0.82,"k + s");
+matra(w,h);
+khiyo(1/10w,0,9/10w-0.9pt,3/4h);
+endchar;
+
+newchar(136,0.75,"k + s + n");
+matra(w,h);
+khiyo(1/9w,1/16h,8/9w-0.9pt,(3/4-1/16)*h);
+na(1/4w,-11/30d,5/12w-0.32pt,11/32h,0);
+endchar;
+
+newchar(137,0.85,"k + s + m");
+matra(w,h);
+khiyo(1/10w,1/16h,17/24w,(3/4-1/16)*h);
+ma(575/1000w,-3/4d,425/1000w-0.9pt,39/100h,1.35,0);
+endchar;
+
+newchar(138,0.67,"k + ss");
+matra(w,h); rtbar(w,h);
+ka(1/8w,3/11h,11/20w,(3/4-3/11)*h,3/8);
+_ds(1/5w,0,4/5w-0.9pt,3/5h);
+endchar;
+
+newchar(139,0.65,"g + dh");
+pickup dflt_pen;
+draw ((1/6+9/16)*w-0.18pt,3/4h)..(w,3/4h);
+ga(1/6w,3/8h,9/16w-0.18pt,3/8h,0);
+dha(3/8w,0,5/8w-0.9pt,3/7h);
+endchar;
+
+newchar(140,0.56,"g + n");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+ga(1/6w,3/8h,5/6w-0.9pt,3/8h,0);
+na(1/4w,0,3/4w-0.9pt,3/8h,1/9);
+endchar;
+
+newchar(141,0.56,"g + b");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+ga(1/6w,3/8h,5/6w-0.9pt,3/8h,0);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(142,0.70,"g + m");
+pickup dflt_pen;
+draw (2/3w,3/4h)..(w,3/4h);
+ga(1/9w,3/8h,5/9w,3/8h,0);
+ma(2/3w,0,1/3w-0.9pt,3/10h,1.4,(3/8-3/10)*h);
+endchar;
+
+newchar(143,0.59,"g + l");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+ga(1/5w,3/8h,4/5w-0.9pt,3/8h,0);
+la(1/7w,0,6/7w-0.9pt,7/20h,1/9);
+endchar;
+
+newchar(144,0.52,"gh + n");
+matra(w,h);
+gha(1/6w,3/20h,5/6w-0.9pt,(3/4-3/20)*h);
+na(1/3w,-1/4d,2/3w-0.9pt,3/8h,0);
+endchar;
+
+newchar(145,0.60,"una + k");
+matra(w,h);
+na(1/7w,2/5h,31/61w,(3/4-3/7)*h,-1);
+ka(1/5w,0,4/5w-0.9pt,31/60h,3/10);
+z1 = (11/20w,3/4h); z3 = (19/20w,3/4h); z2 = 3/5[z1,z3] - (0,1/7h);
+pickup dflt_pen; draw z1{dir -45}..z2..z3;
+endchar;
+
+newchar(146,1.22,"una + k + s");
+una(1/14w,1/8h,(5/12-1/12)*w,(3/4-1/8)*h);
+khiyo(5/12w,0,7/12w-0.9pt,3/4h);
+pickup dflt_pen; draw (4/11w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(147,0.80,"una + kh");
+una(1/9w,1/5h,(1/2-1/60)*w,(3/4-1/5)*h);
+rtbar(w,21/20h); matra(1/7w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+z1 = (29/50w,21/40h); z2 = (7/10w,18/50h); z3 = (29/50w,1/5h); z4 = (w-0.9pt,0);
+draw z1{dir -45}..{down}z2{down}..{dir -135}z3{dir -15}..z4;
+endchar;
+
+newchar(148,0.58,"una + g");
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (1/10w,3/4h); z4 = (1/6w,3/5h); z5 = (1/8w,17/80h);
+z6 = (1/5w,1/5h); z7 = 1/3[z6,z8];
+z8 = (8/9w,11/19h); z9 = (5/6w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+draw z4{dir 30}..z7..tension 2..z6..z5;
+draw z7..{dir 35}z8{dir -120}..{dir -75}z9;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+fill fullcircle scaled 1.2pt shifted (z4 + (0.19pt,-0.25pt));
+z1' = (9/20w,3/4h); z3' = (17/20w,3/4h); z2' = 3/5[z1',z3'] - (0,1/7h);
+pickup dflt_pen; draw z1'{dir -45}..z2'..z3';
+endchar;
+
+newchar(149,0.90,"una + gh");
+una(1/12w,1/8h,(1/2-1/18)*w,(3/4-1/8)*h);
+gha(1/2w,0,1/2w-0.9pt,3/4h);
+pickup dflt_pen; draw (9/19w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(150,0.65,"una + m");
+una(1/9w,1/5h,(2/3-1/15)*w,(3/4-1/5)*h);
+ma(3/5w,0,2/5w-0.9pt,31/120h,1.8,-0.5pt);
+pickup dflt_pen; draw (19/30w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(151,0.75,"ch + ch");
+matra(w,h);
+cha(1/8w,1/5h,(17/40-1/8)*w,(3/4-1/5)*h);
+cha(19/40w,0,21/40w-0.9pt,3/4h);
+endchar;
+
+newchar(152,0.75,"ch + chh");
+matra(w,h);
+cha(1/8w,1/5h,(17/40-1/8)*w,(3/4-1/5)*h);
+chha(19/40w,0,21/40w-0.9pt,3/4h);
+endchar;
+
+newchar(153,0.73,"ch + chh + b");
+matra(w,h);
+cha(1/8w,1/4h,(17/40-1/8)*w,(3/4-1/4)*h);
+chha(19/40w,1/15h,21/40w-0.9pt,(3/4-1/15)*h);
+ba(5/9w,-17/40d,1/4w,1/4h);
+endchar;
+
+newchar(154,0.65,"ch + ina");
+matra(w,h);
+cha(1/5w,3/9h,3/10w,(3/4-3/9)*h);
+ina(1/8w,0,7/8w-0.9pt,3/7h);
+endchar;
+
+newchar(155,0.95,"j + j");
+matra(w,h);
+ja(1/12w,11/50h,2/5w,(3/4-11/50)*h);
+ja(21/50w,0,23/50w,31/50h);
+jaleg(31/50w,0,19/50w-0.8pt,31/50h);
+top z1 = (12/50w,3/4h); z2 = (62/100w,31/50h);
+pickup pencircle xscaled 0.25pt yscaled 0.5pt;
+draw z1{dir -60}..{dir 15}z2;
+endchar;
+
+newchar(156,0.95,"j + j + b");
+matra(w,h);
+ja(1/12w,11/50h,2/5w,(3/4-11/50)*h);
+ja(21/50w,0,23/50w,31/50h);
+jaleg(31/50w,-1/30d,19/50w-0.6pt,1/30d + 31/50h);
+top z1 = (12/50w,3/4h); z2 = (62/100w,31/50h);
+pickup pencircle xscaled 0.25pt yscaled 0.5pt;
+draw z1{dir -60}..{dir 15}z2;
+z3 = (w-1.15pt,1/8h); z4 = (27/40w,-1/30h); z5 = (w-0.95pt,-3/5d);
+pickup dflt_pen;
+draw z3{z4-z3 rotated -3}..z4;
+draw z4{z5-z4 rotated -5}..{z5-z4 rotated 5}z5--z3;
+endchar;
+
+newchar(157,1.20,"j + jha");
+matra(79/100w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+ja(1/12w,0,(1/2-1/12)*w,3/4h);
+jaleg(13/50w,0,(1/2-1/4)*w,3/4h);
+jha(1/2w,0,1/2w-0.9pt,3/4h,1.05);
+endchar;
+
+newchar(158,0.75,"j + ina");
+matra(w,h);
+ja(1/10w,0,11/16w,3/4h);
+hump(59/100w,9/38h,2/5w-0.9pt,1/3h);
+top z1 = (2/5w,3/4h); z2 = (23/40w,4/9h);
+pickup dflt_pen; draw z1..z2;
+endchar;
+
+newchar(159,0.72,"j + b");
+matra(w,h);
+ja(1/10w,0,11/16w,3/4h);
+jaleg(2/5w,-3/8d,3/5w-0.7pt,3/8d + 3/4h);
+z1 = (w-1.5pt,1/5h); z2 = (1/2w,1/30h); z3 = (w-1.15pt,-1/2d);
+pickup dflt_pen; draw z1{z2-z1 rotated -4}..z2; draw z2{z3-z2 rotated -6}..z3;
+endchar;
+
+beginchar(160,0.80stwd#,stht#,stdp#); "ina + ch";
+numeric wd; wd = 11/20w+0.9pt;
+z1 = (wd-0.9pt,3/4h+0.3pt); z2 = (wd-0.9pt,0);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+z4 = (1/7wd,5/8h); z5 = (3/8wd,3/4h);
+z6 = (3/5wd,5/8h); z7 = (1/5wd,3/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4{dir 90}...{right}z5{right}..{down}z6{down}..{dir -160}z7;
+z2l + (0.1pt,-0.4pt) = z2r - (0.1pt,0.4pt) = z2;
+z7r + (0.1pt,-0.24pt) = z7l - (0.1pt,-0.24pt) = z7;
+penstroke z7e{right}..tension1.2..{dir -75}z2e;
+fill fullcircle scaled 1pt shifted (z4 + (0.33pt,0pt));
+hump(11/20w,1/4h,9/20w-1.1pt,9/20h);
+endchar;
+
+newchar(161,0.60,"ina + chh");
+z1 = (1/8w,13/20h); bot z2 = (3/10w,3/4h); z3 = (9/20w,13/20h);
+z4 = (1/8w,7/20h); z5 = (11/20w,8/20h); z5' = (26/40w,14/40h);
+z6 = (1/8w,1/8h); z7 = (w-0.5pt,-2/3d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{up}..{right}z2{right}..{down}z3{down}..{down}z4{down}..{dir 60}z5
+ {dir -20}..z5'..{left}z6{right}..tension 1.5..z7;
+hump(9/20w,1/2h,11/20w-0.9pt,(3/4-1/2)*h);
+fill fullcircle scaled 1.1pt shifted (z1 + (0.34pt,0.06pt));
+endchar;
+
+newchar(162,0.69,"ina + j");
+ja(1/10w,0,13/17w,3/5h);
+hump(9/20w,1/2h,11/20w-0.9pt,(3/4-1/2)*h);
+z1 = (1/7w,12/19h); z2 = (1/3w,3/4h); z3 = (1/3w+0.48pt,3/5h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z1{up}..{right}z2{right}..{dir -135}z3;
+z4 = (5/6w,9/20h); z5 = (4/5w,0);
+pickup dflt_pen;
+draw z4{dir -120}..tension 1.8..z5;
+fill fullcircle scaled 1.1pt shifted (z1 + (0.45pt,-0.18pt));
+endchar;
+
+newchar(163,0.62,"ina + jh");
+ina(1/8w,3/8h,73/100w,3/8h);
+jha(1/5w,0,53/100w,3/7h,5/6);
+endchar;
+
+newchar(164,0.57,"T + T");
+matra(w,h);
+Dha(1/4w,1/15h,3/4w-0.9pt,(3/4-1/15)*h);
+tiki(w,h,0);
+z1 = (7/10w,1/5h); z2 = (1/2w,-1/3d); z3 = (1/8w,1/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z1{dir -30}..{left}z2{left}..{dir 125}z3;
+endchar;
+
+newchar(165,0.50,"T + b");
+matra(w,h);
+Dha(1/6w,1/10h,5/6w-0.9pt,(3/4-1/10)*h);
+tiki(w,h,-1/12);
+ba(6/13w,-1/2d,1/2w-0.9pt,3/10h);
+endchar;
+
+newchar(166,0.90,"D + D");
+matra(w,h);
+Da(1/11w,1/4h,(2/5-1/12)*w,(3/4-1/4)*h);
+Da(21/50w,0,29/50w-0.9pt,3/4h);
+endchar;
+
+newchar(167,0.78,"N + T");
+pickup dflt_pen; draw ((6/13+1/35)*w,3/4h)..(w,3/4h);
+mna(1/11w,3/8h,(6/13-1/16)*w,3/8h,0);
+Dha(6/13w,0,7/13w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(168,0.61,"N + Th");
+mna(1/7w,39/80h,41/100w,(3/4-35/80)*h,-1);
+Tha(1/4w,0,3/4w-0.9pt,3/4h);
+endchar;
+
+beginchar(169,0.63stwd#,stht#,stdp#); "N + D";
+z1 = (1/5w,61/100h); z1' = (39/100w,3/4h);
+z2' = (60/100w,3/5h); z2 = (74/100w,76/100h);
+z4 = (18/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (23/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 100}..{right}z1'{right}..{dir -60}z2'{dir 60}..
+ {dir 45}z2{dir -35}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.40pt,0.2pt));
+endchar;
+
+newchar(170,0.52,"N + N");
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+mna(1/6w,3/8h,5/6w-0.9pt,3/8h,1/9);
+mna(1/6w,0,5/6w-0.9pt,3/8h,0);
+endchar;
+
+newchar(171,0.65,"N + m");
+pickup dflt_pen; draw (5/8w,3/4h)..(w,3/4h);
+mna(1/8w,3/8h,1/2w,3/8h,1/9);
+ma(5/8w,0,3/8w-0.9pt,3/8h,1,0);
+endchar;
+
+newchar(172,0.57,"t + t");
+matra(w,h);
+tta(1/7w,0,6/7w-0.9pt,3/4h-0.8pt);
+endchar;
+
+newchar(173,0.55,"t + t + b");
+matra(w,h);
+tta(1/7w,1/9h,6/7w-0.9pt,(3/4-1/9)*h-0.7pt);
+ba(5/11w,-1/3d,1/3w,3/10h);
+endchar;
+
+beginchar(174,0.62stwd#,stht#,stdp#); "t + th";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z4 = (1/7w,3/5h); z4' = (7/25w,3/4h);
+z5 = (9/20w,3/5h); z5' = (11/20w,3/4h);
+z6 = (13/20w,5/8h); z7 = (1/4w,3/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4{dir 100}...{right}z4'{right}..{dir -60}z5{dir 60}..
+ {dir 45}z5'{dir -50}..{down}z6{down}..{dir -160}z7;
+z2l + (0.1pt,-0.4pt) = z2r - (0.1pt,0.4pt) = z2;
+z7r + (0.1pt,-0.24pt) = z7l - (0.1pt,-0.24pt) = z7;
+penstroke z7e{right}..tension1.2..{dir -75}z2e;
+fill fullcircle scaled 1pt shifted (z4 + (0.33pt,0.2pt));
+endchar;
+
+newchar(175,0.58,"t + n");
+matra(w,h);
+ta_(1/10w,1/3h,9/10w-0.9pt,(3/4-1/3)*h);
+na(7/24w,0,17/24w-1.2pt,29/80h,0);
+endchar;
+
+newchar(176,0.60,"t + b");
+matra(w,h);
+ta_(1/10w,3/10h,9/10w-0.9pt,(3/4-3/10)*h);
+ba(4/9w,0,1/2w-0.9pt,3/8h);
+endchar;
+
+newchar(177,0.74,"t + m");
+matra(w,h);
+ta_(1/12w,1/3h,3/5w,(3/4 - 1/3)*h);
+ma(3/5w,0,2/5w-0.9pt,1/3h,1.2,-0.5pt);
+endchar;
+
+newchar(178,0.66,"t + r");
+matra(w,h);
+tra(1/8w,0,7/8w-0.9pt,2/3h);
+endchar;
+
+newchar(179,0.80,"t + r + u");
+matra(w,h);
+tra(1/10w,0,11/20w,2/3h);
+z1' = (13/20w,2/5h); z2' = (w-0.4pt,47/100h); z3' = (17/20w,3/5h);
+pickup pencircle scaled penth#;
+draw z1'{dir -60}..{up}z2'{up}..{left}z3';
+fill fullcircle scaled 1.3pt shifted (z3' + (-0.1pt,-0.46pt));
+endchar;
+
+newchar(180,0.87,"d + g");
+matra(21/50w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+da(1/10w,0,(19/50-1/10)*w,3/4h,0);
+ga(23/50w,3/9h,27/50w-0.9pt,(3/4-3/9)*h,0.8);
+endchar;
+
+newchar(181,0.84,"d + gh");
+matra(w,h);
+da(1/10w,0,(19/50-1/11)*w,3/4h,0);
+gha(23/50w,0,27/50w-0.9pt,3/4h);
+endchar;
+
+newchar(182,0.58,"d + d");
+matra(w,h)
+da(1/8w,11/40h,(9/20-1/8)*w,(3/4-11/40)*h,0);
+da(9/20w+0.1pt,0,1/2w-1.0pt,(3/4-1/40)*h,-33/50);
+endchar;
+
+newchar(183,0.62,"d + dh");
+matra(w,h);
+da_(1/7w,3/8h,(2/3-1/7)*w-0.07pt,3/8h);
+dha(1/4w,0,3/4w-0.9pt,1/2h);
+endchar;
+
+newchar(184,0.53,"d + b");
+matra(w,h);
+da_(1/6w,3/8h,5/6w-0.9pt,3/8h);
+ba(1/3w,0,2/3w-0.9pt,1/2h);
+endchar;
+
+newchar(185,0.62,"d + bh");
+matra(w,h);
+da(1/6w,7/25h,1/3w,(3/4-7/25)*h,0);
+bha(1/8w,0,7/8w-0.9pt,8/19h);
+endchar;
+
+newchar(186,0.62,"d + bh + r");
+matra(w,h);
+da(1/6w,7/25h,1/3w,(3/4-7/25)*h,0);
+bhra(1/8w,0,7/8w-0.9pt,8/19h);
+endchar;
+
+newchar(187,0.56,"d + m");
+matra(w,h)
+da(1/8w,1/7h,(23/40-1/8)*w,(3/4-1/7)*h,0);
+ma(23/40w-0.1pt,0,17/40w-0.8pt,1/4h,2.0,0);
+endchar;
+
+newchar(188,0.50,"dh + n");
+dha_(9/40w,3/14h,31/40w-0.9pt,(3/4-3/14)*h);
+na(1/6w,-1/4d,5/6w-0.9pt,3/8h,0);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(189,0.92,"dh + b");
+dha_(1/11w,0,(1/2-1/10)*w,3/4h);
+ba(1/2w,0,1/2w-0.9pt,3/4h);
+pickup dflt_pen; draw (1/2w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(190,0.78,"n + T");
+matra(w,h);
+na(1/8w,3/10h,(6/13-19/180)*w,3/8h,1/9);
+Dha(6/13w,0,7/13w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(191,0.63,"n + D");
+matra(w,h);
+na(1/10w,7/18h,(2/5-1/14)*h,1/3h,1/12);
+Da(1/8w,0,7/8w-0.9pt,3/4h);
+endchar;
+
+newchar(192,0.62,"n + t");
+matra(w,h);
+na_(1/5w,11/25h,4/5w-0.7pt,(3/4-11/25)*h);
+ta(1/10w,0,11/12w-0.9pt,3/8h,0.4);
+endchar;
+
+newchar(193,0.60,"n + t + u");
+matra(w,h);
+na_(1/10w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+tta(1/5w,-11/20d,4/5w-0.9pt,4/7h);
+endchar;
+
+newchar(194,0.60,"n + t + b");
+matra(w,h);
+na_(1/5w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+ta(1/10w,1/8h,11/12w-0.9pt,3/10h,0.4);
+ba(17/30w,-2/5d,1/4w,1/4h);
+endchar;
+
+newchar(195,0.62,"n + t + r");
+matra(w,h);
+na_(1/5w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+tra(1/7w,-1/4d,6/7w-0.9pt,21/40h);
+endchar;
+
+newchar(196,0.60,"n + th");
+matra(w,h);
+na_(1/10w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+ha(3/10w,-1/3d,7/10w-0.3pt,5/8h);
+endchar;
+
+newchar(197,0.68,"n + d");
+matra(w,h);
+na(1/10w,3/10h,(1/2-1/10)*w,3/8h,0.2);
+da(1/2w,0,1/2w-0.9pt,3/4h,0);
+endchar;
+
+newchar(198,0.62,"n + dh");
+matra(w,h);
+na(1/6w,3/9h,9/16w-0.38pt,3/8h,0.1);
+dha(5/17w,0,12/17w-0.9pt,19/39h);
+endchar;
+
+newchar(199,0.52,"n + n");
+matra(w,h);
+na(1/6w,3/10h,5/6w-0.9pt,3/8h,1/9);
+na(1/6w,0,5/6w-0.9pt,3/8h,1/9);
+endchar;
+
+newchar(200,0.55,"n + b");
+matra(w,h);
+na(1/7w,7/24h,6/7w-0.9pt,3/8h,1/6);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(201,0.65,"n + m");
+matra(w,h);
+na(1/8w,7/20h,1/2w,3/8h,1/15);
+ma(5/8w,0,3/8w-0.9pt,7/20h,1.1,0);
+endchar;
+
+newchar(202,0.70,"n + ss");
+matra(w,h);
+na(1/8w,9/28h,7/20w,3/12h,-1);
+ds(1/5w,0,4/5w-0.9pt,3/4h);
+endchar;
+
+newchar(203,0.80,"p + T");
+pickup dflt_pen; draw ((8/17+1/35)*w,3/4h)..(w,3/4h);
+pa(1/11w,9/20h,(8/17-1/16)*w,1/4*h,-1/10);
+Dha(8/17w,0,9/17w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(204,0.65,"p + t");
+pickup dflt_pen; draw ((4/5 + 1/7)*w-0.9pt,3/4h)..(w,3/4h);
+pa(1/7w,3/7h,4/5w-0.9pt,(3/4-3/7)*h,0.28);
+ta(1/11w,0,9/10w-0.9pt,3/8h,0.4);
+endchar;
+
+newchar(205,0.60,"p + n");
+pa(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+na(1/3w,0,2/3w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(206,0.60,"p + p");
+pa(1/7w,3/7h,6/7w-0.9pt,(3/4-3/7)*h,0.3);
+pa(1/7w,0,6/7w-0.9pt,(3/4-3/7)*h,0.05);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(207,0.60,"p + l");
+pa(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+la(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(208,0.70,"p + ss");
+matra(w,h);
+pa(1/8w,23/60h,33/100w,1/5h,-1.15);
+ds(1/5w,0,4/5w-0.9pt,3/4h);
+endchar;
+
+newchar(209,0.68,"ph + l");
+matra(w,h);
+pha_(9/40w,1/5h,31/40w-0.9pt,(3/4-1/5)*h);
+la(1/8w,-1/5d,5/9w-0.05pt,1/3h,1/3);
+endchar;
+
+beginchar(210,0.69stwd#,stht#,stdp#); "b + j";
+matra(w,h);
+top z3 = (8/20w,3/4h); z5 = (8/20w,9/24h);
+z6 = (21/36w,37/80h); z7 = (11/16w,3/10h); z8 = (1/2w,1/8h);
+rt z9 = (1/10w,4/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3--z5{right}..{dir30}z6
+ {dir -60}..{down}z7{down}..{left}z8{left}..{up}z9;
+rt z11 = z11l + (0.2pt,-0.2pt) = z11r - (0.2pt,-0.2pt) = (11/12w,3/5h);
+z12 = z12l + (0.15pt,0) = z12r - (0.15pt,0) = (8/9w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z3{dir -90}..{dir 15}z11;
+penstroke z11e{dir -120}..{dir -75}z12e;
+ba(1/8w,3/8h,(2/5-1/8)*w,3/8h);
+endchar;
+
+newchar(211,0.65,"b + d");
+matra(w,h);
+ba(1/10w,3/10h,(19/40-1/10)*w,3/7h);
+da(19/40w,0,21/40w-0.9pt,3/4h,0);
+endchar;
+
+newchar(212,0.65,"b + dh");
+matra(w,h);
+ba_(1/8w,3/8h,9/16w-0.22pt,3/8*h);
+dha(4/17w,0,13/17w-0.9pt,4/7h);
+endchar;
+
+newchar(213,0.54,"b + b");
+matra(w,h);
+ba_(1/7w,3/8h,6/7w-0.9pt,3/8*h);
+ba(4/17w,0,13/17w-0.9pt,4/7h);
+endchar;
+
+newchar(214,0.54,"b + l");
+matra(w,h);
+ba(1/4w,5/18h,3/4w-0.9pt,(3/4 - 5/18)*h);
+la(1/7w,0,6/7w-0.9pt,7/20h,1/9);
+endchar;
+
+newchar(215,0.70,"bh + r");
+matra(w,h);
+bhra(1/8w,0,7/8w-0.9pt,2/3h);
+endchar;
+
+newchar(216,0.60,"bh + l");
+matra(w,h);
+bha(1/8w,1/3h,7/8w-0.9pt,3/8h);
+la(4/25w,-1/5d,4/5w-0.9pt,3/9h,1/3);
+endchar;
+
+newchar(217,0.56,"m + n");
+matra(w,h);
+ma_(1/7w,11/25h,6/7w-0.7pt,(3/4-11/25)*h);
+na(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(218,1.00,"m + p");
+ma_(1/12w,1/2h,(3/7-1/10)*w,(3/4-13/25)*h);
+pa(4/9w,3/8h,5/9w-0.9pt,3/8h,1);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(37/100w,3/4h);
+endchar;
+
+newchar(219,0.95,"m + ph");
+matra(w,h);
+ma_(1/11w,12/25h,(2/5-1/30)*w,(3/4-12/25)*h);
+pha(3/7w,0,4/7w-0.9pt,14/25h,0.38);
+endchar;
+
+newchar(220,0.56,"m + b");
+matra(w,h);
+ma_(1/7w,11/25h,6/7w-0.65pt,(3/4-11/25)*h);
+ba(1/3w,0,2/3w-0.9pt,29/60h);
+endchar;
+
+newchar(221,0.64,"m + bh");
+matra(w,h);
+ma_(1/6w,11/25h,5/6w-1.2pt,(3/4-11/25)*h);
+bha(1/8w,0,7/8w-0.9pt,8/17h);
+endchar;
+
+newchar(222,0.62,"m + bh + r");
+matra(w,h);
+ma_(1/6w,11/24h,5/6w-1.2pt,(3/4-11/24)*h);
+bhra(1/8w,0,7/8w-0.9pt,19/40h);
+endchar;
+
+newchar(223,0.70,"m + m");
+matra(w,h);
+ma_(1/9w,11/25h,18/30w,(3/4-11/25)*h);
+ma(2/3w,0,1/3w-0.9pt,3/8h,1,1/15h);
+endchar;
+
+newchar(224,0.58,"m + l");
+matra(w,h);
+ma_(1/7w,11/25h,6/7w-0.7pt,(3/4-11/25)*h);
+la(1/6w,0,5/6w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(225,0.65,"l + k");
+matra(w,h);
+la(1/10w,3/10h,(3/4-1/10)*w-0.6pt,3/8h,0.2);
+ka(1/4w,0,3/4w-0.9pt,1/2h,3/10);
+endchar;
+
+newchar(226,0.60,"l + g");
+matra(w,h);
+la(1/8w,3/10h,7/8w-0.9pt,3/8h,1/9);
+ga(1/4w,0,3/4w-0.9pt,3/8h,0);
+endchar;
+
+newchar(227,0.60,"l + g + u");
+matra(w,h);
+la(1/8w,1/3h,7/8w-1.2pt,3/8h,1/10);
+gu(1/10w,-1/2d,19/20w,2/3h);
+endchar;
+
+newchar(228,0.80,"l + T");
+matra(w,h);
+la(1/11w,3/10h,(8/17-1/14)*w,3/8h,1/9);
+Dha(8/17w,0,9/17w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(229,0.72,"l + D");
+matra(w,h);
+la(1/10w,7/18h,(1/2-1/14)*h,1/3h,1/12);
+Da(1/4w,0,3/4w-0.9pt,3/4h);
+endchar;
+
+newchar(230,0.60,"l + p");
+matra(w,h);
+la(1/6w,9/26h,5/6w-0.9pt,3/8h,0);
+pa(1/7w,1/25h,6/7w-0.9pt,(3/4-7/17-1/25)*h,0.13);
+endchar;
+
+newchar(231,0.60,"l + b");
+matra(w,h);
+la(1/8w,1/4h,7/8w-0.9pt,3/8h,1/4);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(232,0.70,"l + m");
+matra(w,h);
+la(1/9w,3/10h,5/9w,3/8h,1/9);
+ma(2/3w,0,1/3w-0.9pt,3/10h,1.4,0);
+endchar;
+
+newchar(233,0.62,"l + l");
+matra(w,h);
+la(1/8w,3/10h,7/8w-0.9pt,3/8h,1/9);
+la(1/8w,0,7/8w-0.9pt,3/8h,1/9);
+endchar;
+
+newchar(234,0.85,"sh + ch");
+pickup dflt_pen; draw (11/20w,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/10w,3/4h);
+sha(1/10w,7/17h,(21/40 - 1/10)*w,(3/4-7/17)*h,0);
+cha(21/40w,0,19/40w-0.9pt,3/4h);
+endchar;
+
+newchar(235,0.88,"sh + chh");
+pickup dflt_pen; draw (11/20w,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/10w,3/4h);
+sha(1/10w,7/17h,(11/20 - 1/10)*w,(3/4-7/17)*h,0);
+chha(11/20w,0,9/20w-0.9pt,3/4h);
+endchar;
+
+newchar(236,0.60,"sh + n");
+sha(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+na(1/3w,0,2/3w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/7w,3/4h);
+endchar;
+
+newchar(237,0.72,"sh + m");
+pickup dflt_pen;
+draw (2/3w,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/9w,3/4h);
+sha(1/9w,7/17h,(2/3 - 1/9)*w,(3/4-7/17)*h,0.38);
+ma(2/3w,0,1/3w-0.9pt,3/10h,1.4,0);
+endchar;
+
+newchar(238,0.60,"sh + l");
+sha(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+la(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/7w,3/4h);
+endchar;
+
+newchar(239,0.60,"sh + b");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/7w,3/4h);
+sha(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.5);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(240,0.60,"s + k");
+matra(w,h);
+ms_(1/7w,3/7h,1/2w,(3/4-3/7)*h);
+ka(1/7w,0,6/7w-0.9pt,59/100h,2/5);
+endchar;
+
+newchar(241,0.82,"s + k + r");
+matra(w,h);
+ms_(1/9w,3/7h,(1/2-1/8)*w,(3/4-3/7)*h);
+tra(1/6w,-1/4d,(2/3-1/6)*w,23/40h);
+shnur(2/3w,1/4h,1/3w-0.3pt,1/9h);
+endchar;
+
+newchar(242,0.54,"s + T");
+matra(w,h); tiki(w,h,0);
+ms_(1/7w,3/8h,12/20w,(3/4-3/8)*h);
+_Dha(1/6w,0,5/6w-0.9pt,3/7h);
+endchar;
+
+newchar(243,0.61,"s + Th");
+matra(w,h);
+ms_(1/7w,31/80h,21/50w,(3/4-31/80)*h);
+Tha(1/4w,0,3/4w-0.9pt,3/4h);
+endchar;
+
+beginchar(244,0.80stwd#,stht#,stdp#); "s + N";
+pickup pencircle scaled penth#;
+numeric wd; wd = 11/20w + 0.9pt;
+z1 = (0,3/4h); z2=(wd-0.9pt,3/4h); draw z1..z2;
+top z3 = (wd-0.9pt,3/4h); z4 = (wd-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2wd,43/80h); z7 = (1/6wd,1/3h); rt z8 = (5/6wd,8/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7; draw (z6+(0,0.1pt))--z8;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 2.5 ..{dir -75}z4e;
+hump(11/20w,1/4h,9/20w-1.1pt,9/20h);
+endchar;
+
+newchar(245,0.88,"s + p");
+matra(3/10w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+ms_(1/11w,3/7h+0.19pt,(5/12-1/8)*w,(3/4-3/7)*h);
+pa(5/12w,3/8h,7/12w-0.9pt,(3/4-3/8)*h,1);
+endchar;
+
+newchar(246,0.82,"s + ph");
+matra(w,h)
+ms_(1/11w,3/7h,5/15w,(3/4-3/7)*h);
+pha(7/19w,0,12/19w-0.9pt,14/25h,0.38);
+endchar;
+
+newchar(247,0.60,"s + m");
+matra(w,h);
+ms_(1/7w,3/7h,1/2w,(3/4-3/7)*h);
+ma(21/40w,0,19/40w-0.9pt,2/5h,0.8,0.8pt);
+endchar;
+
+newchar(248,0.75,"ss + k");
+matra(w,h);
+ds_(1/10w,1/2h,2/3w,1/4h);
+ka(3/8w,0,5/8w-0.9pt,22/40h,3/10);
+endchar;
+
+newchar(249,0.84,"ss + k + r");
+matra(w,h);
+ds_(1/9w,13/25h,(2/3-1/9)*w,(3/4-13/25)*h);
+tra(1/6w,-1/4d,(2/3-1/6)*w,11/20h);
+shnur(2/3w,1/4h,1/3w-0.3pt,1/9h);
+endchar;
+
+newchar(250,0.75,"ss + k + l");
+matra(w,h);
+ds_(1/10w,1/2h,2/3w,1/4h);
+ka(2/5w,1/15h,3/5w-0.9pt,9/20h,3/10);
+la(9/41w,-13/20d,1/2w,1/3h,0);
+endchar;
+
+newchar(251,0.80,"ss + kh");
+matra(21/40w,h);
+ds_(1/10w,3/6h,19/40w,(3/4-3/6)*h);
+rtbar(w,21/20h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+z1 = (9/20w,3/10h); z2 = (3/5w,1/2h); z3 = (72/100w,18/50h);
+z4 = (27/50w,18/100h); z5 = (w-0.9pt,0);
+draw z1{right}..{up}z2{dir -45}..{down}z3{down}..{dir -135}z4{dir -15}..z5;
+fill fullcircle scaled 1.2pt shifted (z1 + (0,0.4pt));
+endchar;
+
+newchar(252,0.83,"ss + T");
+matra(w,h); tiki(w,h,1/4);
+ds(1/11w,1/6h,(11/20-1/11)*w,(3/4-1/6)*h);
+Dha(11/20w-0.25pt,0,9/20w-0.7pt,3/4h);
+endchar;
+
+newchar(253,0.68,"ss + t");
+matra(w,h);
+ds_(1/6w,9/19h,5/6w-0.6pt,(3/4-9/19)*h);
+ta(1/11w,0,10/11w-0.9pt,11/25h,0.2);
+endchar;
+
+newchar(254,0.60,"ss + t + u");
+matra(w,h);
+ds_(1/10w,12/25h,8/9w-0.9pt,(3/4-12/25)*h);
+tta(1/5w,-11/20d,4/5w-0.9pt,4/7h);
+endchar;
+
+newchar(255,0.65,"ss + t + r");
+matra(w,h);
+ds_(1/7w,13/25h,4/5w-0.5pt,(3/4-13/25)*h);
+tra(1/7w,-1/4d,6/7w-0.9pt,11/20h);
+endchar;
+
+newchar(16,0.60,"ss + th");
+matra(w,h);
+ds_(1/10w,12/25h,8/9w-0.9pt,(3/4-12/25)*h);
+ha(3/10w,-1/3d,7/10w-0.3pt,5/8h);
+endchar;
+
+newchar(17,0.63,"ss + n");
+matra(w,h);
+ds_(1/9w,9/19h,8/9w-0.6pt,(3/4-9/19)*h);
+na(1/4w,0,3/4w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(18,1.15,"ss + p");
+ds_(1/14w,10/20h,(9/20-1/15)*w,(3/4-10/20)*h);
+pa(1/2w,3/8h,1/2w-0.9pt,3/8h,1);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(41/100w,3/4h);
+endchar;
+
+newchar(19,1.15,"ss + p + l");
+ds_(1/14w,10/20h,(9/20-1/15)*w,(3/4-10/20)*h);
+pa(1/2w,3/8h,1/2w-0.9pt,3/8h,1);
+la(57/100w,0,43/100w-0.9pt,3/8h,0);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(41/100w,3/4h);
+endchar;
+
+newchar(20,1.02,"ss + ph");
+matra(w,h);
+pha(10/21w,0,11/21w-0.9pt,14/25h,0.38);
+ds_(1/11w,12/25h,2/5*w,(3/4-12/25)*h);
+endchar;
+
+newchar(21,0.63,"ss + b");
+matra(w,h);
+ds_(1/9w,9/19h,8/9w-0.6pt,(3/4-9/19)*h);
+ba(5/14w,0,9/14w-0.9pt,1/2h);
+endchar;
+
+newchar(22,0.77,"ss + m");
+matra(w,h);
+ds_(1/11w,9/19h,6/9w-0.2pt,(3/4-9/19)*h);
+ma(2/3w,0,1/3w-0.9pt,3/8h,1,(9/19-3/8)*h);
+endchar;
+
+newchar(23,0.63,"ss + l");
+matra(w,h);
+ds_(1/9w,9/19h,8/9w-0.6pt,(3/4-9/19)*h);
+la(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(24,0.5,"h + N");
+matra(w,h);
+ha_(1/8w,1/8h,7/8w-0.4pt,(3/4-1/8)*h);
+mna(1/6w,-1/3d,5/6w-1.2pt,3/11h,0);
+endchar;
+
+newchar(31,0.65,"h + n");
+matra(w,h);
+ha_(1/12w,0,8/13*w,3/4h);
+shnur(18/30w,17/40h,12/30w-0.5pt,1/6h);
+endchar;
+
+newchar(32,0.75,"h + m");
+matra(w,h);
+ha_ma(1/10w,0,9/10w-0.9pt,3/4h);
+endchar;
+
+newchar(62,0.5,"h + b");
+matra(w,h);
+ha_(1/8w,1/8h,7/8w-0.4pt,(3/4-1/8)*h);
+ba(1/3w,-1/3d,3/7w,3/10h);
+endchar;
+
+newchar(125,0.5,"h + l");
+matra(w,h);
+ha_(1/8w,1/8h,7/8w-0.4pt,(3/4-1/8)*h);
+la(1/6w,-1/3d,5/6w-0.9pt,3/10h,-0.15);
+endchar;
+
+newchar(127,0.98,"rh + g");
+matra(11/20w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+Da(1/12w,0,(11/20-1/12)*w,3/4h);
+ga(21/40w,3/10h,19/40w-0.9pt,(3/4-3/10)*h,0.65);
+fill fullcircle scaled 1.2pt shifted (15/40w,-1/3d);
+endchar;
+
+%%% End of bnjuk.mf
diff --git a/language/bengali/pandey/mf/bnkaar.mf b/language/bengali/pandey/mf/bnkaar.mf
new file mode 100644
index 0000000000..7fc2ac6e82
--- /dev/null
+++ b/language/bengali/pandey/mf/bnkaar.mf
@@ -0,0 +1,90 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnkaar.mf: METAFONT file that defines the Bengali vowel forms
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%
+% apandey 2002.03.27 commented out "a-kar" character; unneeded char
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%beginchar("a",0,stht#,stdp#); "a-kar";
+%endchar;
+
+beginchar("A",0.23stwd#,stht#,stdp#); "aa-kar";
+z1 = (1/2w,3/4h+0.3pt); z1' = (1/2w,3/4h); z2 = (1/2w,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z5 = (0,3/4h); lft z6 = (8/20w,19/32h); draw z5{dir -30}..{dir -60}z6;
+endchar;
+
+beginchar("i",0.22stwd#,stht#,stdp#); "hraswa i-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (1/2w,3/4h); z4=(1/2w,0); draw z3..z4;
+z5 = (1/4w,7/8h); z6 = (1.3w,9/8h); z7 = (3w,7/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3..z5..{right}z6{right}..z7;
+endchar;
+
+beginchar("I",0.25stwd#,stht#,stdp#); "dirgha i-kar";
+z1 = (1/5w,3/4h); z2 = (w,3/4h); z3 = (3/5w,3/4h); z4 = (3/5w,0);
+z5 = (-3/4w,9/8h); z6 = (-9/5w,h); z7 = (-3/4w,7/8h); z8 = (-1/5w,3/4h);
+pickup pencircle scaled penth#;
+draw z1..z2; draw z3..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z3{up}..{left}z5{left}..{down}z6{down}..{right}z7{right}..{dir -120}z8;
+endchar;
+
+beginchar("u",0stwd#,stht#,stdp#); "hraswa-u-kar";
+z1 = (w-0.9pt,0); z2 = (w-0.9pt,-9/20d); z3 = (w-1.8pt,-4/5d);
+z4 = (w-2.8pt,-1/2d); z5 = (w-2.0pt,-1/5d); z6 = (w+1.2pt,-7/5d);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 30;
+draw z1{down}..z2..{left}z3{left}..{up}z4{up}..{right}z5{right}..z2..tension 2..z6;
+endchar;
+
+beginchar("U",0stwd#,stht#,stdp#); "dirgha-u-kar";
+z1 = (w-0.9pt,0); z2 = (w-2.6pt,-9/20d);
+z3 = (w-0.7pt,-2/3d); z4 = (w+1.5pt,-7/5d);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 30;
+draw z1{left}..{down}z2{down}..{dir 20}z3--z4;
+endchar;
+
+beginchar("W",0stwd#,stht#,stdp#); "ri-kar";
+z1 = (w-0.9pt,0); z2 = (w-2.1pt,-1/3d); z3 = (w,-d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2--z3;
+endchar;
+
+beginchar("e",0.32stwd#,stht#,stdp#); "e-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z4 = (1pt,3/8h); z3 = (w-0.4pt,3/4h); z5 = (w-0.1pt,0);
+draw z3..z4..{dir 15}z5;
+fill fullcircle scaled 1pt shifted (z5 + (-0.12pt,0.3pt));
+endchar;
+
+beginchar("E",0.32stwd#,stht#,stdp#); "oi-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z4 = (1pt,3/8h); z3 = (w-0.4pt,3/4h); z5 = (w-0.1pt,0);
+draw z3..z4..{dir 15}z5;
+fill fullcircle scaled 1pt shifted (z5 + (-0.12pt,0.3pt));
+z6 = (1/8w,31/32h); z7 = (-1/3w,11/10h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z3{dir 60}..{left}z6{left}...z7{dir 75};
+endchar;
+
+beginchar("o",0,stht#,stdp#); "o-kar";
+endchar;
+
+beginchar("O",0.25stwd#,stht#,stdp#); "ou-kar";
+z1 = (1/5w,3/4h); z2 = (w,3/4h); z3 = (3/5w,3/4h); z4 = (3/5w,0);
+pickup pencircle scaled 0.4pt;
+draw z1..z2; draw z3..z4;
+z7' = (3/5w,3/4h); z8' = (-3/4w,31/32h); z9' = (-9/5w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+endchar;
+
+%%% End of bnkaar.mf
diff --git a/language/bengali/pandey/mf/bnlig.mf b/language/bengali/pandey/mf/bnlig.mf
new file mode 100644
index 0000000000..5e637f2346
--- /dev/null
+++ b/language/bengali/pandey/mf/bnlig.mf
@@ -0,0 +1,121 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnlig.mf: METAFONT file that defines some special ligatures
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(25,0.75stwd#,stht#,stdp#); "ra + u";
+numeric wd; wd = 12/20w + 0.9pt;
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (wd-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6wd,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (wd-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (wd-0.9pt,3/4h);
+draw z3..z4;
+fill fullcircle scaled 0.9pt shifted (9/20wd,2/21h);
+z1' = (12/20w,2/5h); z2' = (w-0.8pt,47/100h); z3' = (16/20w,3/5h);
+pickup pencircle scaled penth#;
+draw z1'{dir -60}..{up}z2'{up}..{left}z3';
+fill fullcircle scaled 1.3pt shifted (z3' + (-0.1pt,-0.46pt));
+endchar;
+
+beginchar(26,0.70stwd#,stht#,stdp#); "ra + U";
+numeric wd; wd = 13/20w + 0.9pt;
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (wd-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6wd,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (wd-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (wd-0.9pt,3/4h);
+draw z3..z4;
+fill fullcircle scaled 0.9pt shifted (9/20wd,2/21h);
+z1' = (13/20w,1/2h) + (0.02pt,0); z2' = (16/20w,11/20h);
+z3' = (w-0.9pt,1/2h); z4' = (w-0.8pt,1/20h);
+pickup pencircle xscaled 0.5pt yscaled 0.3pt rotated -30;
+draw z1'..tension 4..z2'..tension 4..z3'{down}..tension 4..{dir -30}z4';
+endchar;
+
+beginchar(27,0.56stwd#,stht#,stdp#); "ha + u";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (1/6w,1/2h); z3' = (37/100w,13/20h);
+z4 = (3/5w,1/2h); z4' = (74/100w,13/20h); z5 = (6/7w,1/2h);
+lft z6 = (1/7w,9/32h); z7 = (w,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z3{dir 100}..{right}z3'{right}..{dir -60}z4{dir 60}..
+ {dir 45}z4'{dir -35}..{down}z5{down}..{dir 160}z6;
+penstroke z6e{dir -22}..{dir -45}z7e;
+fill fullcircle scaled 1.3pt shifted (z3 + (0.43pt,0.05pt));
+endchar;
+
+beginchar(28,0.67stwd#,stht#,stdp#); "ha + ri-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+numeric wd; wd = 14/18w;
+z3 = (3/10wd,3/4h); z4 = (1/3wd,3/5h); z5 = (5/6wd,1/2h);
+lft z6 = (1/8wd,5/16h); z7 = (wd,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+penstroke z6e{dir -30}..{dir -45}z7e;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+z1' = (13/20w,1/2h) + (0.02pt,0); z2' = (16/20w,11/20h);
+z3' = (w-0.9pt,1/2h); z4' = (w-0.8pt,0);
+pickup pencircle xscaled 0.5pt yscaled 0.3pt rotated -30;
+draw z1'..tension 4..z2'..tension 4..z3'{down}..tension 4..{dir -45}z4';
+endchar;
+
+beginchar(29,0.70stwd#,stht#,stdp#); "ga + u";
+z1 = (7/10w,3/5h); z2 = (74/100w,76/100h);
+z4 = (19/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (24/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2{dir -60}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+z2' = (9/20w,3/4h); z3' = (9/40w,12/20h);
+z4' = (18/40w,11/20h); z5' = (7/20w,8/20h);
+draw z1{dir 120}..{left}z2'{left}..{down}z3'{dir 30}..{down}z4'{down}..z5';
+endchar;
+
+beginchar(30,0.72stwd#,stht#,stdp#); "sha + u";
+z1 = (7/10w,3/5h); z2 = (74/100w,76/100h);
+z4 = (19/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (24/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2{dir -60}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+z4' = (1/10w,3/4h); z5' = (6/16w,20/31h);
+z6' = (13/25w,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4'{right}..{dir -60}z5'{dir 60}..{right}z6'{right}..{dir -60}z1;
+fill fullcircle xscaled 1.2pt yscaled 2.0pt rotated -45 shifted (z5' + (-0.50pt,-0.62pt));
+fill fullcircle xscaled 1.2pt yscaled 2.0pt rotated 45 shifted (z5' + (0.50pt,-0.62pt));
+endchar;
+
+%%% End of bnlig.mf
diff --git a/language/bengali/pandey/mf/bnligtbl.mf b/language/bengali/pandey/mf/bnligtbl.mf
new file mode 100644
index 0000000000..fe6f3b50e8
--- /dev/null
+++ b/language/bengali/pandey/mf/bnligtbl.mf
@@ -0,0 +1,36 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnligtbl.mf: METAFONT file that defines the ligature tables
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+% June 1998: Modifications by Jaijeet Roychowdhury, now useable with ITRANS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ligtable "a": "a" =: "A"; %% a + a = A
+ligtable "e": "e" =: "I"; %% e + e = I
+ligtable "o": "o" =: "U", "i" =: "E", "u" =: "O";
+ %% o + o = U, o + i = E, o + u = O
+ligtable "`": "`" =: oct"134"; %% ` + ` = ``
+ligtable "'": "'" =: oct"42"; %% ' + ' = "
+ligtable "-": "-" =: oct"173"; %% - + - = endash
+% jaijeet: next line changed
+ligtable oct"173": "-" =: "."; %% endash + - = emdash
+ligtable "r": "u" =: oct"31", "U" =: oct"32"; %% r + u = ru, r + U = rU
+ligtable "h": "u" =: oct"33", "W" =: oct"34"; %% h + u = hu, h + W = hW
+ligtable "g": "u" =: oct"35"; %% g + u = gu
+ligtable "S": "u" =: oct"36"; %% S + u = Su
+%ligtable ".": "." =: oct"74"; %% . + . = ..
+ligtable "|": "|" =: oct"74"; %% | + | = ..
+ligtable "k": oct"17" =: oct"205"; %% k + \rafala = \kr
+ligtable "t": oct"17" =: oct"262"; %% t + \rafala = \tr
+ligtable oct"262": "u" =: oct"263"; %% \tr + u = \tru
+ligtable oct"300": "u" =: oct"301", %% \nt + u = \ntu
+ oct"17" =: oct"303"; %% \nt + \rafala = \ntr
+ligtable "v": oct"17" =: oct"327"; %% v + \rafala = \vr
+ligtable oct"335": oct"17" =: oct"336"; %% \mv + \rafala = \mvr
+ligtable oct"342": "u" =: oct"343"; %% \lg + u = \lgu
+ligtable oct"360": oct"17" =: oct"361"; %% \ssk + \rafala = \sskr
+ligtable oct"370": oct"17" =: oct"371"; %% \sk + \rafala = \skr
+ligtable oct"375": "u" =: oct"376", %% \st + u = \stu
+ oct"17" =: oct"377"; %% \st + \rafala = \str
+
+%%% End of bnligtbl.mf
diff --git a/language/bengali/pandey/mf/bnmacro.mf b/language/bengali/pandey/mf/bnmacro.mf
new file mode 100644
index 0000000000..7ea26ae138
--- /dev/null
+++ b/language/bengali/pandey/mf/bnmacro.mf
@@ -0,0 +1,668 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnbanjon.mf: METAFONT file that defines various macros
+% for use in bnjuk.mf
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def newchar(expr code, char_width, char_descr) =
+beginchar(code,char_width*stwd#,stht#,stdp#); char_descr;
+enddef;
+
+def matra(expr w,h) =
+pickup dflt_pen;
+draw (0,3/4h)..(w,3/4h);
+enddef;
+
+def rtbar(expr w,h) =
+pickup dflt_pen;
+draw (w-0.9pt,0)..(w-0.9pt,3/4h);
+enddef;
+
+def na(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z; pair z[];
+z1 = (xoff + w, yoff + (overshoot + 1)*h); z2 = (xoff + w, yoff);
+z3 = (xoff + 0.040w, yoff + 2/3h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 25}..{down}z2;
+fill fullcircle scaled 0.5h shifted (z3 + (0.062w,-0.152h));
+endgroup
+enddef;
+
+def na_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z2 = (1/5w,4/9h); z3 = (11/15w,0); top z4 = (15/16w,h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z2{right}..{right}z3{right}..{dir 105}z4;
+fill fullcircle scaled 1.4pt shifted (z2 + (-0.02w,-0.19h));
+endgroup
+enddef;
+
+def ma(expr xoff, yoff, w, h, overshoot, another) =
+begingroup
+save z; pair z[];
+z1 = (xoff + w, yoff + (overshoot + 1)*h); z2 = (xoff + w, yoff);
+z3 = (xoff - 0.25w, yoff + 4/5h); z4 = (xoff, yoff + h + another);
+pickup dflt_pen; draw z1..z2; draw z4{dir -80}..{dir -100}(z3 + (0.25w,0));
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z2;
+fill fullcircle scaled 1.5pt shifted (z3 + (-0.02w,-0.152h));
+endgroup
+enddef;
+
+def la(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,(overshoot + 1)*h); z2 = (w,0);
+z3 = (w,1/2h); z4 = (3/4w,4/5h); z5 = (20/33w,11/20h);
+z6 = (7/24w,5/6h); z7 = (0,1/2h); z8 = (1/8w,4/15h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z3{dir 135}..{left}z4{left}..{dir -75}z5{dir 105}..{left}z6{left}
+ ..{down}z7{down}..{dir -15}z8;
+fill fullcircle scaled 1.2pt shifted (z8 + (0.042w,0.110h));
+endgroup
+enddef;
+
+def ds_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (0,1/6h); z2 = (1/8w,0); z3 = (6/15w,h);
+z4 = (17/20w,0); z5 = (9/10w,h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 60;
+draw z1..{right}z2{right}..{dir 75}z3{dir -75}..{right}z4{right}..{dir 135}z5;
+endgroup
+enddef;
+
+def ga(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,h+0.3pt); z2 = (w,-overshoot*h);
+pickup dflt_pen; draw z1..z2;
+rt z4 = (w,4/7h); z5 = (9/20w,h); rt z6 = (0,5/9h);
+z7 = (17/40w,11/40h); z8 = (16/50w,1/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z4{dir 120}..{left}z5{left}..{down}z6{dir 30}
+ ..{down}z7{down}..{dir -135}z8;
+endgroup
+enddef;
+
+def ba(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (w,h); z2 = (w,0); z3 = 1/8[z1,z2] - (0.015w,0); z4 = (0,1/2h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle scaled 0.5pt;
+draw z3{z4-z3 rotated -8}..z4;
+draw z4{right}.. tension 1.5 .. (z2 - (0.015w,0));
+endgroup
+enddef;
+
+def ba_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (w,h); z2 = (w,0); z3 = 1/8[z1,z2] - (0.015w,0);
+z4 = (0,8/24h); z5 = (1/3w,0);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle scaled 0.5pt;
+draw z3{z4-z3 rotated -8}..z4;
+draw z4..z5;
+endgroup
+enddef;
+
+def ma_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (1/7w,h); z2 = (1/5w,4/9h); z3 = (11/15w,0); top z4 = (15/16w,h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..{dir -120}z2{right}..{right}z3{right}..{dir 135}z4;
+fill fullcircle scaled 1.4pt shifted (z2 + (-0.10w,-0.12h));
+endgroup
+enddef;
+
+def pa(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,h+0.3pt); z2 = (w, -h * overshoot);
+pickup pencircle scaled 0.4pt; draw z1..z2;
+rt z4 = (w,19/40h); z5 = (9/20w,h); rt z6 = (0,2/3h);
+z7 = (1/5w,0); z8 = (19/24w,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4--z8{z8-z4}..{left}z5{left}..{dir -140}z6{dir 30}..{dir -140}z7;
+pickup pencircle xscaled 0pt yscaled 0.6pt rotated 50;
+draw z7--z8;
+endgroup
+enddef;
+
+def sha(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,h+0.3pt); z2 = (w,0); z3 = (w,-overshoot * h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z3;
+top z4 = (0,h+0.13pt); z5 = (11/30w,16/24h);
+top z6 = (16/25w,h); z7 = 1/2[z1,z2];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4{right}..{dir -60}z5{dir 60}..{right}z6{right}..{z7-z6}z7;
+fill fullcircle xscaled 1.3pt yscaled 2.3pt rotated -45 shifted (z5 + (-0.50pt,-0.62pt));
+fill fullcircle xscaled 1.3pt yscaled 2.3pt rotated 45 shifted (z5 + (0.50pt,-0.62pt));
+endgroup
+enddef;
+
+def cha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (0,h); z4 = (0,1/3h);
+z5 = (1/4w,1/16h); z6 = (w,16/27h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6{dir 165}..{dir 100}z3;
+endgroup
+enddef;
+
+def chha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (0,h); z4 = (0,5/9h); z5 = (1/8w,1/2h);
+z6 = (11/20w,3/4h); z7 = (26/40w,3/4h); z8 = (w,17/27h);
+z9 = (1/5w,1/3h); z10 = (w,0);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3..z4{down}..{right}z5{right}..{dir 80}z6{left}..{up}z3;
+draw z6{right}..z7..{down}z8{down}..{left}z9;
+draw z9{dir -25}..{dir -45}z10;
+endgroup
+enddef;
+
+def ta(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (2/3w,h); lft z4 = (w,7/15h);
+z5 = (3/4w,0); z6 = (1/4w,11/20h); z7 = (0,(1 + overshoot)*h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z6..z7;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endgroup
+enddef;
+
+def ta_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (3/5w,4/5h); lft z4 = (w,7/15h);
+z5 = (3/4w,0); z6 = (1/6w,1/2h); top z7 = (0,7/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z6..z7;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endgroup
+enddef;
+
+def dha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,2/3w,h);
+z1 = (2/3w,6/7h); z2 = (41/40w,5/6h); z3 = (w,1/25h);
+pickup pencircle xscaled 0.35pt yscaled 0.5pt;
+draw z1--z2{dir -95}..tension 1.5..{dir -85}z3;
+endgroup
+enddef;
+
+def ka(expr xoff, yoff, w, h, pos) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,2/3w,h);
+z1 = (2/3w,4/5h); z2 = (w,pos * h);
+draw z1{right}..{dir -120}z2;
+fill fullcircle scaled 1.1pt shifted (z2 + (-0.25pt,0.16pt));
+endgroup
+enddef;
+
+def ka_(expr xoff, yoff, w, h, pos) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba_(xoff,yoff,2/3w,h);
+z1 = (2/3w,4/5h); z2 = (w,pos * h);
+draw z1{right}..{dir -120}z2;
+fill fullcircle scaled 1.1pt shifted (z2 + (-0.25pt,0.16pt));
+endgroup
+enddef;
+
+def da(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (0,(1 + overshoot)*h); z4 = (0,17/50h);
+pickup dflt_pen; draw z3..z4;
+z5 = (9/8w,3/4h); z2 = 1/2[z4,z5] + (0,0.25pt);
+z6 = (w,0);
+pickup pencircle xscaled 0pt yscaled 0.5pt rotated 45;
+draw z4{z2-z4}..z2..{z5-z2}z5;
+pickup dflt_pen; draw z5{dir -105}..{dir -80}z6;
+endgroup
+enddef;
+
+def da_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (0,h); z2 = (0,0); z3 = (7/8w,1/2h); z4 = (w,1/3h); z5 = (w,0);
+z6 = 1/2[z2,z3] + (0,0.35pt);
+pickup dflt_pen; draw z1--z2{z6-z2}..{z3-z6}z3--z4--z5;
+endgroup
+enddef;
+
+def tiki(expr w,h,offshoot) =
+begingroup
+save z; pair z[];
+z1 = (w-0.7pt,3/4h); z2 = ((1 + offshoot)/2*w,31/32h);
+z3 = (offshoot*w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z1{dir 60}..{left}z2{left}..z3;
+endgroup
+enddef;
+
+def shnur(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (0,1/2h); z2 = (1/2w,h); z3 = (5/6w,0);
+pickup dflt_pen;
+draw z1..{right}z2{right}..{dir -120}z3;
+fill fullcircle scaled (3/5w) shifted (z3 + (-0.17*w,0.11*h));
+endgroup
+enddef;
+
+def ha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z4 = (1/4w,4/5h); z5 = (5/6w,2/3h);
+z6 = (1/10w,11/24h); z7 = (w,0);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z6{dir -30}..{dir -45}z7;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+endgroup
+enddef;
+
+def ha_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (2/10w,h); z4 = (1/4w,4/5h); z5 = (5/6w,2/3h);
+z6 = (1/10w,11/24h); z7 = (w,0);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+draw z6{dir -30}..{dir -45}z7;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+endgroup
+enddef;
+
+def mna(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,(overshoot + 1)*h); z2 = (w,0);
+z4 = (8/16w,h); z3 = (0.040w,4/9h); rt z5 = (w,2/3h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3{dir 100}..{right}z4{right}..{dir -55}z5;
+fill fullcircle scaled 0.4h shifted (z3 + (0.120w,0.050h));
+endgroup
+enddef;
+
+def tra(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (9/20w,8/15h); z2 = (4/5w,h); z3 = (w,8/9h);
+z4 = (w,0); z5 = (1/2w,1/7h);
+z6 = (1/6w,1/5h); z7 = (0,1/2h); z8 = (1/18w,5/7h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 0.263h shifted (z1 + (0.0887w,0.0713h));
+endgroup
+enddef;
+
+def Dha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top lft z3 = (0,h); lft z4 = (0,3/16h);
+z5 = (2/5w,1/20h); z6 = (w,16/27h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+endgroup
+enddef;
+
+def bha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (1/3w,5/8h); z4 = (6/7w,5/6h); z5 = (w,15/32h);
+z6 = (3/5w,0); z8 = (0,13/15h); z7 = (3/25w,7/16h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 15;
+draw z3{dir -29}..{dir 60}z4{dir -50}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z3 + (0.36pt,0.38pt));
+endgroup
+enddef;
+
+def Da(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (1/2w,h); z4 = (1/2w,6/11h); z5 = (11/20w,1/2h);
+z6 = (8/9w,7/10h); lft z7 = (w,5/12h);
+z8 = (23/40w,1/10h); z9 = (0,8/15h); z10 = (1/10w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+endgroup
+enddef;
+
+def ms_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (4/5w,h); z2 = (0,1/4h); z3 = (1/5w,0); z4 = (w,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z1{left}..{down}z2{down}..{right}z3{right}..{up}z4{up}..{left}z1;
+z5 = (1/3w,2/3h); z6 = (2/3w,3/10h); draw z5..z6;
+endgroup
+enddef;
+
+def pha_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (7/10w,4/5h); z4 = (7/10w,0); draw z3..z4;
+top rt z5 = (0,h); z6 = (1/3w,43/60h); z7 = (1/10w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+draw z7{right}..tension 1.5 ..{dir -75}(z4 - (0.08pt,0));
+lft z8 = (41/40w,14/27h); z9 = (w,1/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z8{down}..z9;
+fill fullcircle scaled 1pt shifted (z9 + (-0.20pt,0.20pt));
+endgroup
+enddef;
+
+def pha(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (7/10w,4/5*(1+overshoot)*h); z4 = (7/10w,0); draw z3..z4;
+top rt z5 = (1/7w,h); z6 = (11/40w,48/60h); z7 = (0w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+draw z7{right}..tension 1.5 ..{dir -75}(z4 - (0.08pt,0));
+lft z8 = (41/40w,(14/27+overshoot*3/4)*h); z9 = (w,(1/4+overshoot*3/4)*h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z8{down}..z9;
+fill fullcircle scaled 1pt shifted (z9 + (-0.20pt,0.20pt));
+endgroup
+enddef;
+
+def ds(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+pickup dflt_pen;
+top z3 = (w,h); z4 = (w,0); draw z3..z4;
+top z5 = (1/20w,h); rt z10 = (w,3/7h);
+z7 = (0,2/5h); z8 = (1/7w,14/50h);
+z9 - z10 = (z7 - z8); rt bot z6 = 3/5[z8,z9];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{right}..{down}z6;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z7..z8..z9..tension 1.4..z10;
+endgroup
+enddef;
+
+def _ds(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+pickup dflt_pen;
+top z3 = (w,h); z4 = (w,0); draw z3..z4;
+top z5 = (1/20w,h); rt z10 = (w,3/7h);
+z7 = (0,2/5h); z8 = (1/7w,14/50h);
+z9 - z10 = (z7 - z8); rt bot z6 = 3/5[z8,z9];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z7..z8..z9..tension 1.4..z10;
+endgroup
+enddef;
+
+def _Dha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top lft z3 = (2/5w,h); lft z4 = (0,3/6h);
+z5 = (1/2w,0); z6 = (w,20/27h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3..tension 2..z4{down}..z5..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+endgroup
+enddef;
+
+def Tha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (1/2w,h); z4 = (0,3/10h); z5 = (6/16w,1/12h);
+z6 = (w,1/2h); z7 = (3/8w,3/2h); z8 = (9/19w,19/12h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3{dir -75}..{dir -150}z4{down}..{right}z5{right}..{up}z6{up}
+ ..{dir 120}z3..{up}z7{up}..{dir 45}z8;
+endgroup
+enddef;
+
+def tta(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (1/5w,3/4h); z2 = (3/4w,h);
+z3 = (w,64/75h); z4 = (4/5w,3/5h); z5 = (w,28/75h);
+z6 = (3/5w,1/9h); z8 = (0,13/15h); z7 = (3/25w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 75}..{right}z2{right}..{down}z3{down}..{dir -135}z4
+{dir -40}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.3pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.1pt shifted (z1 + (0.39pt,0));
+endgroup
+enddef;
+
+def gha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (w,h); z4 = (w,0); pickup dflt_pen; draw z3..z4;
+z5 = (1/7w,h-0.05pt); z6 = (0,4/5h);
+z7 = (15/25w,7/10h); z8 = (1/9w,4/10h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z5{dir -120}..{down}z6{down}..{dir 30}z7--z8;
+draw z8{right}..tension 1.5 ..{dir -75}z4;
+endgroup
+enddef;
+
+def una(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (1/10w,h); z2 = (19/40w,76/93h); z3 = (25/29w,92/93h);
+z4 = (1/2w,h); z5 = (4/9w,1/2h); z6 = (19/40w,64/135h);
+z7 = (8/9w,2/3h); lft z8 = (w,11/25h); z9 = (23/40w,1/9h);
+z10 = (6/50w,4/9h); z11 = (0,13/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..tension 1.2..{right}z2{right}..tension 1.2..
+{up}z3{up}..{dir -130}z4{dir -130}..
+tension 2..z5--z6{dir 0}..{dir 60}z7{dir -60}..{down}z8{down}
+..{left}z9{left}..z10..z11;
+endgroup
+enddef;
+
+def khiyo_base(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (1/15w,h); z2 = (1/7w,4/5h); z3 = (1/2w,2/5h);
+z4 = (w-0.01pt,0.2pt); z5 = (w,h); z6 = (w,0);
+pickup dflt_pen; draw z5..z6;
+pickup pencircle xscaled 0.3pt yscaled 0.55 pt rotated 45;
+draw z1..{down}z2{dir 20}..{dir -130}z3{right}..{down}z4;
+fill fullcircle scaled 1.4pt shifted (z2 + (-0.055w,-0.07h));
+fill fullcircle scaled 1.4pt shifted (z3 + (-0.07w,-0.04h));
+endgroup
+enddef;
+
+def khiyo(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+khiyo_base(xoff,yoff,2/3w,h);
+top z1 = (17/40w,h); z2 = (2/3w,29/40h); z3 = (w,9/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6 pt;
+draw z1{dir -120}..{dir 15}z2{dir 15}..{dir -120}z3;
+fill fullcircle scaled 1.3pt shifted (z3 + (-0.090w,-0.00h));
+endgroup
+enddef;
+
+def bhra(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (1/3w,9/15h); z4 = (6/7w,6/7h); z5 = (w,8/11h); z6 = (w,0);
+z8 = (w,0); z9 = (1/2w,1/6h);
+z10 = (11/30w,1/6h); z11 = (1/15w,6/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 15;
+draw z3{dir -29}..{dir 60}z4..tension 3.5..z5--z6;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z8{dir 90}..{left}z9..z10{left}..z11;
+fill fullcircle scaled 1.4pt shifted (z3 + (0.36pt,0.38pt));
+endgroup
+enddef;
+
+def ja(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (8/20w,h); z4 = (4/21w,2/3h); z5 = (8/20w,1/2h);
+z6 = (23/36w,35/60h); z7 = (12/16w,19/50h); z8 = (1/2w,1/6h);
+rt z9 = (0,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir -135}..{down}z4{down}..{right}z5{right}..{dir30}z6
+ {dir -60}..{down}z7{down}..{left}z8{left}..{up}z9;
+endgroup
+enddef;
+
+def jaleg(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (0,h);
+rt z11 = (w,3/4h);
+z12 = (7/8w,0);
+pickup pencircle xscaled 0.25pt yscaled 0.5pt;
+draw z3{dir -90}..{dir 15}z11;
+pickup pencircle xscaled 0.2pt yscaled 0.45pt rotated 45;
+draw z11{dir -120}..tension 1.8..z12;
+endgroup
+enddef;
+
+def hump(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z9 = (0,2/5h); z13 = (0,3/5h); z11 = (8/9w,1/2h);
+z10 = (w,0); z12 = (w,h);
+pickup pencircle xscaled 0.25pt yscaled 0.45pt;
+draw z9{dir -60}..z10..z11;
+pickup pencircle xscaled 0.25pt yscaled 0.45pt;
+draw z13{dir 60}..z12..z11;
+fill fullcircle scaled 1.0pt shifted (z11 + (-0.15pt,0));
+endgroup
+enddef;
+
+def ina(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+tra(xoff,yoff,3/5w,h);
+hump(xoff+3/5w,yoff+1/3h,2/5w,3/5h);
+endgroup
+enddef;
+
+def jha(expr xoff, yoff, w, h, fract) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,7/10w,h);
+z1 = (7/10w,2/5h); z2 = (w,1/20h); z3 = (w,fract*h);
+pickup dflt_pen; draw z2..z3;
+draw z1{z2-z1 rotated -8}..z2;
+endgroup
+enddef;
+
+def dha_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,w,h);
+z8 = (1/2w,22/30h); z9 = (1/9w,9/10h); bot z10 = (9/30w,h);
+pickup pencircle scaled 0.35pt;
+draw z8{left}..{up}z9{up}..{right}z10;
+fill fullcircle scaled 1.0pt shifted (z10 + (0.1pt,-0.33pt));
+endgroup
+enddef;
+
+def gu(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[],z[]'; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (7/10w,3/5h); z2 = (74/100w,76/100h);
+z4 = (19/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (24/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2{dir -60}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+z2' = (9/20w,3/4h); z3' = (9/40w,12/20h);
+z4' = (18/40w,11/20h); z5' = (7/20w,8/20h);
+draw z1{dir 120}..{left}z2'{left}..{down}z3'{dir 30}..{down}z4'{down}..z5';
+endgroup
+enddef;
+
+def ha_ma(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+khiyo_base(xoff,yoff,3/4w,h);
+z2 = (3/8w,3/4h); z3 = (3/4w,3/4h);
+z4 = (w,27/40h); z5 = (w,1/10h);
+pickup pencircle scaled 0.5pt;
+draw z2{dir -15}..{dir 15}z3{dir 15}..z4{dir -95}..{dir -85}z5;
+endgroup
+enddef;
+
+%%% End of bnmacro.mf
diff --git a/language/bengali/pandey/mf/bnmisc.mf b/language/bengali/pandey/mf/bnmisc.mf
new file mode 100644
index 0000000000..1007b7e7d5
--- /dev/null
+++ b/language/bengali/pandey/mf/bnmisc.mf
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnmisc.mf: METAFONT file that defines some special symbols
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(12,0stwd#,stht#,stdp#); "hasanta";
+z1 = (w-0.9pt,-1/4d); z2 = (w+1pt,-5/4d);
+pickup pencircle scaled penth#; draw z1..z2;
+endchar;
+
+beginchar(13,0.25stwd#,stht#,stdp#); "ja-fala";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (5/6w,3/4h); z4 = (4/9w,7/17h); lft z5 = (0,0);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt;
+draw z3{dir -180}..tension 1.5 ..{dir -80}z4{dir -80}..{dir -170}z5;
+endchar;
+
+beginchar(14,0stwd#,stht#,stdp#); "ref";
+z1l + (0.4pt,0) = z1r - (0.4pt,0) = z1 = (-1.4pt,13/16h);
+z2l + (0.2pt,0) = z2r - (0.2pt,0) = z2 = (2.5pt,9/8h);
+penstroke z1e..z2e;
+endchar;
+
+beginchar(15,0stwd#,stht#,stdp#); "ra-fala";
+z1 = (w-0.9pt,1/10h); z2 = (w-0.9pt,-d/3); z3 = (w-2.5pt,-1/6d);
+z4 = (w-4.4pt,-1/6d); z5 = (w-5.6pt,1/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z1--z2{dir 135}..{left}z3..z4{left}..{up}z5;
+endchar;
+
+%%% End of bnmisc.mf
diff --git a/language/bengali/pandey/mf/bnpunct.mf b/language/bengali/pandey/mf/bnpunct.mf
new file mode 100644
index 0000000000..2914f1a8c5
--- /dev/null
+++ b/language/bengali/pandey/mf/bnpunct.mf
@@ -0,0 +1,203 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnpunct.mf: METAFONT file that defines the Bengali punctuation symbols
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(".",0.40stwd#,stht#,stdp#); "dnari (period)";
+z1 = (3/4w,3/4h); z2 = (3/4w,0);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+endchar;
+
+beginchar(60,0.50stwd#,stht#,stdp#); "double dnari";
+z1 = (1/3w,3/4h); z2 = (1/3w,0);
+z3 = (2/3w,3/4h); z4 = (2/3w,0);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45;
+draw z1..z2; draw z3..z4;
+endchar;
+
+beginchar("!",0.3stwd#,stht#,stdp#); "exclamation mark (bang)";
+pickup pencircle scaled 0.4pt;
+z1 = (1/2w,3/4h); z2 = (1/2w,1/6h); z3 = (1/2w,0);
+z1l + (0.2pt,0.1pt) = z1r + (-0.2pt,0.1pt) = z1;
+z2l + (0.1pt,-0.1pt) = z2r + (-0.1pt,-0.1pt) = z2;
+filldraw z1l..tension 3..z2l..z2..z2r..tension 3..z1r..z1..cycle;
+fill fullcircle scaled 1.2pt shifted z3;
+endchar;
+
+beginchar(",",0.3stwd#,stht#,stdp#); "comma";
+pickup pencircle scaled 0.5pt;
+z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+draw z1{dir -60}..{dir -130}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(";",0.3stwd#,stht#,stdp#); "semi colon";
+pickup pencircle scaled 0.5pt;
+z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+draw z1{dir -60}..{dir -130}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,1.8pt));
+endchar;
+
+beginchar(":",0.3stwd#,stht#,stdp#); "colon";
+z1 = (1/2w,1/6h); z2 = (1/2w,(3/4-1/6)*h);
+fill fullcircle scaled 1.5pt shifted z1;
+fill fullcircle scaled 1.5pt shifted z2;
+endchar;
+
+beginchar("`",0.3stwd#,stht#,stdp#); "backquote";
+pickup pencircle scaled 0.5pt;
+z1 = (1/3w,(3/4-1/9)*h); z2 = (3/5w,h);
+draw z1{dir 120}..{dir 50}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+endchar;
+
+beginchar("'",0.3stwd#,stht#,stdp#); "quote";
+pickup pencircle scaled 0.5pt;
+z1 = (2/3w,24/25h); z2 = (2/5w,(3/4-1/9-1/25)*h);
+draw z1{dir -60}..{dir -130}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(34,0.45stwd#,stht#,stdp#); "double quote";
+pickup pencircle scaled 0.5pt;
+z1 = (2/5w,29/30h); z2 = (1/5w,(3/4-1/9-1/30)*h);
+z1' = (4/5w,29/30h); z2' = (3/5w,(3/4-1/9-1/30)*h);
+draw z1{dir -60}..{dir -130}z2;
+draw z1'{dir -60}..{dir -130}z2';
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+fill fullcircle scaled 1.5pt shifted (z1' + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(92,0.45stwd#,stht#,stdp#); "double backquote";
+pickup pencircle scaled 0.5pt;
+z1 = (1/5w,(3/4-1/9)*h); z2 = (2/5w,h);
+z1' = (3/5w,(3/4-1/9)*h); z2' = (4/5w,h);
+draw z1{dir 120}..{dir 50}z2;
+draw z1'{dir 120}..{dir 50}z2';
+fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+fill fullcircle scaled 1.5pt shifted (z1' + (0.50pt,0.22pt));
+endchar;
+
+beginchar("#",0.55stwd#,stht#,stdp#); "hash";
+pickup pencircle scaled 0.5pt;
+z1 = (1/2w,3/4h); z2 = (1/4w,-2/3d);
+z1' = (3/4w,3/4h); z2' = (1/2w,-2/3d);
+draw z1--z2; draw z1'--z2';
+z3 = (1/8w,(1/4-1/30)*h); z4 = (7/8w,(1/4-1/30)*h);
+z3' = (1/8w,(1/2-1/10)*h); z4' = (7/8w,(1/2-1/10)*h);
+draw z3--z4; draw z3'--z4';
+endchar;
+
+beginchar("/",0.3stwd#,stht#,stdp#); "forward slash";
+pickup pencircle scaled 0.5pt;
+z1 = (7/8w,3/4h); z2 = (1/8w,-2/3d);
+draw z1--z2;
+endchar;
+
+beginchar("=",0.5stwd#,stht#,stdp#); "equality sign";
+pickup pencircle scaled 0.5pt;
+z3 = (1/8w,(1/4-1/30)*h); z4 = (7/8w,(1/4-1/30)*h);
+z3' = (1/8w,(1/2-1/10)*h); z4' = (7/8w,(1/2-1/10)*h);
+draw z3--z4; draw z3'--z4';
+endchar;
+
+beginchar("[",0.20stwd#,stht#,stdp#); "left square bracket";
+pickup pencircle scaled 0.1pt;
+z1=(w,h); z2 = (1/3w,h); z3 = (1/3w,-d); z4 = (w,-d);
+z1 - z1' = (0,0.5pt); z2 - z2' = (-0.5pt,0.5pt);
+z4 - z4' = (0,-0.5pt); z3 - z3' = (-0.5pt,-0.5pt);
+filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("]",0.20stwd#,stht#,stdp#); "right square bracket";
+pickup pencircle scaled 0.1pt;
+z1=(0,h); z2 = (2/3w,h); z3 = (2/3w,-d); z4 = (0,-d);
+z1 - z1' = (0,0.5pt); z2 - z2' = (0.5pt,0.5pt);
+z4 - z4' = (0,-0.5pt); z3 - z3' = (0.5pt,-0.5pt);
+filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("(",0.28stwd#,stht#,stdp#); "left parenthesis";
+pickup pencircle scaled 0.1pt;
+z1 = (8/9w,h); z3 = (8/9w,-d);
+z2 = (1/4w,1/3h); z2' = z2 + (0.5pt,0);
+filldraw z2'{up}..{dir 60}z1{dir -130}..{down}z2{down}
+ ..{dir -50}z3{dir 120}..cycle;
+endchar;
+
+beginchar(")",0.28stwd#,stht#,stdp#); "right parenthesis";
+pickup pencircle scaled 0.1pt;
+z1 = (1/9w,h); z3 = (1/9w,-d);
+z2 = (3/4w,1/3h); z2' = z2 - (0.5pt,0);
+filldraw z2'{up}..{dir 120}z1{dir -50}..{down}z2{down}
+ ..{dir -130}z3{dir 60}..cycle;
+endchar;
+
+beginchar("*",0.48stwd#,stht#,stdp#); "asterisk";
+numeric frac; frac = 1/8h;
+z1 = (1/2w,h); z2 = (1/2w,3/7h);
+z3 = (1/6w,h-frac); z4 = (5/6w,3/7h + frac);
+z5 = (1/6w,3/7h+frac); z6 = (5/6w,h - frac);
+pickup pencircle scaled 0.5pt;
+draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+
+beginchar("+",0.68stwd#,stht#,stdp#); "plus sign";
+z1 = (1/12w,3/8h); z2 = (11/12w,3/8h);
+z3 = (1/2w,3/4h); z4 = (1/2w,0);
+pickup pencircle scaled 0.5pt;
+draw z1--z2; draw z3--z4;
+endchar;
+
+beginchar("-",0.30stwd#,stht#,stdp#); "hyphen";
+z1 = (1/10w,3/8h); z2 = (9/10w,3/8h);
+z1 - z3 = (0,0.5pt); z2 - z4 = (0,0.5pt);
+pickup pencircle scaled 0.1pt;
+filldraw z1--z2--z4--z3--cycle;
+endchar;
+
+beginchar(123,0.60stwd#,stht#,stdp#); "endash";
+z1 = (0,3/8h); z2 = (w,3/8h);
+pickup pencircle scaled 0.25pt;
+draw z1--z2;
+endchar;
+
+beginchar(124,1.10stwd#,stht#,stdp#); "emdash";
+z1 = (0,3/8h); z2 = (w,3/8h);
+pickup pencircle scaled 0.25pt;
+draw z1--z2;
+endchar;
+
+beginchar("%",0.70stwd#,stht#,stdp#); "percent sign";
+z1 = (5/6w,h); z2 = (1/6w,-1/3d);
+pickup pencircle scaled 0.5pt;
+draw z1--z2;
+pickup pencircle xscaled 0.4pt yscaled 0.2pt;
+draw fullcircle xscaled 11/40w yscaled 1/2h shifted (1/4w,3/4h);
+draw fullcircle xscaled 11/40w yscaled 1/2h shifted (3/4w,-1/3d + 1/4h);
+z3 = (11/40w,h);
+pickup pencircle scaled 0.25pt;
+draw z3{dir -45}..{dir 45}z1;
+endchar;
+
+beginchar("?",0.45stwd#,stht#,stdp#); "Question mark";
+z1=(1/6w,3/5h); z2=(1/2w,3/4h); z3=(5/6w,3/5h);z4=(11/20w,11/30h);
+z5=(1/2w,1/7h);
+pickup pencircle xscaled 0.5pt yscaled 0.25pt rotated -25;
+draw z1{up}..{right}z2{right}..{down}z3{down}..{dir -135}z4..{down}z5;
+fill fullcircle scaled 1.1pt shifted (z5 - (0pt,1.3pt));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.37pt,-0.00pt));
+endchar;
+
+beginchar("$",0.65stwd#,stht#,stdp#); "bucks";
+z1 = (4/7w,h); z2 = (1/7w,-1/3d);
+pickup pencircle scaled 0.5pt;
+draw z1--z2;
+z3 = (4/7w,3/7h); z4 = (8/9w,3/7h);
+draw z3--z4;
+endchar;
+
+%%% End of bnpunct.mf
diff --git a/language/bengali/pandey/mf/bnr10.mf b/language/bengali/pandey/mf/bnr10.mf
new file mode 100644
index 0000000000..1160756b9b
--- /dev/null
+++ b/language/bengali/pandey/mf/bnr10.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnr10.mf: METAFONT file that defines the Bengali alphabet (nonslanted)
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+input bn;
+end;
+
+%%% End of bnr10.mf
diff --git a/language/bengali/pandey/mf/bnsl10.mf b/language/bengali/pandey/mf/bnsl10.mf
new file mode 100644
index 0000000000..ab611e5acb
--- /dev/null
+++ b/language/bengali/pandey/mf/bnsl10.mf
@@ -0,0 +1,30 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnsl10.mf: METAFONT file that defines the Bengali alphabet (slanted)
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+currenttransform := identity slanted 1/5;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 1/5;
+
+input bn;
+end;
+
+%%% End of bnsl10.mf
diff --git a/language/bengali/pandey/mf/bnswar.mf b/language/bengali/pandey/mf/bnswar.mf
new file mode 100644
index 0000000000..ae1faa1113
--- /dev/null
+++ b/language/bengali/pandey/mf/bnswar.mf
@@ -0,0 +1,162 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnswar.mf: METAFONT file that defines the Bengali vowels
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%
+% apandey 1999.05.29 repositioned "the letter a" from ASC 0 to ASC 97
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%beginchar(0,0.80stwd#,stht#,stdp#); "The letter a";
+beginchar(97,0.80stwd#,stht#,stdp#); "The letter a";
+pickup pencircle scaled penth#;
+numeric wd; wd = 37/40w;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+z5 = (3/8wd,3/5h); z6 = (19/25wd,2/5h); z7 = (3/4wd,3/10h);
+z8 = (11/20wd,1/8h); z9 = (1/12wd,13/20h); top z10 = (3/10wd,3/4h);
+z11 = (6/25wd,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{dir 25}..{down}z6{down}..z7..{left}z8{left}..z11..z9;
+draw z7{dir -60}..{dir -75}z4;
+pickup pencircle scaled 0.3pt;
+draw z10{dir -30}..{dir -75}(z5 + (0.25pt,0.2pt));
+fill fullcircle scaled 1.5pt shifted (z5 + (0.20pt,-0.45pt));
+endchar;
+
+beginchar(2,0.5stwd#,stht#,stdp#); "The letter hraswa-i";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (3/10w,3/4h); z4 = (1/3w,3/5h); z5 = (5/6w,1/2h);
+lft z6 = (1/8w,5/16h); z7 = (w,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+penstroke z6e{dir -30}..{dir -45}z7e;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+z10 = (w-0.7pt,3/4h); z8 = (1/2w,31/32h); z9 = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z10{dir 60}..{left}z8{left}...z9{dir 75};
+endchar;
+
+beginchar(3,0.60stwd#,stht#,stdp#); "The letter dirgha-i";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (1/10w,3/4h); z4 = (1/6w,3/5h); z5 = (1/8w,17/80h);
+z6 = (1/5w,1/5h); z7 = 1/3[z6,z8];
+z8 = (8/9w,9/16h); z9 = (5/6w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+draw z4{dir 30}..z7..tension 2..z6..z5;
+draw z7..{dir 35}z8{dir -120}..{dir -75}z9;
+z7' = (w-0.7pt,3/4h); z8' = (5/9w,31/32h); z9' = (0,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+fill fullcircle scaled 1.2pt shifted (z4 + (0.19pt,-0.25pt));
+endchar;
+
+beginchar(4,0.60stwd#,stht#,stdp#); "The letter hrashwa-u";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+z7' = (w-0.7pt,3/4h); z8' = (1/2w,31/32h); z9' = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+endchar;
+
+beginchar(5,0.60stwd#,stht#,stdp#); "The letter dirgha-u";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+z10' = z10 + (0.6pt,0); z11 = z9 + (0.8pt,0);
+draw (z8+(0.3pt,0)){left}..z10'..z11;
+z7' = (w-0.7pt,3/4h); z8' = (1/2w,31/32h); z9' = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+endchar;
+
+beginchar(6,0.67stwd#,stht#,stdp#); "The letter ri";
+z1 = (w-0.9pt,3/4h); z2 = (w-0.9pt,1/11h);
+z3 = (5/8w,3/4h); z4 = (5/8w,0); lft z5 = 4/7[z3,z4];
+pickup pencircle scaled penth#; draw z1..z2; draw z3..z4;
+draw z5{dir -45}..{dir -75}z2;
+rt z6 = (5/8w,13/20h); z7 = (1/6w,8/21h);
+pickup pencircle scaled 0.5pt;
+draw z6{z7-z6 rotated -8}..z7;
+z4 + (0,0.2pt) = z4l + (0.15pt,0) = z4r - (0.15pt,0);
+z7 = z7r + (0.2pt,-0.2pt) = z7l - (0.1pt,-0.27pt);
+penstroke z7e{right}.. tension 1.5 .. z4e;
+z8 = (1/2w-0.2pt,3/4h); z9 = (1/4w-0.1pt,31/50h); z10 = (1/10w,18/25h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z6--z8{dir -150}..{left}z9{left}..{up}z10;
+fill fullcircle scaled 1.2pt shifted (z10 + (0.47pt,0));
+endchar;
+
+beginchar(8,0.65stwd#,stht#,stdp#); "The letter e";
+z1 = (9/20w,2/5h); z2 = (19/25w,3/4h); z3 = (6/7w,2/3h);
+z4 = (6/7w,0pt); z5 = (1/2w,1/6h);
+z6 = (1/5w,1/5h); z7 = (1/8w,3/8h); z8 = (1/6w,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 1.4pt shifted (z1 + (0.47pt,0.38pt));
+endchar;
+
+beginchar(9,0.76stwd#,stht#,stdp#); "The letter oi";
+numeric wd; wd = 21/25w;
+z1 = (9/20wd,2/5h); z2 = (19/25wd,3/4h); z3 = (6/7wd,2/3h);
+z4 = (6/7wd,0pt); z5 = (1/2wd,1/6h);
+z6 = (1/5wd,1/5h); z7 = (1/8wd,3/8h); z8 = (1/6wd,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 1.4pt shifted (z1 + (0.47pt,0.38pt));
+z9 = (9/10w,11/14h); z10 = (7/20w,17/16h); z11 = (2/5w,9/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated -30;
+draw 2/7[z3,z4]{right}..z9..{up}z10{up}..z11;
+endchar;
+
+beginchar(10,0.58stwd#,stht#,stdp#); "The letter o";
+numeric wd; wd = w; z1 = (3/10wd,29/50h); z2 = (2/3wd,3/4h);
+z3 = (7/8wd,16/25h); z4 = (18/25wd,9/20h); z5 = (7/8wd,7/25h);
+z6 = (23/40wd,1/12h); z8 = (1/10wd,13/20h); z7 = (9/50wd,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 75}..{right}z2{right}..{down}z3{down}..{dir -135}z4
+{dir -40}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.39pt,0));
+endchar;
+
+beginchar(11,0.67stwd#,stht#,stdp#); "The letter ou";
+numeric wd;
+wd = 22/25*w; z1 = (3/10wd,3/5h); z2 = (2/3wd,3/4h);
+z3 = (7/8wd,16/25h); z4 = (18/25wd,9/20h); z5 = (7/8wd,7/25h);
+z6 = (23/40wd,1/12h); z8 = (1/10wd,13/20h); z7 = (9/50wd,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 75}..{right}z2{right}..{down}z3{down}..{dir -135}z4
+{dir -40}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.39pt,0));
+z9 = (7/8w,4/5h); z10 = (7/20w,17/16h); z11 = (2/5w,9/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated -30;
+draw (z4 - (0,0.2pt)){dir 30}..z9..{up}z10{up}..z11;
+endchar;
+
+%%% End of bnswar.mf
diff --git a/language/bengali/pandey/mf/xbnr10.mf b/language/bengali/pandey/mf/xbnr10.mf
new file mode 100644
index 0000000000..73d4aeeb01
--- /dev/null
+++ b/language/bengali/pandey/mf/xbnr10.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% xbnr10.mf: METAFONT supplemental characters for Bengali (nonslanted)
+% Created by: Anshuman Pandey <apandey@u.washington.edu>
+% Modified: Mar 27 2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+input xbnsupp;
+end;
+
+%%% End of xbnr10.mf
diff --git a/language/bengali/pandey/mf/xbnsl10.mf b/language/bengali/pandey/mf/xbnsl10.mf
new file mode 100644
index 0000000000..68d3f2e3f9
--- /dev/null
+++ b/language/bengali/pandey/mf/xbnsl10.mf
@@ -0,0 +1,30 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% xbnsl10.mf: METAFONT supplemental characters for Bengali (slanted)
+% Created by: Anshuman Pandey <apandey@u.washington.edu>
+% Modified: Mar 27 2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+currenttransform := identity slanted 1/5;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 1/5;
+
+input xbnsupp;
+end;
+
+%%% End of xbnsl10.mf
diff --git a/language/bengali/pandey/mf/xbnsupp.mf b/language/bengali/pandey/mf/xbnsupp.mf
new file mode 100644
index 0000000000..5d6198930f
--- /dev/null
+++ b/language/bengali/pandey/mf/xbnsupp.mf
@@ -0,0 +1,80 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% asextra.mf: METAFONT definitions for Assamese extension characters
+% Created by: Anshuman Pandey <apandey@u.washington.edu>
+% Last modified: Mar 27 2002
+%
+% apandey 2002.03.27 added "Assamese ra" at position 114 "r"
+% apandey 2002.03.27 added "Assamese va" at position 118 "v"
+% apandey 2002.03.27 added "Bengali lig thba" at position 76 "L"
+% apandey 2002.03.27 added "Bengali lig ndba" at position 80 "P"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input bnmacro;
+
+
+% th + ba
+newchar(76,0.48,"th + b");
+ha(1/10w,1/4h+0.2pt,2/3w+0.1pt,3/5h-0.1pt);
+pickup pencircle scaled 0.4pt;
+draw (5/6w,1/4h)..(5/6w,3/4h+0.2pt);
+draw(5/6w,3/4h)..(w,3/4h);
+ba(1/3w,-1/3d,1/2w,33/80h);
+endchar;
+
+
+% n + d + ba
+newchar(80,0.66,"n + d + b");
+matra(w,h);
+na(1/10w,(3/10+1/16)*h,(1/2-1/10)*w,5/16h,0.2);
+da(1/2w,1/5h,1/2w-0.9pt,3/7h,0);
+ba(21/40w+0.03pt,-1/4d,1/3w,8/20h);
+endchar;
+
+
+% Assamese ra
+beginchar(114,0.52stwd#,stht#,stdp#); "The letter Assamese ra"; % "r"
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+rt z8 = (5/6w,1/4h);
+z9 = (1/2w,43/80h);
+%draw (z9+(0,0.1pt))--z8;
+draw z8--z9;
+endchar;
+
+
+% Assamese va
+beginchar(118,0.52stwd#,stht#,stdp#); "The letter Assamese va"; % "v"
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+rt z8 = (2/3w,1/11h);
+z9 = (1/4w,1/4h);
+draw (z9+(0,0.1pt))--z8;
+endchar;
diff --git a/language/bengali/pandey/tfm/bnr10.tfm b/language/bengali/pandey/tfm/bnr10.tfm
new file mode 100644
index 0000000000..e72e1d04a2
--- /dev/null
+++ b/language/bengali/pandey/tfm/bnr10.tfm
Binary files differ
diff --git a/language/bengali/pandey/tfm/bnsl10.tfm b/language/bengali/pandey/tfm/bnsl10.tfm
new file mode 100644
index 0000000000..e72e1d04a2
--- /dev/null
+++ b/language/bengali/pandey/tfm/bnsl10.tfm
Binary files differ
diff --git a/language/bengali/pandey/tfm/xbnr10.tfm b/language/bengali/pandey/tfm/xbnr10.tfm
new file mode 100644
index 0000000000..535a3637ef
--- /dev/null
+++ b/language/bengali/pandey/tfm/xbnr10.tfm
Binary files differ
diff --git a/language/bengali/pandey/tfm/xbnsl10.tfm b/language/bengali/pandey/tfm/xbnsl10.tfm
new file mode 100644
index 0000000000..535a3637ef
--- /dev/null
+++ b/language/bengali/pandey/tfm/xbnsl10.tfm
Binary files differ
diff --git a/language/bengali/pandey/ubn.fd b/language/bengali/pandey/ubn.fd
new file mode 100644
index 0000000000..2ea1b0e10c
--- /dev/null
+++ b/language/bengali/pandey/ubn.fd
@@ -0,0 +1,36 @@
+% LaTeX2e font description file for "Bengali for TeX".
+% ====================================================
+%
+% This file contains the font definitions for the BNR family in the U
+% `user-defined / unknown' encoding. It is used by the LaTeX New Font
+% Selection Scheme, which is part of the standard distribution of
+% LaTeX2e.
+
+%\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesFile{ubn.fd}[2002/03/27 v2.0 Bengali font declarations]
+
+\DeclareFontFamily{U}{bn}{}
+
+\DeclareFontShape{U}{bn}{m}{n}{
+ <5><6><7> gen * bnr
+ <8> <9> gen * bnr
+ <10->bnr10 }{}
+
+\DeclareFontShape{U}{bn}{m}{sc}{ <-> ssub * bnr/m/n }{}
+\DeclareFontShape{U}{bn}{m}{it}{ <-> ssub * bnr/m/sl }{}
+\DeclareFontShape{U}{bn}{m}{itsc}{ <-> ssub * bnr/m/n }{}
+
+\DeclareFontShape{U}{bn}{m}{sl}{
+ <5><6><7> gen * bnsl
+ <8> <9> gen * bnsl
+ <10->bnsl10 }{}
+
+\DeclareFontShape{U}{bn}{m}{slsc}{ <-> ssub * bnr/m/sl }{}
+\DeclareFontShape{U}{bn}{bx}{n}{ <-> ssub * bnr/m/n }{}
+\DeclareFontShape{U}{bn}{bx}{sc}{ <-> ssub * bnr/m/n }{}
+\DeclareFontShape{U}{bn}{bx}{it}{ <-> ssub * bnr/m/sl }{}
+\DeclareFontShape{U}{bn}{bx}{itsc}{ <-> ssub * bnr/m/n }{}
+\DeclareFontShape{U}{bn}{bx}{sl}{ <-> ssub * bnr/m/sl }{}
+\DeclareFontShape{U}{bn}{bx}{slsc}{ <-> ssub * bnr/m/n}{}
+
+\endinput
diff --git a/language/bengali/pandey/ubnx.fd b/language/bengali/pandey/ubnx.fd
new file mode 100644
index 0000000000..886fe8ba08
--- /dev/null
+++ b/language/bengali/pandey/ubnx.fd
@@ -0,0 +1,36 @@
+% LaTeX2e font description file for "Bengali for TeX".
+% ====================================================
+%
+% This file contains the font definitions for the xbnrX family in the U
+% `user-defined / unknown' encoding. It is used by the LaTeX New Font
+% Selection Scheme, which is part of the standard distribution of
+% LaTeX2e.
+
+%\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesFile{uas.fd}[2002/03/27 v2.0 Bengali supplemental font declarations]
+
+\DeclareFontFamily{U}{bnx}{}
+
+\DeclareFontShape{U}{bnx}{m}{n}{
+ <5><6><7> gen * xbnr
+ <8> <9> gen * xbnr
+ <10->xbnr10 }{}
+
+\DeclareFontShape{U}{bnx}{m}{sc}{ <-> ssub * xbnr/m/n }{}
+\DeclareFontShape{U}{bnx}{m}{it}{ <-> ssub * xbnr/m/sl }{}
+\DeclareFontShape{U}{bnx}{m}{itsc}{ <-> ssub * xbnr/m/n }{}
+
+\DeclareFontShape{U}{bnx}{m}{sl}{
+ <5><6><7> gen * xbnsl
+ <8> <9> gen * xbnsl
+ <10->xbnsl10 }{}
+
+\DeclareFontShape{U}{bnx}{m}{slsc}{ <-> ssub * xbnr/m/sl }{}
+\DeclareFontShape{U}{bnx}{bx}{n}{ <-> ssub * xbnr/m/n }{}
+\DeclareFontShape{U}{bnx}{bx}{sc}{ <-> ssub * xbnr/m/n }{}
+\DeclareFontShape{U}{bnx}{bx}{it}{ <-> ssub * xbnr/m/sl }{}
+\DeclareFontShape{U}{bnx}{bx}{itsc}{ <-> ssub * xbnr/m/n }{}
+\DeclareFontShape{U}{bnx}{bx}{sl}{ <-> ssub * xbnr/m/sl }{}
+\DeclareFontShape{U}{bnx}{bx}{slsc}{ <-> ssub * xbnr/m/n}{}
+
+\endinput