summaryrefslogtreecommitdiff
path: root/language/bengali/mkbangtex
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/mkbangtex
Initial commit
Diffstat (limited to 'language/bengali/mkbangtex')
-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
5 files changed, 1414 insertions, 0 deletions
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