summaryrefslogtreecommitdiff
path: root/language/tamil/wntamil
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/tamil/wntamil
Initial commit
Diffstat (limited to 'language/tamil/wntamil')
l---------language/tamil/wntamil/README1
-rw-r--r--language/tamil/wntamil/readme.doc91
-rw-r--r--language/tamil/wntamil/tamdict.tex313
-rw-r--r--language/tamil/wntamil/tamdict.txt313
-rw-r--r--language/tamil/wntamil/tamil.mf2020
-rw-r--r--language/tamil/wntamil/tamilize.c323
-rw-r--r--language/tamil/wntamil/tamilmax.mf446
-rw-r--r--language/tamil/wntamil/tamilmax.tex369
-rw-r--r--language/tamil/wntamil/tmilize.c324
-rw-r--r--language/tamil/wntamil/wntamil.mf16
-rw-r--r--language/tamil/wntamil/wntml10.mf76
11 files changed, 4292 insertions, 0 deletions
diff --git a/language/tamil/wntamil/README b/language/tamil/wntamil/README
new file mode 120000
index 0000000000..ca39038b92
--- /dev/null
+++ b/language/tamil/wntamil/README
@@ -0,0 +1 @@
+readme.doc \ No newline at end of file
diff --git a/language/tamil/wntamil/readme.doc b/language/tamil/wntamil/readme.doc
new file mode 100644
index 0000000000..631aaea674
--- /dev/null
+++ b/language/tamil/wntamil/readme.doc
@@ -0,0 +1,91 @@
+\input tamilmax
+4/20/90
+
+** Brief notes on the use of the wntml Tamil-in-METAFONT font **
+
+Wntml was developed for a bilingual dictionary project which
+has now been in development for some six years. The project
+was begun on PCs using a romanized transcription with no
+attempts to represent Tamil script interactively. Existing
+facilities for producing Tamil output are based entirely on this
+less than optimal transcription of Tamil.
+
+Someone at liberty to begin anew, could use a much cleaner solution.
+The transcription scheme we are using is illustrated by the following chart.
+To view this chart in a meaningful way, run
+ tamilize readme.doc readme.tex
+then TeX and print the results. (You will need to have
+run METAFONT on wntml first, of course.)
+
+
+~ a aa i ii u uu e ee o oo ai au
+
+ka kaa ki kii ku kuu ke kee ko koo kai kau
+
+nga ngaa ngi ngii ngu nguu nge ngee ngo ngoo ngai ngau
+
+ca caa ci cii cu cuu ce cee co coo cai cau
+
+5a 5aa 5i 5ii 5u 5uu 5e 5ee 5o 5oo 5ai 5au
+
+8a 8aa 8i 8ii 8u 8uu 8e 8ee 8o 8oo 8ai 8au
+
+3a 3aa 3i 3ii 3u 3uu 3e 3ee 3o 3oo 3ai 3au
+
+ta taa ti tii tu tuu te tee to too tai tau
+
+na naa ni nii nu nuu ne nee no noo nai nau
+
+pa paa pi pii pu puu pe pee po poo pai pau
+
+ma maa mi mii mu muu me mee mo moo mai mau
+
+ya yaa yi yii yu yuu ye yee yo yoo yai yau
+
+ra raa ri rii ru ruu re ree ro roo rai rau
+
+la laa li lii lu luu le lee lo loo lai lau
+
+va vaa vi vii vu vuu ve vee vo voo vai vau
+
+7a 7aa 7i 7ii 7u 7uu 7e 7ee 7o 7oo 7ai 7au
+
+9a 9aa 9i 9ii 9u 9uu 9e 9ee 9o 9oo 9ai 9au
+
+6a 6aa 6i 6ii 6u 6uu 6e 6ee 6o 6oo 6ai 6au
+
+2a 2aa 2i 2ii 2u 2uu 2e 2ee 2o 2oo 2ai 2au
+
+~
+
+Tamilize converts the transcribed tamil (using the tilde
+character as a delimiter for strings in Tamil script ---
+text is assumed in Roman until the first tilde; the vertical
+bar character is used to delimit strings which should be
+output as romanized Tamil using the usual dots-under-letters
+and other customary diacritics for Indic) into a series of
+TeX macros, each of which prints a single
+Tamil grapheme. Tamil graphemes generally correspond to
+syllables, so essentially Tamilize is scanning its input
+for syllables and invoking a predetermined macro for
+each syllable. The current version of Tamilmax, in
+which the syllable macros are defined, catcodes Ctrl-A
+as equivalent to backslash, and Tamilize uses Ctrl-A as
+the command character for all the Tamil syllable macros.
+With an editor which can hide control characters, the
+tamilized transliteration is still somewhat readable,
+and is useful for debugging output. Extensive editing of text
+should always take place in the un-tamilized transcription,
+with subsequent tamilizing before running TeX --- otherwise
+errors will almost certainly be introduced in the editing
+process.
+
+
+IF YOUR COPY OF WNTML INCLUDES A TAMDICT.TXT OR TAMDICT.TEX SAMPLE
+FILE, PLEASE BE AWARE THAT THE SAMPLE IS FROM A WORK IN PROGRESS:
+DO NOT QUOTE THE SAMPLE TEXT.
+
+
+7/10/91 Some TeXs on PCs gag when they see the control-As which tamilize
+introduces; users of such TeXs will prefer tmilize, which is just like
+tamilize but uses '\' instead of '^A'.
diff --git a/language/tamil/wntamil/tamdict.tex b/language/tamil/wntamil/tamdict.tex
new file mode 100644
index 0000000000..f3275447cc
--- /dev/null
+++ b/language/tamil/wntamil/tamdict.tex
@@ -0,0 +1,313 @@
+\input tamilmax
+\hsize=4in
+\font\norm=cmr10
+\font\roman=cmr10
+\font\vclass=cmr7
+\font\glossy=cmti10
+\font\emphatic=cmb10
+\font\transcribe=cmss10
+\norm
+\newif\ifnewentry
+\def\hw#1{\par\medskip{\emphatic #1\hfil\break\newentrytrue}}
+\def\md#1#2{{\emphatic\ifnewentry\hbox to 25pt{\hfil}\newentryfalse\fi(#1)} #2}
+\def\rt#1{,\ {\transcribe #1}}
+\def\vc#1{,\ {\vclass #1}}
+\def\eg#1{,\ {\glossy #1}}
+\def\syn#1#2{\ $\mapsto$ #1: #2}
+\def\wtvc#1{,\ {\vclass #1}}
+\hw{fascinated, be}
+ \md{1}{{\btam sokku}\etam }\rt{|sokku|}\vc{3 intr}
+ \eg{be charmed, enchanted or absorbed in}
+ \syn{1}{{\btam mayangku}\etam }\wtvc{3 i}
+ \md{2}{{\btam mayangku}\etam }\rt{|mayangu|}\vc{3 intr}
+ \eg{be charmed or enchanted; be enamoured; be confused}
+ \md{3}{{\btam vasappaTu}\etam }\rt{|vasa-pa8u|}\vc{4 intr}
+ \eg{be captivated or enchanted; come under the power or influence of; lose oneself in}
+ \syn{1}{{\btam vayappaTu}\etam }\wtvc{4i}.
+\hw{fashion}
+ \md{1}{{\btam sey}\etam }\wtvc{1t}\rt{|seyyi|}\vc{2b tr}
+ \eg{make; form; shape s.t. out of s.t. else}
+ \syn{1}{{\btam puNai}\etam }\wtvc{2t}
+ \md{2}{{\btam amaittukkoL}\etam }\wtvc{1t}\rt{|a8p8 pa33u|}\vc{3 tr}
+ \eg{adapt}.
+\hw{fashionable, be}
+ \md{1}{{\btam naakarikamaaka iru}\etam }\wtvc{7i}
+ \eg{be stylish, conforming to the fashion; be liked by people of fashion}
+ \syn{1}{{\btam xpaaSaNaaka iru}\etam }\rt{|fae4anaa iru|}\vc{7 intr}
+ \syn{2}{{\btam sTailaaka iru}\etam }\rt{|s8aylaa iru|}\vc{7 intr}.
+\hw{fast}
+ \md{1}{{\btam saappiTaamal iru}\etam }\rt{|saappi8aame iru|}\vc{7 intr}
+ \eg{deliberately go without food; fast temporarily}
+ \md{2}{{\btam paTTiNi keTa}\etam }\rt{|pa8ni ke8a|}\vc{7 intr}
+ \eg{go without food; abstain from food}
+ \md{3}{{\btam uNNNNaaviratam iru}\etam }\rt{|u33aaviradam iru|}\vc{7 intr}
+ \eg{abstain from food, as a religious duty or for political and other reasons}
+ \md{4}{{\btam nooNpu iru}\etam }\wtvc{7i}
+ \eg{go without any or certain kinds of food, as a religious duty}
+ \syn{1}{{\btam upavaacam iru}\etam }\wtvc{7i}.
+\hw{fast, be}
+ \md{1}{{\btam veekamaaka iru}\etam }\rt{|veehamaa iru|}\vc{7 intr}
+ \eg{be rapid, quick, speedy}
+ \syn{1}{{\btam virai}\etam }\wtvc{2i}
+ \md{2}{{\btam veekamaaka ooTu}\etam }\rt{|veehamaa oo8u|}\vc{3 intr}
+ \eg{(of a watch, clock) be in advance; be ahead of time; run rapidly or quickly}
+ \md{3}{{\btam uRutiyaaka iru}\etam }\wtvc{7i}
+ \eg{be firm; be firmly tied, as a knot; be strong or secure}
+ \md{4}{{\btam uutaariyaaka iru}\etam }\rt{|uudaariyaa iru|}\vc{7 intr}
+ \eg{be a spendthrift; lead a carefree, wild life}.
+\hw{fast, become}
+ \md{1}{{\btam uRutiyaaku}\etam }\wtvc{3i}
+ \eg{become firm, strong or secure}.
+\hw{fasten}
+ \md{1}{{\btam kaTTu}\etam }\rt{|ka88u|}\vc{3 tr}
+ \eg{bind; pack; tie up, as an animal to a peg}
+ \md{2}{{\btam muuTu}\etam }\rt{|muu8u|}\vc{3 tr}
+ \eg{close, as a window, a door, a box}
+ \md{3}{{\btam aTai}\etam }\rt{|a8e|}\vc{6 tr}
+ \eg{shut, as a window or door; shut animals up in a fold; put s.t. or s.o. in a cage or enclosure}
+ \md{4}{{\btam puuTTu}\etam }\rt{|puu88u|}\vc{3 tr}
+ \eg{lock up, as a door or a box}
+ \md{5}{{\btam pooTu}\etam }\rt{|poo8u|}\vc{4 tr}
+ \eg{make secure, as a shirt with buttons, a door with a bolt}
+ \syn{1}{{\btam maaTTu}\etam }\rt{|maa88u|}\vc{3 tr}
+ \eg{hook s.t.}
+ \md{6}{{\btam taaZ iTu}\etam }\wtvc{4t}
+ \eg{bolt, as the door, window, etc.}
+ \md{7}{{\btam poruttu}\etam }\wtvc{3t}
+ \eg{fix; attach firmly; attach s.t. to s.t. else, as sewing buttons on to a shirt, fixing a lock to a door, etc.; fix (one's eyes) on s.t. or s.o.}
+ \md{8}{{\btam toTuttuvai}\etam }\rt{|to8uttu vayyi|}\vc{6b tr}
+ \eg{tie or fasten lightly; string together, as garlands, flowers, etc.}.
+\hw{fasten down}
+ \md{1}{{\btam kaTTu}\etam }\rt{|ka88u|}\vc{3 tr}
+ \eg{fasten to a horizontal surface; bind; tie; batten down}.
+\hw{fasten off}
+ \md{1}{{\btam piNNai}\etam }\rt{|po3e, po3e|}\vc{6 tr}
+ \eg{tie, as two pieces of thread by knotting}
+ \syn{1}{{\btam muTi}\etam }\rt{|mu8i|}\vc{6b tr}
+ \eg{tie as two pieces of thread by rolling the ends together}.
+\hw{fasten on}
+ \md{1}{{\btam piTittuk koL}\etam }\wtvc{1}\rt{|pi8iccikkoo|}\vc{4 tr}
+ \eg{seize; take a firm hold of; single s.t. or s.o. out for attack}
+ \st{{\btam naaN coNNataiyee avaN piTittuk koNNTaaN}\etam }
+ \sr{|naan sonnadayee aven pi{\d d}iccikki{\d t}{\d t}aan|}
+ \se{He fastened (or) seized upon what I said.}.
+\hw{fasten one's eyes on}
+ \md{1}{{\btam veRittup paar}\etam }\rt{|vericci paaru|}\vc{6 tr}
+ \eg{gaze at; focus on; stare at}
+ \syn{1}{{\btam veRi}\etam }\wtvc{6t}
+ \md{2}{{\btam kaNNkaNNaip pa{\roman d}i}\etam }\rt{|ka33e padi|}\vc{6b ta}
+ \eg{fix one's eyes, as on s.o. or s.t.}
+ \st{{\btam avaN eN miitu kaNNkaNNaip patittaaN}\etam }
+ \sr{|avan en meele ka{\d n}{\d n}e padiccaan|}
+ \se{He fixed his eyes on me.}.
+\hw{fasten up}
+ \md{1}{{\btam maaTTu}\etam }\rt{|maa88u|}\vc{3 tr}
+ \eg{fasten s.t. to a vertical surface}
+ \st{{\btam intap paTattai angkee maaTTu}\etam }
+ \sr{|indap pa{\d d}atte ange maa{\d t}{\d t}u|}
+ \se{Fasten this picture up there.}.
+\hw{fasten upon}
+ \md{1}{{\btam pattikkoL}\etam }\wtvc{1t}
+ \eg{sieze; take hold of}
+ \st{cf. fasten on}.
+\hw{fastened, be}
+ \md{1}{{\btam pati}\etam }\rt{|padi|}\vc{2b intr}
+ \eg{be fixed, as one's sight or attention upon s.t.; be coupled firmly, as two planks of wood in joining}
+ \md{2}{{\btam poruntu}\etam }\wtvc{3i}
+ \eg{be attached firmly; dovetail}
+ \md{3}{{\btam iNNai}\etam }\wtvc{2i}
+ \eg{be attached or joined; be tied or made fast}.
+\hw{fat}
+ \md{1}{{\btam paruttuviTu}\etam }\rt{|paruttu8u|}\vc{4 intr}
+ \eg{become fleshy, stout or heavy}
+ \syn{1}{{\btam paru}\etam }\wtvc{6i}
+ \md{2}{{\btam cataipiTittiru}\etam }\rt{|sade pi8icc-iru|}\vc{7 intr + dat}
+ \eg{put on flesh; become plump or heavy}
+ \syn{1}{{\btam catai pooTTiru}\etam }\rt{|sade poo88iru|}\vc{7 intr}
+ \md{3}{{\btam eTai kuuTu}\etam }\rt{|e8e kuu8u|}\vc{3 intr + dat}
+ \eg{gain weight}
+ \md{4}{{\btam taTittuviTu}\etam }\rt{|ta8icc-i8u|}\vc{4 ta}
+ \eg{become heavy or stout}
+ \syn{1}{{\btam taTi}\etam }\wtvc{6i}
+ \md{5}{{\btam koZuttiru}\etam }\rt{|ko7utt-iru|}\vc{7 intr}
+ \eg{be very fat; be fattened, as a animal, etc.; be thick or well-filled as a purse}
+ \syn{1}{{\btam koZa}\etam }\wtvc{6i}.
+\hw{fatal, be}
+ \md{1}{{\btam uyirukku aapattaaka iru}\etam }\rt{|uyirukku aabattaa iru|}\vc{7 intr}
+ \eg{be a danger or risk to one's life; cause danger to one's life}
+ \syn{1}{{\btam uyirukku aapattaaku}\etam }\rt{|uyirukku aabatt-aahu|}\vc{3b intr}
+ \syn{2}{{\btam  uyirukku apaayam viNNaivi}\etam }\wtvc{6ta}
+ \syn{3}{{\btam  uyirukku aapattu viNNaivi}\etam }\wtvc{6ta}
+ \md{2}{{\btam caavukkuk kaaraNNamaaka iru}\etam }\rt{|saavukku kaara3amaa iru|}\vc{7 intr}
+ \eg{bring about death; be the cause of s.o.'s death.}
+ \md{3}{{\btam naacamaakku}\etam }\rt{|naasam aakku|}\vc{3 tr}
+ \eg{destroy, ruin, cause misfortune}
+ \syn{1}{{\btam naacappaTuttu}\etam }\rt{|naasa-pa8uttu|}\vc{3 tr}
+ \syn{2}{{\btam naasamuTTu}\etam }\wtvc{3ta}
+ \md{4}{{\btam paaZaakku}\etam }\rt{|paa7-aakku|}\vc{3 tr}
+ \eg{cause ruin, destruction or failure}
+ \syn{1}{{\btam paaZpaTuttu}\etam }\rt{|paa7 pa8uttu|}\vc{3 tr}
+ \syn{2}{{\btam naasamaakku}\etam }\wtvc{3t}
+ \md{5}{{\btam vitivasamaaku}\etam }\rt{|vidivasam-aahu|}\vc{3b intr 3 pn}
+ \eg{be connected with fate or destiny; be fateful, as a meeting, an occurrence, a period}
+ \st{{\btam anta cantippu vitivacamaaNatu}\etam }
+ \sr{|anda sandippu vidivasamaanadu|}
+ \se{That meeting (or) encounter was fatal (fateful).}
+ \md{6}{{\btam talaivitiyaaku}\etam }\rt{|talevidi aahu|}\vc{3b intr 3pn}
+ \eg{be fated or destined; be so written}
+ \st{{\btam anta vipattu avaN talaiviti {\roman (}yaakum{\roman )}}\etam }
+ \sr{|anda vibattu avan talevidi (aahum)|}
+ \se{That accident occurred because of his fate; That accident was fated to occur to him. (both used usually in an unfavourable sense)}
+ \md{7}{{\btam keeTukaalam piTittiru}\etam }\rt{|kee8ukaalam pi8icc-iru|}\vc{7 intr + dat}
+ \eg{be in for a bad time; be on the road to ruin; be under bad stars}
+ \st{{\btam avaNukku keeTukaalam piTittirukkiRatu}\etam }
+ \sr{|avanukku kee{\d d}ukaalam pi{\d d}iccirukku|}
+ \se{Misfortune has caught up with him; (or) He is in for a bad time; he is jinxed.}.
+\hw{fatalistic, be}
+ \md{1}{{\btam vitiyee eNRu iru}\etam }\rt{|vidiyee-33u iru|}\vc{7 intr}
+ \eg{hold the attitude of fatality or the doctrine of fatalism; be resigned; have a negative attitude about s.t.}
+ \syn{1}{{\btam uuZvali eNRu iru}\etam }\wtvc{7i}
+ \md{2}{{\btam naTappatu naTakkaTTum eNRu iru}\etam }\rt{|na8appadu na8akka88um-33u iru|}\vc{7 intr}
+ \eg{hold the attitude that whatever will be will be; submit to circumstances as inevitable; submit passively to misfortune, calamity, etc.}
+ \syn{1}{{\btam {\roman (}kaTavuL{\roman )} viTTavaZi eNRu iru}\etam }\rt{|(ka8avu9) vi88ava7i-33u iru|}\vc{7 intr}.
+\hw{fateful, be}
+ \md{1}{{\btam vitivacamaaku}\etam }\rt{|vidivasam-aahu|}\vc{3b intr 3pn (pres \& fut only)}
+ \eg{be connected with fate or destiny; be fatal, as an event, a period, etc.}
+ \st{{\btam avaL taRkolai vitivacamaaTum}\etam }
+ \sr{|ava9 tarkolai vidivasam aahum|}
+ \se{Hers was a fateful suicide.}
+ \syn{1}{{\btam uuviNaiyaaku}\etam }\wtvc{3 3pn}
+ \md{2}{{\btam mukkiyamaaku}\etam }\rt{|mukkiyam aahu|}\vc{3b intr 3pn}
+ \eg{be important; be momentous}
+ \syn{1}{{\btam siRappaaku}\etam }\wtvc{3 3pn}
+ \syn{2}{{\btam viseevimaaku}\etam }\wtvc{3 3pn}.
+\hw{father}
+ \md{1}{{\btam uruvaakku}\etam }\rt{|uruvakku|}\vc{3 tr}
+ \eg{found, originate, as a doctrine, a sect, etc.; propound as a theory, a practice, a way of life}
+ \syn{1}{{\btam tooRRuvi}\etam }\wtvc{6t}
+ \syn{2}{{\btam uNNTaakku}\etam }\rt{|u38-aakku|}\vc{3 tr}.
+\hw{fathom}
+ \md{1}{{\btam aaZam kaNNTupiTi}\etam }\rt{|aa7am ka38u-pi8i|}\vc{6b ta}
+ \eg{find or measure the depth of river, sea, well, pit, crater, etc.}
+ \syn{1}{{\btam aaZam {\roman (}aaZattaik{\roman )} kaNNakkiTu}\etam }\wtvc{4ta}
+ \md{2}{{\btam aaZam paar}\etam }\rt{|aa7am paaru|}\vc{6 tr}
+ \eg{find or measure the depth of river, pit, etc.; test or examine s.o.'s learning, qualification, sincerity, etc.}
+ \md{3}{{\btam parintukoL}\etam }\wtvc{1t}\rt{|purinjikkoo|}\vc{4 tr}
+ \eg{understand, comprehend; get to the bottom of, as an event, a person's motive, etc.}
+ \syn{1}{{\btam aRi}\etam (or)? {\btam aaZankaRi}\etam }\wtvc{2t}.
+\hw{fatigue}
+ \md{1}{{\btam kaLaippu uNNTaakku}\etam }\rt{|ka9eppe u38-aakku|}\vc{3 ta}
+ \eg{cause fatigue; cause to feel fatigued}
+ \syn{1}{{\btam coorvu uNNTaakku}\etam }\wtvc{3ta}
+ \md{2}{{\btam kaLaippaTaiyac cey}\etam }\wtvc{1t}
+ \eg{cause to fatigue; cause to feel tired or weary}
+ \syn{1}{{\btam coorvaTaiyac cey}\etam (or) {\btam coorv}\etam }\wtvc{1t}. % synonym truncated?
+\hw{fatigued, be}
+ \md{1}{{\btam aluttup poo}\etam }\rt{|aluttup poo|}\vc{3b intr 3pn (usu + past only)}
+ \eg{become weary; become discouraged}
+ \st{{\btam eNakku aluttup pooyiRRu}\etam }
+ \sr{|enakku aluttu pooccu|}
+ \se{I am tired, fed up.}
+ \syn{1}{{\btam salittup poo}\etam }\wtvc{w. dat.}\rt{|saliccu poo|}\vc{3b intr (usu + past only)}
+ \syn{2}{{\btam aluttuviTu}\etam }\wtvc{4i 3 pn}
+ \syn{3}{{\btam salittuviTu}\etam }\wtvc{4i 3 pn}
+ \md{2}{{\btam kaLaittup poo}\etam }\rt{|ka9eccip poo|}\vc{3b intr 3pn + dat (usu + past}
+ \eg{become tired or wearied; become exhausted}
+ \syn{1}{{\btam soorntu poo}\etam }\rt{|soondu poo|}\vc{3 intr 3pn + dat (usu + past}
+ \syn{2}{{\btam ayarntu poo}\etam }\rt{|asandu poo|}\vc{3 intr 3pn + dat (usu past onl}
+ \md{3}{{\btam kaLaippaay iru}\etam }\rt{|ka9eppaa iru|}\vc{7 intr + dat}
+ \eg{be tired or exhausted; look or feel tired and weary}
+ \st{{\btam avaN kaLaippaay iruntaaN}\etam , {\btam avaNukku kaLaippaay iruntatu}\etam }
+ \sr{|avan ka9eppaa irundaan, avanukku ka9eppaa irundadu|}
+ \se{He was (or felt) fatigued.}
+ \syn{1}{{\btam coorvaay iru}\etam }\rt{|soorvaa iru|}\vc{7 intr + dat}
+ \md{4}{{\btam coorntuviTi}\etam }\rt{|soondu8u|}\vc{4 intr}
+ \eg{grow weary or exhausted; be tired and worn out}
+ \syn{1}{{\btam kaLaittuviTu}\etam }\rt{|ka9ecc-i8u|}\vc{4 ta}
+ \syn{2}{{\btam ayarntuviTu}\etam }\rt{|asandu8u|}\vc{4 intr}
+ \md{5}{{\btam ayarvuRu}\etam }\wtvc{1i}
+ \eg{be tired or weary}
+ \syn{1}{{\btam ayarvaTai}\etam }\wtvc{2i}
+ \syn{2}{{\btam kaLappaTai}\etam }\wtvc{2i}
+ \syn{3}{{\btam coorvaTai}\etam }\wtvc{2i}
+ \syn{4}{{\btam coorvuRu}\etam }\wtvc{1i}
+ \md{6}{{\btam iNaippaay iru}\etam }\wtvc{7i}
+ \eg{be short of breath or gasp because of over exhaustion; be weak and worn out}.
+\hw{fatten}
+ \md{1}{{\btam koZu}\etam }\rt{|ko7u|}\vc{6 intr}
+ \eg{grow fat; become plump}
+ \syn{1}{{\btam paruttuviTu}\etam }\rt{|paattu8u|}\vc{4 intr}
+ \md{2}{{\btam koZukka vai}\etam }\rt{|ko7ukka vayyi|}\vc{6b tr}
+ \eg{make fat; fatten up, as sheep for slaughter}
+ \md{3}{{\btam seZikkas sey}\etam }\wtvc{1t}
+ \eg{help grow better; nourish, as crop, people, etc.; enrich, as soil, ideas, etc.}
+ \syn{1}{{\btam seZikka vai}\etam }\wtvc{6t}.
+\hw{fatty, be}
+ \md{1}{{\btam kooZuppaay iru}\etam }\rt{|ko7uppaa iru|}\vc{7 intr}
+ \eg{contain excessive fat, as muscle, food, meat, soup, etc.}
+ \md{2}{{\btam koZuppas sattu uTaiyataay iru}\etam }\wtvc{7i}
+ \eg{contain nutrative fat, as foods etc.}
+ \syn{1}{{\btam koZuppus sattu noNNTiru }\etam }\wtvc{7i}.
+\hw{fatuous, be}
+ \md{1}{{\btam maTattaNamaaka iru}\etam }\rt{|ma8attanamaa iru|}\vc{7 intr}
+ \eg{be silly; be inane}
+ \syn{1}{{\btam peetaitataNamaaka iru}\etam }\wtvc{7i}
+ \md{2}{{\btam muTTaaLtaNamaaka iru}\etam }\rt{|mu88aa9tanamaa iru|}\vc{7 intr}
+ \eg{be foolish; be silly}
+ \syn{1}{{\btam maTattaNamaaka iru}\etam }\wtvc{7i}.
+\hw{fault}
+ \md{1}{{\btam tappu sol}\etam }\rt{|tappu sollu|}\vc{3c tr}
+ \eg{censure; blame; find fault with}
+ \syn{1}{{\btam tavaRu sol}\etam }\wtvc{3t}
+ \syn{2}{{\btam piZai sol}\etam }\wtvc{3t}
+ \md{2}{{\btam kuRRam sol}\etam }\rt{|kuttam sollu|}\vc{3c tr, ta}
+ \eg{find fault with; blame; criticise}
+ \syn{1}{{\btam kuRai sol}\etam }\rt{|kore sollu|}\vc{3c tr}
+ \syn{2}{{\btam piZai sol}\etam }\wtvc{3t}.
+\hw{faulty, be}
+ \md{1}{{\btam tappaaka iru}\etam }\rt{|tappaa iru|}\vc{7 intr 3pn}
+ \eg{be wrong; contain faults, mistakes or errors}
+ \syn{1}{{\btam piZaiyaay iru}\etam (and) {\btam tavaruk}\etam }\wtvc{7 3pn}
+ \md{2}{{\btam piZaiyaaka iru}\etam }\wtvc{7i 3pn}
+ \eg{be full of faults or defects}
+ \md{3}{{\btam kuRaipaaTu koNNTiru}\etam }\wtvc{7i}
+ \eg{contain faults or blemishes; be defective}.
+\hw{favour}
+ \md{1}{{\btam aatari}\etam }\rt{|aadari|}\vc{6b tr}
+ \eg{support, show favour to}
+ \syn{1}{{\btam aataravu kaaTTu}\etam }\rt{|aadaruvu kaa88u|}\vc{3 tr + dat}
+ \syn{2}{{\btam aataravu taa}\etam }\rt{|aadaravu taa|}\vc{2c ta + dat}
+ \st{{\btam avarkaL avaNai aakarittaarkaL}\etam , {\btam avarkaL avarukku aataravu koTuttaarkaL}\etam (or) {\btam tantaarkaL}\etam }
+ \sr{|avanga avane aadariccaanga, avanga avanukku aadaravu ku{\d d}uttaanga (or) tandaanga|}
+ \se{They gave him the benefit of the doubt; they favoured him.}
+ \md{2}{{\btam virumpu}\etam }\rt{|virumbu|}\vc{3 tr}
+ \eg{prefer; like; choose}
+ \st{{\btam naaN avaNai virumpukiReeN}\etam }
+ \sr{|naan avane virumbureen|}
+ \se{I like him.}
+ \syn{1}{{\btam piTi}\etam }\rt{|pi8i|}\vc{6b tr 3pn + dat}
+ \st{{\btam eNakku avaNNaip piTikkiRatu}\etam }
+ \sr{|enakku avane pi{\d d}ikkidu|}
+ \se{I like him.}
+ \md{3}{{\btam salukai kaaTTu}\etam }\rt{|saluhe kaa88u|}\vc{3 tr}
+ \eg{show partiality to; give unfair help or advantages to; give s.o. the benefit of the doubt}
+ \syn{1}{{\btam paTsa paatam kaaTTu}\etam }\rt{|pa8ca paadam kaa88u|}\vc{3 tr}
+ \syn{2}{{\btam ooravancaNai kaTTu}\etam }\wtvc{3ta}
+ \eg{act with partiality}
+ \syn{3}{{\btam ooravancaNai sey}\etam }\wtvc{1}\rt{|ooravanjane pa33u|}\vc{3 tr}
+ \md{4}{{\btam nalku}\etam }\wtvc{3t}
+ \eg{bestow, grant, give}
+ \syn{1}{{\btam aruL}\etam }\wtvc{3t}
+ \md{5}{{\btam aruLpuri}\etam }\wtvc{2ta}
+ \eg{patronise; grace; grant, as a prayer}
+ \syn{1}{{\btam aruL sey}\etam }\wtvc{1ta}
+ \md{6}{{\btam ottiru}\etam }\rt{|ott-iru|}\vc{7 tr}
+ \eg{resemble; be like or similar to}
+ \md{7}{{\btam caayalaaka iru}\etam }\rt{|saayalaa iru|}\vc{7 intr}
+ \eg{have the likeness of; show the same features of}
+ \syn{1}{{\btam caaTaiyaaka iru}\etam }\rt{|jaa8eyaa iru|}\vc{7 intr}
+ \st{{\btam antak kuZantai ammaaviN caayalaaka}\etam (or) {\btam caaTaiyaaka irukkiRatu}\etam }
+ \sr{|anda ko7ende ammaa(voo{\d d}a) saayalaa (or) jaadayaa irukku|}
+ \se{The baby favours her mother}
+\bye
+
diff --git a/language/tamil/wntamil/tamdict.txt b/language/tamil/wntamil/tamdict.txt
new file mode 100644
index 0000000000..caec2ed8fc
--- /dev/null
+++ b/language/tamil/wntamil/tamdict.txt
@@ -0,0 +1,313 @@
+\input tamilmax
+\hsize=4in
+\font\norm=cmr10
+\font\roman=cmr10
+\font\vclass=cmr7
+\font\glossy=cmti10
+\font\emphatic=cmb10
+\font\transcribe=cmss10
+\norm
+\newif\ifnewentry
+\def\hw#1{\par\medskip{\emphatic #1\hfil\break\newentrytrue}}
+\def\md#1#2{{\emphatic\ifnewentry\hbox to 25pt{\hfil}\newentryfalse\fi(#1)} #2}
+\def\rt#1{,\ {\transcribe #1}}
+\def\vc#1{,\ {\vclass #1}}
+\def\eg#1{,\ {\glossy #1}}
+\def\syn#1#2{\ $\mapsto$ #1: #2}
+\def\wtvc#1{,\ {\vclass #1}}
+\hw{fascinated, be}
+ \md{1}{~sokku~}\rt{|sokku|}\vc{3 intr}
+ \eg{be charmed, enchanted or absorbed in}
+ \syn{1}{~mayangku~}\wtvc{3 i}
+ \md{2}{~mayangku~}\rt{|mayangu|}\vc{3 intr}
+ \eg{be charmed or enchanted; be enamoured; be confused}
+ \md{3}{~vasappa8u~}\rt{|vasa-pa8u|}\vc{4 intr}
+ \eg{be captivated or enchanted; come under the power or influence of; lose oneself in}
+ \syn{1}{~vayappa8u~}\wtvc{4i}.
+\hw{fashion}
+ \md{1}{~sey~}\wtvc{1t}\rt{|seyyi|}\vc{2b tr}
+ \eg{make; form; shape s.t. out of s.t. else}
+ \syn{1}{~pu2ai~}\wtvc{2t}
+ \md{2}{~amaittukko9~}\wtvc{1t}\rt{|a8p8 pa33u|}\vc{3 tr}
+ \eg{adapt}.
+\hw{fashionable, be}
+ \md{1}{~naakarikamaaka iru~}\wtvc{7i}
+ \eg{be stylish, conforming to the fashion; be liked by people of fashion}
+ \syn{1}{~xpaa4a2aaka iru~}\rt{|fae4anaa iru|}\vc{7 intr}
+ \syn{2}{~s8ailaaka iru~}\rt{|s8aylaa iru|}\vc{7 intr}.
+\hw{fast}
+ \md{1}{~saappi8aamal iru~}\rt{|saappi8aame iru|}\vc{7 intr}
+ \eg{deliberately go without food; fast temporarily}
+ \md{2}{~pa88i2i ke8a~}\rt{|pa8ni ke8a|}\vc{7 intr}
+ \eg{go without food; abstain from food}
+ \md{3}{~u33aaviratam iru~}\rt{|u33aaviradam iru|}\vc{7 intr}
+ \eg{abstain from food, as a religious duty or for political and other reasons}
+ \md{4}{~noo2pu iru~}\wtvc{7i}
+ \eg{go without any or certain kinds of food, as a religious duty}
+ \syn{1}{~upavaacam iru~}\wtvc{7i}.
+\hw{fast, be}
+ \md{1}{~veekamaaka iru~}\rt{|veehamaa iru|}\vc{7 intr}
+ \eg{be rapid, quick, speedy}
+ \syn{1}{~virai~}\wtvc{2i}
+ \md{2}{~veekamaaka oo8u~}\rt{|veehamaa oo8u|}\vc{3 intr}
+ \eg{(of a watch, clock) be in advance; be ahead of time; run rapidly or quickly}
+ \md{3}{~u6utiyaaka iru~}\wtvc{7i}
+ \eg{be firm; be firmly tied, as a knot; be strong or secure}
+ \md{4}{~uutaariyaaka iru~}\rt{|uudaariyaa iru|}\vc{7 intr}
+ \eg{be a spendthrift; lead a carefree, wild life}.
+\hw{fast, become}
+ \md{1}{~u6utiyaaku~}\wtvc{3i}
+ \eg{become firm, strong or secure}.
+\hw{fasten}
+ \md{1}{~ka88u~}\rt{|ka88u|}\vc{3 tr}
+ \eg{bind; pack; tie up, as an animal to a peg}
+ \md{2}{~muu8u~}\rt{|muu8u|}\vc{3 tr}
+ \eg{close, as a window, a door, a box}
+ \md{3}{~a8ai~}\rt{|a8e|}\vc{6 tr}
+ \eg{shut, as a window or door; shut animals up in a fold; put s.t. or s.o. in a cage or enclosure}
+ \md{4}{~puu88u~}\rt{|puu88u|}\vc{3 tr}
+ \eg{lock up, as a door or a box}
+ \md{5}{~poo8u~}\rt{|poo8u|}\vc{4 tr}
+ \eg{make secure, as a shirt with buttons, a door with a bolt}
+ \syn{1}{~maa88u~}\rt{|maa88u|}\vc{3 tr}
+ \eg{hook s.t.}
+ \md{6}{~taa7 i8u~}\wtvc{4t}
+ \eg{bolt, as the door, window, etc.}
+ \md{7}{~poruttu~}\wtvc{3t}
+ \eg{fix; attach firmly; attach s.t. to s.t. else, as sewing buttons on to a shirt, fixing a lock to a door, etc.; fix (one's eyes) on s.t. or s.o.}
+ \md{8}{~to8uttuvai~}\rt{|to8uttu vayyi|}\vc{6b tr}
+ \eg{tie or fasten lightly; string together, as garlands, flowers, etc.}.
+\hw{fasten down}
+ \md{1}{~ka88u~}\rt{|ka88u|}\vc{3 tr}
+ \eg{fasten to a horizontal surface; bind; tie; batten down}.
+\hw{fasten off}
+ \md{1}{~pi3ai~}\rt{|po3e, po3e|}\vc{6 tr}
+ \eg{tie, as two pieces of thread by knotting}
+ \syn{1}{~mu8i~}\rt{|mu8i|}\vc{6b tr}
+ \eg{tie as two pieces of thread by rolling the ends together}.
+\hw{fasten on}
+ \md{1}{~pi8ittuk ko9~}\wtvc{1}\rt{|pi8iccikkoo|}\vc{4 tr}
+ \eg{seize; take a firm hold of; single s.t. or s.o. out for attack}
+ \st{~naa2 co22ataiyee ava2 pi8ittuk ko38aa2~}
+ \sr{|naan sonnadayee aven pi{\d d}iccikki{\d t}{\d t}aan|}
+ \se{He fastened (or) seized upon what I said.}.
+\hw{fasten one's eyes on}
+ \md{1}{~ve6ittup paar~}\rt{|vericci paaru|}\vc{6 tr}
+ \eg{gaze at; focus on; stare at}
+ \syn{1}{~ve6i~}\wtvc{6t}
+ \md{2}{~ka3ka3aip padi~}\rt{|ka33e padi|}\vc{6b ta}
+ \eg{fix one's eyes, as on s.o. or s.t.}
+ \st{~ava2 e2 miitu ka3ka3aip patittaa2~}
+ \sr{|avan en meele ka{\d n}{\d n}e padiccaan|}
+ \se{He fixed his eyes on me.}.
+\hw{fasten up}
+ \md{1}{~maa88u~}\rt{|maa88u|}\vc{3 tr}
+ \eg{fasten s.t. to a vertical surface}
+ \st{~intap pa8attai angkee maa88u~}
+ \sr{|indap pa{\d d}atte ange maa{\d t}{\d t}u|}
+ \se{Fasten this picture up there.}.
+\hw{fasten upon}
+ \md{1}{~pattikko9~}\wtvc{1t}
+ \eg{sieze; take hold of}
+ \st{cf. fasten on}.
+\hw{fastened, be}
+ \md{1}{~pati~}\rt{|padi|}\vc{2b intr}
+ \eg{be fixed, as one's sight or attention upon s.t.; be coupled firmly, as two planks of wood in joining}
+ \md{2}{~poruntu~}\wtvc{3i}
+ \eg{be attached firmly; dovetail}
+ \md{3}{~i3ai~}\wtvc{2i}
+ \eg{be attached or joined; be tied or made fast}.
+\hw{fat}
+ \md{1}{~paruttuvi8u~}\rt{|paruttu8u|}\vc{4 intr}
+ \eg{become fleshy, stout or heavy}
+ \syn{1}{~paru~}\wtvc{6i}
+ \md{2}{~cataipi8ittiru~}\rt{|sade pi8icc-iru|}\vc{7 intr + dat}
+ \eg{put on flesh; become plump or heavy}
+ \syn{1}{~catai poo88iru~}\rt{|sade poo88iru|}\vc{7 intr}
+ \md{3}{~e8ai kuu8u~}\rt{|e8e kuu8u|}\vc{3 intr + dat}
+ \eg{gain weight}
+ \md{4}{~ta8ittuvi8u~}\rt{|ta8icc-i8u|}\vc{4 ta}
+ \eg{become heavy or stout}
+ \syn{1}{~ta8i~}\wtvc{6i}
+ \md{5}{~ko7uttiru~}\rt{|ko7utt-iru|}\vc{7 intr}
+ \eg{be very fat; be fattened, as a animal, etc.; be thick or well-filled as a purse}
+ \syn{1}{~ko7a~}\wtvc{6i}.
+\hw{fatal, be}
+ \md{1}{~uyirukku aapattaaka iru~}\rt{|uyirukku aabattaa iru|}\vc{7 intr}
+ \eg{be a danger or risk to one's life; cause danger to one's life}
+ \syn{1}{~uyirukku aapattaaku~}\rt{|uyirukku aabatt-aahu|}\vc{3b intr}
+ \syn{2}{~ uyirukku apaayam vi3aivi~}\wtvc{6ta}
+ \syn{3}{~ uyirukku aapattu vi3aivi~}\wtvc{6ta}
+ \md{2}{~caavukkuk kaara3amaaka iru~}\rt{|saavukku kaara3amaa iru|}\vc{7 intr}
+ \eg{bring about death; be the cause of s.o.'s death.}
+ \md{3}{~naacamaakku~}\rt{|naasam aakku|}\vc{3 tr}
+ \eg{destroy, ruin, cause misfortune}
+ \syn{1}{~naacappa8uttu~}\rt{|naasa-pa8uttu|}\vc{3 tr}
+ \syn{2}{~naasamu88u~}\wtvc{3ta}
+ \md{4}{~paa7aakku~}\rt{|paa7-aakku|}\vc{3 tr}
+ \eg{cause ruin, destruction or failure}
+ \syn{1}{~paa7pa8uttu~}\rt{|paa7 pa8uttu|}\vc{3 tr}
+ \syn{2}{~naasamaakku~}\wtvc{3t}
+ \md{5}{~vitivasamaaku~}\rt{|vidivasam-aahu|}\vc{3b intr 3 pn}
+ \eg{be connected with fate or destiny; be fateful, as a meeting, an occurrence, a period}
+ \st{~anta cantippu vitivacamaa2atu~}
+ \sr{|anda sandippu vidivasamaanadu|}
+ \se{That meeting (or) encounter was fatal (fateful).}
+ \md{6}{~talaivitiyaaku~}\rt{|talevidi aahu|}\vc{3b intr 3pn}
+ \eg{be fated or destined; be so written}
+ \st{~anta vipattu ava2 talaiviti (yaakum)~}
+ \sr{|anda vibattu avan talevidi (aahum)|}
+ \se{That accident occurred because of his fate; That accident was fated to occur to him. (both used usually in an unfavourable sense)}
+ \md{7}{~kee8ukaalam pi8ittiru~}\rt{|kee8ukaalam pi8icc-iru|}\vc{7 intr + dat}
+ \eg{be in for a bad time; be on the road to ruin; be under bad stars}
+ \st{~ava2ukku kee8ukaalam pi8ittirukki6atu~}
+ \sr{|avanukku kee{\d d}ukaalam pi{\d d}iccirukku|}
+ \se{Misfortune has caught up with him; (or) He is in for a bad time; he is jinxed.}.
+\hw{fatalistic, be}
+ \md{1}{~vitiyee e26u iru~}\rt{|vidiyee-33u iru|}\vc{7 intr}
+ \eg{hold the attitude of fatality or the doctrine of fatalism; be resigned; have a negative attitude about s.t.}
+ \syn{1}{~uu7vali e26u iru~}\wtvc{7i}
+ \md{2}{~na8appatu na8akka88um e26u iru~}\rt{|na8appadu na8akka88um-33u iru|}\vc{7 intr}
+ \eg{hold the attitude that whatever will be will be; submit to circumstances as inevitable; submit passively to misfortune, calamity, etc.}
+ \syn{1}{~(ka8avu9) vi88ava7i e26u iru~}\rt{|(ka8avu9) vi88ava7i-33u iru|}\vc{7 intr}.
+\hw{fateful, be}
+ \md{1}{~vitivacamaaku~}\rt{|vidivasam-aahu|}\vc{3b intr 3pn (pres \& fut only)}
+ \eg{be connected with fate or destiny; be fatal, as an event, a period, etc.}
+ \st{~ava9 ta6kolai vitivacamaa8um~}
+ \sr{|ava9 tarkolai vidivasam aahum|}
+ \se{Hers was a fateful suicide.}
+ \syn{1}{~uuvi2aiyaaku~}\wtvc{3 3pn}
+ \md{2}{~mukkiyamaaku~}\rt{|mukkiyam aahu|}\vc{3b intr 3pn}
+ \eg{be important; be momentous}
+ \syn{1}{~si6appaaku~}\wtvc{3 3pn}
+ \syn{2}{~viseevimaaku~}\wtvc{3 3pn}.
+\hw{father}
+ \md{1}{~uruvaakku~}\rt{|uruvakku|}\vc{3 tr}
+ \eg{found, originate, as a doctrine, a sect, etc.; propound as a theory, a practice, a way of life}
+ \syn{1}{~too66uvi~}\wtvc{6t}
+ \syn{2}{~u38aakku~}\rt{|u38-aakku|}\vc{3 tr}.
+\hw{fathom}
+ \md{1}{~aa7am ka38upi8i~}\rt{|aa7am ka38u-pi8i|}\vc{6b ta}
+ \eg{find or measure the depth of river, sea, well, pit, crater, etc.}
+ \syn{1}{~aa7am (aa7attaik) ka3akki8u~}\wtvc{4ta}
+ \md{2}{~aa7am paar~}\rt{|aa7am paaru|}\vc{6 tr}
+ \eg{find or measure the depth of river, pit, etc.; test or examine s.o.'s learning, qualification, sincerity, etc.}
+ \md{3}{~parintuko9~}\wtvc{1t}\rt{|purinjikkoo|}\vc{4 tr}
+ \eg{understand, comprehend; get to the bottom of, as an event, a person's motive, etc.}
+ \syn{1}{~a6i~ (or)? ~aa7anka6i~}\wtvc{2t}.
+\hw{fatigue}
+ \md{1}{~ka9aippu u38aakku~}\rt{|ka9eppe u38-aakku|}\vc{3 ta}
+ \eg{cause fatigue; cause to feel fatigued}
+ \syn{1}{~coorvu u38aakku~}\wtvc{3ta}
+ \md{2}{~ka9aippa8aiyac cey~}\wtvc{1t}
+ \eg{cause to fatigue; cause to feel tired or weary}
+ \syn{1}{~coorva8aiyac cey~ (or) ~coorv~}\wtvc{1t}. % synonym truncated?
+\hw{fatigued, be}
+ \md{1}{~aluttup poo~}\rt{|aluttup poo|}\vc{3b intr 3pn (usu + past only)}
+ \eg{become weary; become discouraged}
+ \st{~e2akku aluttup pooyi66u~}
+ \sr{|enakku aluttu pooccu|}
+ \se{I am tired, fed up.}
+ \syn{1}{~salittup poo~}\wtvc{w. dat.}\rt{|saliccu poo|}\vc{3b intr (usu + past only)}
+ \syn{2}{~aluttuvi8u~}\wtvc{4i 3 pn}
+ \syn{3}{~salittuvi8u~}\wtvc{4i 3 pn}
+ \md{2}{~ka9aittup poo~}\rt{|ka9eccip poo|}\vc{3b intr 3pn + dat (usu + past}
+ \eg{become tired or wearied; become exhausted}
+ \syn{1}{~soorntu poo~}\rt{|soondu poo|}\vc{3 intr 3pn + dat (usu + past}
+ \syn{2}{~ayarntu poo~}\rt{|asandu poo|}\vc{3 intr 3pn + dat (usu past onl}
+ \md{3}{~ka9aippaay iru~}\rt{|ka9eppaa iru|}\vc{7 intr + dat}
+ \eg{be tired or exhausted; look or feel tired and weary}
+ \st{~ava2 ka9aippaay iruntaa2~, ~ava2ukku ka9aippaay iruntatu~}
+ \sr{|avan ka9eppaa irundaan, avanukku ka9eppaa irundadu|}
+ \se{He was (or felt) fatigued.}
+ \syn{1}{~coorvaay iru~}\rt{|soorvaa iru|}\vc{7 intr + dat}
+ \md{4}{~coorntuvi8i~}\rt{|soondu8u|}\vc{4 intr}
+ \eg{grow weary or exhausted; be tired and worn out}
+ \syn{1}{~ka9aittuvi8u~}\rt{|ka9ecc-i8u|}\vc{4 ta}
+ \syn{2}{~ayarntuvi8u~}\rt{|asandu8u|}\vc{4 intr}
+ \md{5}{~ayarvu6u~}\wtvc{1i}
+ \eg{be tired or weary}
+ \syn{1}{~ayarva8ai~}\wtvc{2i}
+ \syn{2}{~ka9appa8ai~}\wtvc{2i}
+ \syn{3}{~coorva8ai~}\wtvc{2i}
+ \syn{4}{~coorvu6u~}\wtvc{1i}
+ \md{6}{~i2aippaay iru~}\wtvc{7i}
+ \eg{be short of breath or gasp because of over exhaustion; be weak and worn out}.
+\hw{fatten}
+ \md{1}{~ko7u~}\rt{|ko7u|}\vc{6 intr}
+ \eg{grow fat; become plump}
+ \syn{1}{~paruttuvi8u~}\rt{|paattu8u|}\vc{4 intr}
+ \md{2}{~ko7ukka vai~}\rt{|ko7ukka vayyi|}\vc{6b tr}
+ \eg{make fat; fatten up, as sheep for slaughter}
+ \md{3}{~se7ikkas sey~}\wtvc{1t}
+ \eg{help grow better; nourish, as crop, people, etc.; enrich, as soil, ideas, etc.}
+ \syn{1}{~se7ikka vai~}\wtvc{6t}.
+\hw{fatty, be}
+ \md{1}{~koo7uppaay iru~}\rt{|ko7uppaa iru|}\vc{7 intr}
+ \eg{contain excessive fat, as muscle, food, meat, soup, etc.}
+ \md{2}{~ko7uppas sattu u8aiyataay iru~}\wtvc{7i}
+ \eg{contain nutrative fat, as foods etc.}
+ \syn{1}{~ko7uppus sattu no38iru ~}\wtvc{7i}.
+\hw{fatuous, be}
+ \md{1}{~ma8atta2amaaka iru~}\rt{|ma8attanamaa iru|}\vc{7 intr}
+ \eg{be silly; be inane}
+ \syn{1}{~peetaitata2amaaka iru~}\wtvc{7i}
+ \md{2}{~mu88aa9ta2amaaka iru~}\rt{|mu88aa9tanamaa iru|}\vc{7 intr}
+ \eg{be foolish; be silly}
+ \syn{1}{~ma8atta2amaaka iru~}\wtvc{7i}.
+\hw{fault}
+ \md{1}{~tappu sol~}\rt{|tappu sollu|}\vc{3c tr}
+ \eg{censure; blame; find fault with}
+ \syn{1}{~tava6u sol~}\wtvc{3t}
+ \syn{2}{~pi7ai sol~}\wtvc{3t}
+ \md{2}{~ku66am sol~}\rt{|kuttam sollu|}\vc{3c tr, ta}
+ \eg{find fault with; blame; criticise}
+ \syn{1}{~ku6ai sol~}\rt{|kore sollu|}\vc{3c tr}
+ \syn{2}{~pi7ai sol~}\wtvc{3t}.
+\hw{faulty, be}
+ \md{1}{~tappaaka iru~}\rt{|tappaa iru|}\vc{7 intr 3pn}
+ \eg{be wrong; contain faults, mistakes or errors}
+ \syn{1}{~pi7aiyaay iru~ (and) ~tavaruk~}\wtvc{7 3pn}
+ \md{2}{~pi7aiyaaka iru~}\wtvc{7i 3pn}
+ \eg{be full of faults or defects}
+ \md{3}{~ku6aipaa8u ko38iru~}\wtvc{7i}
+ \eg{contain faults or blemishes; be defective}.
+\hw{favour}
+ \md{1}{~aatari~}\rt{|aadari|}\vc{6b tr}
+ \eg{support, show favour to}
+ \syn{1}{~aataravu kaa88u~}\rt{|aadaruvu kaa88u|}\vc{3 tr + dat}
+ \syn{2}{~aataravu taa~}\rt{|aadaravu taa|}\vc{2c ta + dat}
+ \st{~avarka9 ava2ai aakarittaarka9~, ~avarka9 avarukku aataravu ko8uttaarka9~ (or) ~tantaarka9~}
+ \sr{|avanga avane aadariccaanga, avanga avanukku aadaravu ku{\d d}uttaanga (or) tandaanga|}
+ \se{They gave him the benefit of the doubt; they favoured him.}
+ \md{2}{~virumpu~}\rt{|virumbu|}\vc{3 tr}
+ \eg{prefer; like; choose}
+ \st{~naa2 ava2ai virumpuki6ee2~}
+ \sr{|naan avane virumbureen|}
+ \se{I like him.}
+ \syn{1}{~pi8i~}\rt{|pi8i|}\vc{6b tr 3pn + dat}
+ \st{~e2akku ava3aip pi8ikki6atu~}
+ \sr{|enakku avane pi{\d d}ikkidu|}
+ \se{I like him.}
+ \md{3}{~salukai kaa88u~}\rt{|saluhe kaa88u|}\vc{3 tr}
+ \eg{show partiality to; give unfair help or advantages to; give s.o. the benefit of the doubt}
+ \syn{1}{~pa8sa paatam kaa88u~}\rt{|pa8ca paadam kaa88u|}\vc{3 tr}
+ \syn{2}{~ooravanca2ai ka88u~}\wtvc{3ta}
+ \eg{act with partiality}
+ \syn{3}{~ooravanca2ai sey~}\wtvc{1}\rt{|ooravanjane pa33u|}\vc{3 tr}
+ \md{4}{~nalku~}\wtvc{3t}
+ \eg{bestow, grant, give}
+ \syn{1}{~aru9~}\wtvc{3t}
+ \md{5}{~aru9puri~}\wtvc{2ta}
+ \eg{patronise; grace; grant, as a prayer}
+ \syn{1}{~aru9 sey~}\wtvc{1ta}
+ \md{6}{~ottiru~}\rt{|ott-iru|}\vc{7 tr}
+ \eg{resemble; be like or similar to}
+ \md{7}{~caayalaaka iru~}\rt{|saayalaa iru|}\vc{7 intr}
+ \eg{have the likeness of; show the same features of}
+ \syn{1}{~caa8aiyaaka iru~}\rt{|jaa8eyaa iru|}\vc{7 intr}
+ \st{~antak ku7antai ammaavi2 caayalaaka~ (or) ~caa8aiyaaka irukki6atu~}
+ \sr{|anda ko7ende ammaa(voo{\d d}a) saayalaa (or) jaadayaa irukku|}
+ \se{The baby favours her mother}
+\bye
+
diff --git a/language/tamil/wntamil/tamil.mf b/language/tamil/wntamil/tamil.mf
new file mode 100644
index 0000000000..d2c30d5314
--- /dev/null
+++ b/language/tamil/wntamil/tamil.mf
@@ -0,0 +1,2020 @@
+boolean dodraw;
+dodraw=true;
+boolean goleft;
+goleft=false;
+def tthinnest=max(hair,2) enddef;
+def tthinner=max(1.4hair,2) enddef;
+def tthin=max(1.8hair,2) enddef;
+def tmed=max(.75curve,2) enddef;
+def tthick=curve enddef;
+def tthicker=1.2curve enddef;
+def tthickest=1.4curve enddef;
+
+string callchar;
+numeric oldh; numeric oldw; numeric oldd;
+
+def charspec(expr c, w_sharp, h_sharp, d_sharp) =
+ oldh:=h; oldw:=w; oldd:=d;
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+enddef;
+
+input tamilmax;
+
+def cloney(suffix $,@) =
+ y$=y@; y$r=y@r; y$l=y@l;
+enddef;
+
+def clonex(suffix $,@) =
+ x$=x@; x$r=x@r; x$l=x@l;
+enddef;
+
+def small_iito (suffix @,$)(expr iheight) =
+x$99=x@; y$99=y@; pos$99(tthin,180);
+x$100=x$99-2.5u; y$100=.5[y$99,y$1]; pos$100(tthin,135);
+x$1=x@+.5u; top y$1r=iheight; pos$1(tthick,90);
+x$2=x$1+u; y$2=y$1-.5u; pos$2(.7tthick,60);
+x$3=x$2; y$3=y$2-2u; pos$3(tthin,-90);
+x$4=x$4l=x$4r=x$2; y$4=y$2; y$4r=y$4+1; y$4l=y$4-1;
+filldraw stroke z$99e{left}...{up}z$100e...{right}z$1e...z$2e...{left}z$3e...{right}z$4e;
+penlabels($1,$2,$3,$4);
+enddef;
+
+def help_uu =
+charspec("9",x_height#,.75x_height#,0);
+x181=x101=u; x106=x107=x108=x109=.55w; x111=x112=.8w; x110=w;
+x103=x105=.5[x101,x106]; x102=x104=.5[x101,x103];
+bot y104r=y106=y107=y111=0; top y105r=y108=top y109r=top y110r=y112=h;
+y101=y181=y103=.5y102; y102=.6h;
+pos101(.8tthinner,180); pos102(.8tthin,90); pos103(.8tmed,0);
+pos104(.8tthin,-90); pos181(.8tthinner,-180); pos105(.8tthick,-270);
+pos106(.8tthin,-360); pos107(.8tthin,0); pos108(.8tthin,0);
+pos109(.8tthin,90); pos110(.8tthin,90); pos111(.8tthick,0); pos112(.8tthick,0);
+if dodraw:
+filldraw stroke z101e...{right}z102e...{down}z103e...{left}z104e..z181e...{right}z105e...{down}z106e;
+filldraw stroke z107e---z108e; filldraw stroke z109e---z110e;
+filldraw stroke z111e---z112e;
+fi
+enddef;
+
+
+cmchar "Tamil vii";
+beginchar(115,1.5x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21r=x10l; x21l=x10r; x21=x10; cloney(21,10); small_iito(21,s,h);
+endchar;
+
+cmchar "tamil a";
+beginchar(0,2x_height#,x_height#,.6desc_depth#);
+adjust_fit(0,0);
+x3=.5[x9,x11]; top y1r=h; y5=y12=h; y2=y4=y6=.5[y3,y1]; y3=.8bar_height; x1=x3;
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=w-u;
+x9=u; x10=.15[x9,x11]; y8=-.8d; y13=-d; y7=bar_height; y9=.2bar_height; y10=y11=.25bar_height;
+z20=z1;
+pos1(tthinnest,90); pos2(tthin,0); pos3(tthinnest,-90); pos4(tthinnest,-180);
+pos5(hair,90); pos6(curve,0); pos7(tthick,-360); pos8(tthinner,-450);
+pos9(tthinnest,-580); pos10(tthinnest,-630); pos11(tthinnest,-630); pos12(tthick,0);
+pos13(tthick,0);pos20(tthinner,-270);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...{down}z7e...{left}z8e...{up}z9e...z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "tamil aa";
+beginchar(1,2.5x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+x3=.5[x9,x11]; top y1r=h; y5=y12=h; y2=y4=y6=.5[y3,y1]; y3=.8bar_height; x1=x3;
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=2x_height-u;
+x9=u; x10=.15[x9,x11]; y8=-.48desc_depth; y13=-.6desc_depth; y7=bar_height; y9=.2bar_height; y10=y11=.25bar_height;
+z20=z1; x31=x31r=x31l=x11+u; cloney(31,11);
+x32r=x13r; y32=y13; pos32(tthinner,0); x34=w-u; y34=y32; pos34(tthinner,-720);
+x33=.5[x32,x34]; y33=0; pos33(tthin,-90); x35=.1[x13,x8]; y35=-1.2d; %bot y35l=-d;
+pos35(.8tthick,-810); x36=.2[x8,x13]; y36=-desc_depth; pos36(tthin,-900);
+x37=.5[x8,x13]; y37=y13; pos37(tthinner,-990);
+pos1(tthinnest,90); pos2(tthin,0); pos3(tthinnest,-90); pos4(tthinnest,-180);
+pos5(hair,90); pos6(curve,0); pos7(tthick,-360); pos8(tthinner,-450);
+pos9(tthinnest,-580); pos10(tthinnest,-630); pos11(tthinnest,-630); pos12(tthick,0);
+pos13(tthick,0);pos20(tthinner,-270);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...{down}z7e...{left}z8e...{up}z9e...z10e---z31e{right}
+ ...{down}z34e...{left}z35e...{up}z36e...{right}z37e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,31,32,33,34,35,36,37);
+endchar;
+
+cmchar "tamil i";
+beginchar(2,2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+pickup crisp.nib;
+x6=.6w; x11=x13=x15=.5w; x16=x17=.9w; x12=.75w;
+x5=x7=.55w; x4=.3w; x3=.4w; x2=.5w; x1=.35w;
+x8=x10=x14=.15w; x9=.1w;
+y15=h; y5=x_height; y14=y11=.1h; y10=0; y16=.8x_height;
+y7=-.1d; y8=y13=y17=-d; y9=y12=-.6d;
+y2=y4=y6=.6x_height; y1=.8x_height; y3=.4x_height;
+z20=z1; pos20(tthinnest,-200);
+z65=.5[z6,z7]; pos65(tthicker,-370);
+pos1(tmed,45); pos2(tmed,0); pos3(tthin,-90); pos4(tthinnest,-180);
+pos5(tmed,-270); pos6(tthick,-360); pos7(tthicker,-380); pos8(tmed,-450);
+pos9(tthinner,-540); pos10(tthinnest,-585); pos11(tthin,-630);
+pos12(tthick,-720); pos13(tthin,-810); pos14(tthinner,-880);
+pos15(tthick,-990); pos16(tthin,-1060); pos17(tthin,-1060);
+filldraw stroke z1e..z2e..z3e..z4e..z20e..z5e..z65e..z8e..z9e..z10e..z11e..z12e..z13e..z14e..z15e...{down}z16e---z17e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); endchar;
+
+cmchar "Tamil ii";
+beginchar(3,1.125x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="r";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x1,x6]; x8=x4-.5dot_size;
+top y77r=top y88r=bar_height+.375dot_size;
+y7=y8=.5[y77r,y77l];
+x77=x7; x88=x8; pos7(.75dot_size,0); pos77(.75dot_size,90);
+pos8(.75dot_size,0); pos88(.75dot_size,90);
+dot(7,77); dot(8,88);
+penlabels(7,8); endchar;
+
+cmchar "tamil u";
+beginchar(4,2x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="u";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "tamil uu";
+beginchar(5,2.8x_height#,x_height#,0);
+adjust_fit(0,0);
+help_uu;
+picture V; transform t;
+t=identity shifted(1.4x_height,.25x_height);
+V=currentpicture transformed t; currentpicture:=V;
+h:=oldh; w:=oldw; d:=oldd;
+callchar:="u";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x12=w-u; y12=y11; pos12(tthin,-290);
+filldraw stroke z11e--z12e;
+endchar;
+
+cmchar "tamil e";
+beginchar(6,1.6x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "tamil ai";
+beginchar(7,1.75x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+pickup crisp.nib;
+y7=y10=h; y4=y8=y9=.2h; y15=y19=-d; y12=.9bar_height;
+y21=.25h; y13=-.2d; y14=-.6d; y16=-.8d; y17=y18=-.3d; y20=-.2d;
+y1=y3=.4h; y2=.7h; y11=.75h; y85=0;
+%
+x14=x1=u; x11=x12=w-u; x8=x9=x17=x18=.55[x1,x11]; x85=x8;
+x7=.6[x1,x8]; x10=.5[x9,x11]; x3=.6[x1,x8]; x2=x4=.5[x1,x3];
+x13=x2; x15=x7-.7u; x16=x17; x19=.5[x18,x11]; x20=.95x11; x21=.9x11;
+%
+x77=x8; y77=.6h; z99=z77;
+pos77(tthick,-360); pos99(tthick,0);
+pos1(tthinner,180); pos2(tmed,90); pos3(tthick,0); pos4(tmed,-90);
+z55=z1; pos55(tthinner,-180);
+%pos6 ?
+pos7(tthick,-270); pos8(tthick,-405);
+pos9(tthick,-45); pos10(tthin,-90); pos11(tthick,-180); pos12(tthick,-200);
+pos21(tthin,-240); pos13(tthin,-240); pos14(tmed,-180);
+pos15(tthick,-90); pos16(tthick,-45); pos17(tthick,-45);
+pos18(tthick,-45); pos19(tthick,90); pos20(tmed,225);
+pos85(tthin,-270);
+%pickup pencircle scaled .2pt
+filldraw stroke z1e..z2e{right}..z3e{down}..z4e{left}..z55e...{right}z7e...{down}z77e---z8e;
+%pickup crisp.nib
+%filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e..z21e---z13e..z14e{down}...z15e{right}...z16e...{up}z17e;
+filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e...{left}z85e{left}..z14e{down}...z15e{right}...z16e...{up}z17e;
+filldraw stroke z18e{down}...z19e{right}...z20e;
+%pickup pencircle scaled .2pt
+%draw stroke z18e{down}...z19e{right}...z20e;
+penlabels(1,2,3,4,55,7,8,9,10,11,12,21,13,14,15,16,17,19,20); endchar;
+
+cmchar "Tamil k";
+beginchar(8,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil o";
+beginchar(9,1.6x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+x1=x5=x16=u; x7=rt x12r=rt x13r=w-u;
+x6=.5[x1,x7]; x15=.5[x16,x12]; x17=.1[x16,x12]; x14=.85[x16,x12];
+x11=x9; x8=.4[x9,x7]; x9=x10=.7[x1,x7];
+x3=.3[x1,x7]; x2=x4=.5[x1,x3];
+top y6r=h; bot y15r=-d;
+y2=.5h; y1=y5=y3=.5y2;
+bot y4r=bot y8r=0;
+y9=y10=y2; y7=.3h; y11=-.1d; y12=y13=-.3d;
+y14=-.6d; y16=-.5d; y17=-.2d;
+pos1(tthin,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos5(tthin,-180); pos6(tmed,-270); pos7(tthick,-360); pos8(tmed,-450);
+pos9(tthin,-540); pos10(tthin,0); pos11(tmed,5); pos12(tthin,10);
+pos13(tthick,10); pos14(tthick,0); pos15(tmed,-90); pos16(tthinner,-180);
+pos17(tmed,-250);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e...z5e...{right}z6e
+ ...{down}z7e...{left}z8e...z9e;
+% pickup pencircle scaled .2pt;
+filldraw stroke z10e..z11e...{right}z12e;
+filldraw stroke z13e...z14e...{left}z15e...{up}z16e...z17e;
+penlabels(1,2,3,4,6,7,8,9,11,12,14,15,16,17);
+endchar;
+
+
+cmchar "Tamil ki";
+beginchar(10,1.8x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(46,47,48);
+endchar;
+
+cmchar "Tamil kii";
+beginchar(11,1.5x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+penlabels(46,47,48,49,50);
+endchar;
+
+cmchar "Tamil ku";
+beginchar(12,2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x45=x5; bot y45r=-d; pos45(tthick,-450);
+x46=x46r=x46l=x2; y46=y2; y46r=y46+1; y46l=y46-1;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=.7[x3,x4];
+x47=-.25x_height; y47=y8; pos47(tthin,-540);
+filldraw stroke z25e---z26e{right}...z45e...{up}z47e...{right}z46e;
+picture V; transform t; t=identity shifted(.4x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(26,45,46,47);
+endchar;
+
+cmchar "Tamil kuu";
+beginchar(13,2.1x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+cloney(26,25); x26=x26l=x26r=.6[x3,x4];
+x28=x4; y28=0; x30=x28+(x4-x3); y30=0; top y29l=bar_height; x29=.5[x28,x30];
+x31=x30; bot y31l=0; pos31(tthin,90); x32=w-u; bot y32l=0; pos32(tthin,90);
+pos28(tthin,0); pos29(tthinner,-90); pos30(tthin,-180);
+filldraw stroke z25e--z26e{right}...{down}z28e;
+filldraw stroke z28e{up}...{right}z29e...{down}z30e;
+filldraw stroke z31e--z32e;
+penlabels(26,28,29,30,31); endchar;
+
+cmchar "Tamil long o";
+beginchar(14,1.6x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+x1=x5=x16=u; x7=rt x12r=rt x13r=w-u;
+x6=.5[x1,x7]; x15=.5[x16,x12]; x17=.25[x16,x12]; x14=.85[x16,x12];
+x11=x9; x8=.4[x9,x7]; x9=x10=.7[x1,x7];
+x3=.3[x1,x7]; x2=x4=.5[x1,x3];
+top y6r=h; bot y15r=-d;
+y2=.5h; y1=y5=y3=.5y2;
+bot y4r=bot y8r=0;
+y9=y10=y2; y7=.3h; y11=-.1d; y12=y13=-.3d;
+y14=-.6d; y16=-.5d; y17=-.2d;
+x18=.4[x16,x12]; y18=-.5d; pos18(tthinner,-360);
+pos1(tthin,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos5(tthin,-180); pos6(tmed,-270); pos7(tthick,-360); pos8(tmed,-450);
+pos9(tthin,-540); pos10(tthin,0); pos11(tmed,5); pos12(tthin,10);
+pos13(tthick,10); pos14(tthick,0); pos15(tmed,-90); pos16(tthinner,-180);
+pos17(tmed,-250);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e...z5e...{right}z6e
+ ...{down}z7e...{left}z8e...z9e;
+% pickup pencircle scaled .2pt;
+filldraw stroke z10e..z11e...{right}z12e;
+filldraw stroke z13e...z14e...{left}z15e...{up}z16e...{right}z17e...{down}z18e;
+penlabels(1,2,3,4,6,7,8,9,11,12,14,15,16,17,18);
+endchar;
+
+cmchar "tamil long e";
+beginchar(15,1.6x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x4; bot y10r=-d; pos10(tthick,-90);
+x11=x9; bot y11r=0; pos11(tthick,-90);
+filldraw stroke z11e--z10e;
+penlabels(10);
+endchar;
+
+cmchar "tamil ng";
+beginchar(16,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil ai matra";
+beginchar(17,2x_height#,x_height#,0);
+adjust_fit(0,0);
+w:=3x_height;
+x1=x81=u; x6=.6x10; x8=.6[x1,x6]; x7=.5[x8,x6];
+x5=.5[x1,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x9=.5[x8,x10]; x10=.7w; x12=.6[x8,x10]; x11=.5[x12,x10];
+top y5r=top y9r=h;
+bot y4r=bot y7r=bot y11r=0;
+y2=y8=y6=y12=y10=.5h;
+y81=y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540); pos9(tmed,-630); pos10(tthicker,-720);
+pos11(tmed,-810); pos12(tthin,-900);
+x30=x11; y30=y10; x31=x12; bot y31r=0; pos30(tthick,-720); pos31(tmed,-790);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z30e...z31e;
+penlabels(1,2,3,4,5,6,7,8,9,30,31);
+endchar;
+
+cmchar "tamil ngi";
+beginchar(18,1.85x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x40=x13; y40=y13; pos40(tthin,0); x41=x40; top y41l=h; pos41(tthick,-90);
+x50=x40-2u; y50=.5[y40,y41]; pos50(tmed,-30);
+x42=w-u; y42=x_height; x43=x42; y43=y43l=y43r=0; pos42(tthin,-180);
+x43r=x43-.6; x43l=x43+.6;
+filldraw stroke z40e{left}...{right}z41e...{down}z42e--z43e;
+penlabels(41,42,43,44);
+endchar;
+
+
+
+cmchar "tamil ngii";
+beginchar(19,1.75x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+small_iito(13,s,h);
+endchar;
+
+cmchar "tamil ngu";
+beginchar(20,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(40,12); y40=y40l=y40r=-d;
+filldraw stroke z12e--z40e;
+endchar;
+
+cmchar "tamil nguu";
+beginchar(21,1.85x_height#,x_height#,1.5desc_depth#);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(40,12); y40=y40l=y40r=-.5d;
+filldraw stroke z12e--z40e;
+x22=w-u; y22=.5y40; x21=.6[x12,x22]; y21=.25d;
+pos21(tthinner,-90); pos22(tthin,-180);
+x23=.7[x1,x12]; bot y23l=-d; pos23(tthick,-270);
+x24=x2; y24=-.5d; pos24(tthin,-360); x25=x7; y25=-.25d; pos25(tthinner,-450);
+x26=.5[x1,x12]; y26=-.5d; pos26(tthinnest,-540);
+filldraw stroke z40e{up}...{right}z21e...{down}z22e...{left}z23e...{up}z24e
+ ...{right}z25e...{down}z26e;
+penlabels(40,21,22,23,24,25,26);
+endchar;
+
+cmchar "tamil e matra";
+beginchar(22,1.4x_height#,body_height#,0);
+adjust_fit(0,0);
+x1=x3=x5=.6w; x2=x1-1.5u; x4=x1+1.5u; top y3l=bar_height;
+pos3(1.2tthin,-90); y2=y4=.5[y1,y3]; bot y1l=.25u; pos1(tthin,90);
+pos2(tthin,0); pos4(tmed,-180); y5=y1; pos5(tthin,-270);
+x6=u; y6=.5h; pos6(tthinner,-360); top y7l=h; x7=.5w; pos7(1.2tmed,-450);
+x8=w-u; y8=x_height; pos8(tthin,-540); x9=x8; y9=0; x9r=x9-.6; x9l=x9+.6;
+y9r=y9l=y9; x75=x7; bot y75l=0; pos75(tthin,-280);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...z5e...{left}z75e
+ ...{up}z6e...{right}z7e...z8e--z9e;
+penlabels(1,2,3,4,5,75,6,7,8,9);
+endchar;
+
+cmchar "tamil long e matra";
+beginchar(23,1.4x_height#,body_height#,0);
+adjust_fit(0,0);
+x1=x3=x5=x10=x8=x12=w-2.5u; x2=x11=x1-1.5u; x4=x9=x1+1.5u; top y3l=bar_height;
+pos3(1.2tthin,-90); y2=y4=.5[y1,y3]; bot y1l=.25u; pos1(tthin,90);
+pos2(tthin,0); pos4(tmed,-180); y5=y1; pos5(tthin,-270);
+x6=u; y6=.5h; pos6(tthinner,-360); top y7l=h; x7=.55w; pos7(1.2tmed,-450);
+x75=x7; bot y75l=0; pos75(tthin,-280);
+top y8l=h-.25u; pos8(.8tmed,-460); y9=y11=.5[y8,y10]; y10=y8-y3+y1;
+y12=y8; pos9(tthin,-540); pos10(tthin,-630); pos11(tthinner,-720);
+pos12(tthinnest,-810);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...z5e...{left}z75e
+ ...{up}z6e...{right}z7e...z8e...{down}z9e...{left}z10e...{up}z11e...z12e;
+penlabels(1,2,3,4,5,75,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "Tamil c";
+beginchar(24,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+penlabels(26);
+endchar;
+
+cmchar "Tamil ci";
+beginchar(26,1.7x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u-.2x_height;
+filldraw stroke z25e---z26e;
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(26,46,47,48);
+endchar;
+
+cmchar "Tamil cii";
+beginchar(27,1.6x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u-.1x_height;
+filldraw stroke z25e---z26e;
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+penlabels(26,46,47,48,49,50);
+endchar;
+
+cmchar "Tamil cu";
+beginchar(28,1.65x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+x27=x28=.5[x25,x26]; y27=y26; y28=0; pos27(tmed,0); pos28(tmed,0);
+filldraw stroke z27e--z28e;
+penlabels(26,27,28);
+endchar;
+
+cmchar "Tamil cuu";
+beginchar(29,2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.65x_height;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+x27=x28=.5[x25,x26]; y27=y26; y28=0; pos27(tmed,0); pos28(tmed,0);
+filldraw stroke z27e--z28e;
+x40=x6; bot y40r=-d; pos40(tthick,-90);
+x41=-.25x_height; y41=y8; x42=x42l=x42r=x2; y42=y2; y42r=y42+.6; y42l=y42-.6;
+pos41(tthinner,-180);
+x48=x28; y48=0; pos48(tthinner,180); x49=w-u; y49=0; pos49(tthin,0);
+filldraw stroke z48e{up}...{down}z49e...{left}z40e...{up}z41e...{right}z42e;
+picture V; transform t; t=identity shifted(.35x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(26,27,28,40,41);
+endchar;
+
+cmchar "tamil ny";
+beginchar(32,2x_height#+2u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyi";
+beginchar(34,2.2x_height#+2u#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+x30=x8; y30=x_height; pos30(tthin,0); x31=x30; top y31l=h; pos31(tthick,-90);
+x33=x32=x11+2u; y32=x_height; y33=y33l=y33r=0; pos32(tthin,-180); x33l=x33+.6;
+x33r=x33-.6; filldraw stroke z30e{left}...{right}z31e...{down}z32e--z33e;
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyii";
+beginchar(35,2x_height#+2u#,body_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+small_iito(8,s,h);
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyu";
+beginchar(36,2x_height#+u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; y12=-d; pos12(tthick,-270);
+x13=0; y13=-.3d; pos13(tthin,-360); x14=x13+.2u; y14=y13+.2u; pos14(tthin,-450);
+x15=x11+1.5u; y15=y14; pos15(tthin,-450);
+x16=x15; y16=y15r; pos16(tthick,0); x17=x16; y17=x_height; pos17(tthick,0);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...{right}z14e--z15e;
+filldraw stroke z16e--z17e;
+penlabels(10,11,12,13,14,15,16,17);
+endchar;
+
+
+cmchar "tamil nyuu";
+beginchar(37,2.4x_height#+2u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; y12=-d; pos12(tthick,-270);
+x13=0; y13=-.3d; pos13(tthin,-360); x14=x13+.2u; y14=y13+.2u; pos14(tthin,-450);
+x15=x11+2u; y15=y14; pos15(tthin,-450);
+x16=x15; y16=y15r; pos16(tthin,0); x17=x16; y17=x_height; pos17(tthin,0);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...{right}z14e--z15e;
+filldraw stroke z16e--z17e;
+w:=2.4x_height+2u;
+top y18r=y17; x18=x17l; pos18(tmed,90); y19=y18; x19=w-u; x40r=x19-u;
+y40=y17; x21=x40; y21=0; pos19(tmed,90); pos40(tmed,0); pos21(tmed,0);
+filldraw stroke z18e--z19e; filldraw stroke z40e--z21e;
+penlabels(10,11,12,13,14,15,16,17,18,19,40,21);
+endchar;
+
+cmchar "Tamil t dot";
+beginchar(40,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil t dot i";
+beginchar(42,1.75x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x5=.7[x3,x4]; bot y5r=0; pos5(tthin,270); x6=x5-1.5u; top y6r=h; pos6(tthick,90);
+x7=x5; y7=bar_height; pos7(tthin,0); x8=x7; y8=-d; pos8(tthinnest,0);
+x40=x1; y40=.6[y1,y2];
+filldraw stroke z5e{z40-z5}...{right}z6e...{down}z7e--z8e;
+penlabels(5,6,7,8); endchar;
+
+cmchar "Tamil t dot ii";
+beginchar(43,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x5=.7[x3,x4]; y5=0; pos5(tmed,180);
+small_iito(5,s,x_height);
+penlabels(5,6,7,8); endchar;
+
+cmchar "tamil t dot u";
+beginchar(44,1.6x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+x1=x2=.45w; y1=x_height; y2=0; pos1(tmed,0); pos2(tmed,0);
+x3r=x2r; y3=y2; pos3(tthinner,0); x5l=w-2.5u; y5=.5[y4,y6]; pos5(tthinner,-180);
+x4=.5[x3,x5]; y4=bar_height; pos4(tthin,-90);
+x6=x3; bot y6l=-d; pos6(tthick,-270); x7=u; y7=.5[y6,y8]; pos7(tthinner,-360);
+x8=x1+u; top y8l=h; pos8(tmed,-450); x9=x10=w-u; y9=y1; pos9(tthin,-540);
+y10=y10r=y10l=0; x10l=x10+.6; x10r=x10-.6;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e{up}...{right}z4e...{down}z5e...{left}z6e...{up}z7e...{right}z8e...{down}z9e--z10e;
+penlabels(1,2,4,5,6,7,8,9,10);
+endchar;
+
+cmchar "tamil t dot uu";
+beginchar(45,1.6x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+x1=x2=.45w; y1=x_height; y2=0; pos1(tmed,0); pos2(tmed,0);
+x3r=x2r; y3=y2; pos3(tthinner,0); x5l=w-2.5u; y5=.5[y4,y6]; pos5(tthinner,-180);
+x4=.5[x3,x5]; y4=bar_height; pos4(tthin,-90);
+x6=x3; bot y6l=-d; pos6(tthick,-270); x7=u; y7=.5[y6,y8]; pos7(tthinner,-360);
+x8=x1+u; top y8l=h; pos8(tmed,-450); x9=w-3.5u; y9=asc_height-.25u;
+x10=x9+1.5u; y10=.5[y9,y11]; x11=x9; y11=y9-4u; x12=x9-1.5u; y12=y10;
+x13=x9; y13=y9; pos9(tthin,-470); pos10(tthin,-540); pos11(tthinner,-630);
+pos12(tthinnest,-720); x13l=x13r=x13; y13l=y13+.6; y13r=y13-.6;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e{up}...{right}z4e...{down}z5e...{left}z6e...{up}z7e...{right}z8e
+ ...z9e...{down}z10e...{left}z11e...{up}z12e...{right}z13e;
+penlabels(1,2,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+cmchar "Tamil n dot";
+beginchar(48,2.8x_height#+u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+endchar;
+
+cmchar "Tamil n.aa";
+beginchar(49,2.8x_height#+3u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1; y23=.8x_height;
+pos21(tthick,-1080); pos22(tthin,-1170);
+y23l+.5=y23r-.5=y23; x23l=x23; x23r=x23-1;
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{right}z23e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+%penlabels(21,22,23);
+endchar;
+
+cmchar "Tamil n.i";
+beginchar(50,3x_height#+u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x17=.5[x13,x14]; top y17l=x_height; x18=x17; top y18r=h;
+pos17(tthin,270); pos18(tthick,90);
+x20=x19=x14+u; y19=x_height; y20=y20r=y20l=0;
+pos19(tthin,0); x20l=x20-.6; x20r=x20+.6;
+filldraw stroke z17e{left}...{right}z18e...{down}z19e--z20e;
+penlabels(17,18,19,20);
+endchar;
+
+cmchar "Tamil n.ii";
+beginchar(51,3x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x17=.5[x13,x14]; top y17l=x_height; pos17(tthin,270);
+small_iito(17,s,h);
+penlabels(17);
+endchar;
+
+cmchar "Tamil n.u";
+beginchar(52,2.8x_height#+3u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.6[x1,x21];
+x23=x1; y23=-.3d; x24=x23+.2u; y24=y23+.2u; x25=w-u; y25=y24;
+x27r=x26r=x25; y27=x_height; y26=y25r;
+pos21(tthin,-1080); pos22(tthick,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350); pos25(tthin,-1350);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e...{right}z24e--z25e;
+pos26(tmed,0); pos27(tmed,0); filldraw stroke z26e--z27e;
+penlabels(21,22,23,24,25,27);
+endchar;
+
+cmchar "Tamil n.uu";
+beginchar(53,3.6x_height#+u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=3x_height+u;
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.6[x1,x21];
+x23=x1; y23=-.3d; x24=x23+.2u; y24=y23+.2u; x25=w-u; y25=y24;
+x27r=x26r=x25; y27=x_height; y26=y25r;
+pos21(tthin,-1080); pos22(tthick,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350); pos25(tthin,-1350);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e...{right}z24e--z25e;
+pos26(tmed,0); pos27(tmed,0); filldraw stroke z26e--z27e;
+w:=3.6x_height+u; x28=x27l; top y28r=y27; y29=y28; y30=y27; x29=w-u; x30=x29-2u;
+x31=x30; y31=0;
+pos28(tthin,90); pos29(tthin,90); pos30(tthin,0); pos31(tthin,0);
+filldraw stroke z28e--z29e; filldraw stroke z30e--z31e;
+penlabels(21,22,23,24,25,27,28,29,30,31);
+endchar;
+
+
+
+cmchar "Tamil n dot ai";
+beginchar(54,3.8x_height#+u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z10e
+ ...{left}z11e...{up}z12e...{right}z13e---z14e;
+filldraw stroke z15e---z16e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil t";
+beginchar(56,1.7x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=w-u; y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthin,-90); pos64(tthin,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,61,62,63,64,65,66);
+endchar;
+
+
+cmchar "Tamil ti";
+beginchar(58,1.85x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% draw the i loop
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.5[x4,x48]; % note this is based on position of i-loop
+y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthinner,-90); pos64(tthinner,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,61,62,63,64,65,66);
+endchar;
+
+cmchar "Tamil tii";
+beginchar(59,1.65x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% do the upper loop for ii
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=w-u; y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthin,-90); pos64(tthin,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,49,50,61,62,63,64,65,66);
+endchar;
+
+cmchar "Tamil tu";
+beginchar(60,2.2x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=w-2u;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.35[x4,x90]; y62=.5y61; pos62(tthick,0);
+x63=x7; y63=-d; x64=x8-2u; y64=.85[y63,y65]; y66=y65=-.3d;
+x65=.25[x64,x8]; x66=w-u;rt x67r=x66; y67=bot y66l; x90=x67; y90=x_height;
+pos63(tthin,-90); pos64(tthinner,-180); pos65(tthinner,-270);
+pos66(tthinner,-270); pos67(.8tthick,0); pos90(.8tthick,0);
+filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e...{up}z64e
+ ...{right}z65e---z66e;
+filldraw stroke z67e---z90e;
+picture V; transform t; t= identity shifted(2u,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(61,62,63,64,65,66,90);
+endchar;
+
+cmchar "Tamil tuu";
+beginchar(61,2.6x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=2.2x_height-2u;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.35[x4,x90]; y62=.5y61; pos62(tthick,0);
+x63=x7; y63=-d; x64=x8-2u; y64=.85[y63,y65]; y66=y65=-.3d;
+x65=.25[x64,x8]; x66=w-u;rt x67r=x66; y67=bot y66l; x90=x67; y90=x_height;
+pos63(tthin,-90); pos64(tthinner,-180); pos65(tthinner,-270);
+pos66(tthinner,-270); pos67(tthin,0); pos90(tthin,0);
+filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e...{up}z64e
+ ...{right}z65e---z66e;
+filldraw stroke z67e---z90e;
+w:=2.6x_height-2u;
+x201=x90l; top y201r=x_height; y202=y201; x202=w-u; pos201(tthin,90);
+pos202(tthin,90); x203=.6[x201,x202]; y203=x_height; x204=x203;
+y204=0; pos203(tmed,0); pos204(tmed,0);
+filldraw stroke z201e--z202e; filldraw stroke z203e--z204e;
+picture V; transform t; t= identity shifted(2u,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(61,62,63,64,65,66,90);
+endchar;
+
+cmchar "Tamil n";
+beginchar(64,1.5x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+endchar;
+
+cmchar "Tamil ni";
+beginchar(66,1.75x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+% draw the i loop
+x45=.8[x5,x4]; top y45r=x_height; x46=x45; top y46l=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,90); pos46(tthick,-90); pos47(tthinner,-180);
+x48l=x48+.65; x48r=x48-.65; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(45,46,47,48);
+endchar;
+
+cmchar "Tamil nii";
+beginchar(67,1.65x_height#,body_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+x31=x9l; y31=x_height; small_iito(31,s,h);
+endchar;
+
+cmchar "Tamil nu";
+beginchar(68,1.8x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+x70=.5[x1,x6]; y70=-d; x72=w-u; y72=y82; rt x73r=x72;
+y73=y72; x74=x73; y74=x_height;
+z81=z12; z82=z11; pos70(tthinner,-90); pos81(tthinner,-180);
+pos82(tthinner,-270); pos72(tthinner,-270);
+pos73(.8tthick,0); pos74(.8tthick,0);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z70e...{up}z81e
+ ...{right}z82e---z72e;
+filldraw stroke z73e--z74e;
+penlabels(70,72,73,74,81,82);
+endchar;
+
+cmchar "Tamil nuu";
+beginchar(69,2.1x_height#,x_height#,.5x_height#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+x70=.5[x1,x6]; y70=-d; x72=w-3u; y72=y82; rt x73r=x72;
+y73=y72; x74=x73; y74=x_height;
+z81=z12; z82=z11; pos70(tthinner,-90); pos81(tthinner,-180);
+pos82(tthinner,-270); pos72(tthinner,-270);
+pos73(tthinner,0); pos74(tthinner,0);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z70e...{up}z81e
+ ...{right}z82e---z72e;
+filldraw stroke z73e--z74e;
+top y90r=x_height; x90=lft x73l; x91=w-u; y91=y90;
+pos90(tthinner,90); pos91(tthinner,90); filldraw stroke z90e--z91e;
+rt x92r=x91; y92=x_height; y93=0; x93=x92;
+pos92(.8tthick,0); pos93(.8tthick,0); filldraw stroke z92e--z93e;
+penlabels(70,72,73,74,81,82,90,91,92,93);
+endchar;
+
+cmchar "Tamil p";
+beginchar(72,1.4x_height#+u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil pi";
+beginchar(74,1.5x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; top y7l=h; pos7(tthick,-90); x8=x9=w-u; y8=x_height; y9=y9r=y9l=0;
+x9r=x9-.6; x9l=x9+.6; pos8(tthin,-180);
+filldraw stroke z6e{left}...{right}z7e...{down}z8e--z9e;
+penlabels(7,8,9); endchar;
+
+cmchar "Tamil pii";
+beginchar(75,1.4x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; x7r=x6l; x7l=x6r; cloney(7,6);
+small_iito(7,s,h);
+endchar;
+
+cmchar "Tamil pu";
+beginchar(76,1.4x_height#+u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(7,5); y7r=y7l=y7=-d; filldraw stroke z5e--z7e;
+endchar;
+
+cmchar "Tamil puu";
+beginchar(77,1.4x_height#+4u#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(7,5); y7r=y7l=y7=-.5d; filldraw stroke z5e--z7e;
+x8=x7; y8=y7; pos8(tthin,0); x10=w-u; y10=.5[y9,y11]; pos10(tthin,-180);
+x9=.5[x8,x10]; top y9l=0; pos9(tthin,-90); x11=.5[x1,x10]; y11=-d;
+x12=x1; y12=-.4d; x13=.25[x1,x4]; y13=-.2d; x14=.5[x1,x4]; y14=-.45d;
+pos11(tthick,-270); pos12(tthin,-360); pos13(tthin,-450); pos14(tthinner,-540);
+filldraw stroke z8e{up}...{right}z9e...{down}z10e...{left}z11e...{up}z12e
+ ...{right}z13e...{down}z14e;
+endchar;
+
+cmchar "Tamil m";
+beginchar(80,1.6x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil mi";
+beginchar(82,1.85x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x6; top y10l=h; y11=x_height; x12=x11=w-u; y12=0;
+pos10(tthick,-90); pos11(tthin,-180); y12r=y12l=y12;
+x12r=x12-.6; x12l=x12+.6;
+filldraw stroke z6e{left}...{right}z10e...{down}z11e--z12e;
+penlabels(10,11,12); endchar;
+
+cmchar "Tamil mii";
+beginchar(83,1.6x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x6; y10l=x_height; x10r=x10-.6; x10l=x10+.6; y10=y10l-.6; y10r=y10-.6;
+small_iito(10,s,h);
+endchar;
+
+cmchar "Tamil mu";
+beginchar(84,2.2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.6x_height;
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x8; y9=0; pos9(tthick,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-.5u; y12l=h;
+pos11(tthin,-360); x12l=x12r=x12; y12=y12l-.6; y12r=y12-.6;
+filldraw stroke z9e{down}...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+
+cmchar "Tamil muu";
+beginchar(85,2.2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.6x_height;
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x8; y9=0; pos9(tthick,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-2.5u; y12l=h;
+pos11(tthin,-360); pos12(tthinnest,-450);
+x13=x12+u; y14=y12-u; x14=x13-2u; y14=y13;
+pos13(tthinnest,-540); x14l=x14-.6; x14r=x14+.6; y14r=y14l=y14;
+filldraw stroke z9e{down}...{left}z10e...{up}z11e...{right}z12e...{down}z13e...{z14-z2}z14e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+cmchar "Tamil y";
+beginchar(88,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil yi";
+beginchar(90,1.9x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x20=x9; y20l=h; pos20(tthick,-90); x21=w-u; y21=x_height; pos21(tthin,-180);
+x22=x21; y22=y22l=y22r=0; x22r=x22-.6; x22l=x22+.6;
+filldraw stroke z9e{left}...{right}z20e...{down}z21e--z22e;
+penlabels(20,21,22); endchar;
+
+cmchar "Tamil yii";
+beginchar(91,1.65x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x20=x9; y20=y9; pos20(tthin,180);
+small_iito(20,s,h);
+endchar;
+
+cmchar "Tamil yu";
+beginchar(92,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(20,10); y20=y20l=y20r=-d;
+filldraw stroke z10e--z20e;
+penlabels(20); endchar;
+
+cmchar "Tamil yuu";
+beginchar(93,1.75x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(20,10); y20=y20l=y20r=-.5d;
+filldraw stroke z10e--z20e;
+x22=w-u; y22=0; x21=.6[x10,x22]; y21=.25d;
+pos21(tthinner,-90); pos22(tthin,-180);
+x23=.7[x7,x8]; y23=-1.2d; pos23(tthick,-270);
+x24=x2; y24=-.5d; pos24(tthin,-360); x25=x7; y25=-.25d; pos25(tthinner,-450);
+x26=.5[x7,x8]; y26=-.5d; pos26(tthinnest,-540);
+filldraw stroke z20e{up}...{right}z21e...{down}z22e...{left}z23e...{up}z24e
+ ...{right}z25e...{down}z26e;
+penlabels(20,21,22,23,24,25,26); endchar;
+
+cmchar "Tamil r";
+beginchar(96,.9x_height#+2u#,x_height#,.75desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; bot y7l=y6; x8=x1; bot y8l=-d;
+pos7(tthin,90); pos8(tthin,90);
+filldraw stroke z7e--z8e;
+penlabels(7,8); endchar;
+
+cmchar "Tamil aa matra";
+beginchar(97,.9x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil ri";
+beginchar(98,.9x_height#+3.5u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x5,x4]; y7=y5; x8=x7; top y8r=h; x9=x10=w-u; y9=x_height; y10=0;
+pos7(tthinner,-90); pos8(tthick,90); pos9(tthin,0);
+x10l=x10-.6; x10r=x10+.6; y10r=y10l=0;
+filldraw stroke z7e{left}...{right}z8e...{down}z9e--z10e;
+penlabels(7,8,9,10); endchar;
+
+cmchar "Tamil rii";
+beginchar(99,.9x_height#+2.5u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x5,x4]; y7=x_height; pos7(tthinner,-90);
+small_iito(7,s,body_height);
+penlabels(7,8,9,10); endchar;
+
+cmchar "Tamil ru";
+beginchar(100,.9x_height#+7u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; y7=y6; x8=.7[x5,x4]; top y8l=bar_height; pos8(tthick,-90);
+pos7(tthin,0); x9=1.4[x5,x4]; y9=0; pos9(tthin,-180);
+x10=.7[x1,x6]; bot y10l=-d; pos10(tthinner,-270); x11=x1-4u; y11=.5bar_height;
+pos11(tthinner,-360); x12=x2-u; top y12l=x_height; pos12(tthinnest,-450);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(3.75u,0);
+V=currentpicture transformed t; currentpicture:= V;
+penlabels(7,8,9,10,11,12); endchar;
+
+
+cmchar "Tamil ruu";
+beginchar(101,.9x_height#+9u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; y7=y6; x8=.7[x5,x4]; top y8l=bar_height; pos8(tthick,-90);
+pos7(tthin,0); x9=1.4[x5,x4]; y9=0; pos9(tthin,-180);
+x10=.7[x1,x6]; bot y10l=-d; pos10(tthinner,-270); x11=x1-6u; y11=.5bar_height;
+pos11(tthinner,-360); x12=.5[x11,x2]; top y12l=x_height; pos12(tthin,-450);
+x13=.8[x11,x2]; y13=y12-1.5u; x14=.3[x11,x2]; y14=y12-3u;
+pos13(tthin,-540); pos14(tthinner,-600);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{up}z11e...{right}z12e
+ ...{down}z13e...z14e;
+picture V; transform t; t=identity shifted(5.75u,0);
+V=currentpicture transformed t; currentpicture:= V;
+penlabels(7,8,9,10,11,12); endchar;
+
+
+cmchar "Tamil l";
+beginchar(104,1.4x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x9; top y11r=h; x12=x11+.5u; y12=y11-.25u; pos11(tthick,90); pos12(.7tthick,60);
+x13=x12; y13=x12-2u; pos13(tthin,-90); x14r=x14l=x14=x12; y14=y12; y14r=y14+1; y14l=y14-1;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+endchar;
+
+cmchar "Tamil li";
+beginchar(106,1.6x_height#+2u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x10; top y11r=h; pos11(tthick,90); x13=x12=w-u; y12=x_height;
+y13r=y13l=y13=0; x13l=x13-.6; x13r=x13+.6; pos12(tthin,0);
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e...{right}z11e...{down}z12e--z13e;
+%filldraw stroke z10e...{right}z11e...{down}z12e--z13e;
+penlabels(11,12,13);
+endchar;
+
+cmchar "Tamil lii";
+beginchar(107,1.5x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x9; top y11r=h; x12=x11+.5u; y12=y11-.25u; pos11(tthick,90); pos12(.7tthick,60);
+x13=x12; y13=x12-2u; pos13(tthin,-90); x14r=x14l=x14=x12; y14=y12; y14r=y14+1; y14l=y14-1;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e...{right}z11e..z12e...{left}z13e...{right}z14e;
+%small_iito(10,s,h);
+endchar;
+
+cmchar "Tamil lu";
+beginchar(108,2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+z21=z8; pos21(tthin,0); x22=.15[x5,x21]; bot y22r=-d; pos22(tthick,-90);
+x23=x81-u; y23=-.4d; x24=x23+.5u; y24=y23+.5u; pos23(tthin,-180); pos24(tthin,-270);
+x25=w-u; y25=y24; pos25(tthin,-270); x26r=x25; x27=x26; pos26(tmed,0);
+y26=y25l; y27=x_height; pos27(tmed,0);
+filldraw stroke z21e{down}...{left}z22e...{up}z23e...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+penlabels(21,22,23,24,25,26,27);
+endchar;
+
+cmchar "Tamil luu";
+beginchar(109,2.4x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+w:=1.9x_height;
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+z21=z8; pos21(tthin,0); x22=.15[x5,x21]; bot y22r=-d; pos22(tthick,-90);
+x23=x81-u; y23=-.4d; x24=x23+.5u; y24=y23+.5u; pos23(tthin,-180); pos24(tthin,-270);
+x25=w-u; y25=y24; pos25(tthin,-270); x26r=x25; x27=x26; pos26(tthin,0);
+y26=y25l; y27=x_height; pos27(tthin,0);
+filldraw stroke z21e{down}...{left}z22e...{up}z23e...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+w:=2.4x_height;
+x28=x27l; y28r=y27; y29=y28; x29=w-u; pos28(tthin,90); pos29(tthin,90);
+filldraw stroke z28e--z29e;
+x31=x30=.65[x28,x29]; y30=y27; y31=0; pos30(tmed,0); pos31(tmed,0);
+filldraw stroke z30e--z31e;
+penlabels(21,22,23,24,25,26,27,28,29,30);
+endchar;
+
+cmchar "Tamil lai";
+beginchar(110,2.8x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e...{up}z81e...{right}z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e...{left}z10e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
+
+cmchar "Tamil v";
+beginchar(112,1.4x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil vi";
+beginchar(114,1.65x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x21r=x10l; x21l=x10r; x21=x10; cloney(21,10);
+x11=x10; top y11r=h; pos11(tthick,90); x13=x12=w-u; y12=x_height;
+y13r=y13l=y13=0; x13l=x13-.6; x13r=x13+.6; pos12(tthin,0);
+filldraw stroke z21e{left}...{right}z11e...{down}z12e--z13e;
+penlabels(11,12,13);
+endchar;
+
+cmchar "Tamil vii";
+beginchar(115,1.5x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21r=x10l; x21l=x10r; x21=x10; cloney(21,10); small_iito(21,s,h);
+endchar;
+
+cmchar "Tamil vu";
+beginchar(116,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(11,9); y11r=y11l=y11=-d; filldraw stroke z9e--z11e;
+penlabels(11); endchar;
+
+cmchar "Tamil vuu";
+beginchar(117,1.5x_height#+3u#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(11,9); y11r=y11l=y11=-.5d; filldraw stroke z9e--z11e;
+x18=x11; y18=y11; pos18(tthin,0); x20=w-u; y20=.5[y19,y21]; pos20(tthin,-180);
+x19=.5[x18,x20]; top y19l=0; pos19(tthin,-90); x21=.5[x1,x20]; y21=-d;
+x22=x1; y22=-.4d; x23=.25[x1,x9]; y23=-.2d; x24=.5[x1,x9]; y24=-.45d;
+pos21(tthick,-270); pos22(tthin,-360); pos23(tthin,-450); pos24(tthinner,-540);
+filldraw stroke z18e{up}...{right}z19e...{down}z20e...{left}z21e...{up}z22e
+ ...{right}z23e...{down}z24e;
+penlabels(11); endchar;
+
+cmchar "Tamil z";
+beginchar(120,1.6x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+penlabels(9,10,11,12);
+endchar;
+
+cmchar "Tamil zi";
+beginchar(122,1.9x_height#,asc_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+x30=x6; top y30l=h; y31=x_height; x32=x31=w-u; y32=0;
+pos30(tthick,-90); pos31(tthin,-180); y32r=y32l=y32;
+x32r=x32-.6; x32l=x32+.6;
+filldraw stroke z6e{left}...{right}z30e...{down}z31e--z32e;
+penlabels(9,10,11,12,30,31,32);
+endchar;
+
+cmchar "Tamil zii";
+beginchar(123,1.6x_height#,body_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+small_iito(6,s,h);
+penlabels(9,10,11,12);
+endchar;
+
+cmchar "Tamil zu";
+beginchar(124,2.2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(88,8); y88r=y88l=y88=-.5d; filldraw stroke z8e--z88e;
+x9=x88; y9=y88; pos9(tthin,-360); x99=x4; y99=y9; pos99(tthin,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-.5u; y12l=h;
+pos11(tthin,-360); x12l=x12r=x12; y12=y12l-.6; y12r=y12-.6;
+filldraw stroke z9e{up}...{down}z99e...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+cmchar "Tamil zuu";
+beginchar(125,2.2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(88,8); y88r=y88l=y88=-.5d; filldraw stroke z8e--z88e;
+x9=x88; y9=y88; pos9(tthin,-360); x99=x4; y99=y9; pos99(tthin,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=.5[x11,x1]; top y12l=h;
+pos11(tthin,-360); pos12(tthin,-450); x13=.8[x11,x1]; y13=y12-1.5u;
+pos13(tthin,-540); x14=.3[x11,x1]; y14=y13-1.5u; pos14(tthinner,-600);
+filldraw stroke z9e{up}...{down}z99e...{left}z10e...{up}z11e...{right}z12e
+ ...{down}z13e...z14e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+
+
+cmchar "Tamil l dot";
+beginchar(128,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil l dot i";
+beginchar(130,1.75x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y13=y12; x13=x12r; x14=x13; top y14r=h; x15=x16=w-u; y15=y12; y16l=y16r=y16=0;
+x16l=x16-.6; x16r=x16+.6; pos13(tthin,180); pos14(tthick,90); pos15(tthin,0);
+filldraw stroke z13e{left}...{right}z14e...{down}z15e--z16e;
+penlabels(14,15,16); endchar;
+
+cmchar "Tamil l dot ii";
+beginchar(131,1.75x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y13=y12; x13=x12r;
+pos13(tthin,0);
+small_iito(13,s,h);
+endchar;
+
+cmchar "Tamil l dot u";
+beginchar(132,2.05x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=2.05x_height; d:=oldd;
+x31=x11; y31=0; pos31(tthin,0); x33=w-u; y33=.5[y32,y34]; pos33(tthin,-180);
+x32=.5[x31,x33]; y32=bar_height; pos32(tthin,-90);
+x35=x1-3u; y35=.5[y1,y2]; pos35(tthin,-360); x34=.5[x35,x33]; bot y34l=-d;
+pos34(tthick,-270); x36=x1; y36=y5; x36r=x36+.6; x36l=x36-.6;
+y36r=y36-.6; y36l=y36+.6;
+filldraw stroke z31e{up}...{right}z32e...{down}z33e...{left}z34e...{up}z35e..{right}z36e;
+picture V; transform t; t=identity shifted(3u,0); V=currentpicture transformed t;
+currentpicture:=V;
+endchar;
+
+cmchar "Tamil l dot uu";
+beginchar(133,2.05x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=2.05x_height; d:=oldd;
+x31=x11; y31=0; pos31(tthin,0); x33=w-u; y33=.5[y32,y34]; pos33(tthin,-180);
+x32=.5[x31,x33]; y32=bar_height; pos32(tthin,-90);
+x35=x1-3u; y35=.5[y1,y2]; pos35(tthin,-360); x34=.5[x35,x33]; bot y34l=-d;
+pos34(tthick,-270); x36=.5[x35,x1]; top y36l=h; pos36(tthin,-450);
+x37=.9[x35,x1]; y37=y36-u; pos37(tthin,-540); x38=.3[x35,x1]; y38=y37-u;
+pos38(tthinner,-600);
+filldraw stroke z31e{up}...{right}z32e...{down}z33e...{left}z34e...{up}z35e..{right}z36e
+ ...{down}z37e...z38e;
+picture V; transform t; t=identity shifted(3u,0); V=currentpicture transformed t;
+currentpicture:=V;
+endchar;
+
+cmchar "Tamil l dot ai";
+beginchar(134,2.75x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e...{up}z1e...{right}z5e...{down}z6e;
+filldraw stroke z7e---z8e; filldraw stroke z9e---z10e;
+filldraw stroke z11e---z12e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil alv. r";
+beginchar(136,1.3x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+endchar;
+
+cmchar "Tamil alv. raa";
+beginchar(137,1.3x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=.4[y6,y7]; pos77(tthin,-180);
+x7:=x7-u; x7r:=x7r-u; x7l:=x7l-u;
+x88=x77; y88=0; pos88(tthin,-180);
+x31=x5; bot y31l=-d; x32=-2u; y32=.3bar_height;
+pos31(tthick,-270); pos32(tthin,-360);
+x33=x33r=x33l=x11-.5u; y33=y11; y33l=y33+.6; y33r=y33-.6;
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{down}z7e...{down}z88e...{left}z31e...{up}z32e...z33e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil alv. ri";
+beginchar(138,1.7x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+x77=x6; top y77r=h; pos77(tthick,-270);
+x78=w-u; y78=x_height; x79=x78; y79=y79r=y79l=0;
+x79r=x79+.6; x79l=x79-.6; pos78(tthin,-360);
+filldraw stroke z6e{left}...{right}z77e...{down}z78e--z79e;
+endchar;
+
+cmchar "Tamil alv. rii";
+beginchar(139,1.3x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+small_iito(6,s,h);
+endchar;
+
+cmchar "Tamil alv. ru";
+beginchar(140,1.75x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=y7; pos77(tthin,-180);
+x31=x5; bot y31l=-d; x32=x1; y32=-.5d; y33=y32+.5u; x33=x32+.5u; x34=w-u; y34=y33;
+pos31(tthick,-270); pos32(tthin,-360); pos33(tthin,-450); pos34(tthin,-450);
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{left}z31e...{up}z32e...{right}z33e--z34e;
+x35r=x34; y35=y34r; x36=x35; y36=x_height; pos35(tthick,0); pos36(tthick,0);
+filldraw stroke z35e--z36e;
+endchar;
+
+cmchar "Tamil alv. ruu";
+beginchar(141,2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=y7; pos77(tthin,-180);
+x31=x5; bot y31l=-d; x32=x1; y32=-.5d; y33=y32+.5u; x33=x32+.5u; x34=w-3.3u; y34=y33;
+pos31(tthick,-270); pos32(tthin,-360); pos33(tthin,-450); pos34(tthin,-450);
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{left}z31e...{up}z32e...{right}z33e--z34e;
+x35r=x34; y35=y34r; x36=x35; y36=x_height; pos35(tthin,0); pos36(tthin,0);
+filldraw stroke z35e--z36e;
+x37=x36l; top y37r=x_height; x38=w-.3u; y38=y37; pos37(tthin,90); pos38(tthin,90);
+filldraw stroke z37e--z38e;
+x39r=x38-.7u; y39=x_height; x40=x39; y40=0; pos39(tthick,0); pos40(tthick,0);
+filldraw stroke z39e--z40e;
+endchar;
+
+
+cmchar "Tamil 2loop n";
+beginchar(144,2x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+endchar;
+
+cmchar "Tamil 2loop naa";
+beginchar(145,2x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1; y23=.8x_height;
+pos21(tthick,-1080); pos22(tthin,-1170);
+y23l+.5=y23r-.5=y23; x23l=x23; x23r=x23-1;
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{right}z23e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
+
+cmchar "Tamil 2loop ni";
+beginchar(146,2.25x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x21=x16; y21=x_height; pos21(tthin,0); x22=x21; top y22l=h; pos22(tthick,-90);
+x23=w-u; y23=x_height; x24=x23; y24=y24l=y24r=0; x24r=x24-.6; x24l=x24+.6;
+pos23(tthin,-180);
+filldraw stroke z21e{left}...{right}z22e...{down}z23e--z24e;
+penlabels(22,23,24);
+endchar;
+
+cmchar "Tamil 2loop nii";
+beginchar(147,2x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+small_iito(16,s,h);
+endchar;
+
+cmchar "Tamil 2loop nu";
+beginchar(148,2.5x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=2.5x_height; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1-3u; y23=-.43d; x24=x23+u; y24=-.25d;
+pos21(tthick,-1080); pos22(tthin,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350);
+y25=y24; x25=w-2u; pos25(tthin,-1350);
+rt x26r=x25; y26=y25; pos26(tthick,0); x27=x26; y27=h; pos27(tthick,0);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e{up}...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil 2loop nuu";
+beginchar(149,2.8x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=2.5x_height; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1-3u; y23=-.43d; x24=x23+u; y24=-.25d;
+pos21(tthick,-1080); pos22(tthin,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350);
+y25=y24; x25=w-3u; pos25(tthin,-1350);
+rt x26r=x25; y26=y25; pos26(tthin,0); x27=x26; y27=h; pos27(tthin,0);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e{up}...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+w:=2.8x_height;
+x28=lft x27l; top y28r=h; x29=w-u; y29=y28; pos28(tthin,90); pos29(tthin,90);
+rt x30r=x29-.7u; y30=h; x31=x30; y31=0; pos30(tthick,0); pos31(tthick,0);
+filldraw stroke z28e--z29e; filldraw stroke z30e--z31e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil 2loop n ai";
+beginchar(150,3x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z13e---z14e;
+filldraw stroke z15e---z16e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "grantha s dot";
+beginchar(176,2.2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "grantha s dot i";
+beginchar(178,2.5x_height#,body_height#+2u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x50=x44; y50=y44; pos50(tthin,90);
+x51=x50; top y51l=h; pos51(tthick,-90);
+x52=x53=w-u; y52=x_height; y53=y53r=y53l=0; pos52(tthin,-180);
+x53r=x53-.6; x53l=x53+.6;
+filldraw stroke z50e{left}...{right}z51e...{down}z52e--z53e;
+penlabels(50,51,52,53);
+endchar;
+
+cmchar "grantha s dot ii";
+beginchar(179,2.4x_height#,body_height#+4u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x50=x44; y50=y44; pos50(tthin,0);
+small_iito(50,s,h);
+endchar;
+
+cmchar "grantha s";
+beginchar(184,2.4x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "grantha si";
+beginchar(186,2.6x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z82=z16; x83=x16; top y83l=h; pos82(tthin,45); pos83(tthick,-90);
+x85=x84=w-u; y84=x_height; y85=y85r=y85l=0; x85r=x85-.6; x85l=x85+.6;
+pos84(tthin,-180);
+filldraw stroke z82e{left}...{right}z83e...{down}z84e--z85e;
+penlabels(83,84,85);
+endchar;
+
+cmchar "grantha sii";
+beginchar(187,2.4x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x100=x16-2.5u; x101=x16+.5u; top y101l=h; pos101(tthick,-90);
+y100=.5[y16,y101]; pos100(tthin,0);
+x102=x101+u; y102=y101-.5u; pos102(.7tthick,-135); x103=x102;
+y103=y102-2u; pos103(tthin,-270); x104=x104r=x104l=x102;
+y104=y101; y104r=y104-.6; y104l=y104+.6;
+filldraw stroke z16e{left}...{up}z100e...{right}z101e...z102e...{left}z103e...{right}z104e;
+endchar;
+
+cmchar "grantha j";
+beginchar(192,1.75x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "grantha ji";
+beginchar(194,2.05x_height#,asc_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z182=z10; x183=x10; top y183l=h; pos182(tthin,90); pos183(tthick,-90);
+x185=x184=w-u; y184=x_height; y185=y185r=y185l=0; x185r=x185-.6; x185l=x185+.6;
+pos184(tthin,-180);
+filldraw stroke z182e{left}...{right}z183e...{down}z184e--z185e;
+penlabels(183,184,185);
+endchar;
+
+cmchar "grantha jii";
+beginchar(195,1.75x_height#,body_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z82=z10; pos82(tthinner,0); small_iito(82,s,h);
+endchar;
+
+
+
+
+
+cmchar "grantha h";
+beginchar(200,3x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "grantha hi";
+beginchar(202,3.2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z180=z106; pos180(tthin,90); x181=x180; top y181l=h; pos181(tthick,-90);
+x182=x183=w-u; y182=x_height; y183=y183r=y183l=0; pos182(tthin,-180);
+x183r=x183-.6; x183l=x183+.6;
+filldraw stroke z180e{left}...{right}z181e...{down}z182e--z183e;
+penlabels(180,181,182,183);
+endchar;
+
+cmchar "grantha hii";
+beginchar(203,3x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+small_iito(106,s,h);
+endchar;
+
+cmchar "grantha ksh";
+beginchar(208,3.6x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=h-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=h; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+endchar;
+
+cmchar "grantha kshi";
+beginchar(210,3.6x_height#+2.6u#,body_height#+2u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=3.6x_height; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=asc_height-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=asc_height; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+w:=oldw;
+x250=x244; top y250l=asc_height; pos250(tthin,-90); x251=x245; top y251=h;
+pos251(tthick,90); x252=w-u; y252=x_height; pos252(tthin,0); x253=x252;
+y253=y253r=y253l=0; x253l=x253-.6; x253r=x253+.6;
+filldraw stroke z250e{left}...{right}z251e...{down}z252e--z253e;
+endchar;
+
+cmchar "grantha kshii";
+beginchar(211,3.6x_height#,body_height#+4u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=asc_height-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=asc_height; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+small_iito(244,s,h)
+endchar;
+
+cmchar "Tamil ayyatham";
+beginchar(240,asc_height#+2u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=5u-x6; bot y4=0; y2=2u; circle_points; draw_circle;
+transform ta; ta=identity shifted(w-5u,0); transform tb; tb=identity shifted(.5w-2.5u,h-6u);
+picture VA; VA=currentpicture transformed ta;
+picture VB; VB=currentpicture transformed tb;
+addto currentpicture also VA; addto currentpicture also VB;
+endchar;
+
+% following taken directly from cmr's accent.mf
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(241,5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "grantha u";
+beginchar(242,x_height#,asc_height#,0);
+adjust_fit(0,0);
+x1=u; x2=w-u; top y1r=h; y2=y1; pos1(tthinner,90); pos2(tthinner,90);
+rt x3r=x2; x4=x3; y3=h; y4=h-3u; pos3(tthinner,0); pos4(tthinner,0);
+x5=x2; bot y5l=y4; x6=x5-3u; y6=y5; pos5(tthinner,90); pos6(tthinner,90);
+lft x7l=x6; y7=y4; y8=y3; x8=x7; pos7(tthinner,0); pos8(tthinner,0);
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+filldraw stroke z7e--z8e;
+%picture V; transform t; t=identity shifted(-x_height,0);
+%V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "grantha uu";
+beginchar(243,1.2x_height#,asc_height#+3u#,0);
+adjust_fit(0,0);
+w:=x_height; h:=asc_height;
+x1=u; x2=w-u; top y1r=h; y2=y1; pos1(tthinner,90); pos2(tthinner,90);
+rt x3r=x2; x4=x3; y3=h; y4=h-3u; pos3(tthinner,0); pos4(tthinner,0);
+x5=x2; bot y5l=y4; x6=x5-3u; y6=y5; pos5(tthinner,90); pos6(tthinner,90);
+lft x7l=x6; y7=y4; y8=y3; x8=x7; pos7(tthinner,0); pos8(tthinner,0);
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+filldraw stroke z7e--z8e;
+w:=1.2x_height; h:=asc_height+3u;
+x10=w-u; x11=.5[x10,x12]; y11=y4-3u; y10=.5[y9,y11]; top y9l=h; x9=.5[x8,x10];
+pos9(tthinner,-90); pos10(tthinner,-180); pos11(tthinner,-270);
+y12=y4; x12=x6-2u; pos12(tthinner,-360);
+filldraw stroke z8e{up}...{right}z9e...{down}z10e...{left}z11e...{up}z12e;
+%picture V; transform t; t=identity shifted(-x_height,0);
+%V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
diff --git a/language/tamil/wntamil/tamilize.c b/language/tamil/wntamil/tamilize.c
new file mode 100644
index 0000000000..368bbd573b
--- /dev/null
+++ b/language/tamil/wntamil/tamilize.c
@@ -0,0 +1,323 @@
+/* Convert transliterated Tamil text to codes known to the Tamilmax.tex */
+/* set of macros using the wntml fonts */
+
+#include <stdio.h>
+#include <ctype.h>
+
+
+/* globally accessible variables */
+
+int tamilflag,t_errors,true,false,errorcount,transflag;
+char switcher,tdelim;
+char tspace[2];
+void changestate();
+FILE *input,*output;
+char filename[128];
+
+
+
+/* functions */
+
+/* void bracket_err()
+{
+ printf("\nCharacter '}' read while scanning Tamil; need to edit file.\n");
+ printf("Examine end of the output file to find location of problem.");
+ fclose(input);
+ fclose(output);
+ abort();
+} */
+
+void haccbox()
+{
+ puts("Tamilize: Tamil to TeX converter v:0.97 of 4/24/90");
+ puts("Humanities And Arts Computing Center, DR-10");
+ puts("University of Washington");
+ puts("Seattle, Washington, 98195 USA");
+ puts("phone (206)-543-4218");
+ puts("ridgeway@blake.u.washington.edu");
+ puts("Copyright 1990 Humanities and Arts Computing Center");
+ puts("You are welcome to use this work-in-progress, but please do not");
+ puts("redistribute: rather, refer other interested parties to us.");
+ puts("Since this is a work in progress, we do not want uncontrolled");
+ puts("proliferation of pre-release versions.");
+ return;
+}
+
+FILE *getopen(char *access)
+{
+ int temp;
+ FILE *handle;
+ gets(filename);
+ handle=fopen(filename,access);
+ if (handle == (FILE *) NULL) {
+ printf("Can't open file %s",filename);
+ errorcount++;
+ if (errorcount > 9) {
+ printf("\n\n\n\n\nToo many errors!\n");
+ abort();
+ }
+ }
+ return handle;
+}
+FILE *get_file(char *access,char *prompt)
+{
+ puts(prompt);
+ return getopen(access);
+}
+
+int isvowel(char thischar)
+{
+ switch (thischar) {
+ case 'a' :
+ case 'e' :
+ case 'i' :
+ case 'o' :
+ case 'u' : return true;
+ default : return false;
+ }
+}
+
+void stringout(char *string)
+{
+ fputs(string,output);
+}
+
+void charout(char thischar)
+{
+ putc(thischar,output);
+}
+
+void romanout(char thischar)
+{
+ stringout("{\\roman ");
+ charout(thischar);
+ charout('}');
+}
+
+void transcribe_err(char thischar)
+{
+ printf("Character %c encountered in Tamil environment.\n",thischar);
+ romanout(thischar);
+}
+
+void pushback(char thischar)
+{
+ ungetc(thischar,input);
+}
+
+void processtamil()
+{
+ char ch;
+ int newsyl;
+ newsyl=true;
+ for (tamilflag=true; tamilflag==true; ) {
+ ch = getc(input);
+ if (ch == EOF) abort();
+ if (ch == switcher) changestate();
+ else if (isspace(ch)) {
+ stringout(tspace);
+ charout(ch);
+ for ( ch=getc(input); isspace(ch); ch=getc(input)) charout(ch);
+ pushback(ch);
+ newsyl=true;
+ }
+ else if (ispunct(ch) ) {
+ if (ch == 125) printf("\nCharacter } encountered while scanning tamil -- probable error.\n");
+ romanout(ch);
+ newsyl=true;
+ }
+ else {
+ switch (ch) {
+ case 'a':
+ case 'e':
+ case 'i':
+ case 'o':
+ case 'u': if (newsyl==true) {
+ charout(tdelim);
+ newsyl=false;
+ }
+ charout(ch);
+ break;
+ case 'c':
+ case 't':
+ case 'p':
+ case 'm':
+ case 'y':
+ case 'r':
+ case 'l':
+ case 'v':
+ case 's':
+ case 'j':
+ case 'x':
+ case 'h': charout(tdelim);
+ charout(ch);
+ newsyl=false;
+ break;
+ case 'k': charout(tdelim);
+ ch=getc(input);
+ if (ch=='4') charout('X');
+ else {
+ charout('k');
+ pushback(ch);
+ }
+ newsyl=false;
+ break;
+ case '2': charout(tdelim);
+ charout('N');
+ newsyl=false;
+ break;
+ case '3': charout(tdelim);
+ stringout("NN");
+ newsyl=false;
+ break;
+ case '4': charout(tdelim);
+ charout('S');
+ newsyl=false;
+ break;
+ case '5': charout(tdelim);
+ stringout("NY");
+ newsyl=false;
+ break;
+ case '6': charout(tdelim);
+ charout('R');
+ newsyl=false;
+ break;
+ case '7': charout(tdelim);
+ charout('Z');
+ newsyl=false;
+ break;
+ case '8': charout(tdelim);
+ charout('T');
+ newsyl=false;
+ break;
+ case '9': charout(tdelim);
+ charout('L');
+ newsyl=false;
+ break;
+ case 'n': charout(tdelim);
+ ch=getc(input);
+ if (ch=='g') stringout("ng");
+ else {
+ charout('n');
+ pushback(ch);
+ }
+ newsyl=false;
+ break;
+ default : transcribe_err(ch);
+ newsyl=true;
+ } /* endcase */
+ } /* endif */
+ } /* endfor*/
+}
+
+void starttamil()
+{
+ stringout("{\\btam "); /* stringout("{\\starttamil\%\n"); */
+ processtamil();
+}
+
+void endtamil()
+{
+ stringout("}\\etam{}"); /* stringout("}\\endtamil\%\n"); */
+ tamilflag=false;
+}
+
+void changestate()
+{
+ if (tamilflag==true) endtamil();
+ else starttamil();
+}
+
+main(int argc, char *argv[])
+{
+ int ch,err,notdone,vowflag,initflag;
+ errorcount=0;
+ switcher='~';
+ true=1;
+ false=0;
+ tamilflag=false;
+ tdelim=1; /* i.e. control-a ::: if yah don't like it, change it */
+ tspace[0]=tdelim;
+ tspace[1]=' ';
+ haccbox();
+ vowflag=0;
+ if (argc > 1) input = fopen(argv[1],"rb");
+ if (input == (FILE *) NULL) {
+ /* prompt for and open input file */
+ for ( ; input == (FILE *) NULL ; input=get_file("rb","Enter name of input file: ")) ;
+ }
+ /* we are making these binary, as we have no guarantee what kind */
+ /* of character may be in the transcription: we don't care about */
+ /* ends of lines, as we are reading character by character */
+ if (argc > 2) output = fopen(argv[2],"wb");
+ if (output == (FILE *) NULL) {
+ for ( ; output == (FILE *) NULL ; output=get_file("wb","Enter name of output file: ")) ;
+ /* prompt for and open output file */
+ }
+ while ((ch = getc(input)) != EOF) {
+ if (ch == switcher) changestate();
+ else {
+ if (ch == '|') {
+ vowflag=1;
+ notdone=1;
+ initflag=2;
+ while (notdone) {
+ ch=getc(input);
+ if (isalnum(ch)) {
+ initflag--;
+ if (vowflag==0) {
+ if (! isvowel(ch)) stringout("\\-");
+ }
+ if (isvowel(ch)) vowflag=1;
+ else vowflag=0;
+ }
+ else {
+ vowflag=1;
+ initflag=2;
+ }
+ if (ch==EOF) notdone=0;
+ else {
+ switch(ch) {
+ case '2': stringout("\\ndot{}");
+ break;
+ case '3': stringout("\\nndot{}");
+ break;
+ case '4': stringout("\\skts{}");
+ break;
+ case '5': stringout("\\paln{}");
+ break;
+ case '6': stringout("\\rdot{}");
+ break;
+ case '7': stringout("\\rdotdot{}");
+ break;
+ case 'T': stringout("\\tdot{}");
+ break;
+ case 'D': stringout("\\dotd{}");
+ break;
+ case '8':
+ if ( initflag > 0 ) stringout("\\tdot{}");
+ else {
+ err=getc(input);
+ if (err == '8') stringout("\\tdot{}\\tdot{}");
+ else {
+ stringout("\\dotd{}");
+ pushback(err);
+ }
+ }
+ break;
+ case '9': stringout("\\dotl{}");
+ break;
+ case '|': notdone=0;
+ break;
+ default: putc(ch,output);
+ } /* endcase */
+ } /* end else */
+ } /* endwhile */
+ } /* endif */
+ else putc(ch,output);
+ } /* endelse */
+ } /* endwhile */
+ fclose(input);
+ fclose(output);
+ puts("Tamilize is done.");
+}
diff --git a/language/tamil/wntamil/tamilmax.mf b/language/tamil/wntamil/tamilmax.mf
new file mode 100644
index 0000000000..bfa7b49106
--- /dev/null
+++ b/language/tamil/wntamil/tamilmax.mf
@@ -0,0 +1,446 @@
+def tspecs =
+if callchar = "k":
+% cmchar "Tamil k";
+charspec("k",1.5x_height#,x_height#,0);
+top y2r=top y3r=top y4r=h;
+bot y7=bot y11=0;
+y1=y9=y5=.6x_height;
+y8=.5y1; y10=.5y1;
+y6=.3x_height;
+y22=h;
+x10=w-u; x8=w-x10;
+x3=x5=.6[x8,x10];
+x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
+x6=x5;
+x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
+z21=z1; x101=x10+.6u; y101=y10;
+%pickup crisp.nib;
+pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
+pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
+pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
+pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
+pos101(tthickest,-340);
+% show z1,z1r,z1l,z22,z22r,z22l;
+filldraw stroke z1e--z22e;
+filldraw stroke z2e--z4e;
+x65=x11-.075w; y65=y11+.075h; pos65(tthinnest,-540);
+filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e
+ ...z9e{right}...z10e{down}...{left}z11e...z65e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,21);
+% endchar;
+
+elseif callchar = "c":
+charspec("c",1.5x_height#,x_height#,0);
+top y2r=top y3r=top y4r=h;
+bot y7=bot y11=0;
+y1=y9=y5=.6x_height;
+y8=.5y1; y10=.5y1;
+y6=.3x_height;
+y22=h;
+x10=w-u; x8=w-x10;
+x3=x5=.6[x8,x10];
+x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
+x6=x5;
+x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
+z21=z1; x101=x10+.6u; y101=y10;
+%pickup crisp.nib;
+pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
+pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
+pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
+pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
+pos101(tthickest,-340);
+% show z1,z1r,z1l,z22,z22r,z22l;
+filldraw stroke z1e--z22e;
+filldraw stroke z2e--z4e;
+x25=x25r=x25l=x5; y25=y21; y25r=y21r; y25l=y21l;
+filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e---z25e;
+penlabels(1,2,3,4,5,6,7,8,21,25);
+% endchar;
+
+elseif callchar = "1":
+
+%cmchar "Tamil n dot";
+charspec("1",3x_height#,x_height#,0);
+%adjust_fit(0,0);
+x1=x81=u; x6=.6x10; x8=.6[x1,x6]; x7=.5[x8,x6];
+x5=.5[x1,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x9=.5[x8,x10]; x10=.7w; x12=.6[x8,x10]; x11=.5[x12,x10];
+x13=rt x10r; x14=w-u; x15=x16=.5[x13,x14];
+top y5r=top y9r=top y13r=y16=top y14r=h;
+bot y4r=bot y7r=bot y11r=y15=0;
+y2=y8=y6=y12=y10=.5h;
+y81=y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540); pos9(tmed,-630); pos10(tthicker,-720);
+pos11(tmed,-810); pos12(tthin,-900); pos13(tthin,-990);
+pos14(tthin,-990); pos15(tthicker,0); pos16(tthicker,0);
+if dodraw:
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z10e
+ ...{left}z11e...{up}z12e...{right}z13e; %---z14e;
+fi
+%filldraw stroke z15e---z16e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+
+elseif callchar = "p":
+
+charspec("p",1.4x_height#,x_height#,0);
+y1=y6=h; y2=y5=bot y3l=bot y4l=0;
+lft x1l=lft x2l=x3=u;
+rt x5r=rt x6r=x4=w-u;
+pos1(tthick,0); pos2(tthick,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+filldraw stroke z5e---z6e;
+penlabels(1,2,4,6);
+
+elseif callchar = "n":
+
+charspec("n",1.5x_height#,x_height#,.5x_height#);
+x12=u; x11=x1=x2=x3=3u; x4=rt x9r=w-u;
+x7=x5=x6=.4[x1,x9]; x8=.6[x7,x9]; x13=.6[x12,x11]; x10=.5[x7,x8];
+y1=y6=y7=0; top y3r=top y4r=y2=y5=h;
+y8=.55h; y9=.5y8; bot y13l=-d; y10=y11=-.3d; y12=.4[y10,y13];
+pos1(tthinner,0); pos2(tthinner,0); pos3(tmed,90); pos4(tmed,90);
+pos5(tthick,0); pos6(tthick,0); pos7(tthin,180); pos8(tthin,90);
+pos9(tthick,0); pos10(tthin,-90); pos11(tthin,-90); pos12(tthinner,0);
+pos13(tthick,45);
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; filldraw stroke z5e--z6e;
+%filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+penlabels(1,2,4,5,6,8,9,10,11,12,13);
+%endchar;
+
+elseif callchar = "r":
+
+charspec("?",1.125x_height#+2u#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
+y1=y6=0; y2=y3=y4=y5=h;
+pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
+penlabels(1,2,3,4,5,6);
+
+elseif callchar = "r2":
+
+charspec("?",.9x_height#+2u#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
+y1=y6=0; y2=y3=y4=y5=h;
+pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
+penlabels(1,2,3,4,5,6);
+
+elseif callchar="y":
+
+charspec("y",1.5x_height#,x_height#,0);
+x1=x2=u; x8=x9=x10=w-u; x7=x4=x5=x6=.35[x1,x9]; x3=.35[x1,x5];
+y9=y5=y1=h; y2=.3h; y4=.5h; bot y7l=bot y8l=bot y3l=y6=y10=0;
+pos1(.8tmed,0); pos2(.8tmed,0); pos3(tthin,90); pos4(tthinner,180);
+pos5(tthick,0); pos6(tthick,0); pos7(tthin,90); pos8(tthin,90);
+pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e--z2e{down}...{right}z3e...{up}z4e;
+filldraw stroke z5e--z6e; filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+%endchar;
+
+elseif callchar="a":
+
+charspec("a",2x_height#,x_height#,desc_depth#);
+%adjust_fit(0,0);
+x3=.5[x9,x11]; y1=.8h; y5=y12=h; y2=y4=y6=.6h; y3=.2h; x1=.45[x9,x11];
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=w-u;
+x9=u; x10=.15[x9,x11]; y8=y13=-d; y7=y3; y9=-.1d; y10=y11=0;
+z20=z1;
+pos1(hair,70); pos2(.8curve,0); pos3(hair,-90); pos4(hair,190);
+pos5(hair,90); pos6(curve,0); pos7(tthickest,-20); pos8(tmed,-90);
+pos9(hair,-180); pos10(hair,90); pos11(hair,90); pos12(.8curve,20);
+pos13(.8curve,20);pos20(hair,135);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...z5e...{down}z7e...{left}z8e...{up}z9e...z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+
+elseif callchar="v":
+
+charspec("v",1.5x_height#,x_height#,0);
+x1=x81=u; x6=.6[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=y10=h; y9=0; y6=.5h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
+pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+
+
+elseif callchar="l":
+
+charspec("l",1.5x_height#,x_height#,0);
+x81=u; x9=w-u; x6=x7=.55[x81,x9]; x8=x10=.5[x6,x9]; x1=.1[x81,x6];
+x5=.5[x81,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y81=y2=.5h; y1=y3=.5y2; bot y4r=bot y8l=0;
+top y5r=h; top y10l=h; y9=.5h; y6=.6h; y7=.4h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-360);
+pos8(tmed,-270); pos9(tthin,-180); pos10(tmed,-120);
+%filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e..z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+
+elseif callchar="m":
+
+charspec("m",1.6x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u;
+rt x5r=w-u; x8=x7=.5w;
+x6=.3[x8,x5]; x4=.8[x8,x5];
+y1=top y6r=h;
+y2=bot y3r=bot y4r=y8=0;
+y5=.5h; y7=.8h;
+pos1(tthick,0); pos2(tthick,0);
+pos3(tthin,-90); pos4(tthin,-90);
+pos5(tthinner,0); pos6(tmed,90);
+pos7(tthick,180); pos8(tthick,180);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e...{up}z5e...{left}z6e...{down}z7e---z8e;
+penlabels(1,2,4,5,6,7,8);
+
+elseif callchar="T":
+
+charspec("7",1.75x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u;
+y1=h; y2=bot y3l=bot y4l=0;
+pos1(tthick,0); pos2(tthick,0);
+pos3(tthin,90); pos4(tthin,90);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+penlabels(1,2,4);
+
+elseif callchar="L":
+
+charspec("9",1.75x_height#,x_height#,0);
+x81=x1=u; x6=x7=x8=x9=.55w; x11=x12=.8w; x10=w-u;
+x3=x5=.5[x1,x6]; x2=x4=.5[x1,x3];
+bot y4r=y6=y7=y11=0; top y5r=y8=top y9r=top y10r=y12=h;
+y1=y81=y3=.5y2; y2=.6h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0);
+pos4(tthin,-90); pos81(tthinner,-180); pos5(tthick,-270);
+pos6(tthin,-360); pos7(tthin,0); pos8(tthin,0);
+pos9(tthin,90); pos10(tthin,90); pos11(tthick,0); pos12(tthick,0);
+if dodraw:
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e...{down}z6e;
+filldraw stroke z7e---z8e; filldraw stroke z9e---z10e;
+filldraw stroke z11e---z12e;
+fi
+penlabels(1,2,3,4,5,6,8,10,11,12);
+
+elseif callchar="N":
+
+charspec("N",2x_height#,x_height#,0);
+x81=u; x1=.05[x81,x6]; x6=.6w; x8=.6[x81,x6]; x7=.5[x8,x6];
+x5=.5[x81,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x13=rt x6r; x14=w-u; x15=x16=.5[x13,x14];
+top y5r=top y13r=y16=top y14r=h;
+bot y4r=bot y7r=y15=0;
+y8=y6=.5h; y2=bar_height; y81=y2;
+y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540);
+pos13(tthin,-630);
+pos14(tthin,-630); pos15(tthicker,0); pos16(tthicker,0);
+if dodraw:
+filldraw stroke z4e...{up}z1e...{right}z2e...{down}z3e...{left}z4e...{up}z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z13e; %---z14e;
+%filldraw stroke z15e---z16e;
+fi
+penlabels(1,2,3,4,5,6,7,8,13,14,15,16);
+
+elseif callchar="R":
+
+charspec("R",1.3x_height#,x_height#,desc_depth#);
+x1=x11=u; x7=w-u; x3=x5=.4[x1,x7]; x2=.5[x1,x3]; x6=.5[x4,x7]; x8=.9[x1,x7];
+rt x12r=.5u; x9=x10=.05[x1,x7]; x4r=x3l;
+top y2l=top y6l=h; y8=y1=y5=.05h; y9=-.4d; y10=-.8d; y12=-.6d;
+y11=y3=y4=.7h; y7=.4h;
+pos1(tthin,0); pos11(tthin,0); pos2(tmed,-90); pos3(tthick,-180);
+pos4(tthinnest,0); pos5(tthick,-180); pos6(tthin,-90); pos7(tthick,-180);
+pos8(tthin,-245); pos9(tthin,-245); pos12(tthin,-180); pos10(tthin,-135);
+filldraw stroke z1e--z11e{up}...{right}z2e...{down}z3e--z5e;
+%filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+penlabels(1,2,3,5,6,7,8,9,10,11,12);
+
+elseif callchar="g":
+
+charspec("2",1.5x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u; x11=x12=x13=w-u;
+x8=.7[x1,x12]; x5=x6=x7=x10=.4[x1,x8]; x9=.5[x1,x12]; % x7=x6r; will line up
+x4=.8[x1,x13]; x77=.6[x7,x8];
+y1=bot y10l=y9=bot y11l=y12=0;
+y2=top y3r=top y4r=y5=y13=h;
+y6=.35h; y8=.4h; y77=.65h;
+pos1(tthinnest,0); pos2(tthinnest,0);
+pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0);
+% pos6(tthick,45);
+x6l+.5tthick=x6=x6r-.5tthick; y6l+.5tthick=y6=y6r-.5tthick;
+y7l=y6r;
+pos77(tthin,90);
+pos7(tthinner,90); pos8(tthicker,45); pos9(tthick,0);
+pos10(tthin,90); pos11(tthin,90);
+pos12(tthick,0); pos13(tthick,0);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+filldraw stroke z5e---z6e;
+filldraw stroke z7e..z77e{right}...z8e{down}...z9e;
+filldraw stroke z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,4,5,6,8,9,10,11,13);
+
+
+elseif callchar = "e":
+
+charspec(6,1.6x_height#,x_height#,0);
+y6=y7=y8=h; y9=bot y4r=0; y2=.6h; y1=.3h; y3=.3h; y5=y2; %y5=.85h;
+x5=u; x7=w-u; x8=x9=x7-2u; x6=x3=x1+3u; x1=x5+hair; x2=x4=x1+1.5u;
+z20=z1;
+pos1(tthinnest,180); pos2(tmed,90); pos3(tthick,0); pos4(tmed,-90); pos20(tthin,-160);
+pos5(tthinner,-180); pos6(tthin,-270); pos7(tthin,-270);
+pos8(tthick,0); pos9(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z6e---z7e;
+filldraw stroke z8e---z9e;
+penlabels(1,2,3,4,5,6,7,8,9);
+
+elseif callchar = "u":
+
+charspec(4,2x_height#,x_height#,0);
+x6=.55w; x4=x9=.1w; x1=x8=x10=.15w; x3=.2w; x2=.3w; x5=x7=.4w; x11=.9w;
+y10=y11=0; y5=h; y1=.85h; y2=y4=y6=.65h; y3=.45h;
+y7=y8=.25h; y9=.125h;
+z20=z1;
+pos1(tmed,45); pos2(tmed,0); pos3(tthinner,-90); pos4(tthinnest,-180);
+pos20(tthinnest,-225); pos5(tthinner,-270); pos6(tthick,-360); pos7(tmed,-430);
+pos8(tthin,-450); pos9(tthinnest,-360); pos10(tthin,-290);
+pos11(tthin,-290);
+filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z5e;
+filldraw stroke z5e{right}...{down}z6e...{left}z7e;
+filldraw stroke z7e{left}...{left}z8e...{down}z9e;
+filldraw stroke z9e{down}...{right}z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+
+elseif callchar = "S":
+
+charspec("S",2.2x_height#,asc_height#,desc_depth#);
+x1=x81=u; x6=.45[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5x_height; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=y10=x_height; y9=0; y6=y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tmed,-450);
+pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+x40=w-3.5u; y40=y7; pos40(tmed,-450); y41=.5bar_height; x41=w-u;
+pos41(tthick,-360); x43=.5[x7,x40]; y43=h-y41; z42=.5[z41,z43];
+pos42(.5(tthick+tthin),-315); pos43(tthin,-360);
+x44=.5[x43,x45]; top y44l=h; pos44(tmed,-450); x45=x43+4u; y45=y43;
+pos45(tthin,-540); x46=.5[x7,x43]; bot y46l=-d; pos46(tthinner,-585);
+filldraw stroke z7e--z40e{right}...{up}z41e...{z43-z41}z42e...{up}z43e
+ ...{right}z44e...z45e--z46e;
+penlabels(1,2,3,4,5,6,7,40,41,42,43,45,46);
+
+elseif callchar = "s":
+
+charspec("s",2.4x_height#,x_height#,0);
+x6=u; y6=.5h; x8=x9=.43w; x12=x13=.7w; x15=w-u;
+x7=x3=x1=.5[x6,x9]; x2=x1-1.5u; x4=x1+1.5u; y2=y4=.5[y1,y3];
+top y3l=bar_height; bot y1l=0; z5=z1; top y7l=top y11l=top y16r=h;
+y8=.65h; y9=0; bot y14r=0; x11=.5[x9,x14]; x14=.4[x13,x15]; x16=.65[x13,x15];
+y15=y6; y12=y8; y13=1.5u; z10=z8;
+pos1(tthin,90); pos2(tthin,0); pos3(tthin,-90); pos4(tmed,-180);
+pos5(tthin,-270); pos6(tthin,-360); pos7(1.2tthin,-450); pos8(tmed,-540);
+pos9(tmed,-540); pos10(tthin,0); pos11(tthin,-90); pos12(tmed,-180);
+pos13(tmed,-180); pos14(.8tmed,-90); pos15(tthin,0); pos16(tthinner,45);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...{left}z5e
+ ...{up}z6e...{right}z7e...{down}z8e--z9e;
+filldraw stroke z10e{up}...{right}z11e...{down}z12e--z13e...{right}z14e
+ ...{up}z15e...{left}z16e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+
+elseif callchar = "j":
+%cmchar "grantha j";
+charspec("j",1.75x_height#,x_height#,.8x_height#);
+top y7r=y10l=h; y4=y8=y9=.2h; bot y15r=bot y19l=-d; y12=.9bar_height;
+y21=.25h; y13=-.2d; y14=-.6d; y16=-.8d; y17=y18=-.3d; y20=-.2d;
+y1=y3=.4h; y2=.7h; y11=.75h; y85=0;
+x14r=x1r=u; x11=x12l=w-u; x8=x9=x17=x18=.55[x1,x11]; x85=x8;
+x7=.6[x1,x8]; x10=.5[x9,x11]; x3=.6[x1,x8]; x2=x4=.5[x1,x3];
+x13=x2; x15=x7-.7u; x16=x17; x19=.5[x18,x11]; x20=.95x11; x21=.9x11;
+x77=x8; y77=.6h; z99=z77;
+pos77(tthick,-360); pos99(tthick,0);
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+z55=z1; pos55(tthinner,-180);
+pos7(tthick,-270); pos8(tmed,-405);
+pos9(tmed,-45); pos10(tthin,-90); pos11(tthick,-180); pos12(tthick,-200);
+pos21(tthin,-240); pos13(tthinner,-240); pos14(tthin,-180);
+pos15(tthick,-90); pos16(tthick,-45); pos17(tthick,-45);
+pos18(tthick,-45); pos19(tthin,-270); pos20(tmed,225);
+pos85(tthin,-270);
+x65=x19; y65=y17; pos65(tthin,-90); x66=x12; y66=.5[y65,y19]; pos66(tmed,-180);
+z67=.5[z15,z65]; pos67(tthin,-315);
+filldraw stroke z1e..z2e{right}..z3e{down}..z4e{left}..z55e...{right}z7e...{down}z77e---z8e;
+filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e...{left}z85e{left}..z14e{down}...z15e{right}
+ ...{right}z65e...{down}z66e...{left}z19e...z67e;
+penlabels(1,2,3,4,55,7,8,9,10,11,12,21,13,14,15,65,66,19,67);
+
+elseif callchar="h":
+
+charspec("h",3x_height#,x_height#,desc_depth#);
+x1=x81=u; x6=.6[x1,x8]; x8=1.5x_height-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=h; y6=.5h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
+pos8(tthick,-450);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+filldraw stroke z7e--z8e;
+
+x101=x111=x8; x107=w-2u; x103=x105=.4[x101,x107]; x102=.5[x101,x103];
+x106=.5[x104,x107]; x108=.9[x101,x107];
+rt x112r=u; x109=x110=x112+.75u; x104r=x103l;
+top y102l=top y106l=h; y108=y101=y105=0; y109=-.4d; y110=-.8d; y112=-.6d;
+y111=y103=y104=.7h; y107=.4h; y131=y109+.2u; x131=.3[x108,x109]; pos131(tthinner,-270);
+pos101(tthin,0); pos111(tthin,0); pos102(tmed,-90); pos103(tthick,-180);
+pos104(tthinnest,0); pos105(tthick,-180); pos106(tthin,-90); pos107(tthick,-180);
+pos108(tthin,-245); pos109(tthin,-245); pos112(tthin,-180); pos110(tthin,-135);
+filldraw stroke z101e--z111e{up}...{right}z102e...{down}z103e--z105e;
+filldraw stroke z104e{up}...{right}z106e...{down}z107e..z108e...{left}z131e...z109e...{down}z112e..z110e;
+penlabels(101,102,103,104,105,106,107,108,109,110);
+
+
+
+
+fi
+
+enddef;
+
+def aipoints =
+x209=x204=-x_height+u; x201=x203=x205=x204+1.5u; x202=x201+1.5u; x207=0;
+y209=.9bar_height; y207=asc_height-y209;
+y208=.5[y209,y207]; x206=x208=x210=-.5x_height+.5u;
+y201=y205=y206-.5u; y204=y202=y201-1.5u; y203=y202-1.5u;
+if goleft:
+top y206l=asc_height; bot y210r=0;
+pos201(tthin,-90); pos202(tmed,-180); pos203(tthin,-270);
+pos204(tthin,-360); pos205(tthin,-450); pos206(tthin,-450);
+pos207(tthick,-540); pos208(tthin,-585); pos209(tthin,-540);
+pos210(tthin,-450);
+else:
+top y206r=asc_height; bot y210l=0;
+pos201(tthin,90); pos202(tmed,0); pos203(tthin,-90);
+pos204(tthin,-180); pos205(tthin,-270); pos206(tthin,-270);
+pos207(tthick,-360); pos208(tthin,-405); pos209(tthin,-360);
+pos210(tthin,-270);
+fi
+enddef;
diff --git a/language/tamil/wntamil/tamilmax.tex b/language/tamil/wntamil/tamilmax.tex
new file mode 100644
index 0000000000..4d1ca5039f
--- /dev/null
+++ b/language/tamil/wntamil/tamilmax.tex
@@ -0,0 +1,369 @@
+\font\tmlfnt=wntml10
+\catcode`^^A=0
+\def\starttamil{\tmlfnt}
+\def\endtamil{}
+\def\thyph{\discretionary{}{}{}}
+\def\btam{\starttamil}
+\def\etam{\endtamil}
+\def\viram{\accent241}
+\def\C{\char}
+\def\zaa{\C97}
+\def\ze{\C22}
+\def\zee{\C23}
+\def\zai{\C17}
+\def\zo#1{\ze#1\zaa}
+\def\zoo#1{\zee#1\zaa}
+\def\zau#1{\ze#1\La}
+\def\a{\C0}
+\def\aa{\C1}
+\def\i{\C2}
+\def\ii{\C3}
+\def\u{\C4}
+\def\uu{\C5}
+\def\e{\C6}
+\def\ai{\C7}
+\def\au{\o\La}
+\def\k{\viram\C8\thyph}
+\def\ka{\C8}
+\def\kaa{\C8\zaa}
+\def\o{\C9}
+\def\ki{\C10}
+\def\kii{\C11}
+\def\ku{\C12}
+\def\kuu{\C13}
+\def\ke{\ze\C8}
+\def\kee{\zee\C8}
+\def\kai{\zai\C8}
+\def\ko{\zo{\C8}}
+\def\koo{\zoo{\C8}}
+\def\kau{\zau{\C8}}
+\def\oo{\C14}
+\def\ee{\C15}
+\def\ng{\viram\C16\thyph}
+\def\nga{\C16}
+\def\ngaa{\C16\zaa}
+\def\ngi{\C18}
+\def\ngii{\C19}
+\def\ngu{\C20}
+\def\nguu{\C21}
+\def\nge{\ze\C16}
+\def\ngee{\zee\C16}
+\def\ngai{\zai\C16}
+\def\ngo{\zo{\C16}}
+\def\ngoo{\zoo{\C16}}
+\def\ngau{\zau{\C16}}
+%
+\def\c{\viram\C24\thyph}
+\def\ca{\C24}
+\def\caa{\C24\zaa}
+\def\ci{\C26}
+\def\cii{\C27}
+\def\cu{\C28}
+\def\cuu{\C29}
+\def\ce{\ze\C24}
+\def\cee{\zee\C24}
+\def\cai{\zai\C24}
+\def\co{\zo{\C24}}
+\def\coo{\zoo{\C24}}
+\def\cau{\zau{\C24}}
+%
+\def\NY{\viram\C32\thyph}
+\def\NYa{\C32}
+\def\NYaa{\C32\zaa}
+\def\NYi{\C34}
+\def\NYii{\C35}
+\def\NYu{\C36}
+\def\NYuu{\C37}
+\def\NYe{\ze\C32}
+\def\NYee{\zee\C32}
+\def\NYai{\zai\C32}
+\def\NYo{\zo{\C32}}
+\def\NYoo{\zoo{\C32}}
+\def\NYau{\zau{\C32}}
+%
+\def\T{\viram\C40\thyph}
+\def\Ta{\C40}
+\def\Taa{\C40\zaa}
+\def\Ti{\C42}
+\def\Tii{\C43}
+\def\Tu{\C44}
+\def\Tuu{\C45}
+\def\Te{\ze\C40}
+\def\Tee{\zee\C40}
+\def\Tai{\zai\C40}
+\def\To{\zo{\C40}}
+\def\Too{\zoo{\C40}}
+\def\Tau{\zau{\C40}}
+%
+\def\NN{\viram\C48\thyph}
+\def\NNa{\C48}
+\def\NNaa{\C49}
+\def\NNi{\C50}
+\def\NNii{\C51}
+\def\NNu{\C52}
+\def\NNuu{\C53}
+\def\NNe{\ze\C48}
+\def\NNee{\zee\C48}
+\def\NNai{\C54}
+\def\NNo{\ze{\C49}}
+\def\NNoo{\zee{\C49}}
+\def\NNau{\zau{\C48}}
+%
+\def\t{\viram\C56\thyph}
+\def\ta{\C56}
+\def\taa{\C56\zaa}
+\def\ti{\C58}
+\def\tii{\C59}
+\def\tu{\C60}
+\def\tuu{\C61}
+\def\te{\ze\C56}
+\def\tee{\zee\C56}
+\def\tai{\zai\C56}
+\def\to{\zo{\C56}}
+\def\too{\zoo{\C56}}
+\def\tau{\zau{\C56}}
+%
+\def\n{\viram\C64\thyph}
+\def\na{\C64}
+\def\naa{\C64\zaa}
+\def\ni{\C66}
+\def\nii{\C67}
+\def\nu{\C68}
+\def\nuu{\C69}
+\def\ne{\ze\C64}
+\def\nee{\zee\C64}
+\def\nai{\zai\C64}
+\def\no{\zo{\C64}}
+\def\noo{\zoo{\C64}}
+\def\nau{\zau{\C64}}
+%
+\def\p{\viram\C72\thyph}
+\def\pa{\C72}
+\def\paa{\C72\zaa}
+\def\pi{\C74}
+\def\pii{\C75}
+\def\pu{\C76}
+\def\puu{\C77}
+\def\pe{\ze\C72}
+\def\pee{\zee\C72}
+\def\pai{\zai\C72}
+\def\po{\zo{\C72}}
+\def\poo{\zoo{\C72}}
+\def\pau{\zau{\C72}}
+%
+\def\m{\viram\C80\thyph}
+\def\ma{\C80}
+\def\maa{\C80\zaa}
+\def\mi{\C82}
+\def\mii{\C83}
+\def\mu{\C84}
+\def\muu{\C85}
+\def\me{\ze\C80}
+\def\mee{\zee\C80}
+\def\mai{\zai\C80}
+\def\mo{\zo{\C80}}
+\def\moo{\zoo{\C80}}
+\def\mau{\zau{\C80}}
+%
+\def\y{\viram\C88\thyph}
+\def\ya{\C88}
+\def\yaa{\C88\zaa}
+\def\yi{\C90}
+\def\yii{\C91}
+\def\yu{\C92}
+\def\yuu{\C93}
+\def\ye{\ze\C88}
+\def\yee{\zee\C88}
+\def\yai{\zai\C88}
+\def\yo{\zo{\C88}}
+\def\yoo{\zoo{\C88}}
+\def\yau{\zau{\C88}}
+%
+\def\r{\viram\C96\thyph}
+\def\ra{\C96}
+\def\raa{\C96\zaa}
+\def\ri{\C98}
+\def\rii{\C99}
+\def\ru{\C100}
+\def\ruu{\C101}
+\def\re{\ze\C96}
+\def\ree{\zee\C96}
+\def\rai{\zai\C96}
+\def\ro{\zo{\C96}}
+\def\roo{\zoo{\C96}}
+\def\rau{\zau{\C96}}
+%
+\def\l{\viram\C104\thyph}
+\def\la{\C104}
+\def\laa{\C104\zaa}
+\def\li{\C106}
+\def\lii{\C107}
+\def\lu{\C108}
+\def\luu{\C109}
+\def\le{\ze\C104}
+\def\lee{\zee\C104}
+\def\lai{\C110}
+\def\lo{\zo{\C104}}
+\def\loo{\zoo{\C104}}
+\def\lau{\zau{\C104}}
+%
+\def\v{\viram\C112\thyph}
+\def\va{\C112}
+\def\vaa{\C112\zaa}
+\def\vi{\C114}
+\def\vii{\C115}
+\def\vu{\C116}
+\def\vuu{\C117}
+\def\ve{\ze\C112}
+\def\vee{\zee\C112}
+\def\vai{\zai\C112}
+\def\vo{\zo{\C112}}
+\def\voo{\zoo{\C112}}
+\def\vau{\zau{\C112}}
+%
+\def\Z{\viram\C120\thyph}
+\def\Za{\C120}
+\def\Zaa{\C120\zaa}
+\def\Zi{\C122}
+\def\Zii{\C123}
+\def\Zu{\C124}
+\def\Zuu{\C125}
+\def\Ze{\ze\C120}
+\def\Zee{\zee\C120}
+\def\Zai{\zai\C120}
+\def\Zo{\zo{\C120}}
+\def\Zoo{\zoo{\C120}}
+\def\Zau{\zau{\C120}}
+%
+\def\L{\viram\C128\thyph}
+\def\La{\C128}
+\def\Laa{\C128\zaa}
+\def\Li{\C130}
+\def\Lii{\C131}
+\def\Lu{\C132}
+\def\Luu{\C133}
+\def\Le{\ze\C128}
+\def\Lee{\zee\C128}
+\def\Lai{\C134}
+\def\Lo{\zo{\C128}}
+\def\Loo{\zoo{\C128}}
+\def\Lau{\zau{\C128}}
+%
+\def\R{\viram\C136\thyph}
+\def\Ra{\C136}
+\def\Raa{\C137}
+\def\Ri{\C138}
+\def\Rii{\C139}
+\def\Ru{\C140}
+\def\Ruu{\C141}
+\def\Re{\ze\C136}
+\def\Ree{\zee\C136}
+\def\Rai{\zai\C136}
+\def\Ro{\ze{\C137}}
+\def\Roo{\zee{\C137}}
+\def\Rau{\zau{\C136}}
+%
+\def\N{\viram\C144\thyph}
+\def\Na{\C144}
+\def\Naa{\C145}
+\def\Ni{\C146}
+\def\Nii{\C147}
+\def\Nu{\C148}
+\def\Nuu{\C149}
+\def\Ne{\ze\C144}
+\def\Nee{\zee\C144}
+\def\Nai{\C150}
+\def\No{\ze{\C145}}
+\def\Noo{\zee{\C145}}
+\def\Nau{\zau{\C144}}
+%
+\def\S{\viram\C176\thyph}
+\def\Sa{\C176}
+\def\Saa{\C176\zaa}
+\def\Si{\C178}
+\def\Sii{\C179}
+\def\Su{\C176\C242}
+\def\Suu{\C176\C243}
+\def\Se{\ze\C176}
+\def\See{\zee\C176}
+\def\Sai{\zai\C176}
+\def\So{\zo{\C176}}
+\def\Soo{\zoo{\C176}}
+\def\Sau{\zau{\C176}}
+%
+\def\s{\viram\C184\thyph}
+\def\sa{\C184}
+\def\saa{\C184\zaa}
+\def\si{\C186}
+\def\sii{\C187}
+\def\su{\C184\C242}
+\def\suu{\C184\C243}
+\def\se{\ze\C184}
+\def\see{\zee\C184}
+\def\sai{\zai\C184}
+\def\so{\zo{\C184}}
+\def\soo{\zoo{\C184}}
+\def\sau{\zau{\C184}}
+%
+\def\j{\viram\C192\thyph}
+\def\ja{\C192}
+\def\jaa{\C192\zaa}
+\def\ji{\C194}
+\def\jii{\C195}
+\def\ju{\C192\C242}
+\def\juu{\C192\C243}
+\def\je{\ze\C192}
+\def\jee{\zee\C192}
+\def\jai{\zai\C192}
+\def\jo{\zo{\C192}}
+\def\joo{\zoo{\C192}}
+\def\jau{\zau{\C192}}
+%
+\def\h{\viram\C200\thyph}
+\def\ha{\C200}
+\def\haa{\C200\zaa}
+\def\hi{\C202}
+\def\hii{\C203}
+\def\hu{\C200\C242}
+\def\huu{\C200\C243}
+\def\he{\ze\C200}
+\def\hee{\zee\C200}
+\def\hai{\zai\C200}
+\def\ho{\zo{\C200}}
+\def\hoo{\zoo{\C200}}
+\def\hau{\zau{\C200}}
+%
+\def\x{\viram\C208\thyph}
+\def\xa{\C208}
+\def\xaa{\C208\zaa}
+\def\xi{\C210}
+\def\xii{\C211}
+\def\xu{\C208\C242}
+\def\xuu{\C208\C243}
+\def\xe{\ze\C208}
+\def\xee{\zee\C208}
+\def\xai{\zai\C208}
+\def\xo{\zo{\C208}}
+\def\xoo{\zoo{\C208}}
+\def\xau{\zau{\C208}}
+%
+\newbox\wnbox
+\newdimen\wndimen
+\def\wnalign#1{\leavevmode\vtop to0pt{\baselineskip0pt\lineskip.25ex%
+ \ialign{##\crcr#1\crcr}}} % put characters over each other
+\def\pstack#1#2{\leavevmode\setbox\wnbox=\hbox{#2}{\wnalign{#1\crcr\hidewidth\wndimen=\ht\wnbox\advance\wndimen by .25ex\lower\wndimen\hbox{\unhbox\wnbox}\hidewidth}}}
+%
+\def\ndot{n}
+\def\nndot{\d n}
+\def\skts{\'s}
+\def\rdot{\d r}
+\def\rdotdot{\pstack{r}{\char127}}
+\def\tdot{\d t}
+\def\dotd{\d d}
+\def\dotl{\d l}
+\def\paln{\~n}
+%
+% temporary place holders
+\def\sr{\relax}
+\def\st{\relax}
+% end of file tamilmax
diff --git a/language/tamil/wntamil/tmilize.c b/language/tamil/wntamil/tmilize.c
new file mode 100644
index 0000000000..f717699a17
--- /dev/null
+++ b/language/tamil/wntamil/tmilize.c
@@ -0,0 +1,324 @@
+/* Convert transliterated Tamil text to codes known to the Tamilmax.tex */
+/* set of macros using the wntml fonts */
+
+#include <stdio.h>
+#include <ctype.h>
+
+
+/* globally accessible variables */
+
+int tamilflag,t_errors,true,false,errorcount,transflag;
+char switcher,tdelim;
+char tspace[2];
+void changestate();
+FILE *input,*output;
+char filename[128];
+
+
+
+/* functions */
+
+/* void bracket_err()
+{
+ printf("\nCharacter '}' read while scanning Tamil; need to edit file.\n");
+ printf("Examine end of the output file to find location of problem.");
+ fclose(input);
+ fclose(output);
+ abort();
+} */
+
+void haccbox()
+{
+ puts("Tamilize: Tamil to TeX converter v:0.97 of 4/24/90");
+ puts("Humanities And Arts Computing Center, DR-10");
+ puts("University of Washington");
+ puts("Seattle, Washington, 98195 USA");
+ puts("phone (206)-543-4218");
+ puts("ridgeway@blake.u.washington.edu");
+ puts("Copyright 1990 Humanities and Arts Computing Center");
+ puts("You are welcome to use this work-in-progress, but please do not");
+ puts("redistribute: rather, refer other interested parties to us.");
+ puts("Since this is a work in progress, we do not want uncontrolled");
+ puts("proliferation of pre-release versions.");
+ return;
+}
+
+FILE *getopen(char *access)
+{
+ int temp;
+ FILE *handle;
+ gets(filename);
+ handle=fopen(filename,access);
+ if (handle == (FILE *) NULL) {
+ printf("Can't open file %s",filename);
+ errorcount++;
+ if (errorcount > 9) {
+ printf("\n\n\n\n\nToo many errors!\n");
+ abort();
+ }
+ }
+ return handle;
+}
+FILE *get_file(char *access,char *prompt)
+{
+ puts(prompt);
+ return getopen(access);
+}
+
+int isvowel(char thischar)
+{
+ switch (thischar) {
+ case 'a' :
+ case 'e' :
+ case 'i' :
+ case 'o' :
+ case 'u' : return true;
+ default : return false;
+ }
+}
+
+void stringout(char *string)
+{
+ fputs(string,output);
+}
+
+void charout(char thischar)
+{
+ putc(thischar,output);
+}
+
+void romanout(char thischar)
+{
+ stringout("{\\roman ");
+ charout(thischar);
+ charout('}');
+}
+
+void transcribe_err(char thischar)
+{
+ printf("Character %c encountered in Tamil environment.\n",thischar);
+ romanout(thischar);
+}
+
+void pushback(char thischar)
+{
+ ungetc(thischar,input);
+}
+
+void processtamil()
+{
+ char ch;
+ int newsyl;
+ newsyl=true;
+ for (tamilflag=true; tamilflag==true; ) {
+ ch = getc(input);
+ if (ch == EOF) abort();
+ if (ch == switcher) changestate();
+ else if (isspace(ch)) {
+ stringout(tspace);
+ charout(ch);
+ for ( ch=getc(input); isspace(ch); ch=getc(input)) charout(ch);
+ pushback(ch);
+ newsyl=true;
+ }
+ else if (ispunct(ch) ) {
+ if (ch == 125) printf("\nCharacter } encountered while scanning tamil -- probable error.\n");
+ romanout(ch);
+ newsyl=true;
+ }
+ else {
+ switch (ch) {
+ case 'a':
+ case 'e':
+ case 'i':
+ case 'o':
+ case 'u': if (newsyl==true) {
+ charout(tdelim);
+ newsyl=false;
+ }
+ charout(ch);
+ break;
+ case 'c':
+ case 't':
+ case 'p':
+ case 'm':
+ case 'y':
+ case 'r':
+ case 'l':
+ case 'v':
+ case 's':
+ case 'j':
+ case 'x':
+ case 'h': charout(tdelim);
+ charout(ch);
+ newsyl=false;
+ break;
+ case 'k': charout(tdelim);
+ ch=getc(input);
+ if (ch=='4') charout('X');
+ else {
+ charout('k');
+ pushback(ch);
+ }
+ newsyl=false;
+ break;
+ case '2': charout(tdelim);
+ charout('N');
+ newsyl=false;
+ break;
+ case '3': charout(tdelim);
+ stringout("NN");
+ newsyl=false;
+ break;
+ case '4': charout(tdelim);
+ charout('S');
+ newsyl=false;
+ break;
+ case '5': charout(tdelim);
+ stringout("NY");
+ newsyl=false;
+ break;
+ case '6': charout(tdelim);
+ charout('R');
+ newsyl=false;
+ break;
+ case '7': charout(tdelim);
+ charout('Z');
+ newsyl=false;
+ break;
+ case '8': charout(tdelim);
+ charout('T');
+ newsyl=false;
+ break;
+ case '9': charout(tdelim);
+ charout('L');
+ newsyl=false;
+ break;
+ case 'n': charout(tdelim);
+ ch=getc(input);
+ if (ch=='g') stringout("ng");
+ else {
+ charout('n');
+ pushback(ch);
+ }
+ newsyl=false;
+ break;
+ default : transcribe_err(ch);
+ newsyl=true;
+ } /* endcase */
+ } /* endif */
+ } /* endfor*/
+}
+
+void starttamil()
+{
+ stringout("{\\btam "); /* stringout("{\\starttamil\%\n"); */
+ processtamil();
+}
+
+void endtamil()
+{
+ stringout("}\\etam{}"); /* stringout("}\\endtamil\%\n"); */
+ tamilflag=false;
+}
+
+void changestate()
+{
+ if (tamilflag==true) endtamil();
+ else starttamil();
+}
+
+main(int argc, char *argv[])
+{
+ int ch,err,notdone,vowflag,initflag;
+ errorcount=0;
+ switcher='~';
+ true=1;
+ false=0;
+ tamilflag=false;
+ tdelim=92; /* if we are in ASCII, that is a backslash */
+ /* if we aren't in ASCII, we just bought the farm probably */
+ tspace[0]=tdelim;
+ tspace[1]=' ';
+ haccbox();
+ vowflag=0;
+ if (argc > 1) input = fopen(argv[1],"rb");
+ if (input == (FILE *) NULL) {
+ /* prompt for and open input file */
+ for ( ; input == (FILE *) NULL ; input=get_file("rb","Enter name of input file: ")) ;
+ }
+ /* we are making these binary, as we have no guarantee what kind */
+ /* of character may be in the transcription: we don't care about */
+ /* ends of lines, as we are reading character by character */
+ if (argc > 2) output = fopen(argv[2],"wb");
+ if (output == (FILE *) NULL) {
+ for ( ; output == (FILE *) NULL ; output=get_file("wb","Enter name of output file: ")) ;
+ /* prompt for and open output file */
+ }
+ while ((ch = getc(input)) != EOF) {
+ if (ch == switcher) changestate();
+ else {
+ if (ch == '|') {
+ vowflag=1;
+ notdone=1;
+ initflag=2;
+ while (notdone) {
+ ch=getc(input);
+ if (isalnum(ch)) {
+ initflag--;
+ if (vowflag==0) {
+ if (! isvowel(ch)) stringout("\\-");
+ }
+ if (isvowel(ch)) vowflag=1;
+ else vowflag=0;
+ }
+ else {
+ vowflag=1;
+ initflag=2;
+ }
+ if (ch==EOF) notdone=0;
+ else {
+ switch(ch) {
+ case '2': stringout("\\ndot{}");
+ break;
+ case '3': stringout("\\nndot{}");
+ break;
+ case '4': stringout("\\skts{}");
+ break;
+ case '5': stringout("\\paln{}");
+ break;
+ case '6': stringout("\\rdot{}");
+ break;
+ case '7': stringout("\\rdotdot{}");
+ break;
+ case 'T': stringout("\\tdot{}");
+ break;
+ case 'D': stringout("\\dotd{}");
+ break;
+ case '8':
+ if ( initflag > 0 ) stringout("\\tdot{}");
+ else {
+ err=getc(input);
+ if (err == '8') stringout("\\tdot{}\\tdot{}");
+ else {
+ stringout("\\dotd{}");
+ pushback(err);
+ }
+ }
+ break;
+ case '9': stringout("\\dotl{}");
+ break;
+ case '|': notdone=0;
+ break;
+ default: putc(ch,output);
+ } /* endcase */
+ } /* end else */
+ } /* endwhile */
+ } /* endif */
+ else putc(ch,output);
+ } /* endelse */
+ } /* endwhile */
+ fclose(input);
+ fclose(output);
+ puts("Tamilize is done.");
+}
diff --git a/language/tamil/wntamil/wntamil.mf b/language/tamil/wntamil/wntamil.mf
new file mode 100644
index 0000000000..48fb61b9c3
--- /dev/null
+++ b/language/tamil/wntamil/wntamil.mf
@@ -0,0 +1,16 @@
+% This is WNTAMIL as of July 21, 1988
+% Washington Tamil is designed for use with
+% the Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+
+
+mode_setup; font_setup;
+
+input tamil
+
+ font_slant slant;
+ font_x_height x_height#;
+ font_normal_space 9u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+bye.
diff --git a/language/tamil/wntamil/wntml10.mf b/language/tamil/wntamil/wntml10.mf
new file mode 100644
index 0000000000..dfa6ee08e9
--- /dev/null
+++ b/language/tamil/wntamil/wntml10.mf
@@ -0,0 +1,76 @@
+% This is WNTML10.MF (Washington Tamil 10pt) as of July 21, 1988.
+% This is based on CMR10.MF in text format, as of May 5, 1986.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNTML"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate wntamil % switch to the driver file