\documentstyle{article}
\addtolength{\textwidth}{1.5cm}
\addtolength{\textheight}{1.5cm}
\input tlsyllable
\newcommand{\bs}{$\backslash$}
\title{TeluguTeX\footnote{\copyright 1991\ \   Lakshmi V. S. Mukkavilli}}
\author{Lakshmi V. S. Mukkavilli}
\date{}
\begin{document}
\maketitle
%\tableofcontents

There are seven  sections in this article.
The first section  explains the Telugu script. For someone who can speak
Telugu this section should help learn Telugu script.
On most of the computers there is no facility for inputting Telugu
text. We propose a romanization scheme for inputting Telugu.
This facilitates text entry in Telugu. This is the subject of the
second section.
We provide examples of Telugu text typeset using our system in the third
section.
In the fourth section we explain the problems involved in typesetting
telugu text.
The fifth section deals with implementation and the sixth section contains
samples of telugu text typeset using various sizes/styles.
Last section summarizes our work.
\section{Telugu Script}
Like English, Telugu is written from left to right. Telugu text consists of
sentences. A sentence is a sequence of words. A word is  a sequence
of syllables called Aksharas. An Akshara can be of two types.
\begin{enumerate}\label{syldef}
\item a stand-alone vowel
\item Consonant + Consonant +\ldots+Consonant+Vowel
\end{enumerate}

Let $C_1$ be the first consonant, $C_2$ be the second consonant and
$C_n$ be the $n^{th}$ consonant. Let the vowel be denoted by $V$.

An Akshara is composed as follows: $C_1$ is considered  the base
consonant. $C_2$ to $C_n$ are called consonant conjuncts. Consonant
conjuncts are optional. The Vowel modifies the base consonant.
The vowel modifier may be absent. Such a situation is indicated
by a symbol called {\em pollu} or {\em halant} ({\tlc\QQQ\zzJJ X}).
When this symbol is attached to a consonant we get what is called
the half consonant or the pure consonant ( so called because
of the absence of any vowel sound).
The form of Base Consonant + Vowel(henceforth refered to as C+V)
varies depending on both
the consonant and the vowel. The vowel modifiers can appear
to the right, on the top or at the bottom of the base consonant.
In many cases a completely different symbol is needed. After
Consonant + Vowel is formed, consonant conjuncts are attached
in the order they appear in the syllable. Consonant Conjuncts
are placed to the right or below C+V.
Consonant Conjuncts have a different form than either base consonant
or C+V's.

An Akshara can optionally have accent(s). Accents could appear
at the top or on the side or at the bottom of a syllable.

Table~\ref{t31} lists stand-alone vowels and corresponding modifiers.
The blob of ink stands for consonant base. The table indicates the
placement of vowel modifiers in relation to base consonant. But
one should understand that there are very many exceptions.
\begin{table}
\centering
{\tlc
\begin{tabular}{|lll|}\hline
\rm Vowel&\rm Vowel&\rm Vowel\\
    &\rm (in roman)&\rm Modifier\\ \hline
\QQQ a&\rm a&{\QQQ\zzJJ a}\\
\QQQ A&\rm A&{\QQQ\zzJJ A}\\
\QQQ i&\rm i&{\QQQ\zzJJ i}\\
\QQQ I&\rm I&{\QQQ\zzJJ I}\\
\QQQ u&\rm u&{\QQQ\zzJJ u}\\
\QQQ U&\rm U&{\QQQ\zzJJ U}\\
\QQQ rx&\rm ro&{\QQQ\zzJJ rx}\\
\QQQ Rx&\rm Roo&{\QQQ\zzJJ Rx}\\
\QQQ lx&\rm lo&{\QQQ\zzJJ lx}\\
\QQQ Lx&\rm Loo&{\QQQ\zzJJ Lx}\\
\QQQ e&\rm e&{\QQQ\zzJJ e}\\
\QQQ E&\rm E&{\QQQ\zzJJ E}\\
\QQQ y&\rm y&{\QQQ\zzJJ y}\\
\QQQ o&\rm o&{\QQQ\zzJJ o}\\
\QQQ O&\rm O&{\QQQ\zzJJ O}\\
\QQQ ow&\rm ow&{\QQQ\zzJJ ow}\\ \hline
\end{tabular}
}
\caption{Vowels in Telugu\label{t31}}
\end{table}

Table~\ref{t32} presents various forms of consonants. In the first column
consonants appear in pure form. In the second column consonants
appear with an implicit {\tlc\QQQ a}. The last column indicates
the shape of consonant conjuncts and the positioning of consonant
conjuncts. One may recall that a syllable can have several consonant
conjuncts. There is no consonant conjunct form for {\tlc\QQQ Xha}.

\begin{table}
\centering
{\tlc
\begin{tabular}{|llll|}\hline
\rm Consonant&\rm Consonant&\rm Consonant&\rm Consonant\\
\rm (without ``a''&\rm (with ``a''&\rm (in roman)&\rm Conjunct\\
\rm modifier)&\rm  modifier)&&\\ \hline
\QQQ kX&\QQQ ka&\rm k&{\QQQ \zzJJ ka}\\
\QQQ khX&\QQQ kha&\rm kh&{\QQQ \zzJJ kha}\\
\QQQ gX&\QQQ ga&\rm g&{\QQQ \zzJJ ga}\\
\QQQ ghX&\QQQ gha&\rm gh&{\QQQ \zzJJ gha}\\
\QQQ NGX&\QQQ NGa&\rm NG&{\QQQ \zzJJ NGa}\\
\QQQ cX&\QQQ ca&\rm c&{\QQQ \zzJJ ca}\\
\QQQ chX&\QQQ cha&\rm ch&{\QQQ \zzJJ cha}\\
\QQQ jX&\QQQ ja&\rm j&{\QQQ \zzJJ ja}\\
\QQQ jhX&\QQQ jha&\rm jh&{\QQQ \zzJJ jha}\\
\QQQ nxX&\QQQ nxa&\rm nx&{\QQQ \zzJJ nxa}\\
\QQQ TX&\QQQ Ta&\rm T&{\QQQ \zzJJ Ta}\\
\QQQ ThX&\QQQ Tha&\rm Th&{\QQQ \zzJJ Tha}\\
\QQQ DX&\QQQ Da&\rm D&{\QQQ \zzJJ Da}\\
\QQQ DhX&\QQQ Dha&\rm Dh&{\QQQ \zzJJ Dha}\\
\QQQ NX&\QQQ Na&\rm N&{\QQQ \zzJJ Na}\\
\QQQ tX&\QQQ ta&\rm t&{\QQQ \zzJJ ta}\\
\QQQ thX&\QQQ tha&\rm th&{\QQQ \zzJJ tha}\\
\QQQ dX&\QQQ da&\rm d&{\QQQ \zzJJ da}\\
\QQQ dhX&\QQQ dha&\rm dh&{\QQQ \zzJJ dha}\\
\QQQ nX&\QQQ na&\rm n&{\QQQ \zzJJ na}\\
\QQQ pX&\QQQ pa&\rm p&{\QQQ \zzJJ pa}\\
\QQQ phX&\QQQ pha&\rm ph&{\QQQ \zzJJ pha}\\
\QQQ bX&\QQQ ba&\rm b&{\QQQ \zzJJ ba}\\
\QQQ bhX&\QQQ bha&\rm bh&{\QQQ \zzJJ bha}\\
\QQQ mX&\QQQ ma&\rm m&{\QQQ \zzJJ ma}\\
\QQQ YX&\QQQ Ya&\rm Y&{\QQQ \zzJJ Ya}\\
\QQQ rX&\QQQ ra&\rm r&{\QQQ \zzJJ ra}\\
\QQQ RX&\QQQ Ra&\rm R&{\QQQ \zzJJ Ra}\\
\QQQ lX&\QQQ la&\rm l&{\QQQ \zzJJ la}\\
\QQQ LX&\QQQ La&\rm L&{\QQQ \zzJJ La}\\
\QQQ vX&\QQQ va&\rm v&{\QQQ \zzJJ va}\\
\QQQ SX&\QQQ Sa&\rm S&{\QQQ \zzJJ Sa}\\
\QQQ ShX&\QQQ Sha&\rm Sh&{\QQQ \zzJJ Sha}\\
\QQQ sX&\QQQ sa&\rm s&{\QQQ \zzJJ sa}\\
\QQQ HX&\QQQ Ha&\rm H&{\QQQ \zzJJ Ha}\\
\QQQ XhX&\QQQ Xha&\rm Xh& \\ \hline
\end{tabular}
}
\caption{Consonants in Telugu\label{t32}}
\end{table}
Table~\ref{t33} presents the accents used in Telugu text. The first column
indicates the shape of accents. The second column indicates where the
accents are placed relative to the syllable. The accents that go at the
top or at the bottom appear over/below the base consonant. A syllable can
have multiple accents. Many of the accents presented in the table do not
appear in ordinary Telugu text. They occur mostly in Sanskirt text
transliterated in Telugu.

\begin{table}
\centering
{\tlc
\begin{tabular}{|lll|}\hline
\rm Accent&\rm Usage&\rm Comments\\ \hline
\QQQ Mh&\QQQ\zzJJ aMh&\rm arasunna\\
\QQQ M&\QQQ\zzJJ aM&\rm sunna\\
\QQQ ah&\QQQ\zzJJ aah&\rm visarga\\
\QQQ \zzBB&\QQQ\zzJJ a\zzBB&\rm ardhavisarga\\
\QQQ \zzFF&\QQQ\zzJJ a\zzFF&\rm avagraha\\
\QQQ \zzCC&\QQQ\zzJJ a\zzCC&{\QQQ ca\zzCC, ja\zzCC}\\
\QQQ \zzCF&\QQQ\zzJJ a\zzCF&\rm nakarapollu\\
\QQQ \zzCJ&\QQQ\zzJJ a\zzCJ&\rm valapalagilaka\\
\QQQ \zzBF&\QQQ\zzJJ a\zzBF&\rm udatta(one bar)\\
\QQQ \zzBJ&\QQQ\zzJJ a\zzBJ&\rm udatta(two bars)\\
\QQQ \zzFJ&\QQQ\zzJJ a\zzFJ&\rm anudatta\\ \hline
\end{tabular}
}
\caption{Accents (used to modify syllables)\label{t33}}
\end{table}


These days most Telugu texts use Hindu-Arabic digits. But there are
digits that are native to Telugu. These are presented in Table~\ref{t34}.

\begin{table}
\centering
{\tlc\zzBC%use telugu digits
\begin{tabular}{|ll|}\hline
0&\rm zero\\
1&\rm one\\
2&\rm two\\
3&\rm three\\
4&\rm four\\
5&\rm five\\
6&\rm six\\
7&\rm seven\\
8&\rm eight\\
9&{\rm nine}\\\hline
\end{tabular}
}
\caption{Telugu Digits\label{t34}}
\end{table}


As we have said when a base consonant combines with a vowel the base consonant
undergoes a transformation and takes a new look. There are no rules
that are universally applicable. In table~\ref{t36} we provide
the complete picture. In this table you can find the entry for every
C+V combination.
\clearpage
\begin{table}
\centering
{\tlc
\begin{tabular}{|c|cccccccccccccccc|}\hline
&\QQQ a&\QQQ A&\QQQ i&\QQQ I&\QQQ u&\QQQ U&\QQQ rx&\QQQ Rx&\QQQ lx&\QQQ Lx&\QQQ e&\QQQ E&\QQQ y&\QQQ o&\QQQ O&{\QQQ ow}\\\hline
\QQQ kX&\QQQ ka&\QQQ kA&\QQQ ki&\QQQ kI&\QQQ ku&\QQQ kU&\QQQ krx&\QQQ kRx&\QQQ klx&\QQQ kLx&\QQQ ke&\QQQ kE&\QQQ ky&\QQQ ko&\QQQ kO&{\QQQ kow}\\
\QQQ khX&\QQQ kha&\QQQ khA&\QQQ khi&\QQQ khI&\QQQ khu&\QQQ khU&\QQQ khrx&\QQQ khRx&\QQQ khlx&\QQQ khLx&\QQQ khe&\QQQ khE&\QQQ khy&\QQQ kho&\QQQ khO&{\QQQ khow}\\
\QQQ gX&\QQQ ga&\QQQ gA&\QQQ gi&\QQQ gI&\QQQ gu&\QQQ gU&\QQQ grx&\QQQ gRx&\QQQ glx&\QQQ gLx&\QQQ ge&\QQQ gE&\QQQ gy&\QQQ go&\QQQ gO&{\QQQ gow}\\
\QQQ ghX&\QQQ gha&\QQQ ghA&\QQQ ghi&\QQQ ghI&\QQQ ghu&\QQQ ghU&\QQQ ghrx&\QQQ ghRx&\QQQ ghlx&\QQQ ghLx&\QQQ ghe&\QQQ ghE&\QQQ ghy&\QQQ gho&\QQQ ghO&{\QQQ ghow}\\
\QQQ NGX&\QQQ NGa&\QQQ NGA&\QQQ NGi&\QQQ NGI&\QQQ NGu&\QQQ NGU&\QQQ NGrx&\QQQ NGRx&\QQQ NGlx&\QQQ NGLx&\QQQ NGe&\QQQ NGE&\QQQ NGy&\QQQ NGo&\QQQ NGO&{\QQQ NGow}\\
\QQQ cX&\QQQ ca&\QQQ cA&\QQQ ci&\QQQ cI&\QQQ cu&\QQQ cU&\QQQ crx&\QQQ cRx&\QQQ clx&\QQQ cLx&\QQQ ce&\QQQ cE&\QQQ cy&\QQQ co&\QQQ cO&{\QQQ cow}\\
\QQQ chX&\QQQ cha&\QQQ chA&\QQQ chi&\QQQ chI&\QQQ chu&\QQQ chU&\QQQ chrx&\QQQ chRx&\QQQ chlx&\QQQ chLx&\QQQ che&\QQQ chE&\QQQ chy&\QQQ cho&\QQQ chO&{\QQQ chow}\\
\QQQ jX&\QQQ ja&\QQQ jA&\QQQ ji&\QQQ jI&\QQQ ju&\QQQ jU&\QQQ jrx&\QQQ jRx&\QQQ jlx&\QQQ jLx&\QQQ je&\QQQ jE&\QQQ jy&\QQQ jo&\QQQ jO&{\QQQ jow}\\
\QQQ jhX&\QQQ jha&\QQQ jhA&\QQQ jhi&\QQQ jhI&\QQQ jhu&\QQQ jhU&\QQQ jhrx&\QQQ jhRx&\QQQ jhlx&\QQQ jhLx&\QQQ jhe&\QQQ jhE&\QQQ jhy&\QQQ jho&\QQQ jhO&{\QQQ jhow}\\
\QQQ nxX&\QQQ nxa&\QQQ nxA&\QQQ nxi&\QQQ nxI&\QQQ nxu&\QQQ nxU&\QQQ nxrx&\QQQ nxRx&\QQQ nxlx&\QQQ nxLx&\QQQ nxe&\QQQ nxE&\QQQ nxy&\QQQ nxo&\QQQ nxO&{\QQQ nxow}\\
\QQQ TX&\QQQ Ta&\QQQ TA&\QQQ Ti&\QQQ TI&\QQQ Tu&\QQQ TU&\QQQ Trx&\QQQ TRx&\QQQ Tlx&\QQQ TLx&\QQQ Te&\QQQ TE&\QQQ Ty&\QQQ To&\QQQ TO&{\QQQ Tow}\\
\QQQ ThX&\QQQ Tha&\QQQ ThA&\QQQ Thi&\QQQ ThI&\QQQ Thu&\QQQ ThU&\QQQ Thrx&\QQQ ThRx&\QQQ Thlx&\QQQ ThLx&\QQQ The&\QQQ ThE&\QQQ Thy&\QQQ Tho&\QQQ ThO&{\QQQ Thow}\\
\QQQ DX&\QQQ Da&\QQQ DA&\QQQ Di&\QQQ DI&\QQQ Du&\QQQ DU&\QQQ Drx&\QQQ DRx&\QQQ Dlx&\QQQ DLx&\QQQ De&\QQQ DE&\QQQ Dy&\QQQ Do&\QQQ DO&{\QQQ Dow}\\
\QQQ DhX&\QQQ Dha&\QQQ DhA&\QQQ Dhi&\QQQ DhI&\QQQ Dhu&\QQQ DhU&\QQQ Dhrx&\QQQ DhRx&\QQQ Dhlx&\QQQ DhLx&\QQQ Dhe&\QQQ DhE&\QQQ Dhy&\QQQ Dho&\QQQ DhO&{\QQQ Dhow}\\
\QQQ NX&\QQQ Na&\QQQ NA&\QQQ Ni&\QQQ NI&\QQQ Nu&\QQQ NU&\QQQ Nrx&\QQQ NRx&\QQQ Nlx&\QQQ NLx&\QQQ Ne&\QQQ NE&\QQQ Ny&\QQQ No&\QQQ NO&{\QQQ Now}\\
\QQQ tX&\QQQ ta&\QQQ tA&\QQQ ti&\QQQ tI&\QQQ tu&\QQQ tU&\QQQ trx&\QQQ tRx&\QQQ tlx&\QQQ tLx&\QQQ te&\QQQ tE&\QQQ ty&\QQQ to&\QQQ tO&{\QQQ tow}\\
\QQQ thX&\QQQ tha&\QQQ thA&\QQQ thi&\QQQ thI&\QQQ thu&\QQQ thU&\QQQ thrx&\QQQ thRx&\QQQ thlx&\QQQ thLx&\QQQ the&\QQQ thE&\QQQ thy&\QQQ tho&\QQQ thO&{\QQQ thow}\\
\QQQ dX&\QQQ da&\QQQ dA&\QQQ di&\QQQ dI&\QQQ du&\QQQ dU&\QQQ drx&\QQQ dRx&\QQQ dlx&\QQQ dLx&\QQQ de&\QQQ dE&\QQQ dy&\QQQ do&\QQQ dO&{\QQQ dow}\\
\QQQ dhX&\QQQ dha&\QQQ dhA&\QQQ dhi&\QQQ dhI&\QQQ dhu&\QQQ dhU&\QQQ dhrx&\QQQ dhRx&\QQQ dhlx&\QQQ dhLx&\QQQ dhe&\QQQ dhE&\QQQ dhy&\QQQ dho&\QQQ dhO&{\QQQ dhow}\\
\QQQ nX&\QQQ na&\QQQ nA&\QQQ ni&\QQQ nI&\QQQ nu&\QQQ nU&\QQQ nrx&\QQQ nRx&\QQQ nlx&\QQQ nLx&\QQQ ne&\QQQ nE&\QQQ ny&\QQQ no&\QQQ nO&{\QQQ now}\\
\QQQ pX&\QQQ pa&\QQQ pA&\QQQ pi&\QQQ pI&\QQQ pu&\QQQ pU&\QQQ prx&\QQQ pRx&\QQQ plx&\QQQ pLx&\QQQ pe&\QQQ pE&\QQQ py&\QQQ po&\QQQ pO&{\QQQ pow}\\
\QQQ phX&\QQQ pha&\QQQ phA&\QQQ phi&\QQQ phI&\QQQ phu&\QQQ phU&\QQQ phrx&\QQQ phRx&\QQQ phlx&\QQQ phLx&\QQQ phe&\QQQ phE&\QQQ phy&\QQQ pho&\QQQ phO&{\QQQ phow}\\
\QQQ bX&\QQQ ba&\QQQ bA&\QQQ bi&\QQQ bI&\QQQ bu&\QQQ bU&\QQQ brx&\QQQ bRx&\QQQ blx&\QQQ bLx&\QQQ be&\QQQ bE&\QQQ by&\QQQ bo&\QQQ bO&{\QQQ bow}\\
\QQQ bhX&\QQQ bha&\QQQ bhA&\QQQ bhi&\QQQ bhI&\QQQ bhu&\QQQ bhU&\QQQ bhrx&\QQQ bhRx&\QQQ bhlx&\QQQ bhLx&\QQQ bhe&\QQQ bhE&\QQQ bhy&\QQQ bho&\QQQ bhO&{\QQQ bhow}\\
\QQQ mX&\QQQ ma&\QQQ mA&\QQQ mi&\QQQ mI&\QQQ mu&\QQQ mU&\QQQ mrx&\QQQ mRx&\QQQ mlx&\QQQ mLx&\QQQ me&\QQQ mE&\QQQ my&\QQQ mo&\QQQ mO&{\QQQ mow}\\
\QQQ YX&\QQQ Ya&\QQQ YA&\QQQ Yi&\QQQ YI&\QQQ Yu&\QQQ YU&\QQQ Yrx&\QQQ YRx&\QQQ Ylx&\QQQ YLx&\QQQ Ye&\QQQ YE&\QQQ Yy&\QQQ Yo&\QQQ YO&{\QQQ Yow}\\
\QQQ rX&\QQQ ra&\QQQ rA&\QQQ ri&\QQQ rI&\QQQ ru&\QQQ rU&\QQQ rrx&\QQQ rRx&\QQQ rlx&\QQQ rLx&\QQQ re&\QQQ rE&\QQQ ry&\QQQ ro&\QQQ rO&{\QQQ row}\\
\QQQ RX&\QQQ Ra&\QQQ RA&\QQQ Ri&\QQQ RI&\QQQ Ru&\QQQ RU&\QQQ Rrx&\QQQ RRx&\QQQ Rlx&\QQQ RLx&\QQQ Re&\QQQ RE&\QQQ Ry&\QQQ Ro&\QQQ RO&{\QQQ Row}\\
\QQQ lX&\QQQ la&\QQQ lA&\QQQ li&\QQQ lI&\QQQ lu&\QQQ lU&\QQQ lrx&\QQQ lRx&\QQQ llx&\QQQ lLx&\QQQ le&\QQQ lE&\QQQ ly&\QQQ lo&\QQQ lO&{\QQQ low}\\
\QQQ LX&\QQQ La&\QQQ LA&\QQQ Li&\QQQ LI&\QQQ Lu&\QQQ LU&\QQQ Lrx&\QQQ LRx&\QQQ Llx&\QQQ LLx&\QQQ Le&\QQQ LE&\QQQ Ly&\QQQ Lo&\QQQ LO&{\QQQ Low}\\
\QQQ vX&\QQQ va&\QQQ vA&\QQQ vi&\QQQ vI&\QQQ vu&\QQQ vU&\QQQ vrx&\QQQ vRx&\QQQ vlx&\QQQ vLx&\QQQ ve&\QQQ vE&\QQQ vy&\QQQ vo&\QQQ vO&{\QQQ vow}\\
\QQQ SX&\QQQ Sa&\QQQ SA&\QQQ Si&\QQQ SI&\QQQ Su&\QQQ SU&\QQQ Srx&\QQQ SRx&\QQQ Slx&\QQQ SLx&\QQQ Se&\QQQ SE&\QQQ Sy&\QQQ So&\QQQ SO&{\QQQ Sow}\\
\QQQ ShX&\QQQ Sha&\QQQ ShA&\QQQ Shi&\QQQ ShI&\QQQ Shu&\QQQ ShU&\QQQ Shrx&\QQQ ShRx&\QQQ Shlx&\QQQ ShLx&\QQQ She&\QQQ ShE&\QQQ Shy&\QQQ Sho&\QQQ ShO&{\QQQ Show}\\
\QQQ sX&\QQQ sa&\QQQ sA&\QQQ si&\QQQ sI&\QQQ su&\QQQ sU&\QQQ srx&\QQQ sRx&\QQQ slx&\QQQ sLx&\QQQ se&\QQQ sE&\QQQ sy&\QQQ so&\QQQ sO&{\QQQ sow}\\
\QQQ HX&\QQQ Ha&\QQQ HA&\QQQ Hi&\QQQ HI&\QQQ Hu&\QQQ HU&\QQQ Hrx&\QQQ HRx&\QQQ Hlx&\QQQ HLx&\QQQ He&\QQQ HE&\QQQ Hy&\QQQ Ho&\QQQ HO&{\QQQ How}\\
\QQQ XhX&\QQQ Xha&\QQQ XhA&\QQQ Xhi&\QQQ XhI&\QQQ Xhu&\QQQ XhU&\QQQ Xhrx&\QQQ XhRx&\QQQ Xhlx&\QQQ XhLx&\QQQ Xhe&\QQQ XhE&\QQQ Xhy&\QQQ Xho&\QQQ XhO&{\QQQ Xhow}\\\hline
\end{tabular}
}
\caption{\label{t36}Consonant + Vowel Combinations}
\end{table}

\clearpage

There are two symbols ({\tlc \zzFB\ \& \zzFC\ }) that are
used as sentence/line delimiters in poetry
and in Sanskrit text.

Table~\ref{t38} displays all the symbols in the font. The font is available
in several styles and sizes.
All the symbols that also exist in ASCII character set are in the same position
as in ASCII. The codes for non-ASCII symbols are determined by us
because there are no established standards.
But that does not mean that they can not be changed. All the codes are
referred to by using variable(symbolic) names. All these variable
assignments are
placed in one file. If a different code assignment is desired, then
it is a simple matter of changing the numbers in this file. Then
METAFONT programs should be rerun. As explained later,
when we genarate a font, a  file containing character codes
(among other things) is generated.
Text composition software and \TeX\ read character codes from this file.
In summary, if we want to change the codes for symbols in the font, we
need to do that in one place and our implementation propagates the
changes across the system.

\begin{table}
\centering
{\tlc
\begin{tabular}{||c||c|c|c|c|c|c|c|c||}\hline\hline
\openup0.2ex
& '0 & '1 & '2 & '3 & '4 & '5 & '6 & '7 \\ \hline\hline
'00\_ & \char'000 & \char'001 & \char'002 & \char'003 & \char'004 & \char'005 &
                          \char'006 & \char'007 \\ \hline
'01\_ & \char'010 & \char'011 & \char'012 & \char'013 & \char'014 & \char'015 &
                          \char'016 & \char'017 \\ \hline
'02\_ & \char'020 & \char'021 & \char'022 & \char'023 & \char'024 & \char'025 &
                          \char'026 & \char'027 \\ \hline
'03\_ & \char'030 & \char'031 & \char'032 & \char'033 & \char'034 & \char'035 &
                          \char'036 & \char'037 \\ \hline
'04\_ & \char'040 & \char'041 & \char'042 & \char'043 & \char'044 & \char'045 &
                          \char'046 & \char'047 \\ \hline
'05\_ & \char'050 & \char'051 & \char'052 & \char'053 & \char'054 & \char'055 &
                          \char'056 & \char'057 \\ \hline
'06\_ & \char'060 & \char'061 & \char'062 & \char'063 & \char'064 & \char'065 &
                          \char'066 & \char'067 \\ \hline
'07\_ & \char'070 & \char'071 & \char'072 & \char'073 & \char'074 & \char'075 &
                          \char'076 & \char'077 \\ \hline
'10\_ & \char'100 & \char'101 & \char'102 & \char'103 & \char'104 & \char'105 &
                          \char'106 & \char'107 \\ \hline
'11\_ & \char'110 & \char'111 & \char'112 & \char'113 & \char'114 & \char'115 &
                          \char'116 & \char'117 \\ \hline
'12\_ & \char'120 & \char'121 & \char'122 & \char'123 & \char'124 & \char'125 &
                          \char'126 & \char'127 \\ \hline
'13\_ & \char'130 & \char'131 & \char'132 & \char'133 & \char'134 & \char'135 &
                          \char'136 & \char'137 \\ \hline
'14\_ & \char'140 & \char'141 & \char'142 & \char'143 & \char'144 & \char'145 &
                          \char'146 & \char'147 \\ \hline
'15\_ & \char'150 & \char'151 & \char'152 & \char'153 & \char'154 & \char'155 &
                          \char'156 & \char'157 \\ \hline
'16\_ & \char'160 & \char'161 & \char'162 & \char'163 & \char'164 & \char'165 &
                          \char'166 & \char'167 \\ \hline
'17\_ & \char'170 & \char'171 & \char'172 & \char'173 & \char'174 & \char'175 &
                          \char'176 & \char'177 \\ \hline
'20\_ & \char'200 & \char'201 & \char'202 & \char'203 & \char'204 & \char'205 &
                          \char'206 & \char'207 \\ \hline
'21\_ & \char'210 & \char'211 & \char'212 & \char'213 & \char'214 & \char'215 &
                          \char'216 & \char'217 \\ \hline
'22\_ & \char'220 & \char'221 & \char'222 & \char'223 & \char'224 & \char'225 &
                          \char'226 & \char'227 \\ \hline
'23\_ & \char'230 & \char'231 & \char'232 & \char'233 & \char'234 & \char'235 &
                          \char'236 & \char'237 \\ \hline
'24\_ & \char'240 & \char'241 & \char'242 & \char'243 & \char'244 & \char'245 &
                          \char'246 & \char'247 \\ \hline
'25\_ & \char'250 & \char'251 & \char'252 & \char'253 & \char'254 & \char'255 &
                          \char'256 & \char'257 \\ \hline
'26\_ & \char'260 & \char'261 & \char'262 & \char'263 & \char'264 & \char'265 &
                          \char'266 & \char'267 \\ \hline
'27\_ & \char'270 & \char'271 & \char'272 & \char'273 & \char'274 & \char'275 &
                          \char'276 & \char'277 \\ \hline
'30\_ & \char'300 & \char'301 & \char'302 & \char'303 & \char'304 & \char'305 &
                          \char'306 & \char'307 \\ \hline
'31\_ & \char'310 & \char'311 & \char'312 & \char'313 & \char'314 & \char'315 &
                          \char'316 & \char'317 \\ \hline
'32\_ & \char'320 & \char'321 & \char'322 & \char'323 & \char'324 & \char'325 &
                          \char'326 & \char'327 \\ \hline
'33\_ & \char'330 & \char'331 & \char'332 & \char'333 & \char'334 & \char'335 &
                          \char'336 & \char'337 \\ \hline
'34\_ & \char'340 & \char'341 & \char'342 & \char'343 & \char'344 & \char'345 &
                          \char'346 & \char'347 \\ \hline
'35\_ & \char'350 & \char'351 & \char'352 & \char'353 & \char'354 & \char'355 &
                          \char'356 & \char'357 \\ \hline
'36\_ & \char'360 & \char'361 & \char'362 & \char'363 & \char'364 & \char'365 &
                          \char'366 & \char'367 \\ \hline
'37\_ & \char'370 & \char'371 & \char'372 & \char'373 & \char'374 & \char'375 &
                          \char'376 & \char'377 \\ \hline
\hline
\end{tabular} }
\caption{\label{t38}Font Table}
\end{table}
\section{Transliteration of Telugu Text\label{c2}}
Since most computers do not have facilities for entering Telugu text and are
designed to work with English input we have developed a scheme
for inputting Telugu text in English.
Typically text entry for Indian languages (most of them have similar
phonetic structure) is done in one of two ways. One is called the graphical
approach. And the other is called phonetic approach. We do not
provide a detailed discussion of these approaches because these
approaches are widely debated and documented. In the graphical approach,
each syllable is viewed as a collage of various symbols. Keystrokes
are used to place constituent symbols on the screen. This method
is clumsy, inefficient and language specific.
This is particulaly true of Telugu. In the phonetic
approach, text is entered the way we speak. We do not worry about
composition at all. That is left to the computer.
In other words we key in constituent consonants/vowel of the syllables
that we speak. This approach to inputting Indian(Asian)  languages
is very elegant, simple and language independent.
We have chosen the phonetic approach to inputting Telugu text. This approach
makes life easy for the user but for the software developer there is
considerable work.

We modified slightly  the transliteration scheme for inputting
Telugu proposed by Prof. Donald Becker
at the University of Wisconsin, Madison.
The modifications result mainly from our decision not to use any non-alphabetic
characters in the scheme
and inclusion of many new characters.
Table~\ref{t35} presents the transliteration system used by us for inputting
Telugu text. The English letters are chosen so that they are close
to their Telugu equivalents in pronunciation.
But one should remember that English
is not a phonetic language and hence the same letter can be pronounced
in several ways.
No transliteration is provided for some rarely used symbols. They can
be obtained by using control sequences given in the table.
In the next section we provide several examples of Telugu text.

In the transliteration scheme, some letters require inputting two
or more characters. But this does not mean that multiple
keystrokes are really needed. Most editors/word processors
provide facilities for keyboard macros. We can define macros with
one letter names. In Telugu, we have 36 consonants and 16 vowels.
That means a total of 52 letters. We can remap the alphabet part
of a keyboard to facilitate Telugu input.
One can buy a keyboard overlay (or skin) and mark the keytops
with Telugu letters. Thus we can have a Telugu keyboard (almost!).
One can map control characters to accents. By using a pair of macros we
can switch between Hindu-Arabic and Telugu digits.  So regardless
of which digits one wants one would use the usual numeric keys.

\TeX\ ignores spaces after control words. So if a word ends in a control
word then we should type a control space
(the escape character followed by a blank space) following the control word.
This rule is useful for us particularly when we are entering Sanskrit
text in Telugu. Many words in Sanskrit end in control sequences denoting
various accents.

Use the macro \bs QQQ to enable transliteration and the macro \bs Q  to
disable transliteration. Use the macro \bs zzCB to switch to roman digits(this
is the default) and use the macro \bs zzBC to switch to telugu digits.

What if somebody does not like the scheme that we have used? This is
really no problem, since the software that interprets the user's input
is separate from text composition software. So it is easy to
adapt to another unambiguous transliteration scheme.

\begin{table}
\centering
{\tlc
\begin{tabbing}
\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\=\hspace{1.5cm}\\
\QQQ a\>\rm a\>\QQQ A\>\rm A\>\QQQ i\>\rm i\>\QQQ I\>\rm I\\
\QQQ u\>\rm u\> \QQQ U\>\rm U\>\QQQ rx\>\rm rx\>\QQQ Rx\>\rm Rx\\
\QQQ lx\>\rm lx\>\QQQ Lx\>\rm Lx\>\QQQ e\>\rm e\>\QQQ E\>\rm E\\
\QQQ y\>\rm y\>\QQQ o\>\rm o\>\QQQ O\>\rm O\>\QQQ ow\>\rm ow\\\\
\QQQ \zzJJ aMh\>\rm Mh\>\QQQ \zzJJ aM\>\rm M\>\QQQ \zzJJ aah\>\rm ah\>\QQQ \zzJJ a\zzBB\>\rm \bs zzBB\>\QQQ \zzJJ a\zzFF\>\rm \bs  zzFF\\\\
\QQQ kX\>\rm k\>\QQQ khX\>\rm kh\>\QQQ gX\>\rm g\>\QQQ ghX\>\rm gh\>\QQQ NGX\>\rm NG\\
\QQQ cX\>\rm c\>\QQQ chX\>\rm ch\>\QQQ jX\>\rm j\>\QQQ jhX\>\rm jh\>\QQQ nxX\>\rm nx\\
\QQQ TX\>\rm T\>\QQQ ThX\>\rm Th\>\QQQ DX\>\rm D\>\QQQ DhX\>\rm Dh\>\QQQ NX\>\rm N\\
\QQQ tX\>\rm t\>\QQQ thX\>\rm th\>\QQQ dX\>\rm d\>\QQQ dhX\>\rm dh\>\QQQ nX\>\rm n\\
\QQQ pX\>\rm p\>\QQQ phX\>\rm ph\>\QQQ bX\>\rm b\>\QQQ bhX\>\rm bh\>\QQQ mX\>\rm m\\
\QQQ YX\>\rm Y\>\QQQ rX\>\rm r\>\QQQ RX\>\rm R\>\QQQ lX\>\rm l\>\QQQ LX\>\rm L\\
\QQQ vX\>\rm v\>\QQQ SX\>\rm S\>\QQQ ShX\>\rm Sh\>\QQQ sX\>\rm s\>\QQQ HX\>\rm H\\
\QQQ XhX\>\rm Xh\>\QQQ \zzJJ a\zzCC\>\rm \bs zzCC\>\QQQ \zzJJ a\zzCF\>\rm \bs zzCF\>\QQQ \zzJJ a\zzCJ\>\rm \bs zzCJ\\\\
\QQQ\zzJJ a\zzBF\>\rm \bs zzBF\>\QQQ \zzJJ a\zzBJ\>\rm \bs zzBJ\>\QQQ \zzJJ a\zzFJ\>\rm \bs zzFJ\\\\
\QQQ \zzFB\>\rm \bs zzFB\>\QQQ \zzFC\>\rm \bs zzFC\>\QQQ \zzJJ X\>\rm X\\\\
\QQQ \zzJJ\zzJB\>\rm \bs zzJB\>\QQQ \zzJJ\zzJC\>\rm \bs zzJC\>\QQQ \zzJJ\zzJF\>\rm \bs zzJF\>\QQQ \zzJJ\zzQB\>\rm \bs zzQB\\\\
%\QQQ \> \>\QQQ \> \>\QQQ \> \>\QQQ \> \>\QQQ \> \\
\end{tabbing}
}
\caption{\label{t35}Transliteration Scheme for inputting Telugu text}
\end{table}

\section{Examples}
In this section we will give several examples of Telugu input/output. We use (,)
to delimit syllables or Aksharas.
We will also provide transliteration of each example.
Table~\ref{t39} contains several examples of transliteration of Telugu
words using the proposed transliteration scheme.

\begin{figure}
{\tlc\QQQ
Hariah OmX\zzFC\ Sa\zzFJ taM jI\zzBFva Sa\zzFJ radO\zzFJ\  vardha\zzBF mAnaSSa\zzFJ taM
HE\zzBFma\zzFJ ntAnxcha\zzFJtamu\zzBF\  vasa\zzFJ ntA\zzCF\zzFB\
Sa\zzFJ tami\zzBF ndhrA\zzFJ gnI na\zzBF vi\zzFJ tA brx\zzBF Ha\zzFJ npatiSSa\zzFJ\
tAYu\zzBF ShA Ha\zzFJ viShE\zzFJ maM puna\zzBF rduah\zzFC\
rxksaMHitA\zzFC\
{\zzBC 8-8-20} vaga\zzCJ\zzFC\
asYa mantrasYa niruktamX. ---

SataM jIva SadadO vardhamAna itYapi nigamO bhavati\zzFB\
Satamiti SataM dIgha\zzCJ mAYuma\zzCJruta EnA vadha\zzCJ Yanti
Satamonamona SatATmAnaM bhavati SatamanantaM bhavati SatamySvarYaM
bhavati Satamiti SataM dEgha\zzCJ mAYuah\zzFB\ Hariah OmX\zzFC
}
\caption{\label{egt1}Text from {\em rigveda}- in Telugu, transliteration in
  Figure~\protect\ref{egr1}}
\end{figure}

\begin{figure}
\begin{verbatim}
{\tlc\QQQ
Hariah OmX\zzFC\ Sa\zzFJ taM jI\zzBFva Sa\zzFJ radO\zzFJ\  vardha\zzBF mAnaSSa\zzFJ taM
HE\zzBFma\zzFJ ntAnxcha\zzFJtamu\zzBF\  vasa\zzFJ ntA\zzCF\zzFB\
Sa\zzFJ tami\zzBF ndhrA\zzFJ gnI na\zzBF vi\zzFJ tA brx\zzBF Ha\zzFJ npatiSSa\zzFJ\
tAYu\zzBF ShA Ha\zzFJ viShE\zzFJ maM puna\zzBF rduah\zzFC\
rxksaMHitA\zzFC\
{\zzBC 8-8-20} vaga\zzCJ\zzFC\
asYa mantrasYa niruktamX. ---

SataM jIva SadadO vardhamAna itYapi nigamO bhavati\zzFB\
Satamiti SataM dIgha\zzCJ mAYuma\zzCJruta EnA vadha\zzCJ Yanti
Satamonamona SatATmAnaM bhavati SatamanantaM bhavati SatamySvarYaM
bhavati Satamiti SataM dEgha\zzCJ mAYuah\zzFB\ Hariah OmX\zzFC
}
\end{verbatim}
\caption{\label{egr1}Text from {\em rigveda}- transliteration, Telugu
version in Figure~\protect\ref{egt1}}
\end{figure}
\clearpage
\begin{figure}
\setlength{\parindent}{0pt}
\begin{center}
                           {\tlcb\QQQ vEmana Satakamu}\\
               (Selected poems from ``Vemana Satakamu'')\\
{\tlcb\QQQ cittaSuddhi}\\
\end{center}
{\tlcs\QQQ

 A\zzFC     AtmaSuddhilEni YAcAra madi YEla\\
            \ bhAMDa SuddhilEni pAkamEla\\
            \ cittaSuddhilEni SivapUjalElara\\
            \ viSvadAbhirAma vinuravEma.\\

 tA.     manassu nirmalamugA vuMcukonaka pATiMcina AcAramulu, pAtralu
Subhraparucaka cEsina vaMTakamulu praYojanamulEnivi. aTlE bhakti lEni
pUjalu Yenni cEsinanU praYojanamu uMDadu.

                        {\Q\begin{center}
                        {\QQQ alpuDu - SrEShThuDu}\\
                         \end{center}}

 A\zzFC     alpuDeppuDu palku nADaMbaramugAnu\\
            \ sajjanuMDu palku callagAnu\\
            \ kaMcumrOginaTlu kanakaMbu mrOgunA\\
            \ viSvadAbhirAma vinuravEma.\\

 tA.      nIcuDu DAMbikamulu palkunu. uttamuDu SAMtamuga mATalADunu. ETlana
kaMcu biggaragA mrOgunu kAnI baMgAramu aTlu mrOgadukadA?

                        {\Q\begin{center}
                        {\QQQ guNamu}\\
                         \end{center}}

 A\zzFC     pUjakanna neMca buddhi nidAnaMbu\\
            \ mATakanna neMca manassu drxDhamu\\
            \ kulamukannA migula guNamu pradhAnaMbu\\
            \ viSvadhAbhirAma vinuravEma.\\

 tA.     pUjakaMTE buddhi, mATakannA manassu pradhAnamu aYinaTlu,
 kulamukanna guNamE mukhYamaYinadi.



                        {\Q\begin{center}
                        {\QQQ durjanuDu}\\
                         \end{center}}

 A\zzFC     tappu lennuvAru taMDOpa taMDaMbu\\
            \ lurvi janulakella nuMDu tappu\\
            \ tappu lennuvAru tama tappulerugaru\\
            \ viSvadAbhirAma vinuravEma.\\

 tA.     I lOkamulO tappulenneDi vAradhika saMkhYalo vuMduru.
 prapaMcamuna galavAraMdarikI tappuluMDunu. kAnI tappulu EnneDivAru
 tamatappu tAmu telusukonajAlaru.
}
\caption{Sample Text - Telugu version, transliteration
in Figure~\protect\ref{egr4}\label{egt4}}
\end{figure}
\clearpage
\begin{figure}
\begin{verbatim}
\setlength{\parindent}{0pt}
\begin{center}
                           {\tlcb\QQQ vEmana Satakamu}\\
               (Selected poems from ``Vemana Satakamu'')\\
{\tlcb\QQQ cittaSuddhi}\\
\end{center}
{\tlcs\QQQ

 A\zzFC     AtmaSuddhilEni YAcAra madi YEla\\
            \ bhAMDa SuddhilEni pAkamEla\\
            \ cittaSuddhilEni SivapUjalElara\\
            \ viSvadAbhirAma vinuravEma.\\

 tA.     manassu nirmalamugA vuMcukonaka pATiMcina AcAramulu, pAtralu
Subhraparucaka cEsina vaMTakamulu praYojanamulEnivi. aTlE bhakti lEni
pUjalu Yenni cEsinanU praYojanamu uMDadu.

                        {\Q\begin{center}
                        {\QQQ alpuDu - SrEShThuDu}\\
                         \end{center}}

 A\zzFC     alpuDeppuDu palku nADaMbaramugAnu\\
            \ sajjanuMDu palku callagAnu\\
            \ kaMcumrOginaTlu kanakaMbu mrOgunA\\
            \ viSvadAbhirAma vinuravEma.\\

 tA.      nIcuDu DAMbikamulu palkunu. uttamuDu SAMtamuga mATalADunu. ETlana
kaMcu biggaragA mrOgunu kAnI baMgAramu aTlu mrOgadukadA?

                        {\Q\begin{center}
                        {\QQQ guNamu}\\
                         \end{center}}

 A\zzFC     pUjakanna neMca buddhi nidAnaMbu\\
            \ mATakanna neMca manassu drxDhamu\\
            \ kulamukannA migula guNamu pradhAnaMbu\\
            \ viSvadhAbhirAma vinuravEma.\\

 tA.     pUjakaMTE buddhi, mATakannA manassu pradhAnamu aYinaTlu,
 kulamukanna guNamE mukhYamaYinadi.

                        {\Q\begin{center}
                        {\QQQ durjanuDu}\\
                         \end{center}}

 A\zzFC     tappu lennuvAru taMDOpa taMDaMbu\\
            \ lurvi janulakella nuMDu tappu\\
            \ tappu lennuvAru tama tappulerugaru\\
            \ viSvadAbhirAma vinuravEma.\\

 tA.     I lOkamulO tappulenneDi vAradhika saMkhYalo vuMduru.
 prapaMcamuna galavAraMdarikI tappuluMDunu. kAnI tappulu EnneDivAru
 tamatappu tAmu telusukonajAlaru.
\end{verbatim}
\caption{Sample Text -  transliteration, Telugu version
in Figure~\protect\ref{egt4} \label{egr4}}
\end{figure}
\clearpage

Next we will reproduce two stories from an ancient collection of stories
for children.

\begin{center}
                         {\tlcb\QQQ paMcataMtra kadhalu}\\
                   (Stories from the ``Panchatantra'')
\end{center}
{\tlcnx\QQQ

     ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.\\

iMdrapAlituDu  anE vartakuDu vYApAraM nimittaM porugudESAniki pOvalasi
vacciMdi. ataDu tanavaddanunna veYYi baMgAru nANAlanu, tana mitruDaYina
dhanaguptuni vadda dAci dESAMtaraM poYADu. koMtakAlaM aYina taruvAta
iMdrapAlituDu svagrAmaM tirigi vaccADu. ataDu dhanaguptuni iMTikipOYi tana
baMgAru nANAlanu tirigi Yimmani aDigADu. dhanaguptuDu vicAraMgA ``annA!
Emi ceppanu, nI baMgAru nANAlanniMTinI mA iMTilO elukalu tinivESAYi'' ani
ceppADu. dhanaguptuni mOsAnni ardhaMcEsukonna iMdrapAlituDu ``pOnIlE
jariginadAniki ciMtiMci Emi phalamu'' ani sardi ceppi, idivaralOlAgAnE
mitrunitO snEHaM kanabarastU unnADu. konnALLupOYAka, iMdrapAlituDu
dhanaguptuni iMTivadda kaburlu cebutU unna samaYaMlO prakkavIdhi lO rEgupaLLU
ammakAniki vaccAYi. paLLu ammEvAni kEkavini dhanaguptuni pillavADu
paLLakOsaM pOrupeTTADu. ``nEnu koni istAnu rA nAYanA!'' aMTU pillavAnini
ettukoni iMdrapAlitiDu prakkavIdhiki baYaludErADu. paLLu koni, pillavAniki
iccina iMdrapAlituDu dhanaguptuni YiMTiki tirigi rAkuMDA tana YiMTiki pOYi
pillavAnini lOpala dAci uMcADu.

eMtasEpaTikI pillavADugAnI, iMdrapAlituDugAnI tirigi rAkapOYEsariki
dhanaguptuDu AdurdAgA vArini vetukucU mitruni iMTiki cErADu. atanini
cUDagAnE iMdrapAlituDu duahkhaMnaTistU ``annA paLLukoMdAmani mI pillavAnini
caMkanuMci diMpAnO lEdO, oka pADu DEga vacci mI vANNi ettuku pOYiMdi, I
viShAdavArta nIku ceppalEka nEnu iMTiki vacci duahkhistunnAnu'' annADu. Adi
vini dhanaguptuDu ``nIcuDA, pillavAni vaMTipynunna baMgAru vastuvulakASapaDi
iMta anYAYaM cEstAvA'' aMTU dUShistU nYAYAdhipatiki phirYAdu cEsADu.

nYAYAdhipati iMdrapAlituni to ``EmaYYA puShTigA uMDE pillADini DEga tannuku
pOYiMdannAvuTa. EmiTI viDDUraM?'' ani praSniMcADu. dAnipy iMdrapAlituDu
jariginadaMtA vivariMci ``aYYA I dhanaguptuni YiMTa nEnu dAcina veYYi
baMgAru nANAlu elukalu tinivEsinappuDu, O cinna biDDanu DEga tannuku
pOvaDaMlO AScarYamEmuMdi?'' annADu.
jariginadaMtA graHiMcina nYAYAdhikAri,
iMdrapAlituni YiMTanunna pillavAnini rappiMci dhanaguptuniki appajeppi,
mitrunisommu apaHariMci nammaka drOHamonarcina dhanaguptuni Asti
svAdhInaM cEsukoni, aMdulOnuMci
iMdrapAlituniki rAvalasina vEYi nANAlu
ippiMcADu.

}
Following is the transliteration of the preceding Telugu text.

\begin{verbatim}
\begin{center}
                         {\tlcb\QQQ paMcataMtra kadhalu}\\
                  (Stories from the ``Panchatantra'')
\end{center}
{\tlcnx\QQQ

     ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.\\

iMdrapAlituDu  anE vartakuDu vYApAraM nimittaM porugudESAniki pOvalasi
vacciMdi. ataDu tanavaddanunna veYYi baMgAru nANAlanu, tana mitruDaYina
dhanaguptuni vadda dAci dESAMtaraM poYADu. koMtakAlaM aYina taruvAta
iMdrapAlituDu svagrAmaM tirigi vaccADu. ataDu dhanaguptuni iMTikipOYi tana
baMgAru nANAlanu tirigi Yimmani aDigADu. dhanaguptuDu vicAraMgA ``annA!
Emi ceppanu, nI baMgAru nANAlanniMTinI mA iMTilO elukalu tinivESAYi'' ani
ceppADu. dhanaguptuni mOsAnni ardhaMcEsukonna iMdrapAlituDu ``pOnIlE
jariginadAniki ciMtiMci Emi phalamu'' ani sardi ceppi, idivaralOlAgAnE
mitrunitO snEHaM kanabarastU unnADu. konnALLupOYAka, iMdrapAlituDu
dhanaguptuni iMTivadda kaburlu cebutU unna samaYaMlO prakkavIdhi lO rEgupaLLU
ammakAniki vaccAYi. paLLu ammEvAni kEkavini dhanaguptuni pillavADu
paLLakOsaM pOrupeTTADu. ``nEnu koni istAnu rA nAYanA!'' aMTU pillavAnini
ettukoni iMdrapAlitiDu prakkavIdhiki baYaludErADu. paLLu koni, pillavAniki
iccina iMdrapAlituDu dhanaguptuni YiMTiki tirigi rAkuMDA tana YiMTiki pOYi
pillavAnini lOpala dAci uMcADu.

eMtasEpaTikI pillavADugAnI, iMdrapAlituDugAnI tirigi rAkapOYEsariki
dhanaguptuDu AdurdAgA vArini vetukucU mitruni iMTiki cErADu. atanini
cUDagAnE iMdrapAlituDu duahkhaMnaTistU ``annA paLLukoMdAmani mI pillavAnini
caMkanuMci diMpAnO lEdO, oka pADu DEga vacci mI vANNi ettuku pOYiMdi, I
viShAdavArta nIku ceppalEka nEnu iMTiki vacci duahkhistunnAnu'' annADu. Adi
vini dhanaguptuDu ``nIcuDA, pillavAni vaMTipynunna baMgAru vastuvulakASapaDi
iMta anYAYaM cEstAvA'' aMTU dUShistU nYAYAdhipatiki phirYAdu cEsADu.

nYAYAdhipati iMdrapAlituni to ``EmaYYA puShTigA uMDE pillADini DEga tannuku
pOYiMdannAvuTa. EmiTI viDDUraM?'' ani praSniMcADu. dAnipy iMdrapAlituDu
jariginadaMtA vivariMci ``aYYA I dhanaguptuni YiMTa nEnu dAcina veYYi
baMgAru nANAlu elukalu tinivEsinappuDu, O cinna biDDanu DEga tannuku
pOvaDaMlO AScarYamEmuMdi?'' annADu.
jariginadaMtA graHiMcina nYAYAdhikAri,
iMdrapAlituni YiMTanunna pillavAnini rappiMci dhanaguptuniki appajeppi,
mitrunisommu apaHariMci nammaka drOHamonarcina dhanaguptuni Asti
svAdhInaM cEsukoni, aMdulOnuMci
iMdrapAlituniki rAvalasina vEYi nANAlu
ippiMcADu.

}
\end{verbatim}
                        \begin{center}
                        {\tlcs\QQQ ``ati lOlatvaM panikirAdu''\\}
                        \end{center}
{\tlcny\QQQ
pUrvamu oka ceruvulo rakarakAla cEpalu, oka pIta kalasi jIviMceDivi. okanADu
musali koMga okaTi A ceruvu lOki vacci tAnu aHiMsA vratamunu avalaMbhiMci
dhArmika jIvanAnni gaDapadalucukonnAnani, tana japadhYAnAdululaku A ceruvu
bAguMdani A jalacaramulato ceppiMdi. konni rOjulapATu vAriki viSvAsaM
kaligETaTlugA pravartiMciMdi. A jalacaramulannI koMga paTla nammakamu
peMcukunnAYi. tanalO vATiki nammakaM kudirina taruvAta oka rOjuna A koMga
kannIru kArustU ``O vAraM rOjulaku I ceruvu nIru iMkipOtuMdiTa appuDE cEpalanu
sulabhaMgA paTTukupOvaccunani bestavALLu anukunna mATalu nA cevina paDDAYi.
nAku cAlA vicAraMgA uMdi'' ani cEpalatO ceppiMdi. cEpalu HaDalipOYi ``svAmi!
mIrE mAku dikku. eTlAgaYinAsarE mIru I ApadanuMDi mammulanu kApADAli'' ani
koMganu vEDukOnnAYi.

koMga koMceMsEpu AlOciMcinaTlu naTiMci ``ikkaDaku koMceM dUraMgA ellappuDU
nIruMDE kolanu uMdi. akkaDaku cErustAnu. nA nOTa taDavaku nAlugu cEpala kannA
ekkuva paTTavuganuka mimmalni nAlugu maMdi coppuna akkaDaku cErustuMTAnu''
aMdi. cEpalu A koMgaku dhanYavAdAlu ceppukonnAYi. tana durAlOcana prakAraM,
A koMga rOjU cEpalanu nOTa karacukoni, oka koMDa mIda vAli, vAnini AragiMci
vaccEdi. konni nALLAku cEpalannI koMga kaDupuna baDDAYi. iMka pIta okkaTE
migiliMdi. a pItanu kUDA tinAli anE lOlatvaMto koMga A karkaTakAnni kUDA
noTa karacukoni koMDavypu egiriMdi.

koMga potunna mArgamu, koMDa mIda dUraMgA kanpistunna cEpapOlusulU cUci,
pIta asalu viShaYaM ardhaM cEsukuMdi. adi koMga to ``nAku kaLLu tirugutunnAYi.
nIvu vadalivEstAvEmOnani bhaYaMgA uMdi. nA Dekkalato nI meDanu paTTukOnistAvA
paDipokuMDA uMTAnu'' aMdi. koMga dAniki aMgIkariMciMdi.

veMTanE pIta tana vADiYyna Dekkalato koMga meDanu koriki koMganu
caMpivEsiMdi. caccina koMgatOpATu koMDa mIda paDina pIta, mellagA lEci, tana
mitrulyna cEpala maraNAniki vicAriMci vErokacOTa cEriMdi.

}

Following is the transliteration of the preceding Telugu text.

\begin{verbatim}
                        \begin{center}
                        {\tlcs\QQQ ``ati lOlatvaM panikirAdu''\\}
                        \end{center}
{\tlcny\QQQ
pUrvamu oka ceruvulo rakarakAla cEpalu, oka pIta kalasi jIviMceDivi. okanADu
musali koMga okaTi A ceruvu lOki vacci tAnu aHiMsA vratamunu avalaMbhiMci
dhArmika jIvanAnni gaDapadalucukonnAnani, tana japadhYAnAdululaku A ceruvu
bAguMdani A jalacaramulato ceppiMdi. konni rOjulapATu vAriki viSvAsaM
kaligETaTlugA pravartiMciMdi. A jalacaramulannI koMga paTla nammakamu
peMcukunnAYi. tanalO vATiki nammakaM kudirina taruvAta oka rOjuna A koMga
kannIru kArustU ``O vAraM rOjulaku I ceruvu nIru iMkipOtuMdiTa appuDE cEpalanu
sulabhaMgA paTTukupOvaccunani bestavALLu anukunna mATalu nA cevina paDDAYi.
nAku cAlA vicAraMgA uMdi'' ani cEpalatO ceppiMdi. cEpalu HaDalipOYi ``svAmi!
mIrE mAku dikku. eTlAgaYinAsarE mIru I ApadanuMDi mammulanu kApADAli'' ani
koMganu vEDukOnnAYi.

koMga koMceMsEpu AlOciMcinaTlu naTiMci ``ikkaDaku koMceM dUraMgA ellappuDU
nIruMDE kolanu uMdi. akkaDaku cErustAnu. nA nOTa taDavaku nAlugu cEpala kannA
ekkuva paTTavuganuka mimmalni nAlugu maMdi coppuna akkaDaku cErustuMTAnu''
aMdi. cEpalu A koMgaku dhanYavAdAlu ceppukonnAYi. tana durAlOcana prakAraM,
A koMga rOjU cEpalanu nOTa karacukoni, oka koMDa mIda vAli, vAnini AragiMci
vaccEdi. konni nALLAku cEpalannI koMga kaDupuna baDDAYi. iMka pIta okkaTE
migiliMdi. a pItanu kUDA tinAli anE lOlatvaMto koMga A karkaTakAnni kUDA
noTa karacukoni koMDavypu egiriMdi.

koMga potunna mArgamu, koMDa mIda dUraMgA kanpistunna cEpapOlusulU cUci,
pIta asalu viShaYaM ardhaM cEsukuMdi. adi koMga to ``nAku kaLLu tirugutunnAYi.
nIvu vadalivEstAvEmOnani bhaYaMgA uMdi. nA Dekkalato nI meDanu paTTukOnistAvA
paDipokuMDA uMTAnu'' aMdi. koMga dAniki aMgIkariMciMdi.

veMTanE pIta tana vADiYyna Dekkalato koMga meDanu koriki koMganu
caMpivEsiMdi. caccina koMgatOpATu koMDa mIda paDina pIta, mellagA lEci, tana
mitrulyna cEpala maraNAniki vicAriMci vErokacOTa cEriMdi.

}
\end{verbatim}

\begin{table}
{\tlc
\begin{tabular}{|lll|}\hline
\rm Transliteration&\rm In Telugu&{\rm Syllable Decomposition}\\ \hline
\rm k&\QQQ kX&{\QQQ (kX)}\\
\rm ka &\QQQ ka&{\QQQ (kX + a)}\\
\rm e&\QQQ e&{\QQQ (e)}\\
\rm le&\QQQ le&{\QQQ (lX+e)}\\
\rm l&\QQQ lX&{\QQQ (lX)}\\
\rm ravi&\QQQ ravi&{\QQQ (rX+a)(vX+i)}\\
\rm telugu&\QQQ telugu&{\QQQ (tX+e)(lX+u)(gX+u)}\\
\rm amerikA&\QQQ amerikA&{\QQQ (a)(mX+e)(rX+i)(kX+A)}\\
\rm strI&\QQQ strI&{\QQQ (sX+tX+rX+I)}\\
\rm SrI&\QQQ SrI&{\QQQ (SX+rX+I)}\\
\rm laXhmi&\QQQ laXhmi&{\QQQ (lX+a)(XhX+mX+i)}\\
\rm mukkavilli&\QQQ mukkavilli&{\QQQ (mX+u)(kX+kX+a)(vX+i)(lX+lX+i)}\\
\rm laXhmaNXkumArX&\QQQ laXhmaNXkumArX&{\QQQ (lX+a)(XhX+mX+a)(NX)(kX+u)(mX+A)(rX)}\\
\rm prabhu&\QQQ prabhu&{\QQQ (pX+rX+a)(bhX+u)}\\
\rm U\bs zzBF rdhvemowMjAah&\QQQ U\zzBF rdhvemowMjAah&{\QQQ (U+\zzJJa\zzBF)(rX+dhX+vX+e)(mX+y+\zzJJ aM)(jX+A+\zzJJ aah)}\\
\rm uppu&\QQQ uppu&{\QQQ (u)(pX+pX+u)}\\
\rm up\bs zzJB&\QQQ up\zzJB&{\QQQ (u)(pX+pX+u)}\\
\rm karpUramu&\QQQ karpUramu&{\QQQ (kX)(rX+pX+U)(rX+a)(mX+u)}\\
\rm kar\bs zzJC ramu&\QQQ kar\zzJC ramu&{\QQQ (kX)(rX+pX+U)(rX+a)(mX+u)}\\
\rm aM&\QQQ aM&{\QQQ (a+\zzJJ aM)}\\
\rm AMdhra pradESX&\QQQ AMdhra pradESX&{\QQQ (A+\zzJJ aM)(dhX+rX+a) (pX+rX+a)(dX+E)(SX)}\\\hline
\end{tabular}
}
\caption{\label{t39}Examples of Transliteration}
\end{table}

\section{Problems in Typesetting Telugu Text}
When we try to adapt technologies developed for English, to a vastly
different language we face many difficulties. And more so in case of Telugu.
We are somewhat spoiled by the simplicity of English text.
In this section we will enumerate the difficulties faced in developing
a typesetting system for Telugu.
\begin{description}
\item[Tradition]English has a long tradition of typography.
English typography is widely studied and researched. There are well
established styles of typefaces. This is not the case with Telugu.
Much of the composition in Telugu is still done by hand. Use of
computers to typeset Telugu is really a recent  phenomenon.
\item[Character Set]In English the character set is well defined.
In fact there are effective standards in place.
Telugu character set is still evolving. Some letters that were used
a few decades ago are not in use any more.
Some symbols have been replaced with new symbols.
There is no unanimity with regard
to symbols used in transliteration of Sanskrit text. Our
intent has been to provide all the  symbols that have been used over
the past 200 years. We were fortunate to be able to obtain facsimili
of type specimens of a Telugu font cut in 1802 from a museum in London.
We also looked at various publications produced since then.
\item[Complexity of Script]English text is composed by laying letter after
letter in a linear manner. Composition of Telugu is very different.
Composition is done by laying syllable after syllable. But composing
a syllable (see page~\pageref{syldef} for the definition
of a syllable) is very complex. The total number of possible syllables is
very large. So we cannot store the images of all the syllables.
Syllables need to be composed
on the fly. Composing a syllable means juggling symbols, stacking symbols,
juxtaposing symbols.
Composing a syllable requires several character lookahead. The first step in
composing a syllable is to modify the base consonant (first consonant) by
the vowel which appears after the intervening consonants (consonant conjuncts).
This problem of building up a syllable brings
us to the next item.
\item[Standards] In case of Telugu, we should distinguish between the
coding system for text storage/transmission ( we will call this
Information Interchange code IIC) and  the coding system for the font
that is used for rendering (printing/ displaying) text. The font
contains graphical elements that can be used to  compose
syllables. Many of the symbols in the font may not look like any
letter in the alphabet. IIC contains codes for consonants, vowels,
accents, digits and punctuation marks. Each syllable is stored
as a sequence of constituent consonants, vowels and accents.
In Telugu there are 16 vowels,
36 consonants and 11 accents. There is a standard for Telugu
information interchange. In fact it is the same for most of the languages
used in India since they all have the same phonetic structure.
But there is no standard for the font. It is very difficult to
define a standard for assigning codes to elements of a font.
It is difficult to decide what should be in the font.
The structure of each font depends on the font designer.
A font designer (for Telugu) would use various criteria i.e. number
of symbols permitted in a font, adherence to tradition, choice
of alphabet, complexity of composition,
features available in the font development system, features available in
the composition system etc. to determine what primitive strokes
or forms should be included in the font.

In English, information interchange code would correspond directly
to encoding used in the font. This makes life a lot easy. It also
explains why it is a very difficult task to adapt a text composition
system developed primarily for English to Telugu.
\item[Letterforms]Most of the existing Telugu letterfoms are heavy along
base line. It makes it very hard on the eyes of the reader. Many letterforms
lack in consistency. This may be due to the fact that Telugu fonts
are typically designed by metalsmiths/calligraphers  not very well skilled in
modern principles of type design and do not have access to modern
technology.
We have designed our letter forms from scratch. No attempt was made to
imitate an existing font. In fact we have not found any font that we thought
was good. We are fortunate in being able to use a very sophisticated
font development system called METAFONT.
\item[Parametrization]One of the major strengths of METAFONT is its ability
to generate fonts for a variety of devices in a variety of styles and
sizes. In order to realize this facility we need to identify key parameters
of the font. Then we can play with these parameters to obtain various
fonts. We have tried to define various parameters for Telugu script.
\item[Font Metric Data]In case of Telugu we need to provide certain measurements
about location of some key points in a symbol. These measurements need to be
stored along with the font. The measurements are used by the text composition
system to allign/position the symbols during syllable construction.
Font metric files generally do not have any provision for storing optional
font metric data. To overcome this problem we write the measurements in
the form of \TeX\ macros to the log file. After font genaration the macros are
extracted and placed in a seperate file(called offsets file). The measurements
(offsets) are generated in relative units ({\it em} units). This means that
only one offset file is needed(regardless of size/style).
\item[Speed]Syllable building is a very CPU intensive job. Each syllable is
pieced together from constituent parts. Typesetting Telugu text is a slow process.
\item[Hyphenation]
\TeX\ hyphenation algorithms are not applicale to Telugu text.
We use the rule that a syllable should not be broken
across lines. Since a syllable is built in a box and boxes are not
broken up, this rule is satisfied. But then we are not giving \TeX\
much freedom to do line breaking. We insert a discretionary hyphen
between  two
syllables. Our experience indicates that this works fine.
\end{description}

\section{Implementation}

     The system has two components. First is the font developed using METAFONT.
These symbols are used for composing Telugu text.
The second component is used for Telugu text composition. This is
written in \TeX\ macro language. Telugu is a phonetic language. The user enters
Telugu as he/she would speak (i.e. phonetically). But the script is not
linear. Unlike English, the keys on the keyboard do not correspond with the
symbols in the font. We need a mechanism that interprets the phonetic input
and composes aksharas (or syllables). This requires considerable amount of
processing. This is what is done by the second component. Phonetic
transcription is interpreted and syllables are formed.
As mentioned earlier,
there are two very
different approaches to inputting Telugu (and other Indian languages). One
is phonetic (as ours) and the other is called Graphical approach. In this
approach, the user picks individual symbols from the font and composes the
syllable. For Telugu, the Graphical approach would be tedious and very
difficult.
We have tried to make the second component applicable for other Indian
languages as well. Since all Indian languages have similar phonetic structure,
this component can be easily adapted to other Indian languages.

Next we provide an outline of our implementation.
Subsection~1 deals with font development and Subsection~2
deals with text composition.

\subsection{Font Development\label{fona}}
The font is developed using  METAFONT program. The font has over  230 symbols.
In addition to symbols used to compose Telugu text, the font includes
Telugu as well as Hindu-Arabic digits, punctuation symbols, non-alphabetic
characters from ASCII, accents and symbols needed for transliteration
of Sanskrit.
One may wonder why worry about symbols that are available in Computer Modern
Roman. The answer is that we want the text composed to look consistent
and harmonious. Since Telugu characters have a rounded appearance,
we decided that we should use circular pens. In olden days Telugu
used be written on palm leaves using a metal stylus with a round nib.

Following are the steps in developing the font:

\begin{enumerate}
\item Identify all the symbols that are needed to compose syllables.
\item Define a grid framework for drawing the symbols. In this grid
     we define a baseline, ascender height, descender depth,
     top shoulder, bottom shoulder and a few other lines.
\item Assign codes to each symbol. All code references are
     made symbolically and codes are defined in one separate file.
     It would be very easy to change code assignment. We have used the
     same code as ASCII for the symbols that also occur in ASCII.
\item Make rough sketches of all these symbols and other elements of
   the font on a graph paper using a consistent scale.
\item Enumerate the parameters of the font. This is a delicate job. The
  parameters are modified to obtain various styles/sizes of the font.
\item Define font dimensions (see METAFONT book).
\item Identify all the strokes/shapes that occur more than once. Write
  macros to draw these strokes/shapes.
\item Write a METAFONT program for each symbol in the font taking care
   to use macros whenever possible and refer to parameters.

    First we would look at the sketch and identify control points.
    Specify coordinates in relative terms. That is, the coordinates
    are defined in terms of font parameters and box dimensions (width,
    height and depth). Box dimensions are defined in terms of parameters,
    u (unit width)  and uh (unit height).
    Parameters are either unit free(e.g. ratios, scaling factors etc.,) or
    are defined in terms of other parameter(s) and/or u and/or uh.
    u and uh are defined interms of the design size. One exception
    to this rule is pen\_width (diameter of the circular pen). This
    is specified as an absolute quantity.
    In order to generate the font we need to provide the design size,
    pen size/shape, slant  and optionally, the magnification factor.
\item METAFONT produces dimensions of the bounding box of each symbol in the
    font and these dimensions are used by text composition software. For
    Telugu we have some special requirements. When a consonant is modified
    by a vowel, vowel modifier is attached to the consonant base. The point
    of contact varies from consonant to consonant. The offset to this
    point should be known to the syllable building mechanism. This offset
    (in em units) is generated as a \TeX\ macro and written onto the log file.
    Similarly, when various symbols are stacked on the top/bottom of a
    C+V, the syllable building mechanism needs to be aware of the offset
    by which to shift the symbols. This offset is
    also generated as a \TeX\ macro
    and written onto the log file. All the macros are extracted from
    the logfile and copied into another file that is read by syllable
    building software. The offsets are very sensitive to changes to the
    font. Because of the way we handle offsets, we are free to change the font
    and new offsets are automatically recorded.      As stated earlier,
    there is no standard for the
    assignment of codes in the Telugu font. We have decided on a particular
    encoding scheme. But the codes are not hardwired into the syllable
    building mechanism. The codes are generated as \TeX\ macros and written
    onto the log file. If somebody wants to change the codes, all that
    he/she needs to do is alter the entries in the code file and generate
    the font.
\item Assign space on the left and/or on the right of symbols. Since
   the symbols are pieced together to form syllables, we need to
   be very careful about placing white space on the sides.
\item Prepare ligature tables.
\end{enumerate}

By varying the font size, the pen size/shape and the slant
we can obtain several
fonts. All font file names have ``tel'' prefix. This prefix is followed
by a number indicating the font size (in points). Font size is defined
as the distance between the top edge  of the top shoulder and the
bottom edge of the bottom shoulder.
If the size in a font filename is followed by 's' then it indicates
a slanted font.
If the size in a font filename is followed by 'b' then it indicates
a bold  font.
\subsection{Text Composition\label{composea}}

The programs for syllable building are written in \TeX\ macro language.
There are two modules. One is used to interpret user input. This module
implements the transliteration scheme proposed in Section~\ref{c2} (see
page~\pageref{t35}). If a different transliteration scheme or input
system is to be used then this module will need to be modified.
The second module identifies the components of a syllable and builds the
syllable. Every syllable is output as a horizontal box. Each syllable
box may have many constituent boxes.  The main activity in this part
involves  box manipulation. Boxes are stacked, shifted, attached to obtain
the complete syllable.
\subsubsection{Transliteration Module(tlxlate.tex)}
This module reads one or two characters and identifies the corresponding
letter (vowel or consonant or accent) in Telugu and invokes corresponding
macro in the Syllable module. The logic is:
\begin{enumerate}
\item Read a character
\item If more than one transliteration codes can begin with this
     character then lookahead one character.
\item Identify the letter ( vowel/consonant/accent)
\item Invoke the corresponding macro.
\end{enumerate}

The principal mechanism for implementing transliteration is the concept of
{\em active} characters. The main advantage of this technique is that it does
not require any extra effort on the part of the user.
All the characters that can begin a transliteration code are declared
as active characters. There is a macro for each active character.
These macros take one of the following two forms:
\begin{enumerate}
\item  Invoke the macro corresponding to the letter (If the character cannot
      begin another transliteration code).
\item Else look at the next character to identify the letter.
\end{enumerate}

To input a non-alphabetic character, one need only enter the
corresponding symbol
(subject to \TeX\ input rules).
The user can choose between Hindu-Arabic digits and Telugu digits. It is easy
to switch between these two kinds of digits. Two macros are provided
to make this switch. To start with, Hindu-Arabic digits are provided. The
macro used to switch to Telugu digits does the following:

\begin{enumerate}
\item Declare all the digits as active characters.
\item In the macro for a digit, output the corresponding Telugu digit.
\end{enumerate}

The macro for switching to Hindu-Arabic digits declares all digits
to be non-active characters. The transliteration module does not bother
about non-alphanumeric characters because \TeX\ would automatically
handle those symbols (just as in case of English text). All
non-alphanumeric characters
and Hindu-Arabic digits in Telugu font appear at the same positions
as in ASCII.

\subsubsection{Syllable Module(tlsyllable.tex)}
In this module we try to build a syllable from constituent
consonant(s) and the vowel. The focus of macros in this module is on composing a
syllable from constituent letters.
There are two subsections in this section.   First we give a brief introduction
to Syllables in Telugu script and then
we outline our implementation.
\subsubsection*{Introduction}

We may recall that a syllable (or Akshara) can take one of the two forms.

\begin{enumerate}
\item a stand-alone vowel($V$)
\item Consonant + Consonant +\ldots+Consonant+Vowel($C_1$+$C_2$+\ldots+$C_n$+$V$)
\end{enumerate}

$C_1$ is considered  the base
consonant. $C_2$ to $C_n$ are called consonant conjuncts. Consonant
conjuncts are optional. The Vowel modifies the base consonant.
The vowel modifier may be absent.
This is indicated by a special code which appears in place of the vowel
modifier. For the purpose of implementation we will treat this code
as another vowel modifier.
The form of Base Consonant + Vowel (henceforth referred to as C+V)
varies depending on both
the consonant and the vowel. The vowel modifiers can appear
to the right, on the top or at the bottom of the base consonant.
In many cases a completely different symbol is needed. After
Consonant + Vowel is formed, consonant conjuncts are attached
in the order they appear in the syllable. Consonant Conjuncts
are placed to the right or below C+V.
Consonant Conjuncts have a different form than either base consonant
or C+V's.

An Akshara can optionally have accent(s). Accents could appear
at the top or on the side or at the bottom of a syllable.

         For each consonant, the conjunct form is different from the base form.
The base consonant takes a different form depending on the vowel modifier.
The vowel modifies the base consonant. The way the consonants are modified by
the vowel is not governed by any uniformly applicable rules. This lack of
consistency contributes to the complexity of the Telugu script. Some consonant
conjuncts are stacked beneath the base consonant+vowel, whereas others appear
on the side.

     The logic to process a syllable is :

 \begin{enumerate}
 \item  Identify the base consonant     ($C_1$)
\item Scan for the next vowel while saving the intervening consonant conjuncts
      ($C_2$\ldots$C_n$).
\item  Once the vowel modifier is identified, compose $C_1$+$V$.
    This is the messy part. Though many of the consonants are modified
    uniformly by a given vowel, there are too many exceptions.
\item Generate consonant conjuncts.
\item Apply accents.
\item Add space following a syllable.
\item If preceeded by a box then insert a discretionary hyphen.
\item Release the syllable box.
\end{enumerate}

\subsubsection*{Implementation}
     Next we will discuss the implementation of the syllable
     building mechanism.

     The main strategy to build a box containing the syllable involves
     piecing together boxes containing constituent symbols from the font.
     Boxes are shifted, lowered, raised and stacked to obtain the right
     appearance for the syllable. In summary, syllable building is
     an exercise in  box juggling or box manipulation.
     But all the shifts and kerns must be carefully
     controlled.
     All the box dimensions must be accurately specified and we cannot
     have any part of the symbol spill over the bounding box. This
     calls for extreme care in specifying box dimensions in the METAFONT
     programs.
     Else we will have malformed syllables.
     In this module we have an extensive collection of macros to
     shift/lower/raise boxes and to recompute box dimensions affected
     by shifts/kerns.
     After processing, \bs syl box  contains the syllable. The consonant conjunct
tokens are built up in the token list \bs cctok. The name of the base consonant
is saved in \bs cbtok. In this module various letters of Telugu are identified
by unique names.
These names are local to this module.
The names we use for various letters are significant. They
cannot be changed arbitrarily. The names are used in defining macro names.
For example, the macro to process consonant conjunct x is \bs tlccx. The macro
to process C(x)+V(y) is \bs tlcvxy.
It is
unlikely that the user will invoke the macros defined here directly.

     When a vowel x is to be processed, the macro \bs tlvox is invoked. When
a consonant x is to be processed, the macro \bs tlcbx is invoked.
These macros are invoked from the transliteration module.

     The consonant processing macro determines if the consonant is the base
consonant or a conjunct; if base consonant, the syllable processing is
initiated. If conjunct, the macro to form the conjunct is added to the token
list \bs cctok.

     The vowel processing macro determines if the vowel is a stand-alone vowel
or a modifier. If it is a stand-alone vowel, it just outputs the character.
If it is a modifier, then the following actions are taken :

    \begin{itemize}
    \item   Some C+V combinations need special treatment. The macro to process
        consonant x and vowel y is \bs tlcvxy. Otherwise the macro to process
        the vowel modifier( \bs tlvmy) is called.
    \item  Process consonant conjuncts.
    \end{itemize}

How does the syllable module know which (C+V) combinations need special
treatment? Vowels are partitioned into groups such that if  a
consonant needs special handling when combined with a vowel in a
group then the consonant also needs special treatment when combined
with other vowels in the same group. The groups are {\tlc\QQQ
\{A\}, \{i,I\}, \{u,U\}, \{o,O\}, \{ow\}} and others. We assign a prime number to
each group. We also assign a number to each consonant which is the
product of the prime numbers associated with the vowel groups that
need special tratment when combined with this paticular consonant.
If a consonant needs no special treatment then it gets a distinct
prime number. Given a consonant(C) and a vowel(V) if the number
for V devides the number for C evenly then this C+V combination
needs special care.

This module contains macros to process accents. There is a macro for
each accent. Processing accents involves retrieving the last syllable
box and placing the accent. The placement could be at the top or at the bottom
or on the side depending on the particular accent. A syllable can have
multiple accents. It is the responsibility
of the user to ensure that a proper combination
of accents is used.

\section{Type  Specimens}
{\setlength{\parindent}{0pt}

\ifundefined{tla}\else{\vspace{0.5cm}Specimen of tla (tel10)\\\tla
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlanx}\else{\vspace{0.5cm}Specimen of tlanx (tel10nx)\\\tlanx
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlany}\else{\vspace{0.5cm}Specimen of tlany (tel10ny)\\\tlany
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlab}\else{\vspace{0.5cm}Specimen of tlab (tel10b)\\\tlab
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlas}\else{\vspace{0.5cm}Specimen of tlas (tel10s)\\\tlas
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlb}\else{\vspace{0.5cm}Specimen of tlb (tel11)\\\tlb
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlbnx}\else{\vspace{0.5cm}Specimen of tlbnx (tel11nx)\\\tlbnx
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlbny}\else{\vspace{0.5cm}Specimen of tlbny (tel11ny)\\\tlbny
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlbb}\else{\vspace{0.5cm}Specimen of tlbb (tel11b)\\\tlbb
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlbs}\else{\vspace{0.5cm}Specimen of tlbs (tel11s)\\\tlbs
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlc}\else{\vspace{0.5cm}Specimen of tlc (tel12)\\\tlc
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlcnx}\else{\vspace{0.5cm}Specimen of tlcnx (tel12nx)\\\tlcnx
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlcny}\else{\vspace{0.5cm}Specimen of tlcny (tel12ny)\\\tlcny
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlcb}\else{\vspace{0.5cm}Specimen of tlcb (tel12b)\\\tlcb
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlcs}\else{\vspace{0.5cm}Specimen of tlcs (tel12s)\\\tlcs
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tld}\else{\vspace{0.5cm}Specimen of tld (tel15)\\\tld
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tldb}\else{\vspace{0.5cm}Specimen of tldb (tel15b)\\\tldb
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlds}\else{\vspace{0.5cm}Specimen of tlds (tel15s)\\\tlds
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tle}\else{\vspace{0.5cm}Specimen of tle (tel18)\\\tle
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tleb}\else{\vspace{0.5cm}Specimen of tleb (tel18b)\\\tleb
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tles}\else{\vspace{0.5cm}Specimen of tles (tel18s)\\\tles
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlf}\else{\vspace{0.5cm}Specimen of tlf (tel20)\\\tlf
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlfb}\else{\vspace{0.5cm}Specimen of tlfb (tel20b)\\\tlfb
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlfs}\else{\vspace{0.5cm}Specimen of tlfs (tel20s)\\\tlfs
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlg}\else{\vspace{0.5cm}Specimen of tlg (tel25)\\\tlg
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlgb}\else{\vspace{0.5cm}Specimen of tlgb (tel25b)\\\tlgb
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlgs}\else{\vspace{0.5cm}Specimen of tlgs (tel25s)\\\tlgs
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlh}\else{\vspace{0.5cm}Specimen of tlh (tel30)\\\tlh
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlhs}\else{\vspace{0.5cm}Specimen of tlhs (tel30s)\\\tlhs
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tli}\else{\vspace{0.5cm}Specimen of tli (tel35)\\\tli
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlis}\else{\vspace{0.5cm}Specimen of tlis (tel35s)\\\tlis
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ceDipOtAru''.}}\fi

\ifundefined{tlj}\else{\vspace{0.5cm}Specimen of tlj (tel40)\\\tlj
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ''}}\fi

\ifundefined{tljs}\else{\vspace{0.5cm}Specimen of tljs (tel40s)\\\tljs
{\QQQ ``parulanu mosagiMci HAnicEYa talapeTTinavAru tAmE ''}}\fi

\ifundefined{tlk}\else{\vspace{0.5cm}Specimen of tlk (tel55)\\\tlk
{\QQQ ``parulanu mosagiMci ''}}\fi

\ifundefined{tlks}\else{\vspace{0.5cm}Specimen of tlks (tel55s)\\\tlks
{\QQQ ``parulanu mosagiMci ''}}\fi

\ifundefined{tll}\else{\vspace{0.5cm}Specimen of tll (tel72)\\\tll
{\QQQ ``parulanu ''}}\fi

\ifundefined{tlm}\else{\vspace{0.5cm}Specimen of tlm (tel100)\\\tlm
{\QQQ ``parulanu ''}}\fi

\ifundefined{tln}\else{\vspace{0.5cm}Specimen of tln (tel172)\\\tln
{\QQQ parula }}\fi

\ifundefined{tlspa}\else{\vspace{0.5cm}Specimen of tlspa (telspa)\\\tlspa
{\QQQ ``parulanu ''.}}\fi

\ifundefined{tlspb}\else{\vspace{0.5cm}Specimen of tlspb (telspb)\\\tlspb
{\QQQ ``parulanu ''.}}\fi

\ifundefined{tlspc}\else{\vspace{0.5cm}Specimen of tlspc (telspc)\\\tlspc
{\QQQ ``parulanu ''.}}\fi

}
\section{Summary}
In this project, we have undertaken to produce a typesetting system for
a very complex script. We have used two top quality
programs (\TeX\  and METAFONT) developed
by Prof. Donald E. Knuth of Stanford University. There are two parts
to the project. One is the development of fonts using  METAFONT and
the other is writing programs (i.e. macros) in \TeX. METAFONT is a very
difficult language to program in. \TeX\ is not really a good programming
language. In order to realize the full potential of these programs
we need to do extensive ground work. Parameters need to be defined, we
have to write macros for frequently occuring shapes and also write a
program for each symbol of the font.
This is an iterative process.

  All these are time consuming and highly skilled tasks. When developing
the font, we had to ensure that our font would blend harmoniously with
Roman fonts when used in a document that contains both Roman and Telugu
fonts. This is a very delicate job because we are dealing with two
radically different languages. Printers producing Telugu use hundreds of
different types (metal blocks) with the image of a symbol cut on the
face. But METAFONT and \TeX\ allow no more than 256 symbols in a font.
By identifying the independent forms and exploiting the capabilities
of \TeX\ we have managed to keep the font size well within this limit.

  The quality of the font we have developed is satisfactory but will
need to be refined as we gain experience with the system. Telugu input to
\TeX / \LaTeX\ is presented in the form of Roman transliteration. Our
macros interpret this english text, identify syllables and compose the
syllables. All these tasks are very CPU intensive and hence typesetting
Telugu takes considerably more time than typesetting English text.

Kannada is another language spoken in South India. Kannada script is very
similar to Telugu script. Our typesetting system can be easily adapted
to Kannada. Parts  of our system can be used for extending \TeX\ to other
South Asian \& Southeast Asian languages.
Our system consists of well defined and independent modules. This
confers a lot of flexibility on the typesetting system.

\end{document}